mirror of
https://github.com/zsviczian/obsidian-excalidraw-plugin.git
synced 2025-08-06 05:46:28 +00:00
10 lines
17 KiB
TypeScript
10 lines
17 KiB
TypeScript
/*
|
|
f = app.vault.getAbstractFileByPath("startuphooks.md");
|
|
s = await app.vault.read(f);
|
|
ea = ExcalidrawAutomate;
|
|
url = await ea.convertStringToDataURL(s);
|
|
window.navigator.clipboard.writeText(`export const startupScript = () => atob("${url.split("data:text/html;base64,")[1]}");`);
|
|
console.log("String copied to clipboard");
|
|
*/
|
|
|
|
export const startupScript = () => atob("LyoKI2V4Y2x1ZGUKYGBganMqLwovKioKICogSWYgc2V0LCB0aGlzIGNhbGxiYWNrIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGNsb3NlcyBhbiBFeGNhbGlkcmF3IHZpZXcuCiAqICAgb25WaWV3VW5sb2FkSG9vazogKHZpZXc6IEV4Y2FsaWRyYXdWaWV3KSA9PiB2b2lkID0gbnVsbDsKICovCi8vZWEub25WaWV3VW5sb2FkSG9vayA9ICh2aWV3KSA9PiB7fTsKCi8qKgogKiBJZiBzZXQsIHRoaXMgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkLCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgdGhlIHZpZXcgbW9kZS4KICogWW91IGNhbiB1c2UgdGhpcyBjYWxsYmFjayBpbiBjYXNlIHlvdSB3YW50IHRvIGRvIHNvbWV0aGluZyBhZGRpdGlvbmFsIHdoZW4gdGhlIHVzZXIgc3dpdGNoZXMgdG8gdmlldyBtb2RlIGFuZCBiYWNrLgogKiAgIG9uVmlld01vZGVDaGFuZ2VIb29rOiAoaXNWaWV3TW9kZUVuYWJsZWQ6Ym9vbGVhbiwgdmlldzogRXhjYWxpZHJhd1ZpZXcsIGVhOiBFeGNhbGlkcmF3QXV0b21hdGUpID0+IHZvaWQgPSBudWxsOwogKi8KLy9lYS5vblZpZXdNb2RlQ2hhbmdlSG9vayA9IChpc1ZpZXdNb2RlRW5hYmxlZCwgdmlldywgZWEpID0+IHt9OwoKLyoqCiAqIElmIHNldCwgdGhpcyBjYWxsYmFjayBpcyB0cmlnZ2VyZWQsIHdoZW4gdGhlIHVzZXIgaG92ZXJzIGEgbGluayBpbiB0aGUgc2NlbmUuCiAqIFlvdSBjYW4gdXNlIHRoaXMgY2FsbGJhY2sgaW4gY2FzZSB5b3Ugd2FudCB0byBkbyBzb21ldGhpbmcgYWRkaXRpb25hbCB3aGVuIHRoZSBvbkxpbmtIb3ZlciBldmVudCBvY2N1cnMuCiAqIFRoaXMgY2FsbGJhY2sgbXVzdCByZXR1cm4gYSBib29sZWFuIHZhbHVlLgogKiBJbiBjYXNlIHlvdSB3YW50IHRvIHByZXZlbnQgdGhlIGV4Y2FsaWRyYXcgb25MaW5rSG92ZXIgYWN0aW9uIHlvdSBtdXN0IHJldHVybiBmYWxzZSwgaXQgd2lsbCBzdG9wIHRoZSBuYXRpdmUgZXhjYWxpZHJhdyBvbkxpbmtIb3ZlciBtYW5hZ2VtZW50IGZsb3cuCiAqICAgb25MaW5rSG92ZXJIb29rOiAoCiAqICAgICBlbGVtZW50OiBOb25EZWxldGVkRXhjYWxpZHJhd0VsZW1lbnQsCiAqICAgICBsaW5rVGV4dDogc3RyaW5nLAogKiAgICAgdmlldzogRXhjYWxpZHJhd1ZpZXcsCiAqICAgICBlYTogRXhjYWxpZHJhd0F1dG9tYXRlCiAqICAgKSA9PiBib29sZWFuID0gbnVsbDsKICovCi8vZWEub25MaW5rSG92ZXJIb29rID0gKGVsZW1lbnQsIGxpbmtUZXh0LCB2aWV3LCBlYSkgPT4ge307CiAgIAovKioKICogSWYgc2V0LCB0aGlzIGNhbGxiYWNrIGlzIHRyaWdnZXJlZCwgd2hlbiB0aGUgdXNlciBjbGlja3MgYSBsaW5rIGluIHRoZSBzY2VuZS4KICogWW91IGNhbiB1c2UgdGhpcyBjYWxsYmFjayBpbiBjYXNlIHlvdSB3YW50IHRvIGRvIHNvbWV0aGluZyBhZGRpdGlvbmFsIHdoZW4gdGhlIG9uTGlua0NsaWNrIGV2ZW50IG9jY3Vycy4KICogVGhpcyBjYWxsYmFjayBtdXN0IHJldHVybiBhIGJvb2xlYW4gdmFsdWUuCiAqIEluIGNhc2UgeW91IHdhbnQgdG8gcHJldmVudCB0aGUgZXhjYWxpZHJhdyBvbkxpbmtDbGljayBhY3Rpb24geW91IG11c3QgcmV0dXJuIGZhbHNlLCBpdCB3aWxsIHN0b3AgdGhlIG5hdGl2ZSBleGNhbGlkcmF3IG9uTGlua0NsaWNrIG1hbmFnZW1lbnQgZmxvdy4KICogICBvbkxpbmtDbGlja0hvb2s6KAogKiAgICAgZWxlbWVudDogRXhjYWxpZHJhd0VsZW1lbnQsCiAqICAgICBsaW5rVGV4dDogc3RyaW5nLAogKiAgICAgZXZlbnQ6IE1vdXNlRXZlbnQsCiAqICAgICB2aWV3OiBFeGNhbGlkcmF3VmlldywKICogICAgIGVhOiBFeGNhbGlkcmF3QXV0b21hdGUKICogICApID0+IGJvb2xlYW4gPSBudWxsOwogKi8KLy9lYS5vbkxpbmtDbGlja0hvb2sgPSAoZWxlbWVudCxsaW5rVGV4dCxldmVudCwgdmlldywgZWEpID0+IHt9OwogICAKLyoqCiAqIElmIHNldCwgdGhpcyBjYWxsYmFjayBpcyB0cmlnZ2VyZWQsIHdoZW4gRXhjYWxpZHJhdyByZWNlaXZlcyBhbiBvbkRyb3AgZXZlbnQuIAogKiBZb3UgY2FuIHVzZSB0aGlzIGNhbGxiYWNrIGluIGNhc2UgeW91IHdhbnQgdG8gZG8gc29tZXRoaW5nIGFkZGl0aW9uYWwgd2hlbiB0aGUgb25Ecm9wIGV2ZW50IG9jY3Vycy4KICogVGhpcyBjYWxsYmFjayBtdXN0IHJldHVybiBhIGJvb2xlYW4gdmFsdWUuCiAqIEluIGNhc2UgeW91IHdhbnQgdG8gcHJldmVudCB0aGUgZXhjYWxpZHJhdyBvbkRyb3AgYWN0aW9uIHlvdSBtdXN0IHJldHVybiBmYWxzZSwgaXQgd2lsbCBzdG9wIHRoZSBuYXRpdmUgZXhjYWxpZHJhdyBvbkRyb3AgbWFuYWdlbWVudCBmbG93LgogKiAgIG9uRHJvcEhvb2s6IChkYXRhOiB7CiAqICAgICBlYTogRXhjYWxpZHJhd0F1dG9tYXRlOwogKiAgICAgZXZlbnQ6IFJlYWN0LkRyYWdFdmVudDxIVE1MRGl2RWxlbWVudD47CiAqICAgICBkcmFnZ2FibGU6IGFueTsgLy9PYnNpZGlhbiBkcmFnZ2FibGUgb2JqZWN0CiAqICAgICB0eXBlOiAiZmlsZSIgfCAidGV4dCIgfCAidW5rbm93biI7CiAqICAgICBwYXlsb2FkOiB7CiAqICAgICAgIGZpbGVzOiBURmlsZVtdOyAvL1RGaWxlW10gYXJyYXkgb2YgZHJvcHBlZCBmaWxlcwogKiAgICAgICB0ZXh0OiBzdHJpbmc7IC8vc3RyaW5nCiAqICAgICB9OwogKiAgICAgZXhjYWxpZHJhd0ZpbGU6IFRGaWxlOyAvL3RoZSBmaWxlIHJlY2VpdmluZyB0aGUgZHJvcCBldmVudAogKiAgICAgdmlldzogRXhjYWxpZHJhd1ZpZXc7IC8vdGhlIGV4Y2FsaWRyYXcgdmlldyByZWNlaXZpbmcgdGhlIGRyb3AKICogICAgIHBvaW50ZXJQb3NpdGlvbjogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9OyAvL3RoZSBwb2ludGVyIHBvc2l0aW9uIG9uIGNhbnZhcyBhdCB0aGUgdGltZSBvZiBkcm9wCiAqICAgfSkgPT4gYm9vbGVhbiA9IG51bGw7CiAqLwovL2VhLm9uRHJvcEhvb2sgPSAoZGF0YSkgPT4ge307CiAKLyoqCiAqIElmIHNldCwgdGhpcyBjYWxsYmFjayBpcyB0cmlnZ2VyZWQsIHdoZW4gRXhjYWxpZHJhdyByZWNlaXZlcyBhbiBvblBhc3RlIGV2ZW50LgogKiBZb3UgY2FuIHVzZSB0aGlzIGNhbGxiYWNrIGluIGNhc2UgeW91IHdhbnQgdG8gZG8gc29tZXRoaW5nIGFkZGl0aW9uYWwgd2hlbiB0aGUKICogb25QYXN0ZSBldmVudCBvY2N1cnMuCiAqIFRoaXMgY2FsbGJhY2sgbXVzdCByZXR1cm4gYSBib29sZWFuIHZhbHVlLgogKiBJbiBjYXNlIHlvdSB3YW50IHRvIHByZXZlbnQgdGhlIGV4Y2FsaWRyYXcgb25QYXN0ZSBhY3Rpb24geW91IG11c3QgcmV0dXJuIGZhbHNlLAogKiBpdCB3aWxsIHN0b3AgdGhlIG5hdGl2ZSBleGNhbGlkcmF3IG9uUGFzdGUgbWFuYWdlbWVudCBmbG93LgogKiAgIG9uUGFzdGVIb29rOiAoZGF0YTogewogKiAgICAgZWE6IEV4Y2FsaWRyYXdBdXRvbWF0ZTsKICogICAgIHBheWxvYWQ6IENsaXBib2FyZERhdGE7CiAqICAgICBldmVudDogQ2xpcGJvYXJkRXZlbnQ7CiAqICAgICBleGNhbGlkcmF3RmlsZTogVEZpbGU7IC8vdGhlIGZpbGUgcmVjZWl2aW5nIHRoZSBwYXN0ZSBldmVudAogKiAgICAgdmlldzogRXhjYWxpZHJhd1ZpZXc7IC8vdGhlIGV4Y2FsaWRyYXcgdmlldyByZWNlaXZpbmcgdGhlIHBhc3RlCiAqICAgICBwb2ludGVyUG9zaXRpb246IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTsgLy90aGUgcG9pbnRlciBwb3NpdGlvbiBvbiBjYW52YXMKICogICB9KSA9PiBib29sZWFuID0gbnVsbDsKICovCi8vZWEub25QYXN0ZUhvb2sgPSAoZGF0YSkgPT4ge307CgovKioKICogaWYgc2V0LCB0aGlzIGNhbGxiYWNrIGlzIHRyaWdnZXJlZCwgd2hlbiBhbiBFeGNhbGlkcmF3IGZpbGUgaXMgb3BlbmVkCiAqIFlvdSBjYW4gdXNlIHRoaXMgY2FsbGJhY2sgaW4gY2FzZSB5b3Ugd2FudCB0byBkbyBzb21ldGhpbmcgYWRkaXRpb25hbCB3aGVuIHRoZSBmaWxlIGlzIG9wZW5lZC4KICogVGhpcyB3aWxsIHJ1biBiZWZvcmUgdGhlIGZpbGUgbGV2ZWwgc2NyaXB0IGRlZmluZWQgaW4gdGhlIGBleGNhbGlkcmF3LW9ubG9hZC1zY3JpcHRgIGZyb250bWF0dGVyLgogKiAgIG9uRmlsZU9wZW5Ib29rOiAoZGF0YTogewogKiAgICAgZWE6IEV4Y2FsaWRyYXdBdXRvbWF0ZTsKICogICAgIGV4Y2FsaWRyYXdGaWxlOiBURmlsZTsgLy90aGUgZmlsZSBiZWluZyBsb2FkZWQKICogICAgIHZpZXc6IEV4Y2FsaWRyYXdWaWV3OwogKiAgIH0pID0+IFByb21pc2U8dm9pZD47CiAqLwovL2VhLm9uRmlsZU9wZW5Ib29rID0gKGRhdGEpID0+IHt9OwoKLyoqCiAqIGlmIHNldCwgdGhpcyBjYWxsYmFjayBpcyB0cmlnZ2VyZWQsIHdoZW4gYW4gRXhjYWxpZHJhdyBmaWxlIGlzIGNyZWF0ZWQKICogc2VlIGFsc286IGh0dHBzOi8vZ2l0aHViLmNvbS96c3ZpY3ppYW4vb2JzaWRpYW4tZXhjYWxpZHJhdy1wbHVnaW4vaXNzdWVzLzExMjQKICogICBvbkZpbGVDcmVhdGVIb29rOiAoZGF0YTogewogKiAgICAgZWE6IEV4Y2FsaWRyYXdBdXRvbWF0ZTsKICogICAgIGV4Y2FsaWRyYXdGaWxlOiBURmlsZTsgLy90aGUgZmlsZSBiZWluZyBjcmVhdGVkCiAqICAgICB2aWV3OiBFeGNhbGlkcmF3VmlldzsKICogICB9KSA9PiBQcm9taXNlPHZvaWQ+OwogKi8KLy9lYS5vbkZpbGVDcmVhdGVIb29rID0gKGRhdGEpID0+IHt9OyAKCi8qKgogKiBJZiBzZXQsIHRoaXMgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkIHdoZW4gYSBpbWFnZSBpcyBiZWluZyBzYXZlZCBpbiBFeGNhbGlkcmF3LgogKiBZb3UgY2FuIHVzZSB0aGlzIGNhbGxiYWNrIHRvIGN1c3RvbWl6ZSB0aGUgbmFtaW5nIGFuZCBwYXRoIG9mIHBhc3RlZCBpbWFnZXMgdG8gYXZvaWQKICogZGVmYXVsdCBuYW1lcyBsaWtlICJQYXN0ZWQgaW1hZ2UgMTIzMTQ3MTcwLnBuZyIgYmVpbmcgc2F2ZWQgaW4gdGhlIGF0dGFjaG1lbnRzIGZvbGRlciwKICogYW5kIGluc3RlYWQgdXNlIG1vcmUgbWVhbmluZ2Z1bCBuYW1lcyBiYXNlZCBvbiB0aGUgRXhjYWxpZHJhdyBmaWxlIG9yIG90aGVyIGNyaXRlcmlhLAogKiBwbHVzIHNhdmUgdGhlIGltYWdlIGluIGEgZGlmZmVyZW50IGZvbGRlci4KICogCiAqIElmIHRoZSBmdW5jdGlvbiByZXR1cm5zIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgbm9ybWFsIEV4Y2FsaWRyYXcgb3BlcmF0aW9uIHdpbGwgY29udGludWUKICogd2l0aCB0aGUgZXhjYWxpZHJhdyBnZW5lcmF0ZWQgbmFtZSBhbmQgZGVmYXVsdCBwYXRoLgogKiBJZiBhIGZpbGVwYXRoIGlzIHJldHVybmVkLCB0aGF0IHdpbGwgYmUgdXNlZC4gSW5jbHVkZSB0aGUgZnVsbCBWYXVsdCBmaWxlcGF0aCBhbmQgZmlsZW5hbWUKICogd2l0aCB0aGUgZmlsZSBleHRlbnNpb24uCiAqIFRoZSBjdXJyZW50SW1hZ2VOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBpbWFnZSBnZW5lcmF0ZWQgYnkgZXhjYWxpZHJhdyBvciBwcm92aWRlZCBkdXJpbmcgcGFzdGUuCiAqIAogKiBAcGFyYW0gZGF0YSAtIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICogICBAcHJvcGVydHkge3N0cmluZ30gW2N1cnJlbnRJbWFnZU5hbWVdIC0gRGVmYXVsdCBuYW1lIGZvciB0aGUgaW1hZ2UuCiAqICAgQHByb3BlcnR5IHtzdHJpbmd9IGRyYXdpbmdGaWxlUGF0aCAtIFRoZSBmaWxlIHBhdGggb2YgdGhlIEV4Y2FsaWRyYXcgZmlsZSB3aGVyZSB0aGUgaW1hZ2UgaXMgYmVpbmcgdXNlZC4KICogCiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIG5ldyBmaWxlcGF0aCBmb3IgdGhlIGltYWdlIGluY2x1ZGluZyBmdWxsIHZhdWx0IHBhdGggYW5kIGV4dGVuc2lvbi4KICogCiAqIEV4YW1wbGUgdXNhZ2U6CiAqIG9uSW1hZ2VGaWxlUGF0aEhvb2s6IChkYXRhKSA9PiB7CiAqICAgY29uc3QgeyBjdXJyZW50SW1hZ2VOYW1lLCBkcmF3aW5nRmlsZVBhdGggfSA9IGRhdGE7CiAqICAgY29uc3QgZXh0ID0gY3VycmVudEltYWdlTmFtZS5zcGxpdCgnLicpLnBvcCgpOwogKiAgIC8vIEdlbmVyYXRlIGEgbmV3IGZpbGVwYXRoIGJhc2VkIG9uIHRoZSBkcmF3aW5nIGZpbGUgbmFtZSBhbmQgb3RoZXIgY3JpdGVyaWEKICogICByZXR1cm4gYCR7ZHJhd2luZ0ZpbGVOYW1lfSAtICR7Y3VycmVudEltYWdlTmFtZSB8fCAnaW1hZ2UnfS4ke2V4dH1gOwogKiB9CiAqIAogKiBTaWduaXR1cmU6CiAqIG9uSW1hZ2VGaWxlUGF0aEhvb2s6IChkYXRhOiB7CiAqICAgY3VycmVudEltYWdlTmFtZTogc3RyaW5nOyAvLyBFeGNhbGlkcmF3IGdlbmVyYXRlZCBuYW1lIG9mIHRoZSBpbWFnZSwgb3IgdGhlIG5hbWUgcmVjZWl2ZWQgZnJvbSB0aGUgZmlsZSBzeXN0ZW0uCiAqICAgZHJhd2luZ0ZpbGVQYXRoOiBzdHJpbmc7IC8vIFRoZSBmdWxsIGZpbGVwYXRoIG9mIHRoZSBFeGNhbGlkcmF3IGZpbGUgd2hlcmUgdGhlIGltYWdlIGlzIGJlaW5nIHVzZWQuCiAqIH0pID0+IHN0cmluZyA9IG51bGw7ICAKKi8KLy8gZWEub25JbWFnZUZpbGVQYXRoSG9vayA9IChkYXRhKSA9PiB7IGNvbnNvbGUubG9nKGRhdGEpOyB9OwoKLyoqCiAqIElmIHNldCwgdGhpcyBjYWxsYmFjayBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgRXhjYWxpZHJhdyBpbWFnZSBpcyBiZWluZyBleHBvcnRlZCB0byAKICogLnN2ZywgLnBuZywgb3IgLmV4Y2FsaWRyYXcuCiAqIFlvdSBjYW4gdXNlIHRoaXMgY2FsbGJhY2sgdG8gY3VzdG9taXplIHRoZSBuYW1pbmcgYW5kIHBhdGggb2YgdGhlIGltYWdlcy4gVGhpcyBhbGxvd3MKICogeW91IHRvIHBsYWNlIGltYWdlcyBpbnRvIGFuIGFzc2V0cyBmb2xkZXIuCiAqIAogKiBJZiB0aGUgZnVuY3Rpb24gcmV0dXJucyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIG5vcm1hbCBFeGNhbGlkcmF3IG9wZXJhdGlvbiB3aWxsIGNvbnRpbnVlCiAqIHdpdGggdGhlIGN1cnJlbnRJbWFnZU5hbWUgYW5kIGluIHRoZSBzYW1lIGZvbGRlciBhcyB0aGUgRXhjYWxpZHJhdyBmaWxlCiAqIElmIGEgZmlsZXBhdGggaXMgcmV0dXJuZWQsIHRoYXQgd2lsbCBiZSB1c2VkLiBJbmNsdWRlIHRoZSBmdWxsIFZhdWx0IGZpbGVwYXRoIGFuZCBmaWxlbmFtZQogKiB3aXRoIHRoZSBmaWxlIGV4dGVuc2lvbi4KICogISEhISBJZiBhbiBpbWFnZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgcGF0aCwgdGhhdCB3aWxsIGJlIG92ZXJ3cml0dGVuLiBXaGVuIHJldHVybmluZwogKiB5b3VyIG93biBpbWFnZSBwYXRoLCB5b3UgbXVzdCB0YWtlIGNhcmUgb2YgdW5pcXVlIGZpbGVuYW1lcyAoaWYgdGhhdCBpcyBhIHJlcXVpcmVtZW50KSAhISEhCiAqIFRoZSBjdXJyZW50IGltYWdlIG5hbWUgaXMgdGhlIG5hbWUgZ2VuZXJhdGVkIGJ5IEV4Y2FsaWRyYXc6CiAqIC0gbXktZHJhd2luZy5wbmcKICogLSBteS1kcmF3aW5nLnN2ZwogKiAtIG15LWRyYXdpbmcuZXhjYWxpZHJhdwogKiAtIG15LWRyYXdpbmcuZGFyay5zdmcKICogLSBteS1kcmF3aW5nLmxpZ2h0LnN2ZwogKiAtIG15LWRyYXdpbmcuZGFyay5wbmcKICogLSBteS1kcmF3aW5nLmxpZ2h0LnBuZwogKiAKICogQHBhcmFtIGRhdGEgLSBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAqICAgQHByb3BlcnR5IHtzdHJpbmd9IGV4cG9ydEZpbGVwYXRoIC0gRGVmYXVsdCBleHBvcnQgZmlsZXBhdGggZm9yIHRoZSBpbWFnZS4KICogICBAcHJvcGVydHkge3N0cmluZ30gZXhjYWxpZHJhd0ZpbGUgLSBURmlsZTogVGhlIEV4Y2FsaWRyYXcgZmlsZSBiZWluZyBleHBvcnRlZC4KICogICBAcHJvcGVydHkge3N0cmluZ30gZXhwb3J0RXh0ZW5zaW9uIC0gVGhlIGZpbGUgZXh0ZW5zaW9uIG9mIHRoZSBleHBvcnQgKGUuZy4sIC5kYXJrLnN2ZywgLnBuZywgLmV4Y2FsaWRyYXcpLgogKiAgIEBwcm9wZXJ0eSB7c3RyaW5nfSBvbGRFeGNhbGlkcmF3UGF0aCAtIElmIGFjdGlvbiA9PT0gIm1vdmUiIFRoZSBvbGQgcGF0aCBvZiB0aGUgRXhjYWxpZHJhdyBmaWxlLCBlbHNlIHVuZGVmaW5lZAogKiAgIEBwcm9wZXJ0eSB7c3RyaW5nfSBhY3Rpb24gLSBUaGUgYWN0aW9uIGJlaW5nIHBlcmZvcm1lZDoKICogICAgICAgICJleHBvcnQiIHwgIm1vdmUiIHwgImRlbGV0ZSIKICogICAgICAgIG1vdmUgYW5kIGRlbGV0ZSByZWZlcmVuY2UgdGhlIGNoYW5nZSB0byB0aGUgRXhjYWxpZHJhdyAgZmlsZS4KICogCiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIG5ldyBmaWxlcGF0aCBmb3IgdGhlIGltYWdlIGluY2x1ZGluZyBmdWxsIHZhdWx0IHBhdGggYW5kIGV4dGVuc2lvbi4KICogCiAqIGFjdGlvbiA9PT0gIm1vdmUiIHx8IGFjdGlvbiA9PT0gImRlbGV0ZSIgaXMgb25seSBwb3NzaWJsZSBpZiAia2VlcCBpbiBzeW5jIiBpcyBlbmFibGVkCiAqICAgaW4gcGx1Z2luIGV4cG9ydCBzZXR0aW5ncwogKgogKiBFeGFtcGxlIHVzYWdlOgogKiBvbkltYWdlRmlsZVBhdGhIb29rOiAoZGF0YSkgPT4gewogKiAgIGNvbnN0IHsgY3VycmVudEltYWdlTmFtZSwgZHJhd2luZ0ZpbGVQYXRoLCBmcm9udG1hdHRlciB9ID0gZGF0YTsKICogICAvLyBHZW5lcmF0ZSBhIG5ldyBmaWxlcGF0aCBiYXNlZCBvbiB0aGUgZHJhd2luZyBmaWxlIG5hbWUgYW5kIG90aGVyIGNyaXRlcmlhCiAqICAgY29uc3QgZXh0ID0gY3VycmVudEltYWdlTmFtZS5zcGxpdCgnLicpLnBvcCgpOwogKiAgIGlmKGZyb250bWF0dGVyICYmIGZyb250bWF0dGVyWyJteS1jdXN0b20tZmllbGQiXSkgewogKiAgIH0KICogICByZXR1cm4gYCR7ZHJhd2luZ0ZpbGVOYW1lfSAtICR7Y3VycmVudEltYWdlTmFtZSB8fCAnaW1hZ2UnfS4ke2V4dH1gOwogKiB9CiAqIAoqLwovKmVhLm9uSW1hZ2VFeHBvcnRQYXRoSG9vayA9ICAoZGF0YSkgPT4gewogIC8vZGVidWdnZXI7IC8vcmVtb3ZlIGNvbW1lbnQgdG8gZGVidWcgdXNpbmcgRGV2ZWxvcGVyIENvbnNvbGUKICAKICBsZXQge2V4Y2FsaWRyYXdGaWxlLCBleHBvcnRGaWxlcGF0aCwgZXhwb3J0RXh0ZW5zaW9uLCBvbGRFeGNhbGlkcmF3UGF0aCwgYWN0aW9ufSA9IGRhdGE7CiAgY29uc3QgZnJvbnRtYXR0ZXIgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaWxlQ2FjaGUoZXhjYWxpZHJhd0ZpbGUpPy5mcm9udG1hdHRlcjsKICAvL2NvbnNvbGUubG9nKGRhdGEsIGZyb250bWF0dGVyKTsKICAKICBjb25zdCBleGNhbGlkcmF3RmlsZW5hbWUgPSBhY3Rpb24gPT09ICJtb3ZlIgogICAgPyBlYS5zcGxpdEZvbGRlckFuZEZpbGVuYW1lKGV4Y2FsaWRyYXdGaWxlLm5hbWUpLmZpbGVuYW1lCiAgICA6IGV4Y2FsaWRyYXdGaWxlLm5hbWUKCiAgaWYoZXhjYWxpZHJhd0ZpbGVuYW1lLm1hdGNoKC9eaWNvbiAtIC9pKSkgewogICAgY29uc3Qge2ZvbGRlcnBhdGgsIGZpbGVuYW1lLCBiYXNlbmFtZSwgZXh0ZW5zaW9ufSA9IGVhLnNwbGl0Rm9sZGVyQW5kRmlsZW5hbWUoZXhwb3J0RmlsZXBhdGgpOwogICAgZXhwb3J0RmlsZXBhdGggPSAiYXNzZXRzL2ljb25zLyIgKyBmaWxlbmFtZTsKICAgIHJldHVybiBleHBvcnRGaWxlcGF0aDsKICB9CiAgICAKICBpZihleGNhbGlkcmF3RmlsZW5hbWUubWF0Y2goL15zdGlja2ZpZ3VyZSAtIC9pKSkgewogICAgY29uc3Qge2ZvbGRlcnBhdGgsIGZpbGVuYW1lLCBiYXNlbmFtZSwgZXh0ZW5zaW9ufSA9IGVhLnNwbGl0Rm9sZGVyQW5kRmlsZW5hbWUoZXhwb3J0RmlsZXBhdGgpOwogICAgZXhwb3J0RmlsZXBhdGggPSAiYXNzZXRzL3N0aWNrZmlndXJlcy8iICsgZmlsZW5hbWU7CiAgICByZXR1cm4gZXhwb3J0RmlsZXBhdGg7CiAgfQogICAgCiAgaWYoZXhjYWxpZHJhd0ZpbGVuYW1lLm1hdGNoKC9ebG9nbyAtIC9pKSkgewogICAgY29uc3Qge2ZvbGRlcnBhdGgsIGZpbGVuYW1lLCBiYXNlbmFtZSwgZXh0ZW5zaW9ufSA9IGVhLnNwbGl0Rm9sZGVyQW5kRmlsZW5hbWUoZXhwb3J0RmlsZXBhdGgpOwogICAgZXhwb3J0RmlsZXBhdGggPSAiYXNzZXRzL2xvZ29zLyIgKyBmaWxlbmFtZTsKICAgIHJldHVybiBleHBvcnRGaWxlcGF0aDsKICB9CgoJLy8gISEhISBmcm9udG1hdHRlciB3aWxsIGJlIHVuZGVmaW5lZCB3aGVuIGFjdGlvbiA9PT0gImRlbGV0ZSIKCS8vIHRoaXMgbWVhbnMgaWYgeW91IGJhc2UgeW91ciBsb2dpYyBvbiBmcm9udG1hdHRlciBwcm9wZXJ0aWVzLCB0aGVuIAoJLy8gcGx1Z2luIHNldHRpbmdzIGtlZXAgZmlsZXMgaW4gc3luYyB3aWxsIGJyZWFrIGZvciB0aG9zZSBmaWxlcyB3aGVuCgkvLyBkZWxldGluZyB0aGUgRXhjYWxpZHJhdyBmaWxlLiBUaGUgaW1hZ2VzIHdpbGwgbm90IGJlIGRlbGV0ZWQsIG9yIHdvcnN0CgkvLyB5b3VyIGxvZ2ljIG1pZ2h0IHJlc3VsdCBpbiBkZWxldGluZyBvdGhlciBmaWxlcy4gVGhpcyBob29rIGdpdmVzIHlvdQoJLy8gcG93ZXJmdWwgY29udHJvbCwgYnV0IHRoZSBob29rIGZ1bmN0aW9uIGxvZ2ljIHJlcXVpcmVzIGNhcmVmdWwgdGVzdGluZwoJLy8gb24geW91ciBwYXJ0LgogIC8vaWYoZnJvbnRtYXR0ZXIgJiYgZnJvbnRtYXR0ZXJbImlzLWFzc2V0Il0pIHsgLy9jdXN0b20gZnJvbnRtYXR0ZXIgcHJvcGVydHkKICAgIGV4cG9ydEZpbGVwYXRoID0gZWEub2JzaWRpYW4ubm9ybWFsaXplUGF0aCgiYXNzZXRzLyIgKyBleHBvcnRGaWxlcGF0aCk7CiAgICByZXR1cm4gZXhwb3J0RmlsZXBhdGg7CiAgLy99CgogIHJldHVybiBleHBvcnRGaWxlcGF0aDsKfTsqLwoKLyoqCiAqIEV4Y2FsaWRyYXcgc3VwcG9ydHMgYXV0by1leHBvcnQgb2YgRXhjYWxpZHJhdyBmaWxlcyB0byAucG5nLCAuc3ZnLCBhbmQgLmV4Y2FsaWRyYXcgZm9ybWF0cy4KICogCiAqIEF1dG8tZXhwb3J0IG9mIEV4Y2FsaWRyYXcgZmlsZXMgY2FuIGJlIGNvbnRyb2xsZWQgYXQgbXVsdGlwbGUgbGV2ZWxzLgogKiAxKSBJbiBwbHVnaW4gc2V0dGluZ3Mgd2hlcmUgeW91IGNhbiBzZXQgdXAgZGVmYXVsdCBhdXRvLWV4cG9ydCBhcHBsaWNhYmxlIHRvIGFsbCB5b3VyIEV4Y2FsaWRyYXcgZmlsZXMuCiAqIDIpIEhvd2V2ZXIsIGlmIHlvdSBkbyBub3Qgd2FudCB0byBhdXRvLWV4cG9ydCBldmVyeSBmaWxlLCB5b3UgY2FuIGFsc28gY29udHJvbCBhdXRvLWV4cG9ydAogKiAgICBhdCB0aGUgZmlsZSBsZXZlbCB1c2luZyB0aGUgJ2V4Y2FsaWRyYXctYXV0b2V4cG9ydCcgZnJvbnRtYXR0ZXIgcHJvcGVydHkuCiAqIDMpIFRoaXMgaG9vayBnaXZlcyB5b3UgYW4gYWRkaXRpb25hbCBsYXllciBvZiBjb250cm9sIG92ZXIgdGhlIGF1dG8tZXhwb3J0IHByb2Nlc3MuCiAqIAogKiBUaGlzIGhvb2sgaXMgdHJpZ2dlcmVkIHdoZW4gYW4gRXhjYWxpZHJhdyBmaWxlIGlzIGJlaW5nIHNhdmVkLgogKiAKICogaW50ZXJmYWNlIEF1dG9leHBvcnRDb25maWcgewogKiAgIHBuZzogYm9vbGVhbjsgLy8gV2hldGhlciB0byBhdXRvLWV4cG9ydCB0byBQTkcKICogICBzdmc6IGJvb2xlYW47IC8vIFdoZXRoZXIgdG8gYXV0by1leHBvcnQgdG8gU1ZHCiAqICAgZXhjYWxpZHJhdzogYm9vbGVhbjsgLy8gV2hldGhlciB0byBhdXRvLWV4cG9ydCB0byBFeGNhbGlkcmF3IGZvcm1hdAogKiAgIHRoZW1lOiAibGlnaHQiIHwgImRhcmsiIHwgImJvdGgiOyAvLyBUaGUgdGhlbWUgdG8gdXNlIGZvciB0aGUgZXhwb3J0CiAqIH0KICoKICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBUaGUgZGF0YSBmb3IgdGhlIGhvb2suCiAqIEBwYXJhbSB7QXV0b2V4cG9ydENvbmZpZ30gZGF0YS5hdXRvZXhwb3J0Q29uZmlnIC0gVGhlIGN1cnJlbnQgYXV0b2V4cG9ydCBjb25maWd1cmF0aW9uLgogKiBAcGFyYW0ge1RGaWxlfSBkYXRhLmV4Y2FsaWRyYXdGaWxlIC0gVGhlIEV4Y2FsaWRyYXcgZmlsZSBiZWluZyBhdXRvLWV4cG9ydGVkLgogKiBAcmV0dXJucyB7QXV0b2V4cG9ydENvbmZpZyB8IG51bGx9IC0gUmV0dXJuIGEgbW9kaWZpZWQgQXV0b2V4cG9ydENvbmZpZyB0byBvdmVycmlkZSB0aGUgZXhwb3J0IGJlaGF2aW9yLCBvciBudWxsIHRvIHVzZSB0aGUgZGVmYXVsdC4KKi8KLyplYS5vblRyaWdnZXJBdXRvZXhwb3J0SG9vayA9IChkYXRhKSA9PiB7CiAgbGV0IHthdXRvZXhwb3J0Q29uZmlnLCBleGNhbGlkcmF3RmlsZX0gPSBkYXRhOwogIGNvbnN0IGZyb250bWF0dGVyID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUNhY2hlKGV4Y2FsaWRyYXdGaWxlKT8uZnJvbnRtYXR0ZXI7CiAgLy9jb25zb2xlLmxvZyhkYXRhLCBmcm9udG1hdHRlcik7CiAgLy9sb2dpYyBiYXNlZCBvbiBmaWxlcGF0aCBhbmQgZnJvbnRtYXR0ZXIKICBpZihleGNhbGlkcmF3RmlsZS5uYW1lLm1hdGNoKC9eKD86aWNvbnxzdGlja2ZpZ3VyZXxsb2dvKSAtIC9pKSkgewogICAgYXV0b2V4cG9ydENvbmZpZy50aGVtZSA9ICJsaWdodCI7IAogICAgYXV0b2V4cG9ydENvbmZpZy5zdmcgPSB0cnVlOwogICAgYXV0b2V4cG9ydENvbmZpZy5wbmcgPSBmYWxzZTsKICAgIGF1dG9leHBvcnRDb25maWcuZXhjYWxpZHJhdyA9IGZhbHNlOwogICAgcmV0dXJuIGF1dG9leHBvcnRDb25maWc7CiAgfQogIHJldHVybiBhdXRvZXhwb3J0Q29uZmlnOwp9OyovCgovKioKICogSWYgc2V0LCB0aGlzIGNhbGxiYWNrIGlzIHRyaWdnZXJlZCB3aGVuZXZlciB0aGUgYWN0aXZlIGNhbnZhcyBjb2xvciBjaGFuZ2VzCiAqICAgb25DYW52YXNDb2xvckNoYW5nZUhvb2s6ICgKICogICAgIGVhOiBFeGNhbGlkcmF3QXV0b21hdGUsCiAqICAgICB2aWV3OiBFeGNhbGlkcmF3VmlldywgLy90aGUgZXhjYWxpZHJhdyB2aWV3IAogKiAgICAgY29sb3I6IHN0cmluZywKICogICApID0+IHZvaWQgPSBudWxsOwoqLwovL2VhLm9uQ2FudmFzQ29sb3JDaGFuZ2VIb29rID0gKGVhLCB2aWV3LCBjb2xvcikgPT4ge307Cg=="); |