Update, and fix problem where the author patched the previous patch for hosting on other ports

This commit is contained in:
DUOLabs333 committed 2022-04-25 19:29:38 -04:00
1 parent e2b23cefdc
commit af8387e39e
10 files changed
+16873 -23381

No files matched your search

+13 -14
View File
@@ -11,16 +11,9 @@
0,
"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"
],
"wasm/zstd": [29645,"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 Line truncated
"wasm/webp": [
89970,
"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 truncated
],
"wasm/jpg" : [
63156,
"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 truncated
],
"wasm/zstd": [0,"AGFzbQEAAAABew9gAX8AYAJ/fwBgA39/fwF/YAR/f39/AX9gBX9/f39/AX9gAX8Bf2ADf39/AGACf38Bf2AEf39/fwBgBX9/f39/AGAHf39/f39/fwBgB39/f39/f38Bf2AIf39/f39/f38Bf2AOf39/f39/f39/f39/f38Bf2ACf38BfgMiIQUABQAAAAICAgQLAgYFBwcIAwMEBAQAAwIOBgwJDQoAAwQFAXABAQEFAwEAAgYIAX8BQZCgBAsHRwUGbWVtb3J5AgAGbWFsbG9jAAAEZnJlZQAFGFpTVERfZ2V0RnJhbWVDb250ZW50U2l6ZQAZD1pTVERfZGVjb21wcmVzcwAgCpbQASG0BAEEfyAARQRAQQAPCwJAAkACQAJAAkAgAEEIIABBCEsbZ0EfcyAAaUEBR2oiBEEESSAAIAR2cg0AIARBAnRBjB9qIQMDQCABQR9LDQEgAygCACIDRQ0BIANBCGsoAgBBAXZBCGsgAE8NAiABQQFqIQEgA0EEaiEDDAALAAsgBEEhayEBIARBAnRBkB9qIQIDQCABIAFBAWoiAUsNAiACKAIAIQMgAkEEaiECIANFDQALCyADQQhrIgEQASABIAEoAgAiBEEBcjYCAEGAHygCACABRyAEQQF2IgQgAGtBCGsiAkF4cUEIR3IEfyACBSAEEAJFDQIgAkEIagtBEEkNASABIAEoAgAiBEEBcSAAIANqQQdqQXhxIgIgAWtBAXRyNgIAIAIgAigCAEEBcSABIARBAXZqIAJrIgBBAXRyNgIAIAIgATYCBEGAHyACIABB/////wdxakEEakGAHygCACABRhsgAjYCACACEAMMAQtBACEDAkACQEGAHygCACICRQ0AIAIoAgAiAUEBcQ0AIAIgAUEBcjYCACACEAEgABACQYAfKAIAIQENASABIAEoAgBBfnE2AgBBAA8LQfQeQfQeKAIAIgEgAEEPakF4cSIEaiIANgIAIAFBf0YNAiABIAFBB2pBeHEiAUcEQEH0HiABIARqNgIAIABBf0YNAwsgAgRAIAEgAjYCBAtBgB8gATYCACABIARBAXRBAXI2AgAMAQsgAUUNAQsgAUEIaiEDCyADC28BAn8gAEEIaiICIAAoAgBBAXZBCGsiAUEIIAFBCEsbZ0Efc0ECdEGQH2oiASgCAEYEQCABIABBDGooAgA2AgALIAIoAgAiAQRAIAEgAEEMaigCADYCBAsgAEEMaigCACIABEAgACACKAIANgIACwtqAQR/QfQeIABBD2pBeHFBgB8oAgAiACgCACIBQQF2ayIDQfQeKAIAIgRqNgIAAkAgBEF/Rg0AQQEhAiAAIAFBAXEEfyABBSAAEAEgACgCAAsgA0EBdGoiATYCACABQQFxDQAgABAECyACC4gCAQJ/IAAgACgCACIBQX5xNgIAQQAgACABQQF2akGAHygCACAARhshAQJAIAAoAgQiAkUNACACLQAAQQFxDQAgAhABIAIgAigCACAAKAIAQX5xajYCAEGAHyEAAkACQCABRQ0AIAEgAjYCBCABLQAAQQFxDQEgARABIAIgAigCACABKAIAQX5xajYCACABQYAfKAIARg0AIAEgASgCAEEBdmpBBGohAAsgACACNgIACyACEAQPCwJAIAFFDQAgAS0AAEEBcQ0AIAEQASAAIAAoAgAgASgCAEF+cWo2AgACf0GAH0GAHygCACABRg0AGiABIAEoAgBBAXZqQQRqCyAANgIACyAAEAQLVAECfyAAKAIAQQF2QQhrIgFBCCABQQhLG2dBH3NBAnRBkB9qIgIoAgAhASACIABBCGoiAjYCACAAQQxqIAE2AgAgAEEANgIIIAEEQCABIAI2AgALCw4AIAAEQCAAQQhrEAMLC3IBAX8CQCACIAAgAWtNBEAgACEDA0AgAkUNAiADIAEtAAA6AAAgAkEBayECIAFBAWohASADQQFqIQMMAAsACyABQQFrIQEgAEEBayEDA0AgAkUNASACIANqIAEgAmotAAA6AAAgAkEBayECDAALAAsgAAuzAQEEfwJAAkAgACABc0EDcQRAIAAhAyABIQQMAQsgACEFA0AgBUEDcQRAIAJFDQMgBSABLQAAOgAAIAJBAWshAiAFQQFqIQUgAUEBaiEBDAELCwNAIAEgBmohBCAFIAZqIQMgAkEESQ0BIAMgBCgCADYCACAGQQRqIQYgAkEEayECDAALAAsDQCACRQ0BIAMgBC0AADoAACACQQFrIQIgA0EBaiEDIARBAWohBAwACwALIAALlAEBA38CQANAIAAgA2oiBEEDcQRAIAIgA0YNAiAEIAE6AAAgA0EBaiEDDAELCyABQf8BcSIFQQh0IAVyIgVBEHQgBXIhBSACIANrIQMDQCADQQRJ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 Line truncated
"wasm/webp": [0,"AGFzbQEAAAABgAERYAF/AGAEf39/fwBgAn9/AX9gBX9/f39/AGADf39/AX9gCX9/f39/f39/fwBgAn9/AGABfwF/YAR/f39/AX9gA39/fwBgBn9/f39/fwF/YAd/f39/f39/AGAAAX9gBX9/f39/AX9gBn9/f39/fwBgCH9/f39/f39/AX9gAX4BfwOlAaMBBAQEBwcABgcAAAAABwgIBgYBBgYCCQkLCwEBAQEDAwMABwcMCQ0CBgoABgIEBQUFBQUFBQMDAwMDAwMCAgIEBAQFAgQCAwMDAwMDAwQEBAgAAwELCAQCDAoAAAACCQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAICAgICAgICAgICAgICAQEBAQEBAQEBAQEBAQEAEAgNAQYJAQEOCw8IAAQFAXABY2MFAwEAAgYPAn8BQdDOBAt/AEHQzgQLB3sKBm1lbW9yeQIABm1hbGxvYwADBGZyZWUACQtfX2hlYXBfYmFzZQMBEVZQOEluaXRJb0ludGVybmFsAFYJVlA4RGVsZXRlAFoGVlA4TmV3AFcJVlA4RGVjb2RlAF8OV2ViUERlY29kZUFSR0IAoQEIV2ViUEZyZWUAogEJfgEAQQELYhobHB0eHyAhIictLi8wMTIzNDU2Nzg5Ojs8PT4/QEJDREVGR0hJSktMTU55ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBWBRgYWJjZGVmZ2hpamtsbW5vcHFyc3R1dneaAQr0+wSjAW0BAX8CQCAAIAFrIAJJBEAgAUF/aiEBIABBf2ohAwNAIAIgA2ogASACai0AADoAACACQX9qIgINAAsMAQsgAkUNACAAIQMDQCADIAEtAAA6AAAgAUEBaiEBIANBAWohAyACQX9qIgINAAsLIAALwQEBAn8CQAJAIAAgAXNBA3EEQCAAIQMMAQsCQCAAQQNxRQRAIAAhAwwBCyAAIQMDQCACRQ0DIAMgAS0AADoAACACQX9qIQIgAUEBaiEBIANBAWoiA0EDcQ0ACwsgAkEESQ0AIAIhBANAIAMgASgCADYCACADQQRqIQMgAUEEaiEBIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAALqAEBA38CQAJAIABBA3FFBEAgACEDDAELIAAhAwNAIAJFDQIgAyABOgAAIAJBf2ohAiADQQFqIgNBA3ENAAsLIAJBBE8EQCABQf8BcSIEQQh0IARyIgRBEHQgBHIhBSACIQQDQCADIAU2AgAgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAE6AAAgA0EBaiEDIAJBf2oiAg0ACwsgAAsGACAAEAQLuwMBBX8gAEUEQEEADwsCQAJAAkACQCAAQQggAEEISxtnQR9zIABpQQFHaiICQQRJIAAgAnZyDQAgAkECdEHsyABqKAIAIgNFDQADQCADQXhqIgEoAgBBAXZBeGogAE8NAiAEQR5LDQEgBEEBaiEEIAMoAgQiAw0ACwsCQCACQR9LDQAgAkF/aiEEIAJBAnRB8MgAaiEDA0AgAygCACIBRQRAIANBBGohAyAEQQFqIgRBHk0NAQwCCwsgAUF4aiIBEAUgASABKAIAQQFyNgIAIAEgABAGDAILQQAhAwJAAkBB4MgAKAIAIgJFDQAgAigCACIBQQFxDQAgAiABQQFyNgIAIAIQBSAAEAdB4MgAKAIAIQENASABIAEoAgBBfnE2AgBBAA8LQbDIAEGwyAAoAgAiBCAAQQ9qQXhxIgBqIgU2AgAgBEF/Rg0DIAQgBEEHakF4cSIBRwRAQbDIACAAIAFqNgIAIAVBf0YNBAsgAgRAIAEgAjYCBAtB4MgAIAE2AgAgASAAQQF0QQFyNgIADAILIAFFDQIMAQsgARAFIAEgASgCAEEBcjYCACABIAAQBgsgAUEIaiEDCyADC3ABAn8gAEEIaiICIAAoAgBBAXZBeGoiAUEIIAFBCEsbZ0Efc0ECdEHwyABqIgEoAgBGBEAgASAAQQxqKAIANgIACyACKAIAIgEEQCABIABBDGooAgA2AgQLIABBDGooAgAiAARAIAAgAigCADYCAAsLsAEBAn8CQEHgyAAoAgAgAEcgACgCAEEBdiIDIAFrQXhqIgJBeHFBCEdyBH8gAgUgAxAHRQ0BIAJBCGoLQRBJDQAgACAAKAIAIgJBAXEgACABakEPakF4cSIBIABrQQF0cjYCACABIAEoAgBBAXEgACACQQF2aiABayICQQF0cjYCACABIAA2AgRB4MgAIAEgAkH/////B3FqQQRqQeDIACgCACAARhsgATYCACABEAgLC7cBAQR/QbDIACAAQQ9qQXhxQeDIACgCACIAKAIAIgFBAXZrIgJBsMgAKAIAIgNqNgIAAkAgA0F/Rg0AQQEhBCAAIAFBAXEEfyABBSAAEAUgACgCAAsgAkEBdGoiATYCACABQQFxDQAgAUEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QfDIAGoiAigCACEBIAIgAEEIaiICNgIAIABBDGogATYCACAAQQA2AgggAUUNACABIAI2AgALIAQLggQBA38gACAAKAIAIgFBfnE2AgBBACAAIAFBAXYiA2pB4MgAKAIAIABGGyEBAkACQCAAKAIEIgJFDQAgAi0AAEEBcQ0AIAIQBSACIAIoAgAgACgCAEF+cWo2AgBB4MgAIQACQAJAIAFFDQAgASACNgIEIAEtAABBAXENASABEAUgAiACKAIAIAEoAgBBfnFqNgIAIAFB4MgAKAIARg0AIAEgASgCAEEBdmpBBGohAAsgACACNgIACyACKAIAQQF2QXhqIgBBCCAAQQhLG2dBH3NBAnRB8MgAaiIBKAIAIQAgASACQQhqIgE2AgAgAkEMaiAANgIAIAJBADYCCCAARQ0BIAAgATYCAA8LAkAgAUUNACABLQAAQQFxDQAgARAFIAAgACgCACABKAIAQX5xaiICNgIAAkBB4MgAKAIAIAFHBEAgASABKAIAQQF2aiAANgIEIAAoAgAhAgwBC0HgyAAgADYCAAsgAkEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QfDIAGoiAigCACEBIAIgAEEIaiICNgIAIABBDGogATYCACAAQQA2AgggAUUNASABIAI2AgAPCyADQXhqIgFBCCABQQhLG2dBH3NBAnRB8MgAaiICKAIAIQEgAiAAQQhqIgI2AgAgAEEMaiABNgIAIABBADYCCCABRQ0AIAEgAjYCAAsLDgAgAARAIABBeGoQCAsLHwEBfyAABEAgACgCFCIBBEAgARALIAEQCQsgABAJCwuDAQECfyAABEAgAEH4AGoQlQEgACgCEBAJIABBADYCECAAKAKwAUEBTgRAIABBxAFqIQEDQCABKAIAEAkgAUEANgIAIAFBFGohASACQQFqIgIgACgCsAFIDQALCyAAQQA2AoQCIABBADYCsAEgACgCiAIQCSAAQQA2AgwgAEEANgKIAgsL9AEBBH8gAEUEQEECDwsgACgCCEF/aiEDIAAoAgBBCk0EQCAAQRRqIgFBACABKAIAIgFrNgIAIAAgACgCECABIANsajYCEEEADwsgAEEgaiIBQQAgASgCACIBazYCACAAQSRqIgJBACACKAIAIgJrNgIAIABBKGoiBEEAIAQoAgAiBGs2AgAgACAAKAIQIAEgA2xqNgIQIABBFGoiASABKAIAIAIgA0EBdSIBbGo2AgAgAEEYaiICIAIoAgAgASAEbGo2AgAgAEEcaigCACIBBEAgAEEsaiICQQAgAigCACICazYCACAAIAEgAiADbGo2AhwLQQALuAgCBn8FfiMAQRBrIgkkAEECIQYCQCADRSABQQFIIABBAUhycg0AAkAgAkUNAAJAIAIoAghFBEAgASEEIAAhBQwBCyACKAIYIgRBAUgNAiACKAIUIgVBAUgNAiACKAIQIgcgAigCDCIIckEASCAIQX5xIAVqIABKciAHQX5xIARqIAFKcg0CCyACKAIcRQRAIAQhASAFIQAMAQsgCSACKAIgNgIMIAkgAigCJDYCCCAFIAQgCUEMaiAJQQhqEA5FDQEgCSgCCCEBIAkoAgwhAAsgAyABNgIIIAMgADYCBCABQQFIIABBAUhyDQAgAygCACIEQQxLDQACQCADKAIMQQBKDQAgAygCUA0AIACtIgogBEGACGotAAAiBa1+QiCIpw0BIAGtIgsgACAFbCIHrH4hDAJ/IARBC0kEQEIAIQpCACELQQAhBUEADAELIAogC35CACAEQQxGIgYbIQogAEEBakECbSIFrCABQQFqQQJtrH4hCyAAQQAgBhsLIQhBASEGIAtCAYYiDSAKIAx8fCIOQoCA/P8HVg0BIA6nEAQiAEUNASADIAA2AhAgAyAANgJQIARBC08EQCADQTBqIAynIgY2AgAgA0EgaiAHNgIAIANBNGogC6ciATYCACADQSRqIAU2AgAgA0E4aiABNgIAIANBKGogBTYCACADQRRqIAAgBmoiADYCACADQRhqIAAgAWo2AgAgBEEMRgRAIANBHGogACANp2o2AgALIANBLGogCDYCACADQTxqIAo+AgAMAQsgA0EYaiAMPgIAIANBFGogBzYCAAtBAiEGIAMoAgAiAUEMSw0AIAMoAgghBSADKAIEIQACQAJAAkAgAUELTwRAIANBKGooAgAiBCAEQR91IgRqIARzIgYgAEEBakECbSIETiADQSRqKAIAIgcgB0EfdSIHaiAHcyIHIAROIANBIGooAgAiCCAIQR91IghqIAhzIgggAE4gAKwiDCAFQX9qrCIKIAitfnwgA0EwajUCAFggBKwiCyAFQQFqQQJtQX9qrCINIAetfnwgA0E0ajUCAFhxIAat Line truncated
"wasm/jpg" : [0,"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 Line truncated
"icc/adobe" : [0,"AAACMEFEQkUCEAAAbW50clJHQiBYWVogB88ABgADAAAAAAAAYWNzcEFQUEwAAAAAbm9uZQAAAAAAAAAAAAAAAAAAAAEAAPbWAAEAAAAA0y1BREJFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKY3BydAAAAPwAAAAyZGVzYwAAATAAAABrd3RwdAAAAZwAAAAUYmtwdAAAAbAAAAAUclRSQwAAAcQAAAAOZ1RSQwAAAdQAAAAOYlRSQwAAAeQAAAAOclhZWgAAAfQAAAAUZ1hZWgAAAggAAAAUYlhZWgAAAhwAAAAUdGV4dAAAAABDb3B5cmlnaHQgMTk5OSBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZAAAAGRlc2MAAAAAAAAAEUFkb2JlIFJHQiAoMTk5OCkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAGN1cnYAAAAAAAAAAQIzAABYWVogAAAAAAAAnBgAAE+lAAAE/FhZWiAAAAAAAAA0jQAAoCwAAA+VWFlaIAAAAAAAACYxAAAQLwAAvpw="],
"icc/prophoto" : [0,"AAADrEtDTVMCEAAAbW50clJHQiBYWVogB84ADAABABIAOgAVYWNzcE1TRlQAAAAAS09EQVJPTU0AAAAAAAAAAAAAAAEAAPbWAAEAAAAA0ytLT0RBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMY3BydAAAARQAAABIZGVzYwAAAVwAAACDd3RwdAAAAeAAAAAUclRSQwAAAfQAAAAOZ1RSQwAAAfQAAAAOYlRSQwAAAfQAAAAOclhZWgAAAgQAAAAUZ1hZWgAAAhgAAAAUYlhZWgAAAiwAAAAUZG1uZAAAAkAAAABuZG1kZAAAArAAAADRbW1vZAAAA4QAAAAodGV4dAAAAABDb3B5cmlnaHQgKGMpIEVhc3RtYW4gS29kYWsgQ29tcGFueSwgMTk5OSwgYWxsIHJpZ2h0cyByZXNlcnZlZC4AZGVzYwAAAAAAAAANUHJvUGhvdG8gUkdCAAAAAAAAAAAO/v8AUAByAG8AUABoAG8AdABvACAAUgBHAEIAAAAADVByb1Bob3RvIFJHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0yxjdXJ2AAAAAAAAAAEBzQAAWFlaIAAAAAAAAMw0AABJvQAAAABYWVogAAAAAAAAIpwAALY+AAAAAFhZWiAAAAAAAAAIBgAAAAYAANMtZGVzYwAAAAAAAAAGS09EQUsAAAAAAAAAAAf+/wBLAE8ARABBAEsAAAAABktPREFLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAAJ1JlZmVyZW5jZSBPdXRwdXQgTWVkaXVtIE1ldHJpYyhST01NKSAgAAAAAAAAAAAo/v8AUgBlAGYAZQByAGUAbgBjAGUAIABPAHUAdABwAHUAdAAgAE0AZQBkAGkAdQBtACAATQBlAHQAcgBpAGMAKABSAE8ATQBNACkAIAAgAAAAACdSZWZlcmVuY2UgT3V0cHV0IE1lZGl1bSBNZXRyaWMoUk9NTSkgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1vZAAAAAAAAAYQAACdAwEBAQGwzzuAAAAAAAAAAAAAAAAAAAAAAA=="],
"icc/displayp3": [0,"AAACJGFwcGwEAAAAbW50clJHQiBYWVogB+EABwAHAA0AFgAgYWNzcEFQUEwAAAAAQVBQTAAAAAAAAAAAAAAAAAAAAAEAAPbWAAEAAAAA0y1hcHBsyhqVgiV/EE04mRPV0eoVggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKZGVzYwAAAPwAAABlY3BydAAAAWQAAAAjd3RwdAAAAYgAAAAUclhZWgAAAZwAAAAUZ1hZWgAAAbAAAAAUYlhZWgAAAcQAAAAUclRSQwAAAdgAAAAgY2hhZAAAAfgAAAAsYlRSQwAAAdgAAAAgZ1RSQwAAAdgAAAAgZGVzYwAAAAAAAAALRGlzcGxheSBQMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBJbmMuLCAyMDE3AABYWVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAACD3wAAPb////+7WFlaIAAAAAAAAEq/AACxNwAACrlYWVogAAAAAAAAKDgAABELAADIuXBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbc2YzMgAAAAAAAQxCAAAF3v//8yYAAAeTAAD9kP//+6L///2jAAAD3AAAwG4="]
@@ -182,7 +175,6 @@ var PIMG = {
"joins/round" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/9hm4DvZDQAAAR5JREFUeJzt1c0NAUEUwPHHxsFhOSlhS9irKMHBIDgoQQma2D6UoAkluGiCN8Qk+zH8JRLJeu+4+WXe1+yuiIWFRftjeClcQ9TcuJHV4aCZ1WASOa8GzzFXgdHEVRg/sAy7cVeGuX+yur4cc2h5fXzrJFU3B04yhQfgfOY1cPfM5EDf84I4OTm3JS6BLfsSlyizlrhDUEtEmaWAPevN2SCY0hJzWmIGS9SmWYkC9+ebniCY0l76bo6cTmfGYEabHsGm9UqwBeoY98gldDpdOp0OvRIpHWMfvoHSC/OOfNyfkbsphVsGs7CYb8FRuN9v4Cms+nvwWIGRH1LxSygMOoPtg9IcBiF80AgzaNBgC+CLD6nBj6CUw6BBgwb/Bd4AoL3meztL4EcAAAAASUVORK5CYII=",
"rotate" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/4BN2acpkSCoAAACoElEQVR4nO2Zz07DMAyHyzruFLZ7LHgA/t6H2O5MsPd/FbpuSdO0ie3kpwlEfbX26XPitKlXVXPMMcccc8RigQYSmLdowEACAxcNGEhgYCuIBRIYeBSEAgkM7ASRQAIDT4JAIIGBZ0EckMBAKwgDEhjoBFFAAgN7QRCQwEBPEAMkMNAXhAAJDBwIIoAEBg4FAUACAwPBciCFwPqlDZygjdX2kEcNBQex0zNjgk70Hil4snxECnbxBRXsJLGCbaylZcsE21gJiWJgs8aWLCfKFZsPtGLziVZcwRVlRSsUG1HvjBS3u0Mb39sJ4G2Woks8f4+IJkfRS9UPQe4uR3GQq9/LVzHIvg6SmwzFMPvmJ3N6cZQeEDOOyzjtVy3bFu46t9fWzF04/b2W1cxdia+1NbOX9r5oYc3cZ4WnqH67cPmNVnE63ysKF5H9eHSrKFxE9vN2qV1E7gO8VnYiPyJwNd8IgdwQw9UsexFU7JjF1SzdFXYQ5A60+AbKjKqeLNDoFKNZt4gbMTA97nOLKN5mbiBpF1F6+CpuZGpbX3hVtL+JJ6/UfcOMnd2uKIDJwbjbFc2nUHJ0r2/EKv3ngt1m6fOmi9TfH/aBs9EAU2EPn6Kz02H7RtHZ6ViigfbVpzkqlwXaztacvcsC3VH5R0B7mFWTl78N3M/AGaiP39/YFojilT9thGMn8XeBdDJmwIpyQaGiQlCkqBEUKaoEBYo6QYGiUpBV1AqyimpBRlEvyChmCCYVcwSTilmCCcU8wYRipmBUMVcwqpgtGFHMF4woFghOKpYITioWCU4olglOKBYKjhRLBUeKxYKBYrlgoGgAQF8RIThQNBBgr4gR9BQNCGgVUYJO0cCAJ0Wc4FnRAIFHRaRgp2igwIqwgq2iSSR/AFEvvdtaHTqdAAAAAElFTkSuQmCC",
"reload" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4BAMAAADLSivhAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/+mgFlSmU7P1AAAC9ElEQVR4nO2ZzZaiMBCFOafbBwiM+1HovWi753TrXofm/V+lQYSkqu6NwdUsrJWgn7cqP5VKkmXETt1hv3X5tjz8NOw3xM6HjZstPy7Bz3snbQH+vXHGyp8k9P2fRQfxzxRWu0zodntMZ3sL6VX/fEnz2dJ1/7hWcBtjA8/fhsdCst9RtqcnT+vbk3Qa9JG0ovHCzgk4GvBolReW8COnZ8fvwiH82OnJ8drCCU4P9jkLB/AqSbh3vJmEA7jmv5dWzp8WtZa2ubWShQH8jLCLCJfH7nTu2j1vSCrsU8f58ADWwnLmn4FfHn5TbwuVsVaYHr+8KlbnCNIZaHDlhiXat2++IvHOcYNGBz5ViIUjwTbXPVkYA2EPr8VcRAFnqGVGWCaBD8aCCa+95sIYFm0dEV6hmMOGiAmjBhMh6xUkMNhVIuQdZdEAlSHnzRJhJ0MhgysjSV2+5V5/AdaJDuBe46Qu2ot7DYWdeM07ucbw1X9m86k3nEHD/4yMEAjn4Wve1gxOChnHXARwzlnc2pWHo/UhqO3ysokAL3vZy172sv/R0FY9ms79ccQHW0i4+TUvZ0sYtaAMydniSS0oQ4rF8DWEERuBw0LwD4Z5zGHl9RfDaTXVDsK8cBb1YgNhLhyWfH1sSLhJ8noNYV6cCK8rBEcKQVHYXxAcqYquKjgrzNmV3o4YOHVjtQNwbGMVCt+6RMOR0lcI36JLby+5VaggnLYFHgeSgVnUMl+N0VkYO66OYXcMzsHRrNob3WMDMKD1YcV93iHY0PqIZpp3EJZn0u+tzpJTm2JYHCyZNWXONAwej7ROXQuWo7kzOUzNp7gnYD+KnhBuLBw5FZcW5Nbp1TrttFZOnOndhWywjYUjfxJOPfoUKW4WxvcX2uRKNAtnSefMcrp64RTHVZrZeOHHx9R6+ay9cPboyNdssa9OtGCUNvlJ36NErkHsZY25waE0YK3h7k66cspQ6rBHx9xM0lp4Sycu+A7JspP6cLW4Ga4WO6r6C9LVFP30/VNlAAAAAElFTkSuQmCC",
"cross" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAgMAAAAhHED1AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/8ky3+Rv8AAABVtJREFUeJyt289x22gMxmGNdNLs0F1oz7nw4Nk6mN0Z70EF+JAS1IT6UAlugunAtxQRSdYfit+LFz+slkcM/A3xxJZIAFks/rfrj0ryXyL250fhgJ8ieX/gP78a2uTl8M4P6ETyenjjB/QieTN8/8AHjCJ5P4i6gms1tMnLYwwjdCJ5fYxhhF4kb44xjDCK5CMBRjgRzJOX5xhE6ETy+hyDCL1I3pxjEGEUyWcCiPBF8Ji8vMQQQieS15cYQuhF8uYSQwijSL4QIIQrwTR5eYsBhE4kr28xgNCL5HsMIIwi+R7LEe4E9+RpLEXoRPI0liL0InkaSxFGkTyNZQjTcq/Jj7EEoRPJj7EEoRfJj7EEYS+SHwgShOXQJq9mMYuwFsndLGYRNiK5n8Uswl4kzwgswpzglDwnsAhzglPySxMzCHOCU3J7qEGYEwzDv+IOYoSWYPixWLWnhgjt3Q7Hu/3kCC3B38foK0dQBIsCgiRYFBA0QQFBExQQNAFHCAg4QkSAESICjBARUISQgCLEBBAhJoAIMQFDMAQMwREgBEeAEBwBQbAEBMETAARPABA8QY6QEOQIGUGKkBGkCBlBhiAI5n8sHoF8hVsE9VwwvyyCvT2AAAg8AnuKMQiEwCIQAoeACBwCfZALERiBQWAEMQIkiBH4s2yAQAlCBEoQIWCCCKHyOC8ROEGAwAk0QoFAI5TeaBRChUAiVAgkQoVAIpQIFEJz+QZDi9BcvsUBEHyTJUfI2jwpQtZoShGyVleKkDXbMoS83Zcg5A3HBCFveSYIedPVI5C2r0UgjWeLQFrfFoE03x0Ca/8bBDaAMAhsBGIQ2BAmRqBjoBCBDqJCBDoKCxHoMC5C4OPAAIEPJAMEPhINEPhQViMUJqIaoTCT1QiFqbBGKMylJUKFQCJUCCRChaBt+Q/zfsF/uINt6QBh8E/l5+W/QuUA+XuwKxwgfxO3hQPk30IBIfhr5AcEnwc7fEDwibTFBwSfiRgh/FSmB4TfCzt4QPjNtIUHhN+NEMF8O7MDzPPBDh1gnlC26ADzjIQQ7FMaOcA+J+7AAfZJdQsOsM/KACF5Ws8PSN4XdukByRvL9jkCgJC+tT1JkCOkb64ZQvrunCCAt/cnCTIE0MHwCKCHYhFQF+dJAo+AOlkOQfTS2pBBUN08cVMlgoOIxQiqoynuKkaQPdUCgu7qFhB0X7mAoDvbBYSgt44Rou4+RojmCxghmnBghHDGAhHiKQ9EiOdMECGedEEEM2tDCG7ahxDcvBEhuIknQrAzV4Dgp74Awc+dAYKffAOEZPaeImTT/xQh2z9IEbINiBQh3cFoEx72B/ItkPYWHzYY8j0UkfFhz593jcQ9TrsyYBfHIpBtIItA9pEsAtmIsghoJ8sgsK0wg8D20gwC24wzCHA3L0Sg24EhAt1PDBHohmSIgHc0AwS+JRog8D3VAIFvygYIhV1diVDZFpYIlX1liVDZL5AI7YaDaaK3CO9izcQ00VuEg9jyMHOEBuFU7hzBzREahFO5cwQ7R5gjnMvdixhFOJe7ETGI8FXuWsQgwle5SxGDCJdy9yLGEC7lbkQMIVzLXYtYdD0gXMtdilh4TRFu5e5FLLp6Ve5GxKJrMoG6l7sWseia/J+PNxEEA7VRlTuKWHTdEQ4iCGaKN4RpuZ2IRdet3jcRRDPFa73vIohmitd6DyKIxqqdKrfDBLd630QQjlVHVe6ICa71HkQQTpY7VW6HCS71zstdcYKveptyPwuT5V6V+1oYrneq3JfCcH2lyl3tC8P1UZX7WRiu96rc18J+QafKfRGx6FrVdgnE9evZA749e8D9+g2w4Fwzf7ERbQAAAABJRU5ErkJggg==",
"checkmark" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAgMAAAAhHED1AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/95wQrXL2gAAA6VJREFUeJzt27uN3DAQBmBhN3Igd7ElMDDgNnh7gDdgARdcCWpi+3AJakJwBc6dOLek067ImeFoHoltcLLDSf+Jn0WJGtBd16pVq1atWrVq1eo/ql/O8883Z0B/dQaEOPgCpphc559jfHUF9DG+uAJCjD6EaQ5IjvNnAh9CvwS8jPaAhSDG7/aAaQ14M5+/EsT4zRzQfwTE0RoQtoB3a8C0BVin9EYQo3VKPwjMCOEZkGwB0zPAdjc/CaxTeicwTumQBSRLwJQFWBAyAhtCTmCa0qEIMEzpexGgn9KnWJY64JM34OINuDsDIIH6kQAJ1A8lSKB+LEKCUXl+I2gEfyNB0gZAgkF5PiRQvxQggfq11AgaQSPoGkHXCLpG0P0rBFx3TkLAduckBGx3TkLwhVkwiQh+Mks2EcGdWTFJCE7cmk1CsFzlWDlfRLBcZe0zWDQRlqusfQZDAuq49Sprn8GQgLrS9Sor7T1EQB12qUYvt1hZ5IXeq4NbbrFjAq69d5YQ9MzoPksIAhMuIpiY4SkIyHQNAXmXiwj2YQ7M7xiCfZiJ+R1DsA8TTTQRQXazIwQRQT7fBwtBPt8hgoSgmO8AARFQj+5ivgMESEA+N8tHXokACcgnd/nIKxEgAfnuKIdZIOgJAIKIoAfH5AgiggAOyhFEBBM4KEMQEaCADEFEgIaQIYgIEGKGICIoO90FgoyAQZAR4JE+EaBObQmD/tADAV5abRGFhvpawaku4yD2hoD+eSoEVQQpQRVBSkAg3HQEGOGqIyAQRhUBgfCuIujwSvCmI8Br0auOAK+G56M1BHgxOl+vioBA0BEQCIhg4AMQwm/w89HXNkKAdfi1DRFgpaMAiKAkIBB0BIcIgoYDj3BIcIRwSHCAIOm5sAiinguHkCQBHMIgCWAQZG0nBkHYdpp8BMRaR0dAPEZ1BMSDXElQR0jSgBrCIA2oIMibjxUERfORRkjyABphkAeQCJr+K4mg6r9SCEkTQCEMmgC01tG2oNGCT92Chgs+dQsaLfi0LWiEoO3C15b+8oIISRsAEQZtAEDQ71cCCIYdU+UbzrBdqXzDGTZMlS2ZUR9QvOZNWyBzBNMmzBzBtA00b82NloAMwbgL9OIjyBGMO2FPToIdwbwR9uIj2BHMm4FPToIHgn0v8IZg3428IZi3Aj8QRnvAiuDa3B+ifS/yWr2P4GOtM3oC5rWO8/83BB/BguAiWBBGX0D3w3l+99Ub0KpVq1b6+gOHPSRKOIZnzgAAAABJRU5ErkJggg==",
"pos" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4BAMAAADLSivhAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/9cTVpQaovGbAAABlklEQVR4nO2ZQY6DMAxFKzU9gKv2AKgXGEViH25QNPe/ywwwUCAuE/ttushf0jy5+gTbsk+nI4V0+POxupufPTfXLzccRR7+wCLu0Bf51dMJdwPstCzIqOSC4wS7LBvsGuSy7C+wL3Q/w3c7G2RRMsPdCza/rdkul2VRVjJatg5sDn2RjWwXvNvCJsuC7JQMcNzDBsu2dhktywJbQvc5bL/gA2WGKlzhCn8C3JbA3zp7bkrgN9ksZgc1WM9moSmDr0mBO+WgBmvlo1UPqs8yz8Y8XwhnnsU3B9VnO89CY4F3nk0ltRTeetaKDV57NlfFcnjl2VwVy+GXZ6Gxw4tnSwNigGfPWvHAk2d5D1Gm0TOlhyjTY+WWPXTat2sW3Qh8Z38bGcZeFbok7HqyDwN9kiwZoDTEEiBLvSjps3KDCh0rsay4o7aCNTSolcqlwcWqcIUr/BFwL5nKhyxovIMGS2ikxYZpaIzHBohodImGpmxciwbFbESNhuNsLI8WAmgVwZYgaP3CFj9o5YSWXWzNhhZ8/60WfwDkFH1iPYe5kwAAAABJRU5ErkJggg==",
"trsp3" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAlQTFRFAAAAAAAAAAAAg2PpwAAAAAN0Uk5T/wD+HusvKAAAAGlJREFUeJztlFEKwDAIQ8Pu6P2vMgobwgoRJsOaNdAP84giQgEiM0a7Y7vk5l2Pd3D813Rl80pcudie/ar5bLsTYqTSshiptCxGKi2LkUpH+Gl73fzj2rNXw58ulmve995BmkgZG5UsPgG1W0PB4N42GQAAAABJRU5ErkJggg==",
@@ -193,8 +185,15 @@ var PIMG = {
"prsO" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAMAAAC8EZcfAAAAYFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6T+iNAAAAIHRSTlMA4ewH1Ro9uxAk9MstR/ujXHgzxE5qsXGAjpWHnKpVYyj9Yl4AAANQSURBVHic7ZrZmqIwEEZZtGVAUVzbkeX937KD0N1CKklViHMz/3mC81VqSyCKAAAAAAAAAAAAAAAAAAAAAAAAgCdpmmXrnj8DW8Wx56Nn13NWtG17UHRdd1HcFFVVfSoej8dd8VdR1/Ve0TTNtWfTc1IUPauBeGR12le7lGU36H0Lbp2CHUOwmQieCMGkJ653dr3syUTQHcFRsOJH0CioKCyKo59U8PIrWA2CDzKCG5Zgnu/XDj/pEV+0CI6CtfiIn4J5TAYxTWcBfI3gVhNsbUWiC14FEVRcaMGUEjREsB0NySKhj9hexRPB/Eb6SQStbUYX5BfJIFjOY/jityQHjUUiFsx3ut9CwZsmKCqSeCpYJmujIFEkdA4aq/hOFslMsLALlhvNb264OAd928xo2GmC5BGHadTSCPaCcWYI4PIITkddo/XBghBM5kdclp9hBfUIGnOQ6oNaDqo6mYdQIiicJPIq7rnQguxJImjU0iIZBFecI/YpkmmbaTyrWHHkHrG+LJx/Z7GxSER9kIpgeffPQeHC6peD8zMOVsWuCDLbjGIdMIJvKJKybANGMOg++C34sIziYJPEY6P+MbyGmCTGa2dtujQxJ4miCLEsdNo+yKpiVpHE3usWvQ8aBd0bNR3BJLDggqcPOoIlJRhsoxYJciIoycGW0QdF61YyCeE0B1NbBC1V3PJHnfhWR1axNAddF3f/lwV7H2TlIGcWB2jUD+qIPfdBwUbNr+JD4EnCvNXxBbfuNmNZWN+/zdB9mjhiqyD3XmzPQbIP7m1F7NMHrQurR5EcuC8L3AdM6714JshYFvIsclexexYbi2RxBJsFF3f60sR8WbDl4Ouo+6DvxdKN2pWDjbawMqu4mL/NSBq1dR9k9UHD69aL4TniHLFokgQddaeIJRju+U2yUecvGagbciPoevpYNknu0WJB4RFLNuq8XGWRbmg8Yr8vTUtyMNlGkW64uA9KXrfsgm00Z3GROB+PJBf3TvMjviZ6VDHzdcsVwUSP32D4vgiKnj7iI+ln+KAtEgzyMbExfdCmfwn410Wycfy1oP1UIWrUkhdW6ojj+sOq9+MoatT6uuXzusX8LQUAAAAAAAAAAAAAAAAAAAAAAAAAAID/gS9w473uUmHmvgAAAABJRU5ErkJggg==",
"zoomIn" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACwBAMAAABdmfltAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/+UUmE52sBY+AAAE+UlEQVR4nNWb21bqMBCGu6w8AAXvkY33Knof3HgPW3z/V9lARfPPIZmcWMu56+nr9M80mTaTrrNY/7ndLpf3w3K53X4+mi6xUA9v91PPhtV7DXZ/WE6ZLYvR/eGeY89ul6Ff32TsyVYf+dwXxd0vp/9mYvt/IezJHrLk6AMyfMuRQbZwc8g2bjrZyk0l27mJ5Gg8+PZg576kcKdTczxPgu8Ft2Fn4/abNO50OrfJnCTwaCaZEwUezSBznyjwaENcjAwhThYV4zbL4aO5iBDJEXGxSGRktdxowfbLa7nRgu33rF61ff9YP/br18NWvfefdIchkTimGckuyw6vmHovMlp1WXRYTCDkdEN1WXJYG+PFzEBxWYrhQc1KXgWyEsu3wpmBnnYi+OHEM/mJ4R5cGA/mtvNiI4NAlq5gTRfPzXgLCs3HY80wLLA+Vog41nSWfIHnH46ds08UeDQm8x27Nz3DmCzQfpZpQZUwjuj8raLNR5Sw5iBcDKIFVSIhHyORQbQgStgd5i47OEqUSHCYuQxaECVSHGYugxZEiSSHmcvOO4T9RJrDzGU/4DAYxc4vZHvtciKxUwmKoZKeyOoBzy5HpWOqYyixPCSGwCoAJZabLgieyCLjkyhNFwSja99aosRKchAGoxZO3KsEcRiMWlx82xuUiIBRi0t3ARJrmV0EDE89jPt6UZ9EMGoxygltp2aMETBGluNPwUZZIxgb6g/ftcgF33D3oEHVHjMGBpHPoQXq6N8RMXDHMHArVeI4GBQ9PTgEhf5JFQVDDLiOqO7yweDg4rjjiT5CJhjes1mH2gzqZXEwtN6prfxoCwyjcTAF+TealYB9TQcSxosSsB8Fx0CGMHYlYAiLHYIDKVAcTFz07xP6lxEHg6gOlAnlVnFwh61VEbwB8JO3pXdBJvDeQ83IVhEYffTBizLwDYA39cB+gM0B7K4BnhrNBN6Vgf1Xbw5RXRE8XAf8WAb2B6ffCPZPKgTDNZ3lpCxwRSn8a35j410FXPXNa9YJXQXsOt0EELUrjSB7b2tRD9xwlH7ytirmFTNymyIwPnyz3O22HhjTWHgPa+bHjTL6Hb1PAZh+G7T5auqwLat9553CYE+2s8G+h3cd+6DMB9NPXPitUOvrf9GRD0qXD2YcCL9af1hOTw6BXOmf0PgKb9ieLLDv35zdqtJ/t/HBQZxFLhiCa2wqaM46/zbdeRcEYJ2/sV+CCn9ok8Eg8eUFhqeo8cf7TtpZ4x/9xTmcrqgwq+C+9qLw5fMgPwEAz1E+c/NDsMywBMHy/IptTigIlmeEqMiGSjBi+vUb5Y5Gwyf2G+lZPWIy9MuXkkwfl83yOu8QmfQsmpfGJtrjsZKZdOx4S6bSAxPpRZP/oan/rqRcgThMQyq7wIKWV9D3lpaE5Naw8NeWaBEq5PONVt3wwZiW3WTWCTn+TPSUrMomqQNjRV45tViSgBN6Uk71mKgfK6RLr3eT+0Ve+pdcoefEE4VixRBZqCnUgl8or0yrgtRiXyoITanb1AdLsSLUXmmqv6xy0e3qnbkr1saGRnelTNhWzRvqXdTCZkP9cTgdaVWK3a54XKq8tZkLc9sV6LdbUtBsEUS7ZRsZkWHNqJOXxpgX3bRazNNu+VG7BVPNlni1W5TWbhldu4V/7ZYqds0WV3btloO2W8DaKUtuy7Ejuski4bOt/WXNa9Ml/wE5YCpbayJoEAAAAABJRU5ErkJggg==",
"zoomOut" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACwBAMAAABdmfltAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/90TkEkQ3c9eAAAEwElEQVR4nNVbSVbjMBDVw+kD2IG9CbAPBPaCDvu4O7n/VRrHhKgGOTVIr1/+ztNX6VdpsFQKQYLmsP1Yrdp2tXrcHtaiTySs+4/7NkH3+FmCu9kD1m9uNzVLW4D67YOnHfH4186bM/dktJG2+TNHO+LJJEczI8OPHAZmCa+FuXmX8LbtrZJZyqtllulgUONiPKR4kvO+anjb9reUdzHbLii6KONtlLxfzDKZVQJPEMmsFHiCQGa9ECMEYhiEGHFRjIWNt23jBSHETRnjQtM2eW7CrP9snpsw67+X7Ffbz8Nm3WwO+2227Ae9wWAi8TXNUJvMG0wHzcwgmzWZN5gbMflxNmsyZ3CXcfYrZ0TGZM7gLjsreePe5k1mGl23y/GG8IthjuybtNHN8bLMt+x7Sl6WmfuCuu5iJ0s7AMZ91HWCYYFEHeM+4jrJTIR2hpG8MygFnkBkviNl4zdmupQU2DNEixuDEEeDsBjYIPw8ynhplKJQxkoo5mMoMpAWKCZknvs2GdkUwdPBbDAxGcQFUkJjMDEZaIGUUBlMTI7JIxSNKoNJYKQBB4ON7fzmkP28yddFBKTkOvNAOI1OgHx/Nuw5q5EQ0EfngIMaKV03ArrvR2RYE7XrqGknLaHEBiWwFpG9a1ACa3GybXArgbQ4ee+eK00JUOuOq0a0EUM/7eg9feuYACMr0lqQUVYK4KgHequ3Et9Q84BDTcE2AnjqGFpAHavEAcbWkYYWZQOpOAgKYxSPADEQA1I92omBgX1AnbHZd0jSZYDR1tl5offGeEtFd/iOEqUFLT3EqaYdGqF7DzGIgjXUPHqIQVjs8KUDyMSU2NGgAxI1AmVc0QbDoAfErmiD8daDIDH38hOGhGqJrlyANqbEvY/4BhC/1yG+BcTRR7wQEbdCZInT4Nv5iNOm11058dpHnHYW10fcAgInMfgmSF4yEReUohrxdUfFNTbptNssSPwfOno38ZBc9T5iOJhWI35OrgrOK5aoGBdg5avN3cA01kectrWK82MwDy83o9/hchwAPx1rPA93AP8bpL4s9p83xteArs1ILbwL5IfSDvyLC34oS/399wE5M9qJCQ8oqdQKy1hzsNhUaE1oasL0jgnUvqGI94CiU/8LxOmtxCC4JlctaFkGgHpHWokyq7HfgjIrtGrAtWKuFiVWvO+4myXW6E/GccvgSvDL8VD4AvsgPwEA6uHfuTkzPHu1gEqc24J7T4jfEcIbhe79vOR7uLkVswwZwBqnTnrJPhEB2pVKiTY9fbu8MXmERHLtS0MXDfCZZycddryerfSZjXTX5v/c1n8giRv2/AocUjjVJHIcrMHoQ9xucUqINYeFNtvhQskZ4KwbOhjjBCRjnlCkdcKvmDKbuA6MJHlZcrE4AWlamiF7jNWPJGzp8934fpGm/qkz9CL7IpOsqMwpzI09THqlLgsyF/tsfqUibzM/WLIprPJM03xj5XNYpbmxc6N7Jk1Yls0717tkE5sF+cfz05Faqdj1kserpbvXS9Cvd6Sg2iGIesc26h000R+NER+6qXWYp97xo3oHpqod8VIcSlP/FcrU0PPWO/hX76hiqHa4MtQ7DlrvAGuO2k87UVc5JHzEJj3WvBF98g8n+QTj6NOXVAAAAABJRU5ErkJggg==",
"logo" : "data:image/svg+xml;base64," + btoa('<svg version="1.2" baseProfile="tiny-ps" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 200" width="900" height="200"><title>photopea_intro</title><style>tspan { white-space:pre }.s0 { fill: #18a497 } </style><path fill="#e6e6e6" aria-label="Photopea" d="m278.8 152h-19v-103.88h36.96q11.95 0 20.19 3.56q8.24 3.56 12.47 10.98q4.3 7.42 4.3 19q0 11.72-4.23 19.37q-4.23 7.57-12.39 11.28q-8.16 3.64-19.89 3.64h-18.41v36.06zm0-88v36.06l16.18 0q9.72 0 14.55-4.38q4.9-4.38 4.9-13.73q0-9.35-4.97-13.65q-4.9-4.3-14.92-4.3l-15.73 0zm84.02 88h-18.41v-111.3h18.41v47.93l-4.16-3.26q4.68-3.26 10.17-6.01q5.49-2.75 13.14-2.75q9.8 0 15.96 4.38q6.16 4.3 9.05 12.02q2.89 7.64 2.89 17.73v41.26h-18.41v-39.92q0-10.39-3.34-15.36q-3.34-4.97-10.91-4.97q-6.46 0-10.61 3.04q-4.08 2.97-7.2 8.09l3.41-9.94v59.06zm97.23 1.48q-12.1 0-20.63-5.27q-8.54-5.27-13.06-14.02q-4.45-8.76-4.45-19.14q0-10.46 4.45-19.29q4.53-8.83 13.06-14.1q8.54-5.34 20.63-5.34q12.1 0 20.63 5.34q8.54 5.27 12.99 14.1q4.53 8.83 4.53 19.29q0 10.39-4.53 19.14q-4.45 8.76-12.99 14.02q-8.54 5.27-20.63 5.27zm0-15.14q9.28 0 14.25-6.46q5.05-6.53 5.05-16.84q0-10.46-5.05-16.99q-4.97-6.6-14.25-6.6q-9.2 0-14.25 6.6q-5.05 6.53-5.05 16.99q0 10.31 5.05 16.84q5.05 6.46 14.25 6.46zm87.43 15.14h-13.21q-6.98 0-11.36-2.82q-4.38-2.89-6.46-7.35q-2.08-4.45-2.08-9.28v-41.11h-10.54l1.63-15.14h8.91v-16.32l18.41-1.93v18.25h16.33v15.14h-16.33v33.54q0 5.64 0.67 8.16q0.67 2.45 3.04 3.12q2.37 0.59 7.57 0.59h5.05l-1.63 15.14zm47.35 0q-12.1 0-20.63-5.27q-8.54-5.27-13.06-14.02q-4.45-8.76-4.45-19.14q0-10.46 4.45-19.29q4.53-8.83 13.06-14.1q8.54-5.34 20.63-5.34q12.1 0 20.63 5.34q8.54 5.27 12.99 14.1q4.53 8.83 4.53 19.29q0 10.39-4.53 19.14q-4.45 8.76-12.99 14.02q-8.54 5.27-20.63 5.27zm0-15.14q9.28 0 14.25-6.46q5.05-6.53 5.05-16.84q0-10.46-5.05-16.99q-4.97-6.6-14.25-6.6q-9.2 0-14.25 6.6q-5.05 6.53-5.05 16.99q0 10.31 5.05 16.84q5.05 6.46 14.25 6.46zm69.32 49.57h-18.41v-110.11l14.84 0l3.56 12.32l-5.49-1.93q5.12-5.27 11.13-8.38q6.01-3.19 14.7-3.19q10.91 0 18.33 5.27q7.42 5.27 11.21 14.02q3.86 8.76 3.86 19.14q0 10.39-3.86 19.14q-3.79 8.76-11.21 14.02q-7.42 5.27-18.33 5.27q-8.68 0-14.1-2.37q-5.42-2.37-10.98-7.57l4.75-3.71v48.08zm17.52-49.57q8.24 0 12.77-6.46q4.6-6.53 4.6-16.84q0-10.39-4.6-16.84q-4.53-6.46-12.77-6.46q-6.38 0-10.46 2.97q-4.08 2.97-6.01 8.24q-1.93 5.19-1.93 12.09q0 6.9 1.93 12.17q1.93 5.19 6.01 8.16q4.08 2.97 10.46 2.97zm84.76 15.14q-13.43 0-22.41-5.34q-8.91-5.42-13.36-14.25q-4.45-8.9-4.45-19.44q0-10.17 4.16-18.77q4.23-8.61 12.32-13.8q8.09-5.27 19.74-5.27q10.69 0 17.81 4.38q7.12 4.38 10.69 11.72q3.56 7.27 3.56 16.1q0 2.45-0.3 4.97q-0.3 2.45-0.89 5.12h-47.95q1.04 6.9 4.3 11.2q3.34 4.23 8.09 6.23q4.82 2 10.32 2q6.46 0 12.02-1.63q5.57-1.71 10.24-4.45l0.89 15.58q-4.23 2.23-10.54 3.93q-6.31 1.71-14.25 1.71zm-20.63-47.04h29.98q0-3.34-1.26-6.68q-1.26-3.41-4.23-5.71q-2.89-2.3-7.87-2.3q-7.12 0-11.21 4.16q-4.08 4.16-5.42 10.54zm77.34 47.04q-5.94 0-10.84-2.6q-4.9-2.67-7.79-7.64q-2.89-4.97-2.89-12.02q0-6.31 2.89-10.76q2.97-4.53 7.72-7.49q4.82-3.04 10.39-4.75q5.64-1.78 11.06-2.6q5.49-0.82 9.65-0.96q-0.3-6.38-3.27-9.28q-2.97-2.89-10.09-2.89q-4.97 0-9.72 1.41q-4.68 1.34-10.61 4.23l-1.63-14.99q6.68-3.26 13.36-4.9q6.75-1.63 13.66-1.63q8.31 0 14.32 2.97q6.01 2.97 9.28 9.57q3.27 6.53 3.27 17.29v20.03q0 5.57 0.52 8.09q0.52 2.45 1.93 3.12q1.41 0.67 4.08 0.67h2.37l-1.63 15.14h-6.68q-4.16 0-7.42-1.04q-3.19-1.11-5.49-3.04q-2.3-1.93-3.71-4.53q-3.64 4.08-9.87 6.38q-6.16 2.23-12.84 2.23zm7.72-14.1q2.45 0 6.09-1.26q3.64-1.34 6.53-4.08v-16.92q-5.2 0.22-10.39 1.71q-5.2 1.48-8.68 4.38q-3.49 2.89-3.49 7.27q0 4.53 2.37 6.75q2.37 2.15 7.57 2.15z" /><path fill-rule="evenodd" class="s0" d="m60.96 12.33h117.22c15.62 0 28.25 12.62 28.25 28.24v117.19c0 15.62-12.63 28.24-28.25 28.24l-99.2 0l-0.33-74.83l-0.04 0c0-0.18 0-0.35 0-0.53c0-28.37 22.53-51.3 50.4-51.3c16.72 0 30.24 13.76 30.24 30.78c0 17.02-13.52 30.78-30.24 30.78c-5.57 0-10.08-4.59-10.08-10.26c0-5.67 4.51-10.26 10.08-10.26c5.57 0 10.08-4.59 10.08-10.26c0-5.67-4.51-10.26-10.08-10.26c-16.72 0-30.24 13.76-30.24 30.78c0 17.02 13.52 30.78 30.24 30.78c27.87 0 50.4-22.93 50.4-51.3c0-28.37-22.53-51.3-50.4-51.3c-39.02 0-70.57 32.1-70.57 71.82c0 0.21 0 0.41 0 0.62l-0.17 0l0.33 74.64c-14.52-1.19-25.9-13.32-25.9-28.14v-117.19c0-15.62 12.63-28.24 28.25-28.24z" /></svg>'),
"bottom" : "data:image/svg+xml;base64," + btoa('<svg version="1.2" baseProfile="tiny-ps" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 160" width="1000" height="160"><title>photopea_intro</title><defs><filter x="-50%" y="-50%" width="200%" height="200%" id="f1"> <feGaussianBlur stdDeviation="9.5" /> </filter><radialGradient id="grd1" gradientUnits="userSpaceOnUse" cx="648.9" cy="54.8" r="58.8"><stop offset="0" stop-color="#857c63" /><stop offset="1" stop-color="#221f19" /></radialGradient><linearGradient id="grd2" gradientUnits="userSpaceOnUse" x1="674.1" y1="67.8" x2="650.7" y2="72.4"><stop offset="0" stop-color="#000000" /><stop offset="1" stop-color="#000000" stop-opacity="0" /></linearGradient><linearGradient id="grd3" gradientUnits="userSpaceOnUse" x1="645.5" y1="48" x2="697.4" y2="107"><stop offset="0" stop-color="#ffffff" /><stop offset="1" stop-color="#ffffff" stop-opacity="0" /></linearGradient><radialGradient id="grd4" gradientUnits="userSpaceOnUse" cx="642.8" cy="46.9" r="12.5"><stop offset="0" stop-color="#ffffff" /><stop offset="1" stop-color="#b9b9b0" /></radialGradient><radialGradient id="grd5" gradientUnits="userSpaceOnUse" cx="623.4" cy="57" r="9.4"><stop offset="0" stop-color="#5b676b" /><stop offset="1" stop-color="#141718" /></radialGradient><linearGradient id="grd6" gradientUnits="userSpaceOnUse" x1="624.6" y1="58.5" x2="629.1" y2="65.1"><stop offset="0" stop-color="#ffffff" /><stop offset="1" stop-color="#242424" /></linearGradient><radialGradient id="grd7" gradientUnits="userSpaceOnUse" cx="660.5" cy="46.7" r="14.7"><stop offset="0" stop-color="#ffffff" /><stop offset="1" stop-color="#b9b9b0" /></radialGradient><linearGradient id="grd8" gradientUnits="userSpaceOnUse" x1="686.5" y1="75.4" x2="682.1" y2="85"><stop offset="0" stop-color="#6e3d09" /><stop offset=".2" stop-color="#ea8113" /><stop offset=".6" stop-color="#5c3307" /><stop offset="1" stop-color="#e07c12" /></linearGradient><linearGradient id="grd9" gradientUnits="userSpaceOnUse" x1="695.9" y1="85.8" x2="697.8" y2="81.9"><stop offset="0" stop-color="#bdbdbd" /><stop offset=".3" stop-color="#e2e2e2" /><stop offset=".7" stop-color="#a3a3a3" /><stop offset="1" stop-color="#dddddd" /></linearGradient><radialGradient id="grd10" gradientUnits="userSpaceOnUse" cx="700.7" cy="88" r="10.2"><stop offset="0" stop-color="#696969" /><stop offset="1" stop-color="#000000" /></radialGradient><linearGradient id="grd11" gradientUnits="userSpaceOnUse" x1="706.7" y1="86" x2="709.2" y2="90.6"><stop offset="0" stop-color="#ffffff" /><stop offset="1" stop-color="#ffffff" stop-opacity="0" /></linearGradient><linearGradient id="grd12" gradientUnits="userSpaceOnUse" x1="669.2" y1="72.2" x2="665.3" y2="73.1"><stop offset="0" stop-color="#000000" /><stop offset="1" stop-color="#000000" stop-opacity="0" /></linearGradient></defs><style>tspan { white-space:pre }.s0 { fill: #000211 } .s1 { fill: #00ccff } .s2 { fill: #ff9900 } .s3 { fill: #ff00c4 } .s4 { fill: #fdb300 } .s5 { fill: #ea6c00 } .s6 { fill: #fdad00 } .s7 { fill: #fdd231 } .s8 { fill: #feeeb7 } .s9 { fill: #ffffff } .s10 { fill: #ea4c3a } .s11 { fill: none;stroke: #ea4c3a;stroke-linejoin:round;stroke-width: 3.5 } .s12 { filter: url(#f1);fill: #000000 } .s13 { fill: url(#grd1);stroke: #2e3436;stroke-width: 2.1 } .s14 { fill: url(#grd2) } .s15 { opacity: .2;fill: none;stroke: url(#grd3);stroke-width: 2.1 } .s16 { fill: url(#grd4);stroke: #888a85;stroke-width: 2.1 } .s17 { fill: url(#grd5);stroke: #000000;stroke-width: 2.1 } .s18 { fill: #2e3436;stroke: #000000;stroke-width: 2.1 } .s19 { opacity: .3;fill: none;stroke: url(#grd6);stroke-width: 2.1 } .s20 { fill: url(#grd7);stroke: #888a85;stroke-width: 2.1 } .s21 { fill: url(#grd8);stroke: #673907;stroke-linecap:round;stroke-width: 2.1 } .s22 { fill: url(#grd9);stroke: #888a85;stroke-linecap:round;stroke-width: 2.1 } .s23 { fill: none;stroke: #ffffff;stroke-linecap:round;stroke-linejoin:round;stroke-width: 2.1 } .s24 { fill: url(#grd10) } .s25 { opacity: .5;fill: #ffffff } .s26 { opacity: .4;fill: url(#grd11) } .s27 { fill: url(#grd12) } .s28 { fill: #706d6d } .s29 { fill: #bfbfbf } .s30 { fill: #414141 } .s31 { fill: #e8e6e6 } .s32 { fill: #1c1c1c } .s33 { fill: #686868 } .s34 { fill: #da0100 } .s35 { fill: #000000 } </style><g ><g ><path class="s0" d="m55.83 21.67h44c4.42 0 8 3.58 8 8v52c0 4.42-3.58 8-8 8h-44c-4.42 0-8-3.58-8-8v-52c0-4.42 3.58-8 8-8z" /><path fill-rule="evenodd" class="s1" d="m55.83 21.67h44c4.42 0 8 3.58 8 8v52c0 4.42-3.58 8-8 8h-44c-4.42 0-8-3.58-8-8v-10.66h-8.61c-3.44 0-6.24-2.77-6.24-6.18v-16.63c0-3.42 2.79-6.18 6.24-6.18l8.61 0v-12.34c0-4.42 3.58-8 8-8zm-1.82 62.34h48v-56h-48l0 14h25.75c3.44 0 6.24 2.77 6.24 6.18v16.63c0 3.42-2.79 6.18-6.24 6.18l-25.75 0v13z" /><path fill="#000000" d="m44.36 51.02v4.66h1.1q1.54 0 2.3-0.6q0.76-0.61 0.76-1.77q0-1.17-0.64-1.73q-0.63-0.56-2-0.56h-1.51zm7.52 2.17q0 2.54-1.59 3.88q-1.58 1.34-4.5 1.34h-1.43v5.59h-3.33v-15.71h5.02q2.86 0 4.34 1.24q1.49 1.Line truncated
"strg/home" : "data:image/svg+xml;base64," + btoa('<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 490 490" width="490" height="490"><style></style><path fill-rule="evenodd" d="m483.5 249.9c-3.1 5.2-13.9 12.6-29.1 2.1l-2.1-2v219.3c-1 10.4-9.4 19.8-20.8 19.8h-372.4c-11.4 0-20.8-9.4-20.8-20.8v-220.4l-3.1 3c-8.3 8.4-20.7 7.3-29.1-1c-8.4-8.3-7.3-20.8 1-29.1l223.6-215.3c8.3-7.3 20.8-7.3 28.1 0l66.6 64.1v-48.5c0-11.4 9.4-20.8 20.8-20.8c11.4 0 20.8 9.4 20.8 20.8v88.5l115.5 111.2c8.3 7.3 8.3 20.8 1 29.1zm-72.8-5.2h-330.8v203.9h87.4v-132.1c0-11.4 9.4-20.8 20.8-20.8h113.4c11.4 0 20.8 9.4 20.8 20.8v132.1h88.4zm-129 92.6h-72.8v111.3h72.8zm123.4-133.1l-159.8-155l-161.4 155z"/></svg>'),
"strg/tdevice" : "data:image/svg+xml;base64," + btoa('<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 490 490" width="490" height="490"><path fill-rule="evenodd" d="m0 337.9v-277.1c0-21.8 17.7-39.5 39.5-39.5h410.2c21.8 0 39.5 17.7 39.5 39.5v277.1c0 21.8-17.7 39.5-39.5 39.5h-160.9v44.1h31.4c5.3 0 9.5 4.3 9.5 9.5v27.5c0 5.3-4.3 9.5-9.5 9.5h-151.2c-5.3 0-9.5-4.3-9.5-9.5v-27.5c0-5.3 4.3-9.5 9.5-9.5h31.4v-44.1h-160.9c-21.8 0-39.5-17.8-39.5-39.5zm53.9-14.8l381.4 0.1v-248h-381.4z"/></svg>'),
"strg/gdrive" : "data:image/svg+xml;base64," + btoa('<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 208 208" width="208" height="208"><path fill-rule="evenodd" d="m136.4 15.7l70.6 116.2l-35 59.5l-143.3 0.1l-28.7-52.6l69.9-123.3zm-103.2 152.7l58-100.7l-17-29.6l-57.1 100.9zm42.7-44.1h47.7l-23.8-41.5zm109.3 15l-52.9 0.1v-0.1h-64.6l-21.6 37h117.4zm-0.3-15l-57-93.7l-40.7-0.1l2.9 5.1l50.8 88.7z"/></svg>'),
"strg/dropbox" : "data:image/svg+xml;base64," + btoa('<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240"><path d="m61 24.9c2.4-1.5 5.6-1.5 8 0l51 32.5l51-32.5c2.4-1.5 5.6-1.5 8 0l55 35.1c2.2 1.3 3.5 3.7 3.5 6.3c0 2.6-1.3 4.9-3.5 6.3l-45 28.7l45 28.7c2.2 1.4 3.5 3.8 3.5 6.4c0 2.5-1.3 4.9-3.5 6.3l-46 29.3l2.2 1.5c2 1.4 3.3 3.7 3.3 6.2c0 2.6-1.3 4.9-3.3 6.3l-66 44c-2.6 1.7-5.8 1.7-8.4 0l-66-44c-2-1.4-3.3-3.7-3.3-6.2c0-2.6 1.3-4.9 3.3-6.3l2.2-1.5l-46-29.3c-2.2-1.4-3.5-3.8-3.5-6.3c0-2.6 1.3-5 3.5-6.4l45-28.7l-45-28.7c-2.2-1.4-3.5-3.7-3.5-6.3c0-2.6 1.3-5 3.5-6.3zm44.8 111.2l-40.8-25.9l-41 26.1l41 26.2zm69.2 26.3l41.1-26.2l-41.1-26.1l-40.8 26zm-55-17.3l-52.5 34.5l52.5 35l52.5-35zm-41-44l41 26.2l41-26.2l-41-26.1zm-14-61.2l-41 26.2l41 26.1l41.1-26.1zm69 26.1l41 26.2l41-26.2l-41-26.1z"/></svg>'),
"strg/onedrive" : "data:image/svg+xml;base64," + btoa('<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"><path d="m138.4 83.2c21.9-13.8 50 6.9 42.2 29.5 25.7-2.3 26.6 41.8-1.9 42.3h-108.6c-28.5-0.1-36.2-48.7 4.2-52 2-37.5 42.8-44.6 64.1-19.8z M151.4 72.2l-11.1 3.2c-19.9-21.9-65.6-22-72.2 20.1-28.4 3.2-37.5 29.3-26 49.6-46.5 12-56.5-45.1-16.5-53-8.7-31.1 25.5-49.1 45.3-34.2 6.6-20.6 52.6-41.7 80.5 14.3z"/></svg>'),
"logo" : "data:image/svg+xml;base64," + btoa('<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 200" width="900" height="200"><style>.A{fill:#e6e6e6}.B{fill:#18a497}</style><path class="A" d="m276.8 152h-19v-103.9h37q11.9 0 20.2 3.6q8.2 3.5 12.4 11q4.3 7.4 4.3 19q0 11.7-4.2 19.3q-4.2 7.6-12.4 11.3q-8.2 3.6-19.9 3.6h-18.4zm0-88v36.1h16.2q9.7 0 14.5-4.4q4.9-4.4 4.9-13.7q0-9.4-4.9-13.7q-4.9-4.3-15-4.3zm84.1 88h-18.5v-111.3h18.5v48l-4.2-3.3q4.7-3.3 10.2-6q5.5-2.7 13.1-2.7q9.8 0 16 4.3q6.1 4.3 9 12q2.9 7.7 2.9 17.8v41.2h-18.4v-39.9q0-10.4-3.3-15.3q-3.4-5-10.9-5q-6.5 0-10.7 3q-4 3-7.2 8.1l3.5-9.9zm97.2 1.5q-12.1 0-20.7-5.3q-8.5-5.3-13-14q-4.5-8.8-4.5-19.2q0-10.4 4.5-19.3q4.5-8.8 13-14.1q8.6-5.3 20.7-5.3q12.1 0 20.6 5.3q8.5 5.3 13 14.1q4.5 8.9 4.5 19.3q0 10.4-4.5 19.2q-4.5 8.7-13 14q-8.5 5.3-20.6 5.3zm0-15.2q9.3 0 14.2-6.4q5.1-6.6 5.1-16.9q0-10.4-5.1-17q-4.9-6.6-14.2-6.6q-9.2 0-14.3 6.6q-5 6.6-5 17q0 10.3 5 16.9q5.1 6.4 14.3 6.4zm87.4 15.2h-13.2q-7 0-11.4-2.9q-4.3-2.9-6.4-7.3q-2.1-4.5-2.1-9.3v-41.1h-10.5l1.6-15.1h8.9v-16.3l18.4-2v18.3h16.3v15.1h-16.3v33.5q0 5.7 0.7 8.2q0.6 2.5 3 3.1q2.4 0.6 7.6 0.6h5zm47.4 0q-12.1 0-20.6-5.2q-8.6-5.3-13.1-14.1q-4.5-8.7-4.5-19.1q0-10.5 4.5-19.3q4.5-8.8 13.1-14.1q8.5-5.3 20.6-5.3q12.1 0 20.6 5.3q8.6 5.3 13 14.1q4.5 8.8 4.5 19.3q0 10.4-4.5 19.1q-4.4 8.8-13 14.1q-8.5 5.2-20.6 5.2zm0-15.1q9.3 0 14.2-6.5q5.1-6.5 5.1-16.8q0-10.5-5.1-17q-4.9-6.6-14.2-6.6q-9.2 0-14.3 6.6q-5 6.5-5 17q0 10.3 5 16.8q5.1 6.5 14.3 6.5zm69.3 49.6h-18.4v-110.2h14.9l3.5 12.4l-5.5-2q5.1-5.2 11.2-8.4q6-3.1 14.6-3.1q11 0 18.4 5.2q7.4 5.3 11.2 14q3.8 8.8 3.8 19.2q0 10.4-3.8 19.1q-3.8 8.8-11.2 14.1q-7.4 5.2-18.4 5.2q-8.6 0-14.1-2.4q-5.4-2.3-10.9-7.5l4.7-3.7zm17.5-49.6q8.3 0 12.8-6.5q4.6-6.5 4.6-16.8q0-10.4-4.6-16.8q-4.5-6.5-12.8-6.5q-6.4 0-10.4 3q-4.1 2.9-6 8.2q-2 5.2-2 12.1q0 6.9 2 12.2q1.9 5.2 6 8.1q4 3 10.4 3zm84.8 15.1q-13.4 0-22.4-5.3q-8.9-5.4-13.4-14.2q-4.4-9-4.4-19.5q0-10.2 4.1-18.8q4.2-8.6 12.3-13.8q8.1-5.2 19.8-5.2q10.7 0 17.8 4.3q7.1 4.4 10.7 11.8q3.5 7.2 3.5 16.1q0 2.4-0.3 4.9q-0.3 2.5-0.8 5.2h-48q1 6.9 4.3 11.2q3.4 4.2 8.1 6.2q4.8 2 10.3 2q6.5 0 12-1.6q5.6-1.7 10.3-4.5l0.9 15.6q-4.3 2.2-10.6 3.9q-6.3 1.7-14.2 1.7zm-20.6-47h29.9q0-3.3-1.2-6.7q-1.3-3.4-4.3-5.7q-2.8-2.3-7.8-2.3q-7.1 0-11.2 4.2q-4.1 4.1-5.4 10.5zm77.3 47q-5.9 0-10.8-2.6q-4.9-2.6-7.8-7.6q-2.9-5-2.9-12q0-6.3 2.9-10.8q2.9-4.5 7.7-7.5q4.8-3 10.4-4.7q5.6-1.8 11-2.6q5.5-0.8 9.7-1q-0.3-6.4-3.3-9.3q-3-2.9-10.1-2.9q-5 0-9.7 1.5q-4.7 1.3-10.6 4.2l-1.7-15q6.7-3.3 13.4-4.9q6.8-1.6 13.7-1.6q8.3 0 14.3 2.9q6 3 9.3 9.6q3.2 6.5 3.2 17.3v20q0 5.6 0.6 8.1q0.5 2.5 1.9 3.1q1.4 0.7 4.1 0.7h2.3l-1.6 15.1h-6.7q-4.1 0-7.4-1q-3.2-1.1-5.5-3q-2.3-2-3.7-4.6q-3.6 4.1-9.9 6.4q-6.1 2.2-12.8 2.2zm7.7-14.1q2.5 0 6.1-1.2q3.6-1.4 6.5-4.1v-16.9q-5.2 0.2-10.4 1.7q-5.2 1.5-8.6 4.4q-3.5 2.9-3.5 7.2q0 4.6 2.3 6.8q2.4 2.1 7.6 2.1z"/><path fill-rule="evenodd" class="B" d="m59 12.3h117.2c15.6 0 28.2 12.7 28.2 28.3v117.2c0 15.6-12.6 28.2-28.2 28.2h-99.2l-0.4-74.8q0-0.3 0-0.6c0-28.3 22.5-51.3 50.4-51.3c16.7 0 30.3 13.8 30.3 30.8c0 17-13.6 30.8-30.3 30.8c-5.6 0-10.1-4.6-10.1-10.3c0-5.6 4.5-10.2 10.1-10.2c5.6 0 10.1-4.6 10.1-10.3c0-5.6-4.5-10.2-10.1-10.2c-16.7 0-30.2 13.7-30.2 30.7c0 17.1 13.5 30.8 30.2 30.8c27.9 0 50.4-22.9 50.4-51.3c0-28.3-22.5-51.3-50.4-51.3c-39 0-70.6 32.1-70.6 71.8q0 0.4 0 0.7h-0.1l0.3 74.6c-14.5-1.2-25.9-13.3-25.9-28.1v-117.2c0-15.6 12.6-28.3 28.3-28.3z"/></svg>'),
"logo_cucumber" : "data:image/svg+xml;base64," + btoa('<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 200" width="900" height="200"><style>.a{fill:#e6e6e6}.b{fill:#34630f}</style><path class="a" d="m256.9 139h-16.2v-88.8h31.6q10.2 0 17.2 3.1 7.1 3 10.7 9.4 3.7 6.3 3.7 16.2 0 10-3.7 16.5-3.6 6.5-10.6 9.7-6.9 3.1-17 3.1h-15.7zm0-75.2v30.8h13.8q8.4 0 12.5-3.7 4.2-3.8 4.2-11.8 0-8-4.3-11.6-4.2-3.7-12.7-3.7zm71.8 75.2h-15.8v-95.1h15.8v40.9l-3.6-2.7q4-2.8 8.7-5.2 4.7-2.3 11.2-2.3 8.4 0 13.7 3.7 5.2 3.7 7.7 10.3 2.5 6.5 2.5 15.1v35.3h-15.8v-34.1q0-8.9-2.8-13.1-2.9-4.3-9.3-4.3-5.6 0-9.1 2.6-3.5 2.5-6.2 6.9l3-8.5zm83 1.3q-10.3 0-17.6-4.5-7.3-4.5-11.2-12-3.8-7.5-3.8-16.4 0-8.9 3.8-16.4 3.9-7.6 11.2-12.1 7.3-4.6 17.6-4.6 10.4 0 17.7 4.6 7.3 4.5 11.1 12.1 3.8 7.5 3.8 16.4 0 8.9-3.8 16.4-3.8 7.5-11.1 12-7.3 4.5-17.7 4.5zm0-12.9q8 0 12.2-5.6 4.3-5.5 4.3-14.4 0-8.9-4.3-14.5-4.2-5.6-12.2-5.6-7.8 0-12.1 5.6-4.4 5.6-4.4 14.5 0 8.9 4.4 14.4 4.3 5.6 12.1 5.6zm74.7 12.9h-11.2q-6 0-9.8-2.4-3.7-2.5-5.5-6.3-1.7-3.8-1.7-7.9v-35.2h-9.1l1.4-12.9h7.7v-13.9l15.7-1.7v15.6h13.9v12.9h-13.9v28.7q0 4.8 0.6 7 0.5 2.1 2.6 2.6 2 0.6 6.4 0.6h4.3zm40.5 0q-10.3 0-17.6-4.5-7.3-4.6-11.2-12-3.8-7.5-3.8-16.4 0-8.9 3.8-16.5 3.9-7.5 11.2-12 7.3-4.6 17.6-4.6 10.3 0 17.6 4.6 7.3 4.5 11.1 12 3.9 7.6 3.9 16.5 0 8.9-3.9 16.4-3.8 7.4-11.1 12-7.3 4.5-17.6 4.5zm0-13q7.9 0 12.2-5.5 4.3-5.6 4.3-14.4 0-8.9-4.3-14.5-4.3-5.7-12.2-5.7-7.9 0-12.2 5.7-4.3 5.6-4.3 14.5 0 8.8 4.3 14.4 4.3 5.5 12.2 5.5zm59.2 42.4h-15.7v-94.1h12.7l3 10.5-4.7-1.6q4.4-4.5 9.5-7.2 5.2-2.7 12.6-2.7 9.3 0 15.7 4.5 6.3 4.5 9.5 12 3.3 7.4 3.3 16.3 0 8.9-3.3 16.4-3.2 7.4-9.5 12-6.4 4.5-15.7 4.5-7.4 0-12-2.1-4.7-2-9.4-6.4l4-3.2zm15-42.4q7 0 10.9-5.5 3.9-5.6 3.9-14.4 0-8.9-3.9-14.4-3.9-5.5-10.9-5.5-5.5 0-8.9 2.6-3.5 2.5-5.2 7-1.6 4.4-1.6 10.3 0 5.9 1.6 10.4 1.7 4.5 5.2 7 3.4 2.5 8.9 2.5zm57.6 11.7h-15.8v-63.4h15.8zm0-73h-15.8v-15.8h15.8zm44.1 74.3q-10.9 0-18.3-4.4-7.4-4.5-11.2-11.9-3.7-7.5-3.7-16.5 0-9.1 3.7-16.5 3.8-7.6 11.3-12.1 7.4-4.5 18.7-4.5 5.3 0 9.7 1.2 4.3 1.1 7.3 2.9l-1.2 12.6q-3-1.5-6.6-2.5-3.7-1-7.7-1-9.1 0-14.1 5.5-5 5.5-5 14.4 0 8.4 5.1 14.2 5.2 5.7 13.9 5.7 3.8 0 7.4-1.1 3.7-1.1 7.1-3.1l1.4 13.3q-3.3 1.7-8 2.8-4.6 1-9.8 1zm43.9-1.2h-15.7v-95.1h15.7v57.7l19.7-26h17.7l-23.1 30.4 23.6 33h-17.7l-20.2-28.2zm67.9 1.3h-5.8q-5.6 0-9.2-2.2-3.6-2.3-5.3-6.1-1.7-3.8-1.7-8.3v-79.8h15.7v73.3q0 5.1 0.6 7.2 0.6 2.1 2.3 2.6 1.6 0.4 4.8 0.4zm41.3 0q-11.5 0-19.2-4.6-7.6-4.6-11.4-12.2-3.8-7.6-3.8-16.6 0-8.7 3.6-16 3.6-7.4 10.5-11.8 6.9-4.5 16.9-4.5 9.1 0 15.2 3.7 6.1 3.8 9.1 10 3.1 6.2 3.1 13.8 0 2.1-0.3 4.2-0.2 2.1-0.7 4.4h-41q0.9 5.9 3.7 9.6 2.8 3.6 6.9 5.3 4.1 1.7 8.8 1.7 5.5 0 10.3-1.4 4.7-1.4 8.7-3.8l0.8 13.3q-3.6 1.9-9 3.4-5.4 1.5-12.2 1.5zm-17.6-40.2h25.6q0-2.9-1.1-5.7-1.1-3-3.6-4.9-2.5-2-6.7-2-6.1 0-9.6 3.6-3.5 3.5-4.6 9z"/><path fill-rule="evenodd" class="b" d="m51 13.3h117.2c15.6 0 28.2 12.7 28.2 28.3v117.2c0 15.6-12.6 28.2-28.2 28.2h-117.2c-15.7 0-28.3-12.6-28.3-28.2v-2.2c15.9 13.5 68.5 2.2 100.8-19.3 41-27.3 67.4-81.2 45-94.3-25-14.7-43.9 28.5-74.6 50.5-22.7 16.4-58.4 27.1-71.2 41.7v-93.6c0-15.6 12.6-28.3 28.3-28.3z"/></svg>'),
"bottom" : "data:image/svg+xml;base64," + btoa('<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 160" width="1000" height="160"><defs><filter x="-50%" y="-50%" width="200%" height="200%" id="f1"> <feGaussianBlur stdDeviation="9.5"/> </filter><linearGradient id="P" gradientUnits="userSpaceOnUse"/><radialGradient id="g1" cx="645.9" cy="55.8" r="58.8" href="#P"><stop stop-color="#857c63"/><stop offset="1" stop-color="#221f19"/></radialGradient><linearGradient id="g2" x1="671.1" y1="68.8" x2="647.7" y2="73.4" href="#P"><stop/><stop offset="1" stop-opacity="0"/></linearGradient><linearGradient id="g3" x1="642.5" y1="49" x2="694.4" y2="108" href="#P"><stop stop-color="#ffffff"/><stop offset="1" stop-color="#ffffff" stop-opacity="0"/></linearGradient><radialGradient id="g4" cx="639.8" cy="47.9" r="12.5" href="#P"><stop stop-color="#ffffff"/><stop offset="1" stop-color="#b9b9b0"/></radialGradient><radialGradient id="g5" cx="620.4" cy="58" r="9.4" href="#P"><stop stop-color="#5b676b"/><stop offset="1" stop-color="#141718"/></radialGradient><linearGradient id="g6" x1="621.6" y1="59.5" x2="626.1" y2="66.1" href="#P"><stop stop-color="#ffffff"/><stop offset="1" stop-color="#242424"/></linearGradient><radialGradient id="g7" cx="657.5" cy="47.7" r="14.7" href="#P"><stop stop-color="#ffffff"/><stop offset="1" stop-color="#b9b9b0"/></radialGradient><linearGradient id="g8" x1="683.5" y1="76.4" x2="679.1" y2="86" href="#P"><stop stop-color="#6e3d09"/><stop offset=".2" stop-color="#ea8113"/><stop offset=".6" stop-color="#5c3307"/><stop offset="1" stop-color="#e07c12"/></linearGradient><linearGradient id="g9" x1="692.9" y1="86.8" x2="694.8" y2="82.9" href="#P"><stop stop-color="#bdbdbd"/><stop offset=".3" stop-color="#e2e2e2"/><stop offset=".7" stop-color="#a3a3a3"/><stop offset="1" stop-color="#dddddd"/></linearGradient><radialGradient id="g10" cx="697.7" cy="89" r="10.2" href="#P"><stop stop-color="#696969"/><stop offset="1"/></radialGradient><linearGradient id="g11" x1="703.7" y1="87" x2="706.2" y2="91.6" href="#P"><stop stop-color="#ffffff"/><stop offset="1" stop-color="#ffffff" stop-opacity="0"/></linearGradient><linearGradient id="g12" x1="666.2" y1="73.2" x2="662.3" y2="74.1" href="#P"><stop/><stop offset="1" stop-opacity="0"/></linearGradient></defs><style>.A{fill:#000211}.B{fill:#00ccff}.C{fill:#000000}.D{fill:#ff9900}.E{fill:#ff00c4}.F{fill:#fdb300}.G{fill:#ea6c00}.H{fill:#fdad00}.I{fill:#fdd231}.J{fill:#feeeb7}.K{fill:#ffffff}.L{fill:#ea4c3a}.M{fill:none;stroke:#ea4c3a;stroke-linejoin:round;stroke-width:3.5}.N{filter:url(#f1);fill:#000000}.O{fill:url(#g1);stroke:#2e3436;stroke-width:2.1}.P{fill:url(#g2)}.Q{opacity: .2;fill:none;stroke:url(#g3);stroke-width:2.1}.R{fill:url(#g4);stroke:#888a85;stroke-width:2.1}.S{fill:url(#g5);stroke:#000000;stroke-width:2.1}.T{fill:#2e3436;stroke:#000000;stroke-width:2.1}.U{opacity: .3;fill:none;stroke:url(#g6);stroke-width:2.1}.V{fill:url(#g7);stroke:#888a85;stroke-width:2.1}.W{fill:url(#g8);stroke:#673907;stroke-linecap:round;stroke-width:2.1}.X{fill:url(#g9);stroke:#888a85;stroke-linecap:round;stroke-width:2.1}.Y{fill:none;stroke:#ffffff;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.1}.Z{fill:url(#g10)}.a{opacity: .5;fill:#ffffff}.b{opacity: .4;fill:url(#g11)}.c{fill:url(#g12)}.d{fill:#706d6d}.e{fill:#bfbfbf}.f{fill:#414141}.g{fill:#e8e6e6}.h{fill:#1c1c1c}.i{fill:#686868}.j{fill:#da0100}</style><rect class="A" x="44.8" y="22.7" width="60" height="68" rx="8"></rect><path fill-rule="evenodd" class="B" d="m52.8 22.7h44c4.5 0 8 3.5 8 8v52c0 4.4-3.5 8-8 8h-44c-4.4 0-8-3.6-8-8v-10.7h-8.6c-3.4 0-6.2-2.8-6.2-6.2v-16.6c0-3.4 2.8-6.2 6.2-6.2h8.6v-12.3c0-4.5 3.6-8 8-8zm-1.8 62.3h48v-56h-48v14h25.8c3.4 0 6.2 2.8 6.2 6.2v16.6c0 3.4-2.8 6.2-6.2 6.2h-25.8z"/><path class="C" d="m38 49.3h5.1q3 0 4.4 1.3q1.4 1.3 1.4 3.6q0 1-0.3 2q-0.3 0.9-1 1.6q-0.7 0.8-1.9 1.2q-1.2 0.4-2.9 0.4h-1.4v5.6h-3.4zm4.9 2.7h-1.5v4.7h1.1q0.9 0 1.6-0.3q0.7-0.2 1-0.7q0.4-0.6 0.4-1.4q0-1.1-0.6-1.7q-0.7-0.6-2-0.6zm18.2 8.6q0 1.4-0.7 2.5q-0.6 1-1.9 1.6q-1.3 0.5-3.2 0.5q-0.8 0-1.6-0.1q-0.7-0.1-1.5-0.3q-0.7-0.2-1.3-0.5v-3.1q1.1 0.5 2.3 0.9q1.2 0.4 2.4 0.4q0.8 0 1.3-0.2q0.5-0.3 0.7-0.6q0.3-0.4 0.3-0.9q0-0.6-0.4-1q-0.4-0.4-1.1-0.8q-0.7-0.4-1.6-0.8q-0.5-0.2-1.2-0.6q-0.6-0.4-1.2-0.9q-0.6-0.5-1-1.3q-0.3-0.8-0.3-1.9q0-1.4 0.6-2.4q0.7-1 1.8-1.5q1.2-0.5 2.9-0.5q1.2 0 2.3 0.3q1.1 0.2 2.3 0.8l-1 2.6q-1.1-0.5-2-0.7q-0.8-0.3-1.7-0.3q-0.6 0-1.1 0.3q-0.4 0.1-0.7 0.5q-0.2 0.4-0.2 0.8q0 0.6 0.3 1q0.4 0.4 1 0.7q0.7 0.4 1.7 0.8q1.2 0.6 2 1.2q0.9 0.6 1.4 1.5q0.4 0.8 0.4 2zm15.9-3.6q0 2.7-1 4.4q-1 1.8-3 2.7q-1.9 0.9-4.6 0.9h-4.4v-15.7h4.9q2.5 0 4.3 0.9q1.8 0.9 2.8 2.6q1 1.7 1 4.2zm-3.5 0.1q0-1.8-0.5-2.9q-0.5-1.1-1.5-1.6q-1-0.6-2.4-0.6h-1.8v10.3h1.4q2.5 0 3.6-1.3q1.2-1.3 1.2-3.9z"/><rect class="A" x="159.8" y="22.7" width="60" height="68" rx="8"></rect><path fill-rule="evenodd" class="D" d="m167.8 22.7h44c4.5 0 8 3.5 8 8v52c0 4.4-3.5 8-8 8h-44c-4.4 0-8-3.6-8-8v-10.7h-8.6c-3.4 0-6.2-2.8-6.2-6.2v-16.6c0-3.4 2.8-6.2 Line truncated
"cross" : "data:image/svg+xml;base64," + btoa('<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" width="256" height="256"><path d="m32 0l224 224-32 32-224-224zm224 32l-224 224-32-32 224-224z"/></svg>')
};
/** A Database of fonts. More at <a href="https://www.photopea.com/api/fonts">Photopea.com/api/fonts</a>. */
@@ -7009,7 +7008,7 @@ var LNG = {
}
],
"tables": [
"[File;Edit;Image;Layer;Folder;Select;Filter;View::noun (Top Menu);Window;Language;Log In;Log Out;Create translation::Click it to get to www.Photopea.com/translate;[Account;Terms of Service;Back;About::\"About a program\" - the orange button at the top;Report a bug;Learn];More;Theme;Use WebGL;[Photopea: advanced image editor::The header at the top of the page;Free online editor supporting PSD, XCF, Sketch, XD and CDR formats.::Will be at the top of the page;Create a new image or open existing files from your computer. Save your work as PSD (File - Save as PSD) or as JPG / PNG / SVG (File - Export as).::Will be at the top of the page;Suggest new features at our <GitHub> or <Facebook>. Our goal is to create <the most advanced and affordable photo editor>.::Parts between < and > will become links.;Sponsor links open in a new window.;This feature is not available.;Install Photopea]];[Open::verb;Publish online;Save::verb;Save as PSD;Print::Press to print on a printer;Open from URL;Open From Computer;Connect With Google Drive;Export as;Export Layers;Script;Open & Place::Open a document and insert it into a current document;[Close;OK::if you keep it empty, \"OK\" will be used;Reset::if you keep it empty, \"Reset\" will be used];Local Storage;File Info;Preset Manager;[Artboard;Artboards;New Artboard;Artboard from Layers]];[Step Forward::In history of changes;Step Backward::In history of changes;Clear::Verb, press to clear the selected area;Fill::Verb, press to fill the selected area;Transform::Transform the image;Rotate;Flip VAR0::VAR0 will be replaced with Horizontally/Vertically;Scale VAR0::VAR0 will be replaced with Horizontally/Vertically;Undo / Redo;Perspective;[Auto-Blend::Auto-Blend layers together;Auto-Align::Auto-Align layers against each other];Fade;Apply Image];Adjustments;[Brightness/Contrast;Levels::Levels adjustment;Curves::Curves adjustment;Exposure;Vibrance;Hue/Saturation;Color Balance;Black & White;Photo Filter;Channel Mixer;Color Lookup;Invert;Posterize;Threshold;Gradient Map;Selective Color;[Auto Tone;Auto Contrast;Auto Color];Replace Color;Match Color];[Cut;Copy;Paste::like \"insert\", not like \"toothpaste\";New;Delete;Enable;Disable;Copy Merged::Copy not from a layer, but from all layers (all merged together);Apply::Apply Mask - \"combine\" it with a layer;Again::Repeat the same aciton one more time;Update::A verb];[Duplicate Layer;New Adjustment Layer;Raster Mask;Vector Mask;Add (Reveal All)::Add a mask;[Add (Hide All)::Add a mask;Reveal Selection;Hide Selection;From Transparency];[Clipping Mask;Quick Mask Mode];[Convert to Smart Object;Smart Object];Rasterize::Convert Text layer/vector layer to pixels;Group Layers::Put selected layers into a new group;Merge Down::Merge a layer with one below it;Merge Up::Merge a layer with one above it;[Merge Layers::Merge selected layers;Flatten Image::Merge all layers in a document into one];New Layer;Enable Raster Mask;Disable Raster Mask;Enable Vector Mask;Disable Vector Mask;Enable Clipping Mask;Disable Clipping Mask;New Folder;Add Raster Mask;Delete Raster Mask;Add Vector Mask;Delete Vector Mask;Link Raster Mask;Unlink Raster Mask;Link Vector Mask;Unlink Vector Mask;Enable Layer Effects;Disable Layer Effects;Delete Layer;Layer Opacity Change;Blending Change;Rasterize Layer Style;Layer Order::Name of the step, when reordering layers;[Creating Smart Object;Updating Smart Object;Placing Smart Object;Source (Smart Object);Stack Mode::the mode of combining (stacking) multiple images into one];Name Change;Color Change;Edit Adjustment Layer;Convert to Shape;Enable Filter Mask;Disable Filter Mask;Enable Smart Filters;Disable Smart Filters;Add Filter Mask;Delete Filter Mask;Clear Smart Filters;[[Color Fill;Gradient Fill;Pattern Fill;Content Aware];New Fill Layer;Modify Fill Layer];[Layer Via Copy;Layer Via Cut];Filter Mask;Delete Layer Style;Move Smart Filter;Delete Smart Filter;[Link Layers;Unlink Layers];Arrange::Arrange layers;[Bring to Front;Bring Forward;Send Backward;Send to Back];[This layer is Locked.;Lock Change;Lock::noun - a lock on a layer];Animation];[All::As in Select - All;Deselect;Inverse;Modify;Expand::Expand Selection;Contract;Feather::Feather (blur) a Selection;Move Selection;Color Range;Border::The border of a Selection;Transform Selection;Refine Edge::A tool for improving the edge of a selection;Heal Selection;Magic Cut];[Zoom In;Zoom Out;Guides::Vertical and horizontal lines over the image, to help us be more precise;Rulers;Grid;Snap::When moving objects, they will \"stick\" to other objects, guides, etc.;Snap To;Document Bounds;Pixel Grid;Paths::Elements of vector graphics;Snap to Pixels;[Slices;Slice Options;Clear Slices;Slices from Guides];Show::A verb: to show.;Extras::Visual elements, that are not printed (guides, grid, selections ...)];[History::History of steps;Layers;Properties;Brush::A brush tool;Character::= a Letter (like a, b, c, ...);Paragraph;Info;Layer Comps::Compositions of layers;Swatches::Gallery of colors;Actions;HistLine truncated
"[File;Edit;Image;Layer;Folder;Select;Filter;View::noun (Top Menu);Window;Language;Log In;Log Out;Create translation::Click it to get to www.Photopea.com/translate;[Account;Terms of Service;Back;About::\"About a program\" - the orange button at the top;Report a bug;Learn];More;Theme;Use WebGL;[Photopea: advanced image editor::The header at the top of the page;Free online editor supporting PSD, XCF, Sketch, XD and CDR formats.::Will be at the top of the page;Create a new image or open existing files from your computer. Save your work as PSD (File - Save as PSD) or as JPG / PNG / SVG (File - Export as).::Will be at the top of the page;Suggest new features at our <GitHub> or <Facebook>. Our goal is to create <the most advanced and affordable photo editor>.::Parts between < and > will become links.;Sponsor links open in a new window.;This feature is not available.;Install Photopea]];[Open::verb;Publish online;Save::verb;Save as PSD;Print::Press to print on a printer;Open from URL;Open From Computer;Connect With Google Drive;Export as;Export Layers;Script;Open & Place::Open a document and insert it into a current document;[Close;OK::if you keep it empty, \"OK\" will be used;Reset::if you keep it empty, \"Reset\" will be used];Local Storage;File Info;Preset Manager;[Artboard;Artboards;New Artboard;Artboard from Layers]];[Step Forward::In history of changes;Step Backward::In history of changes;Clear::Verb, press to clear the selected area;Fill::Verb, press to fill the selected area;Transform::Transform the image;Rotate;Flip VAR0::VAR0 will be replaced with Horizontally/Vertically;Scale VAR0::VAR0 will be replaced with Horizontally/Vertically;Undo / Redo;Perspective;[Auto-Blend::Auto-Blend layers together;Auto-Align::Auto-Align layers against each other];Fade;Apply Image];Adjustments;[Brightness/Contrast;Levels::Levels adjustment;Curves::Curves adjustment;Exposure;Vibrance;Hue/Saturation;Color Balance;Black & White;Photo Filter;Channel Mixer;Color Lookup;Invert;Posterize;Threshold;Gradient Map;Selective Color;[Auto Tone;Auto Contrast;Auto Color];Replace Color;Match Color];[Cut;Copy;Paste::like \"insert\", not like \"toothpaste\";New;Delete;Enable;Disable;Copy Merged::Copy not from a layer, but from all layers (all merged together);Apply::Apply Mask - \"combine\" it with a layer;Again::Repeat the same aciton one more time;Update::A verb];[Duplicate Layer;New Adjustment Layer;Raster Mask;Vector Mask;Add (Reveal All)::Add a mask;[Add (Hide All)::Add a mask;Reveal Selection;Hide Selection;From Transparency];[Clipping Mask;Quick Mask Mode];[Convert to Smart Object;Smart Object];Rasterize::Convert Text layer/vector layer to pixels;Group Layers::Put selected layers into a new group;Merge Down::Merge a layer with one below it;Merge Up::Merge a layer with one above it;[Merge Layers::Merge selected layers;Flatten Image::Merge all layers in a document into one];New Layer;Enable Raster Mask;Disable Raster Mask;Enable Vector Mask;Disable Vector Mask;Enable Clipping Mask;Disable Clipping Mask;New Folder;Add Raster Mask;Delete Raster Mask;Add Vector Mask;Delete Vector Mask;Link Raster Mask;Unlink Raster Mask;Link Vector Mask;Unlink Vector Mask;Enable Layer Effects;Disable Layer Effects;Delete Layer;Layer Opacity Change;Blending Change;Rasterize Layer Style;Layer Order::Name of the step, when reordering layers;[Creating Smart Object;Updating Smart Object;Placing Smart Object;Source (Smart Object);Stack Mode::the mode of combining (stacking) multiple images into one];Name Change;Color Change;Edit Adjustment Layer;Convert to Shape;Enable Filter Mask;Disable Filter Mask;Enable Smart Filters;Disable Smart Filters;Add Filter Mask;Delete Filter Mask;Clear Smart Filters;[[Color Fill;Gradient Fill;Pattern Fill;Content Aware];New Fill Layer;Modify Fill Layer];[Layer Via Copy;Layer Via Cut];Filter Mask;Delete Layer Style;Move Smart Filter;Delete Smart Filter;[Link Layers;Unlink Layers];Arrange::Arrange layers;[Bring to Front;Bring Forward;Send Backward;Send to Back];[This layer is Locked.;Lock Change;Lock::noun - a lock on a layer];Animation];[All::As in Select - All;Deselect;Inverse;Modify;Expand::Expand Selection;Contract;Feather::Feather (blur) a Selection;Move Selection;Color Range;Border::The border of a Selection;Transform Selection;Refine Edge::A tool for improving the edge of a selection;Heal Selection;Magic Cut];[Zoom In;Zoom Out;Guides::Vertical and horizontal lines over the image, to help us be more precise;Rulers;Grid;Snap::When moving objects, they will \"stick\" to other objects, guides, etc.;Snap To;Document Bounds;Pixel Grid;Paths::Elements of vector graphics;Snap to Pixels;[Slices;Slice Options;Clear Slices;Slices from Guides];Show::A verb: to show.;Extras::Visual elements, that are not printed (guides, grid, selections ...)];[History::History of steps;Layers;Properties;Brush::A brush tool;Character::= a Letter (like a, b, c, ...);Paragraph;Info;Layer Comps::Compositions of layers;Swatches::Gallery of colors;Actions;HistLine truncated
]
}
/** Database of RAW cameras (name, color transform matrix, bayer pattern, black level, white level). */
File diff suppressed because it is too large. Load diff
+4
View File
@@ -0,0 +1,4 @@
def hi():
return False or True
print(hi())
+13898 -13663
View File
File diff suppressed because it is too large. Load diff
@@ -1,367 +1,472 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://apis.google.com/js/api.js"></script>
</head>
<body onload="go()">
<head>
<script type="text/javascript" src="https://apis.google.com/js/api.js"></script>
<script src="https://accounts.google.com/gsi/client" async defer></script>
</head>
<body onload="go()">
<script type="text/javascript">
<script type="text/javascript">
var sentFalse = false;
var clientId = "463342976776-04ub3ijsr7i5qobn8ha32ap6vsaae75a.apps.googleusercontent.com";
var scope = 'https://www.googleapis.com/auth/drive';
var discoveryDocs = ['https://www.googleapis.com/discovery/v1/apis/drive/v3/rest'];
var oauthToken;
var GoogleAuth;
var sentFalse = false;
var clientId = '463342976776-04ub3ijsr7i5qobn8ha32ap6vsaae75a.apps.googleusercontent.com';
var scope = 'https://www.googleapis.com/auth/drive';
var discoveryDocs = 'https://www.googleapis.com/discovery/v1/apis/drive/v3/rest';
function go()
var client;
var isShared = false;
var sharedDrives = null;
function go()
{
var queryString = window.location.search;
var urlParams = new URLSearchParams(queryString);
if(urlParams.get('sharedDrive') == 'true') isShared = true;
window.addEventListener("message", onMessage, false);
gapi.load('client', gapiInit);
}
function saveToken(e)
{
localStorage.setItem("googledriveAccessToken", e.access_token);
localStorage.setItem("googledriveAccessTokenValidUntil", Date.now() + e.expires_in * 1000);
send("ready", true);
}
function gapiInit() {
gapi.client.init({})
.then(function() {
gapi.client.load(discoveryDocs)
.then(function() {
client = google.accounts.oauth2.initTokenClient({
client_id: clientId,
scope: scope,
callback: saveToken,
});
if(Date.now() < localStorage.getItem("googledriveAccessTokenValidUntil"))
{
gapi.client.setToken({ "access_token" : localStorage.getItem("googledriveAccessToken") });
send("ready", true);
}
else
{
send("ready", false);
sentFalse = true;
}
})
.catch(function(e) {handleError(e); });
})
.catch(function(e) {handleError(e); });
}
function handleError(e)
{
console.log(e);
if(e.result && e.result.error && e.result.error.code)
{
gapi.load('client:auth2', {'callback': onAuthApiLoad});
}
function handleError(e)
if(e.result.error.code == 403) {send("ready",false); sentFalse = true;}
if(e.result.error.code == 401) {send("ready",false); sentFalse = true;}
}
else if (e.error)
{
console.log(e);
if(e.result && e.result.error && e.result.error.code)
if(e.error == "access_denied") {send("ready",false); sentFalse = true;}
if(e.error == "popup_closed_by_user") {send("ready",false); sentFalse = true;}
if(e.error == "popup_blocked_by_browser") {send("ready",false); sentFalse = true;}
if(e.error == "multiple_colons") {send(1,"Rename path contains more than one colon.");}
}
}
function authorize(action,prms)
{
sentFalse = false;
client.requestAccessToken();
}
function getSharedDriveId(name)
{
for(var i = 0; i < sharedDrives.length; ++i)
{
if(sharedDrives[i].name == name) return sharedDrives[i].id;
}
return null;
}
function findFile(action, path, id, pageToken, buffer)
{
if(!id)
{
if(!isShared) id = "root";
else if(path.length == 1 && path[0] == "")
{
if(e.result.error.code == 403) {send("ready",false); sentFalse = true;}
if(e.result.error.code == 401) {send("ready",false); sentFalse = true;}
}
else if (e.error)
listDrives(null, []);
return;
}
else
{
if(e.error == "access_denied") {send("ready",false); sentFalse = true;}
if(e.error == "popup_closed_by_user") {send("ready",false); sentFalse = true;}
if(e.error == "popup_blocked_by_browser") {send("ready",false); sentFalse = true;}
if(e.error == "multiple_colons") {send(1,"Rename path contains more than one colon.");}
id = getSharedDriveId(path[0]);
path = path.slice(1);
}
}
function authorize(action,prms)
if(!id) { handleError({"error" : "no_id"}); return; }
if(path.length == 0 || path[0] == '')
{
sentFalse = false;
GoogleAuth.signIn()
.then(function () {
send("ready",true);
if(action) { findFile(action, prms.path.slice(1).split("/"), null, null, prms.buffer); }
})
.catch(function(e) {
handleError(e);
});
if(action == listDir)
{
var query = "'" + id + "' in parents";
action(null, query, []);
}
else { action(id); }
return;
}
if(path.length == 1 && action == createDir)
{
action(id,path[0]);
return;
}
if(path.length == 1 && action == checkFile)
{
action(id, path[0], null, buffer);
return;
}
function onAuthApiLoad()
{
window.addEventListener("message", onMessage, false);
gapi.client.init({
clientId: clientId,
scope: scope,
discoveryDocs :discoveryDocs
})
.then(function () {
GoogleAuth = gapi.auth2.getAuthInstance();
if(!GoogleAuth.isSignedIn.get()) { sentFalse = true; send("ready",false); }
else { send("ready",true); }
})
.catch(handleError);
}
var newFile = null;
if(path.length == 1 && action == renameFile)
{
var prmSplit = path[0].split(":");
if (prmSplit.length > 2) { handleError({"error" : "multiple_colons"}); return; }
else { path[0] = prmSplit[0]; newFile = prmSplit[1]; }
}
function findFile(action, path, id, pageToken, buffer)
{
if(!id) id = "root";
if(path.length == 0 || path[0] == '')
{
if(action == listDir)
{
var query = "'" + id + "' in parents";
action(null, query, []);
}
else { action(id); }
return;
}
if(path.length == 1 && action == createDir)
{
action(id,path[0]);
return;
}
if(path.length == 1 && action == checkFile)
{
action(id, path[0], null, buffer);
return;
}
var query = "'" + id + "' in parents";
var req = {
'q': query,
'pageToken' : pageToken,
'pageSize': 1000,
'fields': "nextPageToken, files(id, name, size, modifiedTime, kind, mimeType, trashed)",};
if(isShared)
{
req['supportsAllDrives'] = true;
req['includeItemsFromAllDrives'] = true;
}
gapi.client.drive.files.list(req)
.then(function(response) {
var files = response.result.files;
pageToken = response.result.nextPageToken;
var found = false;
for (var i = 0; i < files.length; ++i)
{
if(files[i].trashed) continue;
if(files[i].name == path[0])
{
found = true;
if(newFile && action == renameFile) { renameFile(files[i].id, newFile); return; }
else { findFile(action, path.slice(1), files[i].id, null, buffer); return; }
}
}
if(!found && pageToken) findFile(action, path, id, pageToken, buffer);
else if(action == checkFile) newFile(id,path[0],buffer);
else if(action == renameFile) { handleError("Could not find file to rename '"+path[0]+"'"); send(1, "Could not find file to rename '"+path[0]+"'"); }
})
.catch(handleError);
}
var newFile = null;
if(path.length == 1 && action == renameFile)
{
var prmSplit = path[0].split(":");
if (prmSplit.length > 2) { handleError({"error" : "multiple_colons"}); return; }
else { path[0] = prmSplit[0]; newFile = prmSplit[1]; }
}
function listDrives(pageToken, out)
{
gapi.client.drive.drives.list(
{
'pageToken' : pageToken,
'pageSize' : 50,
fields: 'nextPageToken, drives(id, name, createdTime)',})
.then(function(response) {
var drives = response.result.drives;
sharedDrives = response.result.drives;
pageToken = response.result.nextPageToken;
for(var i = 0; i < drives.length; ++i)
{
out.push([drives[i].name, -1, Math.round(Date.parse(drives[i].createdTime)/1000)])
}
if(pageToken) listDir(pageToken,query,out);
else { send(0,out); }
})
.catch(handleError);
}
var query = "'" + id + "' in parents";
gapi.client.drive.files.list({
'q': query,
'pageToken' : pageToken,
'pageSize': 1000,
'fields': "nextPageToken, files(id, name, size, modifiedTime, kind, mimeType)",})
.then(function(response) {
var files = response.result.files;
pageToken = response.result.nextPageToken;
var found = false;
for (var i = 0; i < files.length; ++i)
{
if(files[i].name == path[0])
{
found = true;
if(newFile && action == renameFile) { renameFile(files[i].id, newFile); return; }
else { findFile(action, path.slice(1), files[i].id, null, buffer); return; }
}
}
if(!found && pageToken) findFile(action, path, id, pageToken, buffer);
else if(action == checkFile) newFile(id,path[0],buffer);
else if(action == renameFile) { handleError("Could not find file to rename '"+path[0]+"'"); send(1, "Could not find file to rename '"+path[0]+"'"); }
})
.catch(handleError);
}
function listDir(pageToken, query, out)
{
gapi.client.drive.files.list({
'q': query,
'pageToken' : pageToken,
'pageSize': 1000,
'fields': "nextPageToken, files(id, name, size, modifiedTime, kind, mimeType, thumbnailLink)",})
.then(function(response) {
var files = response.result.files;
pageToken = response.result.nextPageToken;
for(var i = 0; i<files.length; ++i)
{
if(files[i].mimeType == "application/vnd.google-apps.folder") { out.push([files[i].name, -1, Math.round(Date.parse(files[i].modifiedTime)/1000)]); }
else if(files[i].mimeType.includes("application/vnd.google-apps.")) { }
else
{
if(files[i].thumbnailLink) { out.push([files[i].name,files[i].size ? parseInt(files[i].size) : 0, Math.round(Date.parse(files[i].modifiedTime)/1000), files[i].thumbnailLink]); }
function listDir(pageToken, query, out)
{
var req = {
'q': query,
'pageToken' : pageToken,
'pageSize': 1000,
'fields': "nextPageToken, files(id, name, size, modifiedTime, kind, mimeType, thumbnailLink, trashed)",};
if(isShared)
{
req['supportsAllDrives'] = true;
req['includeItemsFromAllDrives'] = true;
}
gapi.client.drive.files.list(req)
.then(function(response) {
var files = response.result.files;
pageToken = response.result.nextPageToken;
for(var i = 0; i<files.length; ++i)
{
if(files[i].trashed) continue;
else if(files[i].mimeType == "application/vnd.google-apps.folder") { out.push([files[i].name, -1, Math.round(Date.parse(files[i].modifiedTime)/1000)]); }
else if(files[i].mimeType.includes("application/vnd.google-apps.")) { }
else
{
if(files[i].thumbnailLink) { out.push([files[i].name,files[i].size ? parseInt(files[i].size) : 0, Math.round(Date.parse(files[i].modifiedTime)/1000), files[i].thumbnailLink]); }
//but maybe we should only show thumbnail to files which Photopea can open - Gdrive also makes thumbnails for spreadsheets etc.
else { out.push([files[i].name,parseInt(files[i].size), Math.round(Date.parse(files[i].modifiedTime)/1000)]); }
}
}
if(pageToken) listDir(pageToken,query,out);
else { send(0,out); }
if(pageToken) listDir(pageToken,query,out);
else { send(0,out); }
})
.catch(handleError);
}
.catch(handleError);
}
function downloadFile(fileId)
{
var xhr = new XMLHttpRequest();
xhr.open('GET', "https://www.googleapis.com/drive/v3/files/" + fileId + "?alt=media");
xhr.responseType = "arraybuffer";
xhr.setRequestHeader('Authorization', 'Bearer ' + GoogleAuth.currentUser.get().getAuthResponse().access_token);
xhr.onload = function(e) {window.parent.postMessage(e.target.response,"*"); };
xhr.onerror = function(e) { console.error(e); };
xhr.send();
}
function downloadFile(fileId)
{
var xhr = new XMLHttpRequest();
var shared = "";
if(isShared) shared = "&supportsAllDrives=true";
xhr.open('GET', "https://www.googleapis.com/drive/v3/files/" + fileId + "?alt=media" + shared);
xhr.responseType = "arraybuffer";
xhr.setRequestHeader('Authorization', 'Bearer ' + gapi.client.getToken().access_token);
xhr.onload = function(e) {window.parent.postMessage(e.target.response,"*"); };
xhr.onerror = function(e) { console.error(e); };
xhr.send();
}
function downloadThumbnail(fileId)
{
var xhr = new XMLHttpRequest();
xhr.open('GET', "https://www.googleapis.com/drive/v3/files/" + fileId + "?fields=thumbnailLink");
xhr.setRequestHeader('Authorization', 'Bearer ' + GoogleAuth.currentUser.get().getAuthResponse().access_token);
xhr.onload = function(e)
{
var link = JSON.parse(e.target.response).thumbnailLink;
console.log(JSON.parse(e.target.response));
if (link)
{
var xhr2 = new XMLHttpRequest();
xhr2.open('GET', link);
xhr2.responseType = "arraybuffer";
xhr2.onload = function(e) {window.parent.postMessage(e.target.response,"*"); };
xhr2.onerror = function(e) { console.error(e); };
xhr2.send();
}
else { console.error("Could not get thumbnailLink."); }
};
xhr.onerror = function(e) { console.error(e); };
xhr.send();
}
function downloadThumbnail(fileId)
{
var xhr = new XMLHttpRequest();
var shared = "";
if(isShared) shared = "&supportsAllDrives=true";
xhr.open('GET', "https://www.googleapis.com/drive/v3/files/" + fileId + "?fields=thumbnailLink" + shared);
xhr.setRequestHeader('Authorization', 'Bearer ' + gapi.client.getToken().access_token);
xhr.onload = function(e)
{
var link = JSON.parse(e.target.response).thumbnailLink;
console.log(JSON.parse(e.target.response));
if (link)
{
var xhr2 = new XMLHttpRequest();
xhr2.open('GET', link);
xhr2.responseType = "arraybuffer";
xhr2.onload = function(e) {window.parent.postMessage(e.target.response,"*"); };
xhr2.onerror = function(e) { console.error(e); };
xhr2.send();
}
else { console.error("Could not get thumbnailLink."); }
};
xhr.onerror = function(e) { console.error(e); };
xhr.send();
}
function deleteFile(fileId)
{
gapi.client.drive.files.delete({
'fileId' : fileId,
})
.then(function(response) {
send(0,"");
})
.catch(function(response) {
send(1,response);
handleError(response);
});
}
function deleteFile(fileId)
{
if(isShared) { trashFile(fileId); return; }
var req = { 'fileId' : fileId, };
if(isShared) req['supportsAllDrives'] = true;
gapi.client.drive.files.delete(req)
.then(function(response) {
send(0,"");
})
.catch(function(response) {
send(1,response);
handleError(response);
});
}
function createDir(parentId, name)
{
gapi.client.drive.files.create(
{
'resource' :
{
'name' : name,
'parents' : [parentId],
'mimeType': 'application/vnd.google-apps.folder',
}
})
.then(function(response) {
send(0,"");
})
.catch(function(response) {
send(1,response);
handleError(response);
});
}
function trashFile(fileId)
{
var req = {
'fileId' : fileId,
'resource' :
{
'trashed' : true,
}
};
if(isShared) req['supportsAllDrives'] = true;
gapi.client.drive.files.update(req)
.then(function(response) {
send(0,"");
})
.catch(function(response) {
send(1,response);
handleError(response);
});
}
function renameFile(fileId, newName)
{
gapi.client.drive.files.update({
'fileId' : fileId,
'resource' :
{
'name' : newName,
}
})
.then(function(response) {
send(0,"");
})
.catch(function(response) {
send(1,response);
handleError(response);
});
}
function createDir(parentId, name)
{
var req = {
'resource' :
{
'name' : name,
'parents' : [parentId],
'mimeType': 'application/vnd.google-apps.folder',
}
}
if(isShared) req['supportsAllDrives'] = true;
gapi.client.drive.files.create( req )
.then(function(response) {
send(0,"");
})
.catch(function(response) {
send(1,response);
handleError(response);
});
}
function renameFile(fileId, newName)
{
var req = {
'fileId' : fileId,
'resource' :
{
'name' : newName,
}
};
if(isShared) req['supportsAllDrives'] = true;
gapi.client.drive.files.update(req)
.then(function(response) {
send(0,"");
})
.catch(function(response) {
send(1,response);
handleError(response);
});
}
//check if file exists, then overwrite, otherwise create new file.
function checkFile(parentId, name, pageToken, buffer)
{
var query = "'" + parentId + "' in parents";
gapi.client.drive.files.list({
'q': query,
'pageToken' : pageToken,
'pageSize': 1000,
'fields': "nextPageToken, files(id, name)",})
.then(function(response) {
var files = response.result.files;
pageToken = response.result.nextPageToken;
var found = false;
for (var i = 0; i < files.length; ++i)
{
if(files[i].name == name)
{
found = true;
uploadFile(files[i].id,parentId,name,buffer);
return;
}
}
if(!found && pageToken) checkFile(parentId, name, pageToken, buffer);
else uploadFile(null,parentId,name,buffer);
})
.catch(handleError);
}
function uploadFile(fileId, parentId, name, buffer)
{
var file = new Blob([buffer]);
var metadata = { 'name': name, };
if(!fileId) metadata['parents'] = [parentId];
var xhr = new XMLHttpRequest();
if(buffer.byteLength > 5000000)
{
var contentType = file.type || 'application/octet-stream';
metadata['mimeType'] = contentType;
metadata['Content-Type'] = contentType;
metadata['Content-Length'] = file.size;
if(!fileId) xhr.open("POST", "https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable");
else xhr.open("PATCH", "https://www.googleapis.com/upload/drive/v3/files/" + fileId + "?uploadType=resumable");
xhr.setRequestHeader('Authorization', 'Bearer ' + GoogleAuth.currentUser.get().getAuthResponse().access_token);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('X-Upload-Content-Length', file.size);
xhr.setRequestHeader('X-Upload-Content-Type', contentType);
xhr.onreadystatechange = function() {
if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
var locationUrl = xhr.getResponseHeader('Location');
var reader = new FileReader();
reader.onload = function(e) {
var xhr2 = new XMLHttpRequest();
xhr2.open('PUT', locationUrl, true);
xhr2.setRequestHeader('Content-Type', contentType);
xhr2.setRequestHeader('X-Upload-Content-Type', contentType);
xhr2.onreadystatechange = function() {
if(xhr2.readyState === XMLHttpRequest.DONE && xhr2.status === 200) {
send(0,"");
}
};
xhr2.onerror = function(e) { send(1,e); handleError(e)};
xhr2.send(reader.result);
};
reader.readAsArrayBuffer(file);
}
};
xhr.onerror = function(e) { send(1,e); handleError(e)};
xhr.send(JSON.stringify(metadata));
var req = {
'q': query,
'pageToken' : pageToken,
'pageSize': 1000,
'fields': "nextPageToken, files(id, name, trashed)",};
if(isShared)
{
req['supportsAllDrives'] = true;
req['includeItemsFromAllDrives'] = true;
}
gapi.client.drive.files.list(req)
.then(function(response) {
var files = response.result.files;
pageToken = response.result.nextPageToken;
var found = false;
for (var i = 0; i < files.length; ++i)
{
if(files[i].trashed) continue;
if(files[i].name == name)
{
found = true;
uploadFile(files[i].id,parentId,name,buffer);
return;
}
}
if(!found && pageToken) checkFile(parentId, name, pageToken, buffer);
else uploadFile(null,parentId,name,buffer);
})
.catch(handleError);
}
else
function uploadFile(fileId, parentId, name, buffer)
{
var form = new FormData();
form.append('metadata', new Blob([JSON.stringify(metadata)], { type: 'application/json' }));
form.append('file', file);
if(!fileId) xhr.open('POST', 'https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&fields=id');
else xhr.open('PATCH', 'https://www.googleapis.com/upload/drive/v3/files/' + fileId + '?uploadType=multipart&fields=id');
xhr.setRequestHeader('Authorization', 'Bearer ' + GoogleAuth.currentUser.get().getAuthResponse().access_token);
xhr.onload = function(response) { send(0,""); };
xhr.onerror = function(e) { send(1,e); handleError(e)};
xhr.send(form);
}
}
var file = new Blob([buffer]);
var metadata = { 'name': name, };
if(!fileId) metadata['parents'] = [parentId];
var xhr = new XMLHttpRequest();
if(buffer.byteLength > 5000000)
{
var contentType = file.type || 'application/octet-stream';
metadata['mimeType'] = contentType;
metadata['Content-Type'] = contentType;
metadata['Content-Length'] = file.size;
var shared = "";
if(isShared) shared = "&supportsAllDrives=true";
if(!fileId) xhr.open("POST", "https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable" + shared);
else xhr.open("PATCH", "https://www.googleapis.com/upload/drive/v3/files/" + fileId + "?uploadType=resumable" + shared);
xhr.setRequestHeader('Authorization', 'Bearer ' + gapi.client.getToken().access_token);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('X-Upload-Content-Length', file.size);
xhr.setRequestHeader('X-Upload-Content-Type', contentType);
xhr.onreadystatechange = function() {
if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
var locationUrl = xhr.getResponseHeader('Location');
var reader = new FileReader();
reader.onload = function(e) {
var xhr2 = new XMLHttpRequest();
function signOutUser()
{
GoogleAuth.signOut().then(function () {
//console.log('User signed out.');
send(0,"");
})
.catch(handleError);
}
xhr2.open('PUT', locationUrl, true);
xhr2.setRequestHeader('Content-Type', contentType);
xhr2.setRequestHeader('X-Upload-Content-Type', contentType);
xhr2.onreadystatechange = function() {
if(xhr2.readyState === XMLHttpRequest.DONE && xhr2.status === 200) {
send(0,"");
}
};
xhr2.onerror = function(e) { send(1,e); handleError(e)};
xhr2.send(reader.result);
};
reader.readAsArrayBuffer(file);
}
};
xhr.onerror = function(e) { send(1,e); handleError(e)};
xhr.send(JSON.stringify(metadata));
}
else
{
var form = new FormData();
form.append('metadata', new Blob([JSON.stringify(metadata)], { type: 'application/json' }));
form.append('file', file);
var shared = "";
if(isShared) shared = "&supportsAllDrives=true";
if(!fileId) xhr.open('POST', 'https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&fields=id' + shared);
else xhr.open('PATCH', 'https://www.googleapis.com/upload/drive/v3/files/' + fileId + '?uploadType=multipart&fields=id' + shared);
xhr.setRequestHeader('Authorization', 'Bearer ' + gapi.client.getToken().access_token);
xhr.onload = function(response) { send(0,""); };
xhr.onerror = function(e) { send(1,e); handleError(e)};
xhr.send(form);
}
}
function disconnectUser()
{
GoogleAuth.disconnect().then(function () {
//console.log('User account disconnected.');
send(0,"");
})
.catch(handleError);
}
function signOutUser()
{
localStorage.removeItem("googledriveAccessToken");
localStorage.removeItem("googledriveAccessTokenValidUntil");
var cred = gapi.client.getToken();
if (cred !== null) {
google.accounts.oauth2.revoke(cred.access_token, () => {console.log('Revoked: ' + cred.access_token)});
gapi.client.setToken('');
}
}
function doAction(action, prms)
{
if(action == signOutUser) { signOutUser(); }
//if(action == signOutUser) { disconnectUser(); }
else if(sentFalse) { authorize(action, prms); }
else if(!GoogleAuth.isSignedIn.get()) { send("ready", false); sentFalse = true; }
else if(!GoogleAuth.currentUser.get().hasGrantedScopes(scope)) { send("ready", false); sentFalse = true; }
else { findFile(action, prms.path.slice(1).split("/"), null, null, prms.buffer); }
}
function doAction(action, prms)
{
if(action == signOutUser) { signOutUser(); }
else if(sentFalse) { authorize(action, prms); }
else if(!gapi.client.getToken()) { send("ready", false); sentFalse = true; }
else { findFile(action, prms.path.slice(1).split("/"), null, null, prms.buffer); }
}
function onMessage(e) {
if(e.origin && (e.origin == "https://accounts.google.com" || e.origin == "https://content.googleapis.com")) { return; }
if((typeof e.data) == "string") {
var msg = JSON.parse(e.data);
console.log(msg);
function onMessage(e) {
if(e.origin && (e.origin == "https://accounts.google.com" || e.origin == "https://content.googleapis.com")) { return; }
if((typeof e.data) == "string") {
var msg = JSON.parse(e.data);
console.log(msg);
//TODO: cannot list directory if name contains forwardslash
if(msg.code=="show") { doAction(listDir, { "path" : msg.prm }) }
else if(msg.code=="load") { doAction(downloadFile, { "path" : msg.prm }); }
//else if(msg.code=="load") { doAction(downloadThumbnail, { "path" : msg.prm }); }
else if(msg.code=="load") { doAction(downloadFile, { "path" : msg.prm }); }
else if(msg.code=="delete") { doAction(deleteFile, { "path" : msg.prm }); }
else if(msg.code=="save" && msg.prm.endsWith("/")) { doAction(createDir, { "path" : msg.prm.slice(0, -1) }); }
//TODO: will not work if filename contains colon(s)
@@ -378,8 +483,8 @@
window.parent.postMessage(JSON.stringify({"code":code, "prm":prm}),"*");
}
</script>
</script>
</body>
</html>
</html>