/*! For license information please see dist.js.LICENSE.txt */ (()=>{var __webpack_modules__={2256:(module,__unused_webpack_exports,__webpack_require__)=>{var t;self,t=function(__WEBPACK_EXTERNAL_MODULE_filesafe_js__){return(()=>{var __webpack_modules__={"./node_modules/@standardnotes/component-relay/dist/dist.js":module=>{eval('!function(e,t){ true?module.exports=t():0}(self,(function(){return(()=>{"use strict";var e={d:(t,s)=>{for(var n in s)e.o(s,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:s[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},t={};let s,n,i,o;var a;e.d(t,{default:()=>w}),function(e){e.SetSize="set-size",e.StreamItems="stream-items",e.StreamContextItem="stream-context-item",e.SaveItems="save-items",e.SelectItem="select-item",e.AssociateItem="associate-item",e.DeassociateItem="deassociate-item",e.ClearSelection="clear-selection",e.CreateItem="create-item",e.CreateItems="create-items",e.DeleteItems="delete-items",e.SetComponentData="set-component-data",e.InstallLocalComponent="install-local-component",e.ToggleActivateComponent="toggle-activate-component",e.RequestPermissions="request-permissions",e.PresentConflictResolution="present-conflict-resolution",e.DuplicateItem="duplicate-item",e.ComponentRegistered="component-registered",e.ActivateThemes="themes",e.Reply="reply",e.SaveSuccess="save-success",e.SaveError="save-error",e.ThemesActivated="themes-activated",e.KeyDown="key-down",e.KeyUp="key-up",e.Click="click"}(s||(s={})),function(e){e[e.Web=1]="Web",e[e.Desktop=2]="Desktop",e[e.Mobile=3]="Mobile"}(n||(n={})),function(e){e.Any="*",e.Item="SF|Item",e.RootKey="SN|RootKey|NoSync",e.ItemsKey="SN|ItemsKey",e.EncryptedStorage="SN|EncryptedStorage",e.Note="Note",e.Tag="Tag",e.SmartTag="SN|SmartTag",e.Component="SN|Component",e.Editor="SN|Editor",e.ActionsExtension="Extension",e.UserPrefs="SN|UserPreferences",e.HistorySession="SN|HistorySession",e.Theme="SN|Theme",e.Mfa="SF|MFA",e.ServerExtension="SF|Extension",e.FilesafeCredentials="SN|FileSafe|Credentials",e.FilesafeFileMetadata="SN|FileSafe|FileMetadata",e.FilesafeIntegration="SN|FileSafe|Integration",e.ExtensionRepo="SN|ExtensionRepo"}(i||(i={})),function(e){e.Pinned="pinned",e.Archived="archived",e.Locked="locked",e.UserModifiedDate="client_updated_at",e.DefaultEditor="defaultEditor",e.MobileRules="mobileRules",e.NotAvailableOnMobile="notAvailableOnMobile",e.MobileActive="mobileActive",e.LastSize="lastSize",e.PrefersPlainEditor="prefersPlainEditor",e.ComponentInstallError="installError"}(o||(o={}));var r=new Uint8Array(16);function c(){if(!a&&!(a="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return a(r)}const m=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,l=function(e){return"string"==typeof e&&m.test(e)};for(var d=[],h=0;h<256;++h)d.push((h+256).toString(16).substr(1));const p=function(e,t,s){var n=(e=e||{}).random||(e.rng||c)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){s=s||0;for(var i=0;i<16;++i)t[s+i]=n[i];return t}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=(d[e[t+0]]+d[e[t+1]]+d[e[t+2]]+d[e[t+3]]+"-"+d[e[t+4]]+d[e[t+5]]+"-"+d[e[t+6]]+d[e[t+7]]+"-"+d[e[t+8]]+d[e[t+9]]+"-"+d[e[t+10]]+d[e[t+11]]+d[e[t+12]]+d[e[t+13]]+d[e[t+14]]+d[e[t+15]]).toLowerCase();if(!l(s))throw TypeError("Stringified UUID is invalid");return s}(n)},u=e=>{var t;const s={[n.Web]:"web",[n.Desktop]:"desktop",[n.Mobile]:"mobile"};return null!==(t=s[e])&&void 0!==t?t:s[n.Web]},v=e=>null!=e,g=()=>{};class f{static get isSupported(){return!(!window.console&&!console)}static get info(){return f.isSupported&&this.enabled?console.log.bind(console):g}static get error(){return f.isSupported?console.error.bind(console):g}}var y,S,b,I;function k(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,n)}return s}function E(e){for(var t=1;t0&&(this.initialPermissions=s),v(null==n?void 0:n.coallesedSaving)&&(this.coallesedSaving=n.coallesedSaving),v(null==n?void 0:n.coallesedSavingDelay)&&(this.coallesedSavingDelay=n.coallesedSavingDelay),v(null==n?void 0:n.acceptsThemes)&&(this.component.acceptsThemes=null===(a=null==n?void 0:n.acceptsThemes)||void 0===a||a),v(i)&&(this.onReadyCallback=i),v(o)&&(this.onThemesChangeCallback=o),f.enabled=null!==(t=null==n?void 0:n.debug)&&void 0!==t&&t}deinit(){this.onReadyCallback=void 0,this.component={acceptsThemes:!0,activeThemes:[]},this.messageQueue=[],this.sentMessages=[],this.lastStreamedItem=void 0,this.pendingSaveItems=void 0,this.pendingSaveTimeout=void 0,this.pendingSaveParams=void 0,this.messageHandler&&(this.contentWindow.document.removeEventListener("message",this.messageHandler),this.contentWindow.removeEventListener("message",this.messageHandler)),this.keyDownEventListener&&this.contentWindow.removeEventListener("keydown",this.keyDownEventListener),this.keyUpEventListener&&this.contentWindow.removeEventListener("keyup",this.keyUpEventListener),this.clickEventListener&&this.contentWindow.removeEventListener("click",this.clickEventListener)}registerMessageHandler(){this.messageHandler=e=>{if(f.info("Components API Message received:",e.data),document.referrer&&new URL(document.referrer).origin!==new URL(e.origin).origin)return;const{data:t}=e,n=(e=>{if("string"!=typeof e)return!1;try{const t=JSON.parse(e),s=Object.prototype.toString.call(t);return"[object Object]"===s||"[object Array]"===s}catch(e){return!1}})(t)?JSON.parse(t):t;if(n){if(void 0===this.component.origin&&n.action===s.ComponentRegistered)this.component.origin=e.origin;else if(e.origin!==this.component.origin)return;this.handleMessage(n)}else f.error("Invalid data received. Skipping...")},this.contentWindow.document.addEventListener("message",this.messageHandler,!1),this.contentWindow.addEventListener("message",this.messageHandler,!1),f.info("Waiting for messages...")}registerKeyboardEventListeners(){this.keyDownEventListener=e=>{f.info("A key has been pressed: ".concat(e.key)),e.ctrlKey?this.keyDownEvent(I.Ctrl):e.shiftKey?this.keyDownEvent(I.Shift):(e.metaKey||"Meta"===e.key)&&this.keyDownEvent(I.Meta)},this.keyUpEventListener=e=>{f.info("A key has been released: ".concat(e.key)),"Control"===e.key?this.keyUpEvent(I.Ctrl):"Shift"===e.key?this.keyUpEvent(I.Shift):"Meta"===e.key&&this.keyUpEvent(I.Meta)},this.contentWindow.addEventListener("keydown",this.keyDownEventListener,!1),this.contentWindow.addEventListener("keyup",this.keyUpEventListener,!1)}registerMouseEventListeners(){this.clickEventListener=e=>{f.info("A click has been performed."),this.mouseClickEvent()},this.contentWindow.addEventListener("click",this.clickEventListener,!1)}handleMessage(e){switch(e.action){case s.ComponentRegistered:this.component.sessionKey=e.sessionKey,e.componentData&&(this.component.data=e.componentData),this.onReady(e.data),f.info("Component successfully registered with payload:",e);break;case s.ActivateThemes:this.activateThemes(e.data.themes);break;default:{var t,n;if(!e.original)return;const s=null===(t=this.sentMessages)||void 0===t?void 0:t.filter((t=>{var s;return t.messageId===(null===(s=e.original)||void 0===s?void 0:s.messageId)}))[0];if(!s){const e=this.contentWindow.document.title,t=("The extension \'".concat(e,"\' is attempting to communicate with Standard Notes, ")+"but an error is preventing it from doing so. Please restart this extension and try again.").replace(" "," ");return void f.info(t)}null==s||null===(n=s.callback)||void 0===n||n.call(s,e.data);break}}}onReady(e){this.component.environment=e.environment,this.component.platform=e.platform,this.component.uuid=e.uuid,this.initialPermissions&&this.initialPermissions.length>0&&this.requestPermissions(this.initialPermissions);for(const e of this.messageQueue)this.postMessage(e.action,e.data,e.callback);this.messageQueue=[],f.info("Data passed to onReady:",e),this.activateThemes(e.activeThemeUrls||[]),this.postMessage(s.ThemesActivated,{}),this.onReadyCallback&&this.onReadyCallback()}getSelfComponentUUID(){return this.component.uuid}isRunningInDesktopApplication(){return this.component.environment===u(n.Desktop)}isRunningInMobileApplication(){return this.component.environment===u(n.Mobile)}getComponentDataValueForKey(e){if(this.component.data)return this.component.data[e]}setComponentDataValueForKey(e,t){if(!this.component.data)throw new Error("The component has not been initialized.");if(!e||e&&0===e.length)throw new Error("The key for the data value should be a valid string.");this.component.data=E(E({},this.component.data),{},{[e]:t}),this.postMessage(s.SetComponentData,{componentData:this.component.data})}clearComponentData(){this.component.data={},this.postMessage(s.SetComponentData,{componentData:this.component.data})}postMessage(e,t,s){if(!this.component.sessionKey)return void this.messageQueue.push({action:e,data:t,api:b.Component,callback:s});const n={action:e,data:t,messageId:this.generateUUID(),sessionKey:this.component.sessionKey,api:b.Component},i=JSON.parse(JSON.stringify(n));let o;i.callback=s,this.sentMessages.push(i),o=this.isRunningInMobileApplication()?JSON.stringify(n):n,f.info("Posting message:",o),this.contentWindow.parent.postMessage(o,this.component.origin)}requestPermissions(e,t){this.postMessage(s.RequestPermissions,{permissions:e},(()=>{t&&t()}))}activateThemes(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(!this.component.acceptsThemes)return;f.info("Incoming themes:",e);const{activeThemes:t}=this.component;if(t&&t.sort().toString()==e.sort().toString())return;let s=e;const n=[];for(const i of t)e.includes(i)?s=s.filter((e=>e!==i)):n.push(i);f.info("Deactivating themes:",n),f.info("Activating themes:",s);for(const e of n)this.deactivateTheme(e);this.component.activeThemes=e;for(const e of s){if(!e)continue;const t=this.contentWindow.document.createElement("link");t.id=btoa(e),t.href=e,t.type="text/css",t.rel="stylesheet",t.media="screen,print",t.className="custom-theme",this.contentWindow.document.getElementsByTagName("head")[0].appendChild(t)}this.onThemesChangeCallback&&this.onThemesChangeCallback()}themeElementForUrl(e){return Array.from(this.contentWindow.document.getElementsByClassName("custom-theme")).slice().find((t=>t.id==btoa(e)))}deactivateTheme(e){const t=this.themeElementForUrl(e);t&&t.parentNode&&(t.setAttribute("disabled","true"),t.parentNode.removeChild(t))}generateUUID(){return p()}get platform(){return this.component.platform}get environment(){return this.component.environment}streamItems(e,t){this.postMessage(s.StreamItems,{content_types:e},(e=>{t(e.items)}))}streamContextItem(e){this.postMessage(s.StreamContextItem,{},(t=>{const{item:s}=t;(!this.lastStreamedItem||this.lastStreamedItem.uuid!==s.uuid)&&this.pendingSaveTimeout&&(clearTimeout(this.pendingSaveTimeout),this.performSavingOfItems(this.pendingSaveParams),this.pendingSaveTimeout=void 0,this.pendingSaveParams=void 0),this.lastStreamedItem=s,e(this.lastStreamedItem)}))}selectItem(e){this.postMessage(s.SelectItem,{item:this.jsonObjectForItem(e)})}clearSelection(){this.postMessage(s.ClearSelection,{content_type:i.Tag})}createItem(e,t){this.postMessage(s.CreateItem,{item:this.jsonObjectForItem(e)},(e=>{let{item:s}=e;!s&&e.items&&e.items.length>0&&(s=e.items[0]),this.associateItem(s),t&&t(s)}))}createItems(e,t){const n=e.map((e=>this.jsonObjectForItem(e)));this.postMessage(s.CreateItems,{items:n},(e=>{t&&t(e.items)}))}associateItem(e){this.postMessage(s.AssociateItem,{item:this.jsonObjectForItem(e)})}deassociateItem(e){this.postMessage(s.DeassociateItem,{item:this.jsonObjectForItem(e)})}deleteItem(e,t){this.deleteItems([e],t)}deleteItems(e,t){const n={items:e.map((e=>this.jsonObjectForItem(e)))};this.postMessage(s.DeleteItems,n,(e=>{t&&t(e)}))}sendCustomEvent(e,t,s){this.postMessage(e,t,(e=>{s&&s(e)}))}saveItem(e,t){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.saveItems([e],t,s)}saveItemWithPresave(e,t,s){this.saveItemsWithPresave([e],t,s)}saveItemsWithPresave(e,t,s){this.saveItems(e,s,!1,t)}performSavingOfItems(e){let{items:t,presave:n,callback:i}=e;const o=setTimeout((()=>{this.concernTimeouts.forEach((e=>clearTimeout(e))),alert("This editor is unable to communicate with Standard Notes. Your changes may not be saved. Please backup your changes, then restart the application and try again.")}),5e3);this.concernTimeouts.push(o),n&&n();const a=[];for(const e of t)a.push(this.jsonObjectForItem(e));this.postMessage(s.SaveItems,{items:a},(()=>{this.concernTimeouts.forEach((e=>clearTimeout(e))),null==i||i()}))}saveItems(e,t){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;if(this.pendingSaveItems||(this.pendingSaveItems=[]),this.coallesedSaving&&!s){this.pendingSaveTimeout&&clearTimeout(this.pendingSaveTimeout);const s=e.map((e=>e.uuid)),i=this.pendingSaveItems.filter((e=>!s.includes(e.uuid)));this.pendingSaveItems=i.concat(e),this.pendingSaveParams={items:this.pendingSaveItems,presave:n,callback:t},this.pendingSaveTimeout=setTimeout((()=>{this.performSavingOfItems(this.pendingSaveParams),this.pendingSaveItems=[],this.pendingSaveTimeout=void 0,this.pendingSaveParams=null}),this.coallesedSavingDelay)}else this.performSavingOfItems({items:e,presave:n,callback:t})}setSize(e,t){this.postMessage(s.SetSize,{type:"container",width:e,height:t})}keyDownEvent(e){this.postMessage(s.KeyDown,{keyboardModifier:e})}keyUpEvent(e){this.postMessage(s.KeyUp,{keyboardModifier:e})}mouseClickEvent(){this.postMessage(s.Click,{})}jsonObjectForItem(e){const t=Object.assign({},e);return t.children=null,t.parent=null,t}getItemAppDataValue(e,t){var s,n;return null==e||null===(s=e.content)||void 0===s||null===(n=s.appData)||void 0===n?void 0:n["org.standardnotes.sn"][t]}}return t.default})()}));\n//# sourceMappingURL=dist.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN0YW5kYXJkbm90ZXMvY29tcG9uZW50LXJlbGF5L2Rpc3QvZGlzdC5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0VkaXRvcktpdC8uL25vZGVfbW9kdWxlcy9Ac3RhbmRhcmRub3Rlcy9jb21wb25lbnQtcmVsYXkvZGlzdC9kaXN0LmpzPzU5MjUiXSwic291cmNlc0NvbnRlbnQiOlsiIWZ1bmN0aW9uKGUsdCl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwib2JqZWN0XCI9PXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9dCgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoXCJDb21wb25lbnRSZWxheVwiLFtdLHQpOlwib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMuQ29tcG9uZW50UmVsYXk9dCgpOmUuQ29tcG9uZW50UmVsYXk9dCgpfShzZWxmLChmdW5jdGlvbigpe3JldHVybigoKT0+e1widXNlIHN0cmljdFwiO3ZhciBlPXtkOih0LHMpPT57Zm9yKHZhciBuIGluIHMpZS5vKHMsbikmJiFlLm8odCxuKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsbix7ZW51bWVyYWJsZTohMCxnZXQ6c1tuXX0pfSxvOihlLHQpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX0sdD17fTtsZXQgcyxuLGksbzt2YXIgYTtlLmQodCx7ZGVmYXVsdDooKT0+d30pLGZ1bmN0aW9uKGUpe2UuU2V0U2l6ZT1cInNldC1zaXplXCIsZS5TdHJlYW1JdGVtcz1cInN0cmVhbS1pdGVtc1wiLGUuU3RyZWFtQ29udGV4dEl0ZW09XCJzdHJlYW0tY29udGV4dC1pdGVtXCIsZS5TYXZlSXRlbXM9XCJzYXZlLWl0ZW1zXCIsZS5TZWxlY3RJdGVtPVwic2VsZWN0LWl0ZW1cIixlLkFzc29jaWF0ZUl0ZW09XCJhc3NvY2lhdGUtaXRlbVwiLGUuRGVhc3NvY2lhdGVJdGVtPVwiZGVhc3NvY2lhdGUtaXRlbVwiLGUuQ2xlYXJTZWxlY3Rpb249XCJjbGVhci1zZWxlY3Rpb25cIixlLkNyZWF0ZUl0ZW09XCJjcmVhdGUtaXRlbVwiLGUuQ3JlYXRlSXRlbXM9XCJjcmVhdGUtaXRlbXNcIixlLkRlbGV0ZUl0ZW1zPVwiZGVsZXRlLWl0ZW1zXCIsZS5TZXRDb21wb25lbnREYXRhPVwic2V0LWNvbXBvbmVudC1kYXRhXCIsZS5JbnN0YWxsTG9jYWxDb21wb25lbnQ9XCJpbnN0YWxsLWxvY2FsLWNvbXBvbmVudFwiLGUuVG9nZ2xlQWN0aXZhdGVDb21wb25lbnQ9XCJ0b2dnbGUtYWN0aXZhdGUtY29tcG9uZW50XCIsZS5SZXF1ZXN0UGVybWlzc2lvbnM9XCJyZXF1ZXN0LXBlcm1pc3Npb25zXCIsZS5QcmVzZW50Q29uZmxpY3RSZXNvbHV0aW9uPVwicHJlc2VudC1jb25mbGljdC1yZXNvbHV0aW9uXCIsZS5EdXBsaWNhdGVJdGVtPVwiZHVwbGljYXRlLWl0ZW1cIixlLkNvbXBvbmVudFJlZ2lzdGVyZWQ9XCJjb21wb25lbnQtcmVnaXN0ZXJlZFwiLGUuQWN0aXZhdGVUaGVtZXM9XCJ0aGVtZXNcIixlLlJlcGx5PVwicmVwbHlcIixlLlNhdmVTdWNjZXNzPVwic2F2ZS1zdWNjZXNzXCIsZS5TYXZlRXJyb3I9XCJzYXZlLWVycm9yXCIsZS5UaGVtZXNBY3RpdmF0ZWQ9XCJ0aGVtZXMtYWN0aXZhdGVkXCIsZS5LZXlEb3duPVwia2V5LWRvd25cIixlLktleVVwPVwia2V5LXVwXCIsZS5DbGljaz1cImNsaWNrXCJ9KHN8fChzPXt9KSksZnVuY3Rpb24oZSl7ZVtlLldlYj0xXT1cIldlYlwiLGVbZS5EZXNrdG9wPTJdPVwiRGVza3RvcFwiLGVbZS5Nb2JpbGU9M109XCJNb2JpbGVcIn0obnx8KG49e30pKSxmdW5jdGlvbihlKXtlLkFueT1cIipcIixlLkl0ZW09XCJTRnxJdGVtXCIsZS5Sb290S2V5PVwiU058Um9vdEtleXxOb1N5bmNcIixlLkl0ZW1zS2V5PVwiU058SXRlbXNLZXlcIixlLkVuY3J5cHRlZFN0b3JhZ2U9XCJTTnxFbmNyeXB0ZWRTdG9yYWdlXCIsZS5Ob3RlPVwiTm90ZVwiLGUuVGFnPVwiVGFnXCIsZS5TbWFydFRhZz1cIlNOfFNtYXJ0VGFnXCIsZS5Db21wb25lbnQ9XCJTTnxDb21wb25lbnRcIixlLkVkaXRvcj1cIlNOfEVkaXRvclwiLGUuQWN0aW9uc0V4dGVuc2lvbj1cIkV4dGVuc2lvblwiLGUuVXNlclByZWZzPVwiU058VXNlclByZWZlcmVuY2VzXCIsZS5IaXN0b3J5U2Vzc2lvbj1cIlNOfEhpc3RvcnlTZXNzaW9uXCIsZS5UaGVtZT1cIlNOfFRoZW1lXCIsZS5NZmE9XCJTRnxNRkFcIixlLlNlcnZlckV4dGVuc2lvbj1cIlNGfEV4dGVuc2lvblwiLGUuRmlsZXNhZmVDcmVkZW50aWFscz1cIlNOfEZpbGVTYWZlfENyZWRlbnRpYWxzXCIsZS5GaWxlc2FmZUZpbGVNZXRhZGF0YT1cIlNOfEZpbGVTYWZlfEZpbGVNZXRhZGF0YVwiLGUuRmlsZXNhZmVJbnRlZ3JhdGlvbj1cIlNOfEZpbGVTYWZlfEludGVncmF0aW9uXCIsZS5FeHRlbnNpb25SZXBvPVwiU058RXh0ZW5zaW9uUmVwb1wifShpfHwoaT17fSkpLGZ1bmN0aW9uKGUpe2UuUGlubmVkPVwicGlubmVkXCIsZS5BcmNoaXZlZD1cImFyY2hpdmVkXCIsZS5Mb2NrZWQ9XCJsb2NrZWRcIixlLlVzZXJNb2RpZmllZERhdGU9XCJjbGllbnRfdXBkYXRlZF9hdFwiLGUuRGVmYXVsdEVkaXRvcj1cImRlZmF1bHRFZGl0b3JcIixlLk1vYmlsZVJ1bGVzPVwibW9iaWxlUnVsZXNcIixlLk5vdEF2YWlsYWJsZU9uTW9iaWxlPVwibm90QXZhaWxhYmxlT25Nb2JpbGVcIixlLk1vYmlsZUFjdGl2ZT1cIm1vYmlsZUFjdGl2ZVwiLGUuTGFzdFNpemU9XCJsYXN0U2l6ZVwiLGUuUHJlZmVyc1BsYWluRWRpdG9yPVwicHJlZmVyc1BsYWluRWRpdG9yXCIsZS5Db21wb25lbnRJbnN0YWxsRXJyb3I9XCJpbnN0YWxsRXJyb3JcIn0ob3x8KG89e30pKTt2YXIgcj1uZXcgVWludDhBcnJheSgxNik7ZnVuY3Rpb24gYygpe2lmKCFhJiYhKGE9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGNyeXB0byYmY3J5cHRvLmdldFJhbmRvbVZhbHVlcyYmY3J5cHRvLmdldFJhbmRvbVZhbHVlcy5iaW5kKGNyeXB0byl8fFwidW5kZWZpbmVkXCIhPXR5cGVvZiBtc0NyeXB0byYmXCJmdW5jdGlvblwiPT10eXBlb2YgbXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzJiZtc0NyeXB0by5nZXRSYW5kb21WYWx1ZXMuYmluZChtc0NyeXB0bykpKXRocm93IG5ldyBFcnJvcihcImNyeXB0by5nZXRSYW5kb21WYWx1ZXMoKSBub3Qgc3VwcG9ydGVkLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3V1aWRqcy91dWlkI2dldHJhbmRvbXZhbHVlcy1ub3Qtc3VwcG9ydGVkXCIpO3JldHVybiBhKHIpfWNvbnN0IG09L14oPzpbMC05YS1mXXs4fS1bMC05YS1mXXs0fS1bMS01XVswLTlhLWZdezN9LVs4OWFiXVswLTlhLWZdezN9LVswLTlhLWZdezEyfXwwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDApJC9pLGw9ZnVuY3Rpb24oZSl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGUmJm0udGVzdChlKX07Zm9yKHZhciBkPVtdLGg9MDtoPDI1NjsrK2gpZC5wdXNoKChoKzI1NikudG9TdHJpbmcoMTYpLnN1YnN0cigxKSk7Y29uc3QgcD1mdW5jdGlvbihlLHQscyl7dmFyIG49KGU9ZXx8e30pLnJhbmRvbXx8KGUucm5nfHxjKSgpO2lmKG5bNl09MTUmbls2XXw2NCxuWzhdPTYzJm5bOF18MTI4LHQpe3M9c3x8MDtmb3IodmFyIGk9MDtpPDE2OysraSl0W3MraV09bltpXTtyZXR1cm4gdH1yZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAscz0oZFtlW3QrMF1dK2RbZVt0KzFdXStkW2VbdCsyXV0rZFtlW3QrM11dK1wiLVwiK2RbZVt0KzRdXStkW2VbdCs1XV0rXCItXCIrZFtlW3QrNl1dK2RbZVt0KzddXStcIi1cIitkW2VbdCs4XV0rZFtlW3QrOV1dK1wiLVwiK2RbZVt0KzEwXV0rZFtlW3QrMTFdXStkW2VbdCsxMl1dK2RbZVt0KzEzXV0rZFtlW3QrMTRdXStkW2VbdCsxNV1dKS50b0xvd2VyQ2FzZSgpO2lmKCFsKHMpKXRocm93IFR5cGVFcnJvcihcIlN0cmluZ2lmaWVkIFVVSUQgaXMgaW52YWxpZFwiKTtyZXR1cm4gc30obil9LHU9ZT0+e3ZhciB0O2NvbnN0IHM9e1tuLldlYl06XCJ3ZWJcIixbbi5EZXNrdG9wXTpcImRlc2t0b3BcIixbbi5Nb2JpbGVdOlwibW9iaWxlXCJ9O3JldHVybiBudWxsIT09KHQ9c1tlXSkmJnZvaWQgMCE9PXQ/dDpzW24uV2ViXX0sdj1lPT5udWxsIT1lLGc9KCk9Pnt9O2NsYXNzIGZ7c3RhdGljIGdldCBpc1N1cHBvcnRlZCgpe3JldHVybiEoIXdpbmRvdy5jb25zb2xlJiYhY29uc29sZSl9c3RhdGljIGdldCBpbmZvKCl7cmV0dXJuIGYuaXNTdXBwb3J0ZWQmJnRoaXMuZW5hYmxlZD9jb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpOmd9c3RhdGljIGdldCBlcnJvcigpe3JldHVybiBmLmlzU3VwcG9ydGVkP2NvbnNvbGUuZXJyb3IuYmluZChjb25zb2xlKTpnfX12YXIgeSxTLGIsSTtmdW5jdGlvbiBrKGUsdCl7dmFyIHM9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIG49T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYobj1uLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxzLnB1c2guYXBwbHkocyxuKX1yZXR1cm4gc31mdW5jdGlvbiBFKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBzPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP2soT2JqZWN0KHMpLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXtDKGUsdCxzW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHMpKTprKE9iamVjdChzKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsdCkpfSkpfXJldHVybiBlfWZ1bmN0aW9uIEMoZSx0LHMpe3JldHVybiB0IGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6cyxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09cyxlfShTPVwiZW5hYmxlZFwiKWluKHk9Zik/T2JqZWN0LmRlZmluZVByb3BlcnR5KHksUyx7dmFsdWU6ZmFsc2UsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp5W1NdPWZhbHNlLGZ1bmN0aW9uKGUpe2UuQ29tcG9uZW50PVwiY29tcG9uZW50XCJ9KGJ8fChiPXt9KSksZnVuY3Rpb24oZSl7ZS5TaGlmdD1cIlNoaWZ0XCIsZS5DdHJsPVwiQ29udHJvbFwiLGUuTWV0YT1cIk1ldGFcIn0oSXx8KEk9e30pKTtjbGFzcyB3e2NvbnN0cnVjdG9yKGUpe2lmKEModGhpcyxcImNvbnRlbnRXaW5kb3dcIix2b2lkIDApLEModGhpcyxcImluaXRpYWxQZXJtaXNzaW9uc1wiLHZvaWQgMCksQyh0aGlzLFwib25SZWFkeUNhbGxiYWNrXCIsdm9pZCAwKSxDKHRoaXMsXCJjb21wb25lbnRcIix7YWN0aXZlVGhlbWVzOltdLGFjY2VwdHNUaGVtZXM6ITB9KSxDKHRoaXMsXCJzZW50TWVzc2FnZXNcIixbXSksQyh0aGlzLFwibWVzc2FnZVF1ZXVlXCIsW10pLEModGhpcyxcImxhc3RTdHJlYW1lZEl0ZW1cIix2b2lkIDApLEModGhpcyxcInBlbmRpbmdTYXZlSXRlbXNcIix2b2lkIDApLEModGhpcyxcInBlbmRpbmdTYXZlVGltZW91dFwiLHZvaWQgMCksQyh0aGlzLFwicGVuZGluZ1NhdmVQYXJhbXNcIix2b2lkIDApLEModGhpcyxcImNvYWxsZXNlZFNhdmluZ1wiLCEwKSxDKHRoaXMsXCJjb2FsbGVzZWRTYXZpbmdEZWxheVwiLDI1MCksQyh0aGlzLFwibWVzc2FnZUhhbmRsZXJcIix2b2lkIDApLEModGhpcyxcImtleURvd25FdmVudExpc3RlbmVyXCIsdm9pZCAwKSxDKHRoaXMsXCJrZXlVcEV2ZW50TGlzdGVuZXJcIix2b2lkIDApLEModGhpcyxcImNsaWNrRXZlbnRMaXN0ZW5lclwiLHZvaWQgMCksQyh0aGlzLFwib25UaGVtZXNDaGFuZ2VDYWxsYmFja1wiLHZvaWQgMCksQyh0aGlzLFwiY29uY2VyblRpbWVvdXRzXCIsW10pLCFlfHwhZS50YXJnZXRXaW5kb3cpdGhyb3cgbmV3IEVycm9yKFwiY29udGVudFdpbmRvdyBtdXN0IGJlIGEgdmFsaWQgV2luZG93IG9iamVjdC5cIik7dGhpcy5jb250ZW50V2luZG93PWUudGFyZ2V0V2luZG93LHRoaXMucHJvY2Vzc1BhcmFtZXRlcnMoZSksdGhpcy5yZWdpc3Rlck1lc3NhZ2VIYW5kbGVyKCksdGhpcy5yZWdpc3RlcktleWJvYXJkRXZlbnRMaXN0ZW5lcnMoKSx0aGlzLnJlZ2lzdGVyTW91c2VFdmVudExpc3RlbmVycygpfXByb2Nlc3NQYXJhbWV0ZXJzKGUpe3ZhciB0O2NvbnN0e2luaXRpYWxQZXJtaXNzaW9uczpzLG9wdGlvbnM6bixvblJlYWR5Omksb25UaGVtZXNDaGFuZ2U6b309ZTt2YXIgYTtzJiZzLmxlbmd0aD4wJiYodGhpcy5pbml0aWFsUGVybWlzc2lvbnM9cyksdihudWxsPT1uP3ZvaWQgMDpuLmNvYWxsZXNlZFNhdmluZykmJih0aGlzLmNvYWxsZXNlZFNhdmluZz1uLmNvYWxsZXNlZFNhdmluZyksdihudWxsPT1uP3ZvaWQgMDpuLmNvYWxsZXNlZFNhdmluZ0RlbGF5KSYmKHRoaXMuY29hbGxlc2VkU2F2aW5nRGVsYXk9bi5jb2FsbGVzZWRTYXZpbmdEZWxheSksdihudWxsPT1uP3ZvaWQgMDpuLmFjY2VwdHNUaGVtZXMpJiYodGhpcy5jb21wb25lbnQuYWNjZXB0c1RoZW1lcz1udWxsPT09KGE9bnVsbD09bj92b2lkIDA6bi5hY2NlcHRzVGhlbWVzKXx8dm9pZCAwPT09YXx8YSksdihpKSYmKHRoaXMub25SZWFkeUNhbGxiYWNrPWkpLHYobykmJih0aGlzLm9uVGhlbWVzQ2hhbmdlQ2FsbGJhY2s9byksZi5lbmFibGVkPW51bGwhPT0odD1udWxsPT1uP3ZvaWQgMDpuLmRlYnVnKSYmdm9pZCAwIT09dCYmdH1kZWluaXQoKXt0aGlzLm9uUmVhZHlDYWxsYmFjaz12b2lkIDAsdGhpcy5jb21wb25lbnQ9e2FjY2VwdHNUaGVtZXM6ITAsYWN0aXZlVGhlbWVzOltdfSx0aGlzLm1lc3NhZ2VRdWV1ZT1bXSx0aGlzLnNlbnRNZXNzYWdlcz1bXSx0aGlzLmxhc3RTdHJlYW1lZEl0ZW09dm9pZCAwLHRoaXMucGVuZGluZ1NhdmVJdGVtcz12b2lkIDAsdGhpcy5wZW5kaW5nU2F2ZVRpbWVvdXQ9dm9pZCAwLHRoaXMucGVuZGluZ1NhdmVQYXJhbXM9dm9pZCAwLHRoaXMubWVzc2FnZUhhbmRsZXImJih0aGlzLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIix0aGlzLm1lc3NhZ2VIYW5kbGVyKSx0aGlzLmNvbnRlbnRXaW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIix0aGlzLm1lc3NhZ2VIYW5kbGVyKSksdGhpcy5rZXlEb3duRXZlbnRMaXN0ZW5lciYmdGhpcy5jb250ZW50V2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsdGhpcy5rZXlEb3duRXZlbnRMaXN0ZW5lciksdGhpcy5rZXlVcEV2ZW50TGlzdGVuZXImJnRoaXMuY29udGVudFdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5dXBcIix0aGlzLmtleVVwRXZlbnRMaXN0ZW5lciksdGhpcy5jbGlja0V2ZW50TGlzdGVuZXImJnRoaXMuY29udGVudFdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0aGlzLmNsaWNrRXZlbnRMaXN0ZW5lcil9cmVnaXN0ZXJNZXNzYWdlSGFuZGxlcigpe3RoaXMubWVzc2FnZUhhbmRsZXI9ZT0+e2lmKGYuaW5mbyhcIkNvbXBvbmVudHMgQVBJIE1lc3NhZ2UgcmVjZWl2ZWQ6XCIsZS5kYXRhKSxkb2N1bWVudC5yZWZlcnJlciYmbmV3IFVSTChkb2N1bWVudC5yZWZlcnJlcikub3JpZ2luIT09bmV3IFVSTChlLm9yaWdpbikub3JpZ2luKXJldHVybjtjb25zdHtkYXRhOnR9PWUsbj0oZT0+e2lmKFwic3RyaW5nXCIhPXR5cGVvZiBlKXJldHVybiExO3RyeXtjb25zdCB0PUpTT04ucGFyc2UoZSkscz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk7cmV0dXJuXCJbb2JqZWN0IE9iamVjdF1cIj09PXN8fFwiW29iamVjdCBBcnJheV1cIj09PXN9Y2F0Y2goZSl7cmV0dXJuITF9fSkodCk/SlNPTi5wYXJzZSh0KTp0O2lmKG4pe2lmKHZvaWQgMD09PXRoaXMuY29tcG9uZW50Lm9yaWdpbiYmbi5hY3Rpb249PT1zLkNvbXBvbmVudFJlZ2lzdGVyZWQpdGhpcy5jb21wb25lbnQub3JpZ2luPWUub3JpZ2luO2Vsc2UgaWYoZS5vcmlnaW4hPT10aGlzLmNvbXBvbmVudC5vcmlnaW4pcmV0dXJuO3RoaXMuaGFuZGxlTWVzc2FnZShuKX1lbHNlIGYuZXJyb3IoXCJJbnZhbGlkIGRhdGEgcmVjZWl2ZWQuIFNraXBwaW5nLi4uXCIpfSx0aGlzLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIix0aGlzLm1lc3NhZ2VIYW5kbGVyLCExKSx0aGlzLmNvbnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIix0aGlzLm1lc3NhZ2VIYW5kbGVyLCExKSxmLmluZm8oXCJXYWl0aW5nIGZvciBtZXNzYWdlcy4uLlwiKX1yZWdpc3RlcktleWJvYXJkRXZlbnRMaXN0ZW5lcnMoKXt0aGlzLmtleURvd25FdmVudExpc3RlbmVyPWU9PntmLmluZm8oXCJBIGtleSBoYXMgYmVlbiBwcmVzc2VkOiBcIi5jb25jYXQoZS5rZXkpKSxlLmN0cmxLZXk/dGhpcy5rZXlEb3duRXZlbnQoSS5DdHJsKTplLnNoaWZ0S2V5P3RoaXMua2V5RG93bkV2ZW50KEkuU2hpZnQpOihlLm1ldGFLZXl8fFwiTWV0YVwiPT09ZS5rZXkpJiZ0aGlzLmtleURvd25FdmVudChJLk1ldGEpfSx0aGlzLmtleVVwRXZlbnRMaXN0ZW5lcj1lPT57Zi5pbmZvKFwiQSBrZXkgaGFzIGJlZW4gcmVsZWFzZWQ6IFwiLmNvbmNhdChlLmtleSkpLFwiQ29udHJvbFwiPT09ZS5rZXk/dGhpcy5rZXlVcEV2ZW50KEkuQ3RybCk6XCJTaGlmdFwiPT09ZS5rZXk/dGhpcy5rZXlVcEV2ZW50KEkuU2hpZnQpOlwiTWV0YVwiPT09ZS5rZXkmJnRoaXMua2V5VXBFdmVudChJLk1ldGEpfSx0aGlzLmNvbnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIix0aGlzLmtleURvd25FdmVudExpc3RlbmVyLCExKSx0aGlzLmNvbnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsdGhpcy5rZXlVcEV2ZW50TGlzdGVuZXIsITEpfXJlZ2lzdGVyTW91c2VFdmVudExpc3RlbmVycygpe3RoaXMuY2xpY2tFdmVudExpc3RlbmVyPWU9PntmLmluZm8oXCJBIGNsaWNrIGhhcyBiZWVuIHBlcmZvcm1lZC5cIiksdGhpcy5tb3VzZUNsaWNrRXZlbnQoKX0sdGhpcy5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHRoaXMuY2xpY2tFdmVudExpc3RlbmVyLCExKX1oYW5kbGVNZXNzYWdlKGUpe3N3aXRjaChlLmFjdGlvbil7Y2FzZSBzLkNvbXBvbmVudFJlZ2lzdGVyZWQ6dGhpcy5jb21wb25lbnQuc2Vzc2lvbktleT1lLnNlc3Npb25LZXksZS5jb21wb25lbnREYXRhJiYodGhpcy5jb21wb25lbnQuZGF0YT1lLmNvbXBvbmVudERhdGEpLHRoaXMub25SZWFkeShlLmRhdGEpLGYuaW5mbyhcIkNvbXBvbmVudCBzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCB3aXRoIHBheWxvYWQ6XCIsZSk7YnJlYWs7Y2FzZSBzLkFjdGl2YXRlVGhlbWVzOnRoaXMuYWN0aXZhdGVUaGVtZXMoZS5kYXRhLnRoZW1lcyk7YnJlYWs7ZGVmYXVsdDp7dmFyIHQsbjtpZighZS5vcmlnaW5hbClyZXR1cm47Y29uc3Qgcz1udWxsPT09KHQ9dGhpcy5zZW50TWVzc2FnZXMpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmZpbHRlcigodD0+e3ZhciBzO3JldHVybiB0Lm1lc3NhZ2VJZD09PShudWxsPT09KHM9ZS5vcmlnaW5hbCl8fHZvaWQgMD09PXM/dm9pZCAwOnMubWVzc2FnZUlkKX0pKVswXTtpZighcyl7Y29uc3QgZT10aGlzLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQudGl0bGUsdD0oXCJUaGUgZXh0ZW5zaW9uICdcIi5jb25jYXQoZSxcIicgaXMgYXR0ZW1wdGluZyB0byBjb21tdW5pY2F0ZSB3aXRoIFN0YW5kYXJkIE5vdGVzLCBcIikrXCJidXQgYW4gZXJyb3IgaXMgcHJldmVudGluZyBpdCBmcm9tIGRvaW5nIHNvLiBQbGVhc2UgcmVzdGFydCB0aGlzIGV4dGVuc2lvbiBhbmQgdHJ5IGFnYWluLlwiKS5yZXBsYWNlKFwiICBcIixcIiBcIik7cmV0dXJuIHZvaWQgZi5pbmZvKHQpfW51bGw9PXN8fG51bGw9PT0obj1zLmNhbGxiYWNrKXx8dm9pZCAwPT09bnx8bi5jYWxsKHMsZS5kYXRhKTticmVha319fW9uUmVhZHkoZSl7dGhpcy5jb21wb25lbnQuZW52aXJvbm1lbnQ9ZS5lbnZpcm9ubWVudCx0aGlzLmNvbXBvbmVudC5wbGF0Zm9ybT1lLnBsYXRmb3JtLHRoaXMuY29tcG9uZW50LnV1aWQ9ZS51dWlkLHRoaXMuaW5pdGlhbFBlcm1pc3Npb25zJiZ0aGlzLmluaXRpYWxQZXJtaXNzaW9ucy5sZW5ndGg+MCYmdGhpcy5yZXF1ZXN0UGVybWlzc2lvbnModGhpcy5pbml0aWFsUGVybWlzc2lvbnMpO2Zvcihjb25zdCBlIG9mIHRoaXMubWVzc2FnZVF1ZXVlKXRoaXMucG9zdE1lc3NhZ2UoZS5hY3Rpb24sZS5kYXRhLGUuY2FsbGJhY2spO3RoaXMubWVzc2FnZVF1ZXVlPVtdLGYuaW5mbyhcIkRhdGEgcGFzc2VkIHRvIG9uUmVhZHk6XCIsZSksdGhpcy5hY3RpdmF0ZVRoZW1lcyhlLmFjdGl2ZVRoZW1lVXJsc3x8W10pLHRoaXMucG9zdE1lc3NhZ2Uocy5UaGVtZXNBY3RpdmF0ZWQse30pLHRoaXMub25SZWFkeUNhbGxiYWNrJiZ0aGlzLm9uUmVhZHlDYWxsYmFjaygpfWdldFNlbGZDb21wb25lbnRVVUlEKCl7cmV0dXJuIHRoaXMuY29tcG9uZW50LnV1aWR9aXNSdW5uaW5nSW5EZXNrdG9wQXBwbGljYXRpb24oKXtyZXR1cm4gdGhpcy5jb21wb25lbnQuZW52aXJvbm1lbnQ9PT11KG4uRGVza3RvcCl9aXNSdW5uaW5nSW5Nb2JpbGVBcHBsaWNhdGlvbigpe3JldHVybiB0aGlzLmNvbXBvbmVudC5lbnZpcm9ubWVudD09PXUobi5Nb2JpbGUpfWdldENvbXBvbmVudERhdGFWYWx1ZUZvcktleShlKXtpZih0aGlzLmNvbXBvbmVudC5kYXRhKXJldHVybiB0aGlzLmNvbXBvbmVudC5kYXRhW2VdfXNldENvbXBvbmVudERhdGFWYWx1ZUZvcktleShlLHQpe2lmKCF0aGlzLmNvbXBvbmVudC5kYXRhKXRocm93IG5ldyBFcnJvcihcIlRoZSBjb21wb25lbnQgaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkLlwiKTtpZighZXx8ZSYmMD09PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcihcIlRoZSBrZXkgZm9yIHRoZSBkYXRhIHZhbHVlIHNob3VsZCBiZSBhIHZhbGlkIHN0cmluZy5cIik7dGhpcy5jb21wb25lbnQuZGF0YT1FKEUoe30sdGhpcy5jb21wb25lbnQuZGF0YSkse30se1tlXTp0fSksdGhpcy5wb3N0TWVzc2FnZShzLlNldENvbXBvbmVudERhdGEse2NvbXBvbmVudERhdGE6dGhpcy5jb21wb25lbnQuZGF0YX0pfWNsZWFyQ29tcG9uZW50RGF0YSgpe3RoaXMuY29tcG9uZW50LmRhdGE9e30sdGhpcy5wb3N0TWVzc2FnZShzLlNldENvbXBvbmVudERhdGEse2NvbXBvbmVudERhdGE6dGhpcy5jb21wb25lbnQuZGF0YX0pfXBvc3RNZXNzYWdlKGUsdCxzKXtpZighdGhpcy5jb21wb25lbnQuc2Vzc2lvbktleSlyZXR1cm4gdm9pZCB0aGlzLm1lc3NhZ2VRdWV1ZS5wdXNoKHthY3Rpb246ZSxkYXRhOnQsYXBpOmIuQ29tcG9uZW50LGNhbGxiYWNrOnN9KTtjb25zdCBuPXthY3Rpb246ZSxkYXRhOnQsbWVzc2FnZUlkOnRoaXMuZ2VuZXJhdGVVVUlEKCksc2Vzc2lvbktleTp0aGlzLmNvbXBvbmVudC5zZXNzaW9uS2V5LGFwaTpiLkNvbXBvbmVudH0saT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG4pKTtsZXQgbztpLmNhbGxiYWNrPXMsdGhpcy5zZW50TWVzc2FnZXMucHVzaChpKSxvPXRoaXMuaXNSdW5uaW5nSW5Nb2JpbGVBcHBsaWNhdGlvbigpP0pTT04uc3RyaW5naWZ5KG4pOm4sZi5pbmZvKFwiUG9zdGluZyBtZXNzYWdlOlwiLG8pLHRoaXMuY29udGVudFdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2Uobyx0aGlzLmNvbXBvbmVudC5vcmlnaW4pfXJlcXVlc3RQZXJtaXNzaW9ucyhlLHQpe3RoaXMucG9zdE1lc3NhZ2Uocy5SZXF1ZXN0UGVybWlzc2lvbnMse3Blcm1pc3Npb25zOmV9LCgoKT0+e3QmJnQoKX0pKX1hY3RpdmF0ZVRoZW1lcygpe2xldCBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXTtpZighdGhpcy5jb21wb25lbnQuYWNjZXB0c1RoZW1lcylyZXR1cm47Zi5pbmZvKFwiSW5jb21pbmcgdGhlbWVzOlwiLGUpO2NvbnN0e2FjdGl2ZVRoZW1lczp0fT10aGlzLmNvbXBvbmVudDtpZih0JiZ0LnNvcnQoKS50b1N0cmluZygpPT1lLnNvcnQoKS50b1N0cmluZygpKXJldHVybjtsZXQgcz1lO2NvbnN0IG49W107Zm9yKGNvbnN0IGkgb2YgdCllLmluY2x1ZGVzKGkpP3M9cy5maWx0ZXIoKGU9PmUhPT1pKSk6bi5wdXNoKGkpO2YuaW5mbyhcIkRlYWN0aXZhdGluZyB0aGVtZXM6XCIsbiksZi5pbmZvKFwiQWN0aXZhdGluZyB0aGVtZXM6XCIscyk7Zm9yKGNvbnN0IGUgb2Ygbil0aGlzLmRlYWN0aXZhdGVUaGVtZShlKTt0aGlzLmNvbXBvbmVudC5hY3RpdmVUaGVtZXM9ZTtmb3IoY29uc3QgZSBvZiBzKXtpZighZSljb250aW51ZTtjb25zdCB0PXRoaXMuY29udGVudFdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlua1wiKTt0LmlkPWJ0b2EoZSksdC5ocmVmPWUsdC50eXBlPVwidGV4dC9jc3NcIix0LnJlbD1cInN0eWxlc2hlZXRcIix0Lm1lZGlhPVwic2NyZWVuLHByaW50XCIsdC5jbGFzc05hbWU9XCJjdXN0b20tdGhlbWVcIix0aGlzLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdLmFwcGVuZENoaWxkKHQpfXRoaXMub25UaGVtZXNDaGFuZ2VDYWxsYmFjayYmdGhpcy5vblRoZW1lc0NoYW5nZUNhbGxiYWNrKCl9dGhlbWVFbGVtZW50Rm9yVXJsKGUpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiY3VzdG9tLXRoZW1lXCIpKS5zbGljZSgpLmZpbmQoKHQ9PnQuaWQ9PWJ0b2EoZSkpKX1kZWFjdGl2YXRlVGhlbWUoZSl7Y29uc3QgdD10aGlzLnRoZW1lRWxlbWVudEZvclVybChlKTt0JiZ0LnBhcmVudE5vZGUmJih0LnNldEF0dHJpYnV0ZShcImRpc2FibGVkXCIsXCJ0cnVlXCIpLHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSl9Z2VuZXJhdGVVVUlEKCl7cmV0dXJuIHAoKX1nZXQgcGxhdGZvcm0oKXtyZXR1cm4gdGhpcy5jb21wb25lbnQucGxhdGZvcm19Z2V0IGVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuY29tcG9uZW50LmVudmlyb25tZW50fXN0cmVhbUl0ZW1zKGUsdCl7dGhpcy5wb3N0TWVzc2FnZShzLlN0cmVhbUl0ZW1zLHtjb250ZW50X3R5cGVzOmV9LChlPT57dChlLml0ZW1zKX0pKX1zdHJlYW1Db250ZXh0SXRlbShlKXt0aGlzLnBvc3RNZXNzYWdlKHMuU3RyZWFtQ29udGV4dEl0ZW0se30sKHQ9Pntjb25zdHtpdGVtOnN9PXQ7KCF0aGlzLmxhc3RTdHJlYW1lZEl0ZW18fHRoaXMubGFzdFN0cmVhbWVkSXRlbS51dWlkIT09cy51dWlkKSYmdGhpcy5wZW5kaW5nU2F2ZVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5wZW5kaW5nU2F2ZVRpbWVvdXQpLHRoaXMucGVyZm9ybVNhdmluZ09mSXRlbXModGhpcy5wZW5kaW5nU2F2ZVBhcmFtcyksdGhpcy5wZW5kaW5nU2F2ZVRpbWVvdXQ9dm9pZCAwLHRoaXMucGVuZGluZ1NhdmVQYXJhbXM9dm9pZCAwKSx0aGlzLmxhc3RTdHJlYW1lZEl0ZW09cyxlKHRoaXMubGFzdFN0cmVhbWVkSXRlbSl9KSl9c2VsZWN0SXRlbShlKXt0aGlzLnBvc3RNZXNzYWdlKHMuU2VsZWN0SXRlbSx7aXRlbTp0aGlzLmpzb25PYmplY3RGb3JJdGVtKGUpfSl9Y2xlYXJTZWxlY3Rpb24oKXt0aGlzLnBvc3RNZXNzYWdlKHMuQ2xlYXJTZWxlY3Rpb24se2NvbnRlbnRfdHlwZTppLlRhZ30pfWNyZWF0ZUl0ZW0oZSx0KXt0aGlzLnBvc3RNZXNzYWdlKHMuQ3JlYXRlSXRlbSx7aXRlbTp0aGlzLmpzb25PYmplY3RGb3JJdGVtKGUpfSwoZT0+e2xldHtpdGVtOnN9PWU7IXMmJmUuaXRlbXMmJmUuaXRlbXMubGVuZ3RoPjAmJihzPWUuaXRlbXNbMF0pLHRoaXMuYXNzb2NpYXRlSXRlbShzKSx0JiZ0KHMpfSkpfWNyZWF0ZUl0ZW1zKGUsdCl7Y29uc3Qgbj1lLm1hcCgoZT0+dGhpcy5qc29uT2JqZWN0Rm9ySXRlbShlKSkpO3RoaXMucG9zdE1lc3NhZ2Uocy5DcmVhdGVJdGVtcyx7aXRlbXM6bn0sKGU9Pnt0JiZ0KGUuaXRlbXMpfSkpfWFzc29jaWF0ZUl0ZW0oZSl7dGhpcy5wb3N0TWVzc2FnZShzLkFzc29jaWF0ZUl0ZW0se2l0ZW06dGhpcy5qc29uT2JqZWN0Rm9ySXRlbShlKX0pfWRlYXNzb2NpYXRlSXRlbShlKXt0aGlzLnBvc3RNZXNzYWdlKHMuRGVhc3NvY2lhdGVJdGVtLHtpdGVtOnRoaXMuanNvbk9iamVjdEZvckl0ZW0oZSl9KX1kZWxldGVJdGVtKGUsdCl7dGhpcy5kZWxldGVJdGVtcyhbZV0sdCl9ZGVsZXRlSXRlbXMoZSx0KXtjb25zdCBuPXtpdGVtczplLm1hcCgoZT0+dGhpcy5qc29uT2JqZWN0Rm9ySXRlbShlKSkpfTt0aGlzLnBvc3RNZXNzYWdlKHMuRGVsZXRlSXRlbXMsbiwoZT0+e3QmJnQoZSl9KSl9c2VuZEN1c3RvbUV2ZW50KGUsdCxzKXt0aGlzLnBvc3RNZXNzYWdlKGUsdCwoZT0+e3MmJnMoZSl9KSl9c2F2ZUl0ZW0oZSx0KXtsZXQgcz1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO3RoaXMuc2F2ZUl0ZW1zKFtlXSx0LHMpfXNhdmVJdGVtV2l0aFByZXNhdmUoZSx0LHMpe3RoaXMuc2F2ZUl0ZW1zV2l0aFByZXNhdmUoW2VdLHQscyl9c2F2ZUl0ZW1zV2l0aFByZXNhdmUoZSx0LHMpe3RoaXMuc2F2ZUl0ZW1zKGUscywhMSx0KX1wZXJmb3JtU2F2aW5nT2ZJdGVtcyhlKXtsZXR7aXRlbXM6dCxwcmVzYXZlOm4sY2FsbGJhY2s6aX09ZTtjb25zdCBvPXNldFRpbWVvdXQoKCgpPT57dGhpcy5jb25jZXJuVGltZW91dHMuZm9yRWFjaCgoZT0+Y2xlYXJUaW1lb3V0KGUpKSksYWxlcnQoXCJUaGlzIGVkaXRvciBpcyB1bmFibGUgdG8gY29tbXVuaWNhdGUgd2l0aCBTdGFuZGFyZCBOb3Rlcy4gWW91ciBjaGFuZ2VzIG1heSBub3QgYmUgc2F2ZWQuIFBsZWFzZSBiYWNrdXAgeW91ciBjaGFuZ2VzLCB0aGVuIHJlc3RhcnQgdGhlIGFwcGxpY2F0aW9uIGFuZCB0cnkgYWdhaW4uXCIpfSksNWUzKTt0aGlzLmNvbmNlcm5UaW1lb3V0cy5wdXNoKG8pLG4mJm4oKTtjb25zdCBhPVtdO2Zvcihjb25zdCBlIG9mIHQpYS5wdXNoKHRoaXMuanNvbk9iamVjdEZvckl0ZW0oZSkpO3RoaXMucG9zdE1lc3NhZ2Uocy5TYXZlSXRlbXMse2l0ZW1zOmF9LCgoKT0+e3RoaXMuY29uY2VyblRpbWVvdXRzLmZvckVhY2goKGU9PmNsZWFyVGltZW91dChlKSkpLG51bGw9PWl8fGkoKX0pKX1zYXZlSXRlbXMoZSx0KXtsZXQgcz1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLG49YXJndW1lbnRzLmxlbmd0aD4zP2FyZ3VtZW50c1szXTp2b2lkIDA7aWYodGhpcy5wZW5kaW5nU2F2ZUl0ZW1zfHwodGhpcy5wZW5kaW5nU2F2ZUl0ZW1zPVtdKSx0aGlzLmNvYWxsZXNlZFNhdmluZyYmIXMpe3RoaXMucGVuZGluZ1NhdmVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5wZW5kaW5nU2F2ZVRpbWVvdXQpO2NvbnN0IHM9ZS5tYXAoKGU9PmUudXVpZCkpLGk9dGhpcy5wZW5kaW5nU2F2ZUl0ZW1zLmZpbHRlcigoZT0+IXMuaW5jbHVkZXMoZS51dWlkKSkpO3RoaXMucGVuZGluZ1NhdmVJdGVtcz1pLmNvbmNhdChlKSx0aGlzLnBlbmRpbmdTYXZlUGFyYW1zPXtpdGVtczp0aGlzLnBlbmRpbmdTYXZlSXRlbXMscHJlc2F2ZTpuLGNhbGxiYWNrOnR9LHRoaXMucGVuZGluZ1NhdmVUaW1lb3V0PXNldFRpbWVvdXQoKCgpPT57dGhpcy5wZXJmb3JtU2F2aW5nT2ZJdGVtcyh0aGlzLnBlbmRpbmdTYXZlUGFyYW1zKSx0aGlzLnBlbmRpbmdTYXZlSXRlbXM9W10sdGhpcy5wZW5kaW5nU2F2ZVRpbWVvdXQ9dm9pZCAwLHRoaXMucGVuZGluZ1NhdmVQYXJhbXM9bnVsbH0pLHRoaXMuY29hbGxlc2VkU2F2aW5nRGVsYXkpfWVsc2UgdGhpcy5wZXJmb3JtU2F2aW5nT2ZJdGVtcyh7aXRlbXM6ZSxwcmVzYXZlOm4sY2FsbGJhY2s6dH0pfXNldFNpemUoZSx0KXt0aGlzLnBvc3RNZXNzYWdlKHMuU2V0U2l6ZSx7dHlwZTpcImNvbnRhaW5lclwiLHdpZHRoOmUsaGVpZ2h0OnR9KX1rZXlEb3duRXZlbnQoZSl7dGhpcy5wb3N0TWVzc2FnZShzLktleURvd24se2tleWJvYXJkTW9kaWZpZXI6ZX0pfWtleVVwRXZlbnQoZSl7dGhpcy5wb3N0TWVzc2FnZShzLktleVVwLHtrZXlib2FyZE1vZGlmaWVyOmV9KX1tb3VzZUNsaWNrRXZlbnQoKXt0aGlzLnBvc3RNZXNzYWdlKHMuQ2xpY2sse30pfWpzb25PYmplY3RGb3JJdGVtKGUpe2NvbnN0IHQ9T2JqZWN0LmFzc2lnbih7fSxlKTtyZXR1cm4gdC5jaGlsZHJlbj1udWxsLHQucGFyZW50PW51bGwsdH1nZXRJdGVtQXBwRGF0YVZhbHVlKGUsdCl7dmFyIHMsbjtyZXR1cm4gbnVsbD09ZXx8bnVsbD09PShzPWUuY29udGVudCl8fHZvaWQgMD09PXN8fG51bGw9PT0obj1zLmFwcERhdGEpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuW1wib3JnLnN0YW5kYXJkbm90ZXMuc25cIl1bdF19fXJldHVybiB0LmRlZmF1bHR9KSgpfSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGlzdC5qcy5tYXAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@standardnotes/component-relay/dist/dist.js\n')},"./src/editorKit.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ EditorKitBase)\n/* harmony export */ });\n/* harmony import */ var _standardnotes_component_relay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @standardnotes/component-relay */ \"./node_modules/@standardnotes/component-relay/dist/dist.js\");\n/* harmony import */ var _standardnotes_component_relay__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_standardnotes_component_relay__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _fileLoader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fileLoader */ \"./src/fileLoader.ts\");\n/* harmony import */ var _textExpander__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./textExpander */ \"./src/textExpander.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _fileSafeHtml__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./fileSafeHtml */ \"./src/fileSafeHtml.ts\");\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\nclass EditorKitBase {\n constructor(delegate, options) {\n this.delegate = delegate;\n this.options = options;\n\n _defineProperty(this, \"fileIdsPendingAssociation\", []);\n\n _defineProperty(this, \"componentRelay\", void 0);\n\n _defineProperty(this, \"fileLoader\", void 0);\n\n _defineProperty(this, \"textExpander\", void 0);\n\n _defineProperty(this, \"fileSafeLoading\", void 0);\n\n _defineProperty(this, \"fileSafeClass\", void 0);\n\n _defineProperty(this, \"fileSafeInstance\", void 0);\n\n _defineProperty(this, \"note\", void 0);\n\n _defineProperty(this, \"ignoreNextTextChange\", void 0);\n\n _defineProperty(this, \"needsFileSafeElementLoad\", void 0);\n\n _defineProperty(this, \"previousText\", void 0);\n\n this.connectToBridge();\n\n if (this.options.supportsFileSafe) {\n this.fileSafeLoading = this.importFileSafe();\n }\n }\n\n connectToBridge() {\n const {\n coallesedSaving,\n coallesedSavingDelay,\n mode,\n supportsFileSafe\n } = this.options;\n this.componentRelay = new (_standardnotes_component_relay__WEBPACK_IMPORTED_MODULE_0___default())({\n targetWindow: window,\n options: {\n coallesedSaving,\n\n /**\n * The editor does some debouncing for us, so we'll lower the\n * default debounce value from 250 to 150\n */\n coallesedSavingDelay\n },\n onReady: () => {\n const {\n platform\n } = this.componentRelay;\n\n if (platform) {\n document.documentElement.classList.add(platform);\n }\n },\n onThemesChange: this.delegate.onThemesChange\n });\n this.componentRelay.streamContextItem(async note => {\n /**\n * TODO: If note has changed, release previous temp object URLs.\n */\n let isNewNoteLoad = true;\n\n if (this.note && this.note.uuid == note.uuid) {\n isNewNoteLoad = false;\n }\n\n const previousNote = this.note;\n\n if (supportsFileSafe) {\n const itemClass = this.fileSafeClass.getSFItemClass();\n this.note = new itemClass(note);\n this.fileSafeInstance.setCurrentNote(this.note);\n } else {\n this.note = note;\n } // Only update UI on non-metadata updates.\n\n\n if (note.isMetadataUpdate) {\n return;\n }\n\n let text = note.content.text;\n /**\n * If we're an HTML editor, and we're dealing with a new note,\n * check to see if it's in html format.\n * If it's not, we don't want to convert it to HTML until the user makes an explicit change\n * so we'll ignore the next change event in this case.\n */\n\n if (mode === 'html' && isNewNoteLoad) {\n const isHtml = /<[a-z][\\s\\S]*>/i.test(text);\n\n if (!isHtml) {\n this.ignoreNextTextChange = true;\n }\n }\n /**\n * Set before expanding. \n * We want this value to always be the collapsed value\n */\n\n\n this.previousText = text;\n\n if (supportsFileSafe) {\n /**\n * We want to expand any filesafe syntax in the text,\n * but only after the text has been inserted.\n * (Will be checked on editor change callback)\n */\n this.needsFileSafeElementLoad = true;\n text = (0,_fileSafeHtml__WEBPACK_IMPORTED_MODULE_4__.expandedFileSafeSyntax)(text);\n }\n\n this.delegate.onNoteValueChange && (await this.delegate.onNoteValueChange(note));\n this.delegate.setEditorRawText(text);\n\n if (this.delegate.onNoteLockToggle) {\n var _getItemAppDataValue, _getItemAppDataValue2;\n\n const previousLockState = (_getItemAppDataValue = this.componentRelay.getItemAppDataValue(previousNote, 'locked')) !== null && _getItemAppDataValue !== void 0 ? _getItemAppDataValue : false;\n const newLockState = (_getItemAppDataValue2 = this.componentRelay.getItemAppDataValue(this.note, 'locked')) !== null && _getItemAppDataValue2 !== void 0 ? _getItemAppDataValue2 : false;\n\n if (previousLockState !== newLockState) {\n this.delegate.onNoteLockToggle(newLockState);\n }\n }\n\n if (isNewNoteLoad) {\n var _this$delegate$clearU, _this$delegate;\n\n (_this$delegate$clearU = (_this$delegate = this.delegate).clearUndoHistory) === null || _this$delegate$clearU === void 0 ? void 0 : _this$delegate$clearU.call(_this$delegate);\n }\n });\n }\n\n async importFileSafe() {\n return Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! filesafe-js */ \"filesafe-js\", 23)).then(result => {\n this.fileSafeClass = result.default;\n this.configureFileSafe();\n return this.fileSafeInstance;\n });\n }\n\n configureFileSafe() {\n const requiredDelegateFunctions = ['getCurrentLineText', 'getPreviousLineText', 'replaceText', 'getElementsBySelector', 'insertElement', 'preprocessElement', 'insertRawText'];\n\n for (const functionName of requiredDelegateFunctions) {\n if (!this.delegate[functionName]) {\n throw Error(\"Missing \".concat(functionName, \" delegate function.\"));\n }\n }\n\n this.fileSafeInstance = new this.fileSafeClass({\n componentManager: this.componentRelay\n });\n this.fileSafeInstance.addDataChangeObserver(() => {\n // Reload UI by querying FileSafe for changes...\n const allFileDescriptors = this.fileSafeInstance.getAllFileDescriptors();\n\n if (this.note && this.fileIdsPendingAssociation.length > 0) {\n let hasMatch = false;\n\n for (const uuid of this.fileIdsPendingAssociation.slice()) {\n const descriptor = allFileDescriptors.find(candidate => candidate.uuid == uuid);\n\n if (!descriptor) {\n continue;\n }\n\n hasMatch = true;\n this.fileIdsPendingAssociation.splice(this.fileIdsPendingAssociation.indexOf(uuid), 1);\n const syntax = (0,_fileSafeHtml__WEBPACK_IMPORTED_MODULE_4__.insertionSyntaxForFileDescriptor)(descriptor);\n this.delegate.insertRawText(syntax);\n }\n\n if (hasMatch) {\n this.textExpander.searchPatterns();\n }\n }\n\n if (allFileDescriptors.length > 0) {\n this.fileLoader.loadFileSafeElements();\n }\n });\n this.fileSafeInstance.addNewFileDescriptorHandler(fileDescriptor => {\n /**\n * Called when a new file is uploaded. We'll wait until the bridge acknowledges\n * receipt of this item, and then it will be added to the editor.\n */\n this.fileIdsPendingAssociation.push(fileDescriptor.uuid);\n });\n this.fileLoader = new _fileLoader__WEBPACK_IMPORTED_MODULE_1__.default({\n fileSafeInstance: this.fileSafeInstance,\n getElementsBySelector: this.delegate.getElementsBySelector,\n insertElement: this.delegate.insertElement,\n preprocessElement: this.delegate.preprocessElement\n });\n this.textExpander = new _textExpander__WEBPACK_IMPORTED_MODULE_2__.default({\n afterExpand: () => this.fileLoader.loadFileSafeElements(),\n getCurrentLineText: this.delegate.getCurrentLineText,\n getPreviousLineText: this.delegate.getPreviousLineText,\n replaceText: this.delegate.replaceText,\n patterns: [{\n regex: _fileSafeHtml__WEBPACK_IMPORTED_MODULE_4__.FileSafeSyntaxPattern,\n callback: matchedText => {\n return (0,_fileSafeHtml__WEBPACK_IMPORTED_MODULE_4__.expandedFileSafeSyntax)(matchedText);\n }\n }]\n });\n }\n /**\n * Gets the FileSafe class.\n * @returns FileSafe class.\n */\n\n\n async getFileSafe() {\n if (!this.fileSafeInstance && this.fileSafeLoading) {\n return this.fileSafeLoading;\n }\n\n return this.importFileSafe();\n }\n /**\n * Called by consumer when the editor has a keyup event.\n */\n\n\n onEditorKeyUp(_ref) {\n let {\n isSpace,\n isEnter\n } = _ref;\n this.textExpander.onKeyUp({\n isSpace,\n isEnter\n });\n }\n /**\n * Called by consumer when user pastes into editor.\n */\n\n\n onEditorPaste() {\n this.textExpander.onKeyUp({\n isPaste: true\n });\n }\n /**\n * Called by consumer when the editor has a change/input event.\n */\n\n\n onEditorValueChanged(text) {\n const {\n mode,\n supportsFileSafe\n } = this.options;\n\n if (this.needsFileSafeElementLoad) {\n this.needsFileSafeElementLoad = false;\n this.fileLoader.loadFileSafeElements();\n }\n\n if (this.ignoreNextTextChange) {\n this.ignoreNextTextChange = false;\n return;\n }\n\n if (supportsFileSafe) {\n text = (0,_fileSafeHtml__WEBPACK_IMPORTED_MODULE_4__.collapseFileSafeSyntax)(text);\n /**\n * Change events may be triggered several times when expanding filesafe syntax.\n * Ultimately, while the visual layer is changing a lot, the underlying text layer,\n * after being collapsed, will not change. So we'll compare the previous html to new collapsed html before continuing.\n */\n\n const sameText = this.previousText == text;\n\n if (sameText) {\n return;\n }\n }\n\n this.previousText = text;\n\n if (!this.note) {\n return;\n }\n\n const note = this.note;\n this.componentRelay.saveItemWithPresave(note, () => {\n note.content.text = text;\n\n if (this.delegate.generateCustomPreview) {\n var _result$plain;\n\n const result = this.delegate.generateCustomPreview(text);\n note.content.preview_plain = (_result$plain = result.plain) !== null && _result$plain !== void 0 ? _result$plain : ' ';\n note.content.preview_html = result.html;\n } else {\n if (mode === 'html') {\n let preview = (0,_fileSafeHtml__WEBPACK_IMPORTED_MODULE_4__.removeFileSafeSyntaxFromHtml)(text);\n preview = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.truncateString)((0,_utils__WEBPACK_IMPORTED_MODULE_3__.htmlToText)(preview));\n /**\n * If the preview has no length due to either being an empty note, or having just 1 FileSafe file\n * that is stripped above, then we don't want to set to empty string, otherwise SN app will default to content\n * for preview. We'll set a whitespace preview instead so SN doesn't go based on innate content.\n */\n\n note.content.preview_plain = preview.length > 0 ? preview : ' ';\n } else {\n note.content.preview_plain = text;\n } // We're only using plain in this block.\n\n\n note.content.preview_html = null;\n }\n });\n }\n /**\n * Whether or not FileSafe is configured with integrations and keys, and can handle file uploads.\n * If not, user should open files modal and configure FileSafe.\n */\n\n\n canUploadFiles() {\n const credentials = this.fileSafeInstance.getAllCredentials();\n const integrations = this.fileSafeInstance.getAllIntegrations();\n return credentials.length > 0 && integrations.length > 0;\n }\n /**\n * Encrypts and Uploads a Javascript file object to FileSafe.\n * @param file The file to upload.\n * @returns A file descriptor if successful.\n */\n\n\n async uploadJSFileObject(file) {\n const cursorIdentifier = this.fileLoader.insertStatusAtCursor('Processing file...');\n return this.fileSafeInstance.encryptAndUploadJavaScriptFileObject(file).then(() => {\n this.fileLoader.removeCursorStatus(cursorIdentifier);\n });\n }\n /**\n * saveItemWithPresave from the component relay.\n */\n\n\n saveItemWithPresave(note, presave) {\n this.componentRelay.saveItemWithPresave(note, presave);\n }\n /**\n * Gets the current platform where the component is running.\n */\n\n\n get platform() {\n return this.componentRelay.platform;\n }\n /**\n * Gets the current environment where the component is running.\n */\n\n\n get environment() {\n return this.componentRelay.environment;\n }\n /**\n * Whether or not FileSafe can be used.\n */\n\n\n canUseFileSafe() {\n return this.fileSafeInstance.hasLegacyAccess();\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvZWRpdG9yS2l0LnRzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vRWRpdG9yS2l0Ly4vc3JjL2VkaXRvcktpdC50cz85N2E1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnRSZWxheSBmcm9tICdAc3RhbmRhcmRub3Rlcy9jb21wb25lbnQtcmVsYXknXG5pbXBvcnQgRmlsZUxvYWRlciwgeyBGaWxlTG9hZGVyT3B0aW9ucyB9IGZyb20gJy4vZmlsZUxvYWRlcidcbmltcG9ydCBUZXh0RXhwYW5kZXIsIHsgVGV4dEV4cGFuZGVyT3B0aW9ucyB9IGZyb20gJy4vdGV4dEV4cGFuZGVyJ1xuaW1wb3J0IHtcbiAgdHJ1bmNhdGVTdHJpbmcsXG4gIGh0bWxUb1RleHRcbn0gZnJvbSAnLi91dGlscydcbmltcG9ydCB7XG4gIEZpbGVTYWZlU3ludGF4UGF0dGVybixcbiAgY29sbGFwc2VGaWxlU2FmZVN5bnRheCxcbiAgZXhwYW5kZWRGaWxlU2FmZVN5bnRheCxcbiAgaW5zZXJ0aW9uU3ludGF4Rm9yRmlsZURlc2NyaXB0b3IsXG4gIHJlbW92ZUZpbGVTYWZlU3ludGF4RnJvbUh0bWwsXG4gIEZpbGVTYWZlRmlsZU1ldGFkYXRhXG59IGZyb20gJy4vZmlsZVNhZmVIdG1sJ1xuaW1wb3J0IHR5cGUgeyBJdGVtTWVzc2FnZVBheWxvYWQgfSBmcm9tICdAc3RhbmRhcmRub3Rlcy9zbmpzJ1xuXG4vKipcbiAqIFRoZSBkZWxlZ2F0ZSBpcyByZXNwb25zaWJsZSBmb3IgcmVzcG9uZGluZyB0byBldmVudHMgYW5kIGZ1bmN0aW9ucyB0aGF0IHRoZSBFZGl0b3JLaXQgcmVxdWlyZXMuXG4gKiBGb3IgZXhhbXBsZSwgd2hlbiBFZGl0b3JLaXQgd2FudHMgdG8gaW5zZXJ0IGEgbmV3IEhUTUwgZWxlbWVudCwgaXQgd29uJ3QgbmVjY2Vzc2FyaWx5IGtub3cgaG93LFxuICogYmVjYXVzZSBpdCdzIG5vdCBkZXNpZ25lZCBmb3IgYW55IHBhcnRpY3VsYXIgZWRpdG9yLiBJbnN0ZWFkLCBpdCB3aWxsIHRlbGwgdGhlIGRlbGVnYXRlIHRvXG4gKiBpbnNlcnQgdGhlIGVsZW1lbnQuIFRoZSBjb25zdW1lciBvZiB0aGlzIEFQSSwgdGhlIGFjdHVhbCBlZGl0b3IsIHdvdWxkIGNvbmZpZ3VyZSB0aGlzIGRlbGVnYXRlXG4gKiB3aXRoIHRoZSBhcHByb3ByaWF0ZSBjYWxsYmFja3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdG9yS2l0RGVsZWdhdGUge1xuICBpbnNlcnRSYXdUZXh0PzogKHRleHQ6IHN0cmluZykgPT4gdm9pZFxuICBzZXRFZGl0b3JSYXdUZXh0OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkXG4gIGdldEN1cnJlbnRMaW5lVGV4dD86IFRleHRFeHBhbmRlck9wdGlvbnNbJ2dldEN1cnJlbnRMaW5lVGV4dCddXG4gIGdldFByZXZpb3VzTGluZVRleHQ/OiBUZXh0RXhwYW5kZXJPcHRpb25zWydnZXRQcmV2aW91c0xpbmVUZXh0J11cbiAgcmVwbGFjZVRleHQ/OiBUZXh0RXhwYW5kZXJPcHRpb25zWydyZXBsYWNlVGV4dCddXG4gIGdldEVsZW1lbnRzQnlTZWxlY3Rvcj86IEZpbGVMb2FkZXJPcHRpb25zWydnZXRFbGVtZW50c0J5U2VsZWN0b3InXVxuICBpbnNlcnRFbGVtZW50PzogRmlsZUxvYWRlck9wdGlvbnNbJ2luc2VydEVsZW1lbnQnXVxuICBwcmVwcm9jZXNzRWxlbWVudD86IEZpbGVMb2FkZXJPcHRpb25zWydwcmVwcm9jZXNzRWxlbWVudCddXG4gIGNsZWFyVW5kb0hpc3Rvcnk/OiAoKSA9PiB2b2lkXG4gIGdlbmVyYXRlQ3VzdG9tUHJldmlldz86ICh0ZXh0OiBzdHJpbmcpID0+IHsgaHRtbD86IHN0cmluZywgcGxhaW46IHN0cmluZyB9XG4gIG9uTm90ZUxvY2tUb2dnbGU/OiAoaXNMb2NrZWQ6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25Ob3RlVmFsdWVDaGFuZ2U/OiAobm90ZTogSXRlbU1lc3NhZ2VQYXlsb2FkKSA9PiBQcm9taXNlPHZvaWQ+XG4gIG9uVGhlbWVzQ2hhbmdlPzogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBFZGl0b3JLaXRNb2RlID0gJ3BsYWludGV4dCcgfCAnaHRtbCcgfCAnbWFya2Rvd24nIHwgJ2pzb24nO1xuXG50eXBlIEVkaXRvcktpdE9wdGlvbnMgPSB7XG4gIG1vZGU6IEVkaXRvcktpdE1vZGVcbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgZWRpdG9yIHNob3VsZCBzdXBwb3J0IEZpbGVTYWZlIGludGVncmF0aW9uLlxuICAgKi9cbiAgc3VwcG9ydHNGaWxlU2FmZT86IGZhbHNlXG4gIC8qKlxuICAgKiBGb3IgQ29tcG9uZW50IFJlbGF5IHNhdmluZy4gSW5kaWNhdGVzIGlmIGRlYm91bmNlciBpcyBlbmFibGVkLlxuICAgKi9cbiAgY29hbGxlc2VkU2F2aW5nPzogZmFsc2VcbiAgLyoqXG4gICAqIEZvciBDb21wb25lbnQgUmVsYXkgc2F2aW5nLiBJbmRpY2F0ZXMgd2hhdCB0aGUgZGVib3VuY2VyIG1zIGRlbGF5IHNob3VsZCBiZSBzZXQgdG8uXG4gICAqL1xuICBjb2FsbGVzZWRTYXZpbmdEZWxheT86IDI1MFxufVxuXG50eXBlIE9uRWRpdG9yS2V5VXBQYXJhbXMgPSB7XG4gIGlzU3BhY2U6IGJvb2xlYW5cbiAgaXNFbnRlcjogYm9vbGVhblxufVxuXG50eXBlIEZpbGVVdWlkID0gc3RyaW5nXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVkaXRvcktpdEJhc2Uge1xuICBwcml2YXRlIGZpbGVJZHNQZW5kaW5nQXNzb2NpYXRpb246IEZpbGVVdWlkW10gPSBbXVxuICBwcml2YXRlIGNvbXBvbmVudFJlbGF5PzogQ29tcG9uZW50UmVsYXlcbiAgcHJpdmF0ZSBmaWxlTG9hZGVyPzogRmlsZUxvYWRlclxuICBwcml2YXRlIHRleHRFeHBhbmRlcj86IFRleHRFeHBhbmRlclxuXG4gIHByaXZhdGUgZmlsZVNhZmVMb2FkaW5nPzogUHJvbWlzZTx2b2lkPlxuICBwcml2YXRlIGZpbGVTYWZlQ2xhc3M/OiBhbnlcbiAgcHJpdmF0ZSBmaWxlU2FmZUluc3RhbmNlPzogYW55XG5cbiAgcHJpdmF0ZSBub3RlPzogSXRlbU1lc3NhZ2VQYXlsb2FkXG4gIHByaXZhdGUgaWdub3JlTmV4dFRleHRDaGFuZ2U/OiBib29sZWFuXG4gIHByaXZhdGUgbmVlZHNGaWxlU2FmZUVsZW1lbnRMb2FkPzogYm9vbGVhblxuICBwcml2YXRlIHByZXZpb3VzVGV4dD86IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVsZWdhdGU6IEVkaXRvcktpdERlbGVnYXRlLCBwcml2YXRlIG9wdGlvbnM6IEVkaXRvcktpdE9wdGlvbnMpIHtcbiAgICB0aGlzLmNvbm5lY3RUb0JyaWRnZSgpXG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnN1cHBvcnRzRmlsZVNhZmUpIHtcbiAgICAgIHRoaXMuZmlsZVNhZmVMb2FkaW5nID0gdGhpcy5pbXBvcnRGaWxlU2FmZSgpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb25uZWN0VG9CcmlkZ2UoKSB7XG4gICAgY29uc3Qge1xuICAgICAgY29hbGxlc2VkU2F2aW5nLFxuICAgICAgY29hbGxlc2VkU2F2aW5nRGVsYXksXG4gICAgICBtb2RlLFxuICAgICAgc3VwcG9ydHNGaWxlU2FmZVxuICAgIH0gPSB0aGlzLm9wdGlvbnNcblxuICAgIHRoaXMuY29tcG9uZW50UmVsYXkgPSBuZXcgQ29tcG9uZW50UmVsYXkoe1xuICAgICAgdGFyZ2V0V2luZG93OiB3aW5kb3csXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGNvYWxsZXNlZFNhdmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBlZGl0b3IgZG9lcyBzb21lIGRlYm91bmNpbmcgZm9yIHVzLCBzbyB3ZSdsbCBsb3dlciB0aGVcbiAgICAgICAgICogZGVmYXVsdCBkZWJvdW5jZSB2YWx1ZSBmcm9tIDI1MCB0byAxNTBcbiAgICAgICAgICovXG4gICAgICAgIGNvYWxsZXNlZFNhdmluZ0RlbGF5XG4gICAgICB9LFxuICAgICAgb25SZWFkeTogKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHBsYXRmb3JtIH0gPSB0aGlzLmNvbXBvbmVudFJlbGF5IVxuXG4gICAgICAgIGlmIChwbGF0Zm9ybSkge1xuICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKHBsYXRmb3JtKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgb25UaGVtZXNDaGFuZ2U6IHRoaXMuZGVsZWdhdGUub25UaGVtZXNDaGFuZ2VcbiAgICB9KVxuXG4gICAgdGhpcy5jb21wb25lbnRSZWxheS5zdHJlYW1Db250ZXh0SXRlbShhc3luYyAobm90ZTogSXRlbU1lc3NhZ2VQYXlsb2FkKSA9PiB7XG4gICAgICAvKipcbiAgICAgICAqIFRPRE86IElmIG5vdGUgaGFzIGNoYW5nZWQsIHJlbGVhc2UgcHJldmlvdXMgdGVtcCBvYmplY3QgVVJMcy5cbiAgICAgICAqL1xuICAgICAgbGV0IGlzTmV3Tm90ZUxvYWQgPSB0cnVlXG4gICAgICBpZiAodGhpcy5ub3RlICYmIHRoaXMubm90ZS51dWlkID09IG5vdGUudXVpZCkge1xuICAgICAgICBpc05ld05vdGVMb2FkID0gZmFsc2VcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJldmlvdXNOb3RlID0gdGhpcy5ub3RlXG5cbiAgICAgIGlmIChzdXBwb3J0c0ZpbGVTYWZlKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1DbGFzcyA9IHRoaXMuZmlsZVNhZmVDbGFzcy5nZXRTRkl0ZW1DbGFzcygpXG4gICAgICAgIHRoaXMubm90ZSA9IG5ldyBpdGVtQ2xhc3Mobm90ZSlcbiAgICAgICAgdGhpcy5maWxlU2FmZUluc3RhbmNlLnNldEN1cnJlbnROb3RlKHRoaXMubm90ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubm90ZSA9IG5vdGVcbiAgICAgIH1cblxuICAgICAgIC8vIE9ubHkgdXBkYXRlIFVJIG9uIG5vbi1tZXRhZGF0YSB1cGRhdGVzLlxuICAgICAgaWYgKG5vdGUuaXNNZXRhZGF0YVVwZGF0ZSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgbGV0IHRleHQgPSBub3RlLmNvbnRlbnQudGV4dFxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHdlJ3JlIGFuIEhUTUwgZWRpdG9yLCBhbmQgd2UncmUgZGVhbGluZyB3aXRoIGEgbmV3IG5vdGUsXG4gICAgICAgKiBjaGVjayB0byBzZWUgaWYgaXQncyBpbiBodG1sIGZvcm1hdC5cbiAgICAgICAqIElmIGl0J3Mgbm90LCB3ZSBkb24ndCB3YW50IHRvIGNvbnZlcnQgaXQgdG8gSFRNTCB1bnRpbCB0aGUgdXNlciBtYWtlcyBhbiBleHBsaWNpdCBjaGFuZ2VcbiAgICAgICAqIHNvIHdlJ2xsIGlnbm9yZSB0aGUgbmV4dCBjaGFuZ2UgZXZlbnQgaW4gdGhpcyBjYXNlLlxuICAgICAgICovXG4gICAgICBpZiAobW9kZSA9PT0gJ2h0bWwnICYmIGlzTmV3Tm90ZUxvYWQpIHtcbiAgICAgICAgY29uc3QgaXNIdG1sID0gLzxbYS16XVtcXHNcXFNdKj4vaS50ZXN0KHRleHQpXG4gICAgICAgIGlmICghaXNIdG1sKSB7XG4gICAgICAgICAgdGhpcy5pZ25vcmVOZXh0VGV4dENoYW5nZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFNldCBiZWZvcmUgZXhwYW5kaW5nLiBcbiAgICAgICAqIFdlIHdhbnQgdGhpcyB2YWx1ZSB0byBhbHdheXMgYmUgdGhlIGNvbGxhcHNlZCB2YWx1ZVxuICAgICAgICovXG4gICAgICB0aGlzLnByZXZpb3VzVGV4dCA9IHRleHRcblxuICAgICAgaWYgKHN1cHBvcnRzRmlsZVNhZmUpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFdlIHdhbnQgdG8gZXhwYW5kIGFueSBmaWxlc2FmZSBzeW50YXggaW4gdGhlIHRleHQsXG4gICAgICAgICAqIGJ1dCBvbmx5IGFmdGVyIHRoZSB0ZXh0IGhhcyBiZWVuIGluc2VydGVkLlxuICAgICAgICAgKiAoV2lsbCBiZSBjaGVja2VkIG9uIGVkaXRvciBjaGFuZ2UgY2FsbGJhY2spXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm5lZWRzRmlsZVNhZmVFbGVtZW50TG9hZCA9IHRydWVcbiAgICAgICAgdGV4dCA9IGV4cGFuZGVkRmlsZVNhZmVTeW50YXgodGV4dClcbiAgICAgIH1cblxuICAgICAgdGhpcy5kZWxlZ2F0ZS5vbk5vdGVWYWx1ZUNoYW5nZSAmJiBhd2FpdCB0aGlzLmRlbGVnYXRlLm9uTm90ZVZhbHVlQ2hhbmdlKG5vdGUpXG4gICAgICB0aGlzLmRlbGVnYXRlLnNldEVkaXRvclJhd1RleHQodGV4dClcblxuICAgICAgaWYgKHRoaXMuZGVsZWdhdGUub25Ob3RlTG9ja1RvZ2dsZSkge1xuICAgICAgICBjb25zdCBwcmV2aW91c0xvY2tTdGF0ZSA9IHRoaXMuY29tcG9uZW50UmVsYXkhLmdldEl0ZW1BcHBEYXRhVmFsdWUocHJldmlvdXNOb3RlLCAnbG9ja2VkJykgPz8gZmFsc2VcbiAgICAgICAgY29uc3QgbmV3TG9ja1N0YXRlID0gdGhpcy5jb21wb25lbnRSZWxheSEuZ2V0SXRlbUFwcERhdGFWYWx1ZSh0aGlzLm5vdGUsICdsb2NrZWQnKSA/PyBmYWxzZVxuXG4gICAgICAgIGlmIChwcmV2aW91c0xvY2tTdGF0ZSAhPT0gbmV3TG9ja1N0YXRlKSB7XG4gICAgICAgICAgdGhpcy5kZWxlZ2F0ZS5vbk5vdGVMb2NrVG9nZ2xlKG5ld0xvY2tTdGF0ZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNOZXdOb3RlTG9hZCkge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmNsZWFyVW5kb0hpc3Rvcnk/LigpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaW1wb3J0RmlsZVNhZmUoKSB7XG4gICAgcmV0dXJuIGltcG9ydCgnZmlsZXNhZmUtanMnKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIHRoaXMuZmlsZVNhZmVDbGFzcyA9IHJlc3VsdC5kZWZhdWx0XG4gICAgICB0aGlzLmNvbmZpZ3VyZUZpbGVTYWZlKClcbiAgICAgIHJldHVybiB0aGlzLmZpbGVTYWZlSW5zdGFuY2VcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBjb25maWd1cmVGaWxlU2FmZSgpIHtcbiAgICBjb25zdCByZXF1aXJlZERlbGVnYXRlRnVuY3Rpb25zID0gW1xuICAgICAgJ2dldEN1cnJlbnRMaW5lVGV4dCcsXG4gICAgICAnZ2V0UHJldmlvdXNMaW5lVGV4dCcsXG4gICAgICAncmVwbGFjZVRleHQnLFxuICAgICAgJ2dldEVsZW1lbnRzQnlTZWxlY3RvcicsXG4gICAgICAnaW5zZXJ0RWxlbWVudCcsXG4gICAgICAncHJlcHJvY2Vzc0VsZW1lbnQnLFxuICAgICAgJ2luc2VydFJhd1RleHQnXG4gICAgXVxuXG4gICAgZm9yIChjb25zdCBmdW5jdGlvbk5hbWUgb2YgcmVxdWlyZWREZWxlZ2F0ZUZ1bmN0aW9ucykge1xuICAgICAgaWYgKCF0aGlzLmRlbGVnYXRlW2Z1bmN0aW9uTmFtZV0pIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYE1pc3NpbmcgJHtmdW5jdGlvbk5hbWV9IGRlbGVnYXRlIGZ1bmN0aW9uLmApXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5maWxlU2FmZUluc3RhbmNlID0gbmV3IHRoaXMuZmlsZVNhZmVDbGFzcyh7XG4gICAgICBjb21wb25lbnRNYW5hZ2VyOiB0aGlzLmNvbXBvbmVudFJlbGF5XG4gICAgfSlcblxuICAgIHRoaXMuZmlsZVNhZmVJbnN0YW5jZS5hZGREYXRhQ2hhbmdlT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgLy8gUmVsb2FkIFVJIGJ5IHF1ZXJ5aW5nIEZpbGVTYWZlIGZvciBjaGFuZ2VzLi4uXG4gICAgICBjb25zdCBhbGxGaWxlRGVzY3JpcHRvcnMgPSB0aGlzLmZpbGVTYWZlSW5zdGFuY2UuZ2V0QWxsRmlsZURlc2NyaXB0b3JzKClcblxuICAgICAgaWYgKHRoaXMubm90ZSAmJiB0aGlzLmZpbGVJZHNQZW5kaW5nQXNzb2NpYXRpb24ubGVuZ3RoID4gMCkge1xuICAgICAgICBsZXQgaGFzTWF0Y2ggPSBmYWxzZVxuXG4gICAgICAgIGZvciAoY29uc3QgdXVpZCBvZiB0aGlzLmZpbGVJZHNQZW5kaW5nQXNzb2NpYXRpb24uc2xpY2UoKSkge1xuICAgICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBhbGxGaWxlRGVzY3JpcHRvcnMuZmluZCgoY2FuZGlkYXRlOiBGaWxlU2FmZUZpbGVNZXRhZGF0YSkgPT4gY2FuZGlkYXRlLnV1aWQgPT0gdXVpZClcblxuICAgICAgICAgIGlmICghZGVzY3JpcHRvcikge1xuICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYXNNYXRjaCA9IHRydWVcbiAgICAgICAgICB0aGlzLmZpbGVJZHNQZW5kaW5nQXNzb2NpYXRpb24uc3BsaWNlKHRoaXMuZmlsZUlkc1BlbmRpbmdBc3NvY2lhdGlvbi5pbmRleE9mKHV1aWQpLCAxKVxuXG4gICAgICAgICAgY29uc3Qgc3ludGF4ID0gaW5zZXJ0aW9uU3ludGF4Rm9yRmlsZURlc2NyaXB0b3IoZGVzY3JpcHRvcilcbiAgICAgICAgICB0aGlzLmRlbGVnYXRlLmluc2VydFJhd1RleHQhKHN5bnRheClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNNYXRjaCkge1xuICAgICAgICAgIHRoaXMudGV4dEV4cGFuZGVyIS5zZWFyY2hQYXR0ZXJucygpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGFsbEZpbGVEZXNjcmlwdG9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuZmlsZUxvYWRlciEubG9hZEZpbGVTYWZlRWxlbWVudHMoKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICB0aGlzLmZpbGVTYWZlSW5zdGFuY2UuYWRkTmV3RmlsZURlc2NyaXB0b3JIYW5kbGVyKChmaWxlRGVzY3JpcHRvcjogRmlsZVNhZmVGaWxlTWV0YWRhdGEpID0+IHtcbiAgICAgIC8qKlxuICAgICAgICogQ2FsbGVkIHdoZW4gYSBuZXcgZmlsZSBpcyB1cGxvYWRlZC4gV2UnbGwgd2FpdCB1bnRpbCB0aGUgYnJpZGdlIGFja25vd2xlZGdlc1xuICAgICAgICogcmVjZWlwdCBvZiB0aGlzIGl0ZW0sIGFuZCB0aGVuIGl0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIGVkaXRvci5cbiAgICAgICAqL1xuICAgICAgdGhpcy5maWxlSWRzUGVuZGluZ0Fzc29jaWF0aW9uLnB1c2goZmlsZURlc2NyaXB0b3IudXVpZClcbiAgICB9KVxuXG4gICAgdGhpcy5maWxlTG9hZGVyID0gbmV3IEZpbGVMb2FkZXIoe1xuICAgICAgZmlsZVNhZmVJbnN0YW5jZTogdGhpcy5maWxlU2FmZUluc3RhbmNlLFxuICAgICAgZ2V0RWxlbWVudHNCeVNlbGVjdG9yOiB0aGlzLmRlbGVnYXRlLmdldEVsZW1lbnRzQnlTZWxlY3RvciEsXG4gICAgICBpbnNlcnRFbGVtZW50OiB0aGlzLmRlbGVnYXRlLmluc2VydEVsZW1lbnQhLFxuICAgICAgcHJlcHJvY2Vzc0VsZW1lbnQ6IHRoaXMuZGVsZWdhdGUucHJlcHJvY2Vzc0VsZW1lbnQhXG4gICAgfSlcblxuICAgIHRoaXMudGV4dEV4cGFuZGVyID0gbmV3IFRleHRFeHBhbmRlcih7XG4gICAgICBhZnRlckV4cGFuZDogKCkgPT4gdGhpcy5maWxlTG9hZGVyIS5sb2FkRmlsZVNhZmVFbGVtZW50cygpLFxuICAgICAgZ2V0Q3VycmVudExpbmVUZXh0OiB0aGlzLmRlbGVnYXRlLmdldEN1cnJlbnRMaW5lVGV4dCEsXG4gICAgICBnZXRQcmV2aW91c0xpbmVUZXh0OiB0aGlzLmRlbGVnYXRlLmdldFByZXZpb3VzTGluZVRleHQhLFxuICAgICAgcmVwbGFjZVRleHQ6IHRoaXMuZGVsZWdhdGUucmVwbGFjZVRleHQhLFxuICAgICAgcGF0dGVybnM6IFt7XG4gICAgICAgIHJlZ2V4OiBGaWxlU2FmZVN5bnRheFBhdHRlcm4sXG4gICAgICAgIGNhbGxiYWNrOiAobWF0Y2hlZFRleHQpID0+IHtcbiAgICAgICAgICByZXR1cm4gZXhwYW5kZWRGaWxlU2FmZVN5bnRheChtYXRjaGVkVGV4dClcbiAgICAgICAgfVxuICAgICAgfV1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEZpbGVTYWZlIGNsYXNzLlxuICAgKiBAcmV0dXJucyBGaWxlU2FmZSBjbGFzcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRGaWxlU2FmZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZmlsZVNhZmVJbnN0YW5jZSAmJiB0aGlzLmZpbGVTYWZlTG9hZGluZykge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsZVNhZmVMb2FkaW5nXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmltcG9ydEZpbGVTYWZlKClcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgY29uc3VtZXIgd2hlbiB0aGUgZWRpdG9yIGhhcyBhIGtleXVwIGV2ZW50LlxuICAgKi9cbiAgcHVibGljIG9uRWRpdG9yS2V5VXAoeyBpc1NwYWNlLCBpc0VudGVyIH06IE9uRWRpdG9yS2V5VXBQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnRleHRFeHBhbmRlciEub25LZXlVcCh7XG4gICAgICAgaXNTcGFjZSxcbiAgICAgICBpc0VudGVyXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgY29uc3VtZXIgd2hlbiB1c2VyIHBhc3RlcyBpbnRvIGVkaXRvci5cbiAgICovXG4gIHB1YmxpYyBvbkVkaXRvclBhc3RlKCk6IHZvaWQge1xuICAgIHRoaXMudGV4dEV4cGFuZGVyIS5vbktleVVwKHtcbiAgICAgIGlzUGFzdGU6IHRydWVcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSBjb25zdW1lciB3aGVuIHRoZSBlZGl0b3IgaGFzIGEgY2hhbmdlL2lucHV0IGV2ZW50LlxuICAgKi9cbiAgcHVibGljIG9uRWRpdG9yVmFsdWVDaGFuZ2VkKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHsgbW9kZSwgc3VwcG9ydHNGaWxlU2FmZSB9ID0gdGhpcy5vcHRpb25zXG5cbiAgICBpZiAodGhpcy5uZWVkc0ZpbGVTYWZlRWxlbWVudExvYWQpIHtcbiAgICAgIHRoaXMubmVlZHNGaWxlU2FmZUVsZW1lbnRMb2FkID0gZmFsc2VcbiAgICAgIHRoaXMuZmlsZUxvYWRlciEubG9hZEZpbGVTYWZlRWxlbWVudHMoKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmlnbm9yZU5leHRUZXh0Q2hhbmdlKSB7XG4gICAgICB0aGlzLmlnbm9yZU5leHRUZXh0Q2hhbmdlID0gZmFsc2VcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChzdXBwb3J0c0ZpbGVTYWZlKSB7XG4gICAgICB0ZXh0ID0gY29sbGFwc2VGaWxlU2FmZVN5bnRheCh0ZXh0KVxuXG4gICAgICAvKipcbiAgICAgICAqIENoYW5nZSBldmVudHMgbWF5IGJlIHRyaWdnZXJlZCBzZXZlcmFsIHRpbWVzIHdoZW4gZXhwYW5kaW5nIGZpbGVzYWZlIHN5bnRheC5cbiAgICAgICAqIFVsdGltYXRlbHksIHdoaWxlIHRoZSB2aXN1YWwgbGF5ZXIgaXMgY2hhbmdpbmcgYSBsb3QsIHRoZSB1bmRlcmx5aW5nIHRleHQgbGF5ZXIsXG4gICAgICAgKiBhZnRlciBiZWluZyBjb2xsYXBzZWQsIHdpbGwgbm90IGNoYW5nZS4gU28gd2UnbGwgY29tcGFyZSB0aGUgcHJldmlvdXMgaHRtbCB0byBuZXcgY29sbGFwc2VkIGh0bWwgYmVmb3JlIGNvbnRpbnVpbmcuXG4gICAgICAgKi9cbiAgICAgIGNvbnN0IHNhbWVUZXh0ID0gdGhpcy5wcmV2aW91c1RleHQgPT0gdGV4dFxuICAgICAgaWYgKHNhbWVUZXh0KSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucHJldmlvdXNUZXh0ID0gdGV4dFxuXG4gICAgaWYgKCF0aGlzLm5vdGUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IG5vdGUgPSB0aGlzLm5vdGVcblxuICAgIHRoaXMuY29tcG9uZW50UmVsYXkhLnNhdmVJdGVtV2l0aFByZXNhdmUobm90ZSwgKCkgPT4ge1xuICAgICAgbm90ZS5jb250ZW50LnRleHQgPSB0ZXh0XG5cbiAgICAgIGlmICh0aGlzLmRlbGVnYXRlLmdlbmVyYXRlQ3VzdG9tUHJldmlldykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmRlbGVnYXRlLmdlbmVyYXRlQ3VzdG9tUHJldmlldyh0ZXh0KVxuXG4gICAgICAgIG5vdGUuY29udGVudC5wcmV2aWV3X3BsYWluID0gcmVzdWx0LnBsYWluID8/ICcgJ1xuICAgICAgICBub3RlLmNvbnRlbnQucHJldmlld19odG1sID0gcmVzdWx0Lmh0bWxcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChtb2RlID09PSAnaHRtbCcpIHtcbiAgICAgICAgICBsZXQgcHJldmlldyA9IHJlbW92ZUZpbGVTYWZlU3ludGF4RnJvbUh0bWwodGV4dClcbiAgICAgICAgICBwcmV2aWV3ID0gdHJ1bmNhdGVTdHJpbmcoaHRtbFRvVGV4dChwcmV2aWV3KSlcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBJZiB0aGUgcHJldmlldyBoYXMgbm8gbGVuZ3RoIGR1ZSB0byBlaXRoZXIgYmVpbmcgYW4gZW1wdHkgbm90ZSwgb3IgaGF2aW5nIGp1c3QgMSBGaWxlU2FmZSBmaWxlXG4gICAgICAgICAgICogdGhhdCBpcyBzdHJpcHBlZCBhYm92ZSwgdGhlbiB3ZSBkb24ndCB3YW50IHRvIHNldCB0byBlbXB0eSBzdHJpbmcsIG90aGVyd2lzZSBTTiBhcHAgd2lsbCBkZWZhdWx0IHRvIGNvbnRlbnRcbiAgICAgICAgICAgKiBmb3IgcHJldmlldy4gV2UnbGwgc2V0IGEgd2hpdGVzcGFjZSBwcmV2aWV3IGluc3RlYWQgc28gU04gZG9lc24ndCBnbyBiYXNlZCBvbiBpbm5hdGUgY29udGVudC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBub3RlLmNvbnRlbnQucHJldmlld19wbGFpbiA9IHByZXZpZXcubGVuZ3RoID4gMCA/IHByZXZpZXcgOiAnICdcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBub3RlLmNvbnRlbnQucHJldmlld19wbGFpbiA9IHRleHRcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdlJ3JlIG9ubHkgdXNpbmcgcGxhaW4gaW4gdGhpcyBibG9jay5cbiAgICAgICAgbm90ZS5jb250ZW50LnByZXZpZXdfaHRtbCA9IG51bGxcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IEZpbGVTYWZlIGlzIGNvbmZpZ3VyZWQgd2l0aCBpbnRlZ3JhdGlvbnMgYW5kIGtleXMsIGFuZCBjYW4gaGFuZGxlIGZpbGUgdXBsb2Fkcy5cbiAgICogSWYgbm90LCB1c2VyIHNob3VsZCBvcGVuIGZpbGVzIG1vZGFsIGFuZCBjb25maWd1cmUgRmlsZVNhZmUuXG4gICAqL1xuICBwdWJsaWMgY2FuVXBsb2FkRmlsZXMoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSB0aGlzLmZpbGVTYWZlSW5zdGFuY2UuZ2V0QWxsQ3JlZGVudGlhbHMoKVxuICAgIGNvbnN0IGludGVncmF0aW9ucyA9IHRoaXMuZmlsZVNhZmVJbnN0YW5jZS5nZXRBbGxJbnRlZ3JhdGlvbnMoKVxuICAgIHJldHVybiBjcmVkZW50aWFscy5sZW5ndGggPiAwICYmIGludGVncmF0aW9ucy5sZW5ndGggPiAwXG4gIH1cblxuICAvKipcbiAgICogRW5jcnlwdHMgYW5kIFVwbG9hZHMgYSBKYXZhc2NyaXB0IGZpbGUgb2JqZWN0IHRvIEZpbGVTYWZlLlxuICAgKiBAcGFyYW0gZmlsZSBUaGUgZmlsZSB0byB1cGxvYWQuXG4gICAqIEByZXR1cm5zIEEgZmlsZSBkZXNjcmlwdG9yIGlmIHN1Y2Nlc3NmdWwuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdXBsb2FkSlNGaWxlT2JqZWN0KGZpbGU6IEJsb2IpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjdXJzb3JJZGVudGlmaWVyID0gdGhpcy5maWxlTG9hZGVyIS5pbnNlcnRTdGF0dXNBdEN1cnNvcignUHJvY2Vzc2luZyBmaWxlLi4uJylcbiAgICByZXR1cm4gdGhpcy5maWxlU2FmZUluc3RhbmNlLmVuY3J5cHRBbmRVcGxvYWRKYXZhU2NyaXB0RmlsZU9iamVjdChmaWxlKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuZmlsZUxvYWRlciEucmVtb3ZlQ3Vyc29yU3RhdHVzKGN1cnNvcklkZW50aWZpZXIpXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBzYXZlSXRlbVdpdGhQcmVzYXZlIGZyb20gdGhlIGNvbXBvbmVudCByZWxheS5cbiAgICovXG4gIHB1YmxpYyBzYXZlSXRlbVdpdGhQcmVzYXZlKG5vdGU6IEl0ZW1NZXNzYWdlUGF5bG9hZCwgcHJlc2F2ZT86ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFJlbGF5IS5zYXZlSXRlbVdpdGhQcmVzYXZlKG5vdGUsIHByZXNhdmUpXG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCBwbGF0Zm9ybSB3aGVyZSB0aGUgY29tcG9uZW50IGlzIHJ1bm5pbmcuXG4gICAqL1xuICAgcHVibGljIGdldCBwbGF0Zm9ybSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFJlbGF5IS5wbGF0Zm9ybVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgd2hlcmUgdGhlIGNvbXBvbmVudCBpcyBydW5uaW5nLlxuICAgKi9cbiAgcHVibGljIGdldCBlbnZpcm9ubWVudCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFJlbGF5IS5lbnZpcm9ubWVudFxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IEZpbGVTYWZlIGNhbiBiZSB1c2VkLlxuICAgKi9cbiAgIHB1YmxpYyBjYW5Vc2VGaWxlU2FmZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWxlU2FmZUluc3RhbmNlLmhhc0xlZ2FjeUFjY2VzcygpXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBMERBO0FBZUE7QUFBQTtBQUFBO0FBQ0E7QUFEQTtBQUNBO0FBREE7QUFDQTtBQURBO0FBQ0E7QUFEQTtBQUNBO0FBREE7QUFDQTtBQURBO0FBQ0E7QUFEQTtBQUNBO0FBREE7QUFDQTtBQURBO0FBQ0E7QUFEQTtBQUNBO0FBREE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBUUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqQkE7QUFvQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBTEE7QUFZQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBQ0E7QUFDQTtBQURBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFDQTtBQUNBO0FBQ0E7QUF0V0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/editorKit.ts\n")},"./src/fileLoader.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ FileLoader)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\nclass FileLoader {\n /**\n * When a file is decrypted and loaded into a temp url, we'll place the temp url in here so that subsequent decrypt attempts\n * dont require further work. Mapped values have the shape of { url, fileType, fsName }\n */\n // The UUIDs of files currently loading, so that we don't start a new load for currently loading file.\n // The UUID to current status element mapping\n constructor(options) {\n this.options = options;\n\n _defineProperty(this, \"uuidToFileTempUrlAndTypeMapping\", {});\n\n _defineProperty(this, \"currentlyLoadingIds\", []);\n\n _defineProperty(this, \"statusElementMapping\", {});\n\n _defineProperty(this, \"fileTypeToElementType\", {\n 'image/png': 'img',\n 'image/jpg': 'img',\n 'image/jpeg': 'img',\n 'image/gif': 'img',\n 'image/tiff': 'img',\n 'image/bmp': 'img',\n 'video/mp4': 'video',\n 'audio/mpeg': 'audio',\n 'audio/mp3': 'audio'\n });\n }\n\n fileTypeForElementType(type) {\n return this.fileTypeToElementType[type.toLowerCase()];\n }\n /**\n * Scans the document for elements . If found, begins loading file.\n */\n\n\n loadFileSafeElements() {\n const elements = this.options.getElementsBySelector('*[fsplaceholder]');\n\n for (const element of elements) {\n this.loadFileSafeElement(element);\n }\n }\n\n async loadFileSafeElement(fsElement) {\n var _fsElement$getAttribu;\n\n const {\n fileSafeInstance\n } = this.options;\n const fsid = fsElement.getAttribute('fsid');\n const fsName = (_fsElement$getAttribu = fsElement.getAttribute('fsName')) !== null && _fsElement$getAttribu !== void 0 ? _fsElement$getAttribu : '';\n const fileNameDisplay = !fsName || fsName == 'undefined' ? 'file' : fsName;\n\n if (!fsid) {\n return false;\n }\n\n const existingMapping = this.uuidToFileTempUrlAndTypeMapping[fsid];\n\n if (existingMapping) {\n this.insertMediaElement({\n fsid,\n fsElement,\n url: existingMapping.url,\n fileType: existingMapping.fileType,\n fsName: existingMapping.fsName\n });\n return false;\n }\n\n if (this.currentlyLoadingIds.includes(fsid)) {\n return false;\n }\n\n const descriptor = fileSafeInstance.findFileDescriptor(fsid);\n\n if (!descriptor) {\n this.setStatus({\n fsElement,\n fsid,\n status: \"Unable to find \".concat(fileNameDisplay, \" \").concat(fsid, \".\"),\n removable: true\n });\n return false;\n }\n\n const selectorSyntax = \"[fsid=\\\"\".concat(descriptor.uuid, \"\\\"][fscollapsable]\");\n const existingElements = document.querySelectorAll(\"img\".concat(selectorSyntax, \", figure\").concat(selectorSyntax, \", video\").concat(selectorSyntax, \", audio\").concat(selectorSyntax));\n\n if (existingElements.length > 0) {\n return false;\n }\n\n const cleanup = () => this.currentlyLoadingIds.splice(this.currentlyLoadingIds.indexOf(fsid), 1);\n\n this.currentlyLoadingIds.push(fsid);\n this.setStatus({\n fsElement,\n fsid,\n status: \"Downloading \".concat(fileNameDisplay, \"...\")\n }); // Allow UI to update before beginning download...\n\n await (0,_utils__WEBPACK_IMPORTED_MODULE_0__.sleep)(0.05);\n const fileItem = await fileSafeInstance.downloadFileFromDescriptor(descriptor).catch(() => {\n this.setStatus({\n fsElement,\n fsid,\n status: \"Unable to download \".concat(fileNameDisplay, \" \").concat(fsid, \".\")\n });\n return;\n });\n\n if (!fileItem) {\n return false;\n }\n\n this.setStatus({\n fsElement,\n fsid,\n status: \"Decrypting \".concat(fileNameDisplay, \"...\")\n }); // Allow UI to update before beginning decryption\n\n await (0,_utils__WEBPACK_IMPORTED_MODULE_0__.sleep)(0.05);\n const data = await fileSafeInstance.decryptFile({\n fileDescriptor: descriptor,\n fileItem\n }).catch(() => {\n this.setStatus({\n fsElement,\n fsid,\n status: \"Unable to decrypt \".concat(fileNameDisplay, \" \").concat(fsid, \".\")\n });\n return;\n });\n\n if (!data) {\n return false;\n } // Remove loading text\n\n\n this.setStatus({\n fsElement,\n fsid\n }); // Allow UI to update before adding image\n\n await (0,_utils__WEBPACK_IMPORTED_MODULE_0__.sleep)(0.05); // Generate temporary url, must be released later\n\n const fileType = descriptor.content.fileType;\n const tempUrl = fileSafeInstance.createTemporaryFileUrl({\n base64Data: data.decryptedData,\n dataType: fileType\n });\n this.insertMediaElement({\n fsid,\n fileType,\n fsName,\n fsElement,\n url: tempUrl\n });\n cleanup();\n this.uuidToFileTempUrlAndTypeMapping[fsid] = {\n fileType,\n url: tempUrl,\n fsName\n };\n return true;\n }\n\n insertMediaElement(_ref) {\n let {\n url,\n fsid,\n fsName,\n fileType,\n fsElement\n } = _ref;\n const elementType = this.fileTypeForElementType(fileType);\n let mediaElement;\n\n switch (elementType) {\n case 'img':\n mediaElement = this.createImageElement({\n url,\n fsid,\n fsName,\n fsElement\n });\n break;\n\n case 'video':\n mediaElement = this.createVideoElement({\n url,\n fsid,\n fileType,\n fsName,\n fsElement\n });\n break;\n\n case 'audio':\n mediaElement = this.createAudioElement({\n url,\n fsid,\n fsName\n });\n break;\n\n default:\n mediaElement = this.createDownloadElement({\n url,\n fsid,\n fsName\n });\n break;\n }\n\n this.insertElementNearElement(mediaElement, fsElement); // Remove fsElement now that image is loaded.\n\n fsElement.remove();\n }\n\n wrapElementInTag(_ref2) {\n let {\n element,\n tagName,\n fsid,\n fsName\n } = _ref2;\n const tag = document.createElement(tagName);\n tag.setAttribute('fsid', fsid);\n tag.setAttribute('fsName', fsName);\n tag.setAttribute('fscollapsable', 'true');\n tag.setAttribute('contenteditable', 'true');\n tag.append(element);\n return tag;\n }\n\n createImageElement(_ref3) {\n let {\n url,\n fsid,\n fsName,\n fsElement\n } = _ref3;\n const image = document.createElement('img');\n image.setAttribute('src', url);\n image.setAttribute('srcset', \"\".concat(url, \" 2x\"));\n image.setAttribute('fsid', fsid);\n image.setAttribute('fsName', fsName);\n image.setAttribute('fscollapsable', 'true');\n const elementWidth = fsElement.getAttribute('width');\n\n if (elementWidth) {\n image.setAttribute('width', elementWidth);\n }\n\n const elementHeight = fsElement.getAttribute('height');\n\n if (elementHeight) {\n image.setAttribute('height', elementHeight);\n }\n\n return image;\n }\n\n createVideoElement(_ref4) {\n let {\n url,\n fsid,\n fileType,\n fsName,\n fsElement\n } = _ref4;\n const video = document.createElement('video');\n video.setAttribute('controls', 'true');\n video.setAttribute('fsid', fsid);\n video.setAttribute('fsName', fsName);\n video.setAttribute('fscollapsable', 'true');\n const elementWidth = fsElement.getAttribute('width');\n\n if (elementWidth) {\n video.setAttribute('width', elementWidth);\n }\n\n const elementHeight = fsElement.getAttribute('height');\n\n if (elementHeight) {\n video.setAttribute('height', elementHeight);\n }\n\n const source = document.createElement('source');\n source.setAttribute('src', url);\n source.setAttribute('type', fileType);\n video.append(source);\n /**\n * Redactor will automatically insert a video element in a p tag,\n * so we'll do it ourselves so that we can control its attributes.\n */\n\n return this.wrapElementInTag({\n fsid,\n fsName,\n element: video,\n tagName: 'p'\n });\n }\n\n createDownloadElement(_ref5) {\n let {\n url,\n fsid,\n fsName\n } = _ref5;\n const link = document.createElement('a');\n link.setAttribute('fsid', fsid);\n link.setAttribute('fsName', fsName);\n link.setAttribute('ghost', 'true');\n link.setAttribute('fscollapsable', 'true');\n link.setAttribute('href', url);\n link.textContent = \"\".concat(fsName);\n return link;\n }\n\n createAudioElement(_ref6) {\n let {\n url,\n fsid,\n fsName\n } = _ref6;\n const audio = document.createElement('audio');\n audio.setAttribute('src', url);\n audio.setAttribute('controls', 'true');\n audio.setAttribute('fsid', fsid);\n audio.setAttribute('fsName', fsName);\n audio.setAttribute('fscollapsable', 'true');\n return this.wrapElementInTag({\n fsid,\n fsName,\n element: audio,\n tagName: 'p'\n });\n }\n\n setStatus(_ref7) {\n let {\n status,\n fsElement,\n fsid,\n removable = false\n } = _ref7;\n\n if (fsid) {\n const existingStatusElement = this.statusElementMapping[fsid];\n\n if (existingStatusElement) {\n existingStatusElement.remove();\n delete this.statusElementMapping[fsid];\n }\n }\n\n if (status) {\n let element = document.createElement('label');\n element.setAttribute('id', fsid);\n element.setAttribute('ghost', 'true');\n element.setAttribute('contenteditable', 'false');\n element.style.fontWeight = 'bold';\n element.textContent = status;\n\n if (removable) {\n element.style.userSelect = 'all';\n }\n\n element = this.insertElementNearElement(element, fsElement);\n\n if (fsid) {\n this.statusElementMapping[fsid] = element;\n }\n\n return element;\n }\n }\n\n insertStatusAtCursor(status) {\n const identifier = Math.random().toString(36).substring(7);\n this.setStatus({\n status,\n fsid: identifier,\n fsElement: null\n });\n return identifier;\n }\n\n removeCursorStatus(identifier) {\n /**\n * We want to search for the element based on identifier, because the actual element\n * inserted may have been done so as raw HTML, and not via an element pointer.\n */\n const elements = this.options.getElementsBySelector(\"#\".concat(identifier));\n\n if (elements.length > 0) {\n elements[0].remove();\n }\n }\n\n insertElementNearElement(domNodeToInsert, inVicinityOfElement) {\n const processedElement = this.options.preprocessElement(domNodeToInsert);\n let insertionType = 'child'; //
tags cannot be nested inside p tags.\n\n if (inVicinityOfElement && processedElement.tagName.toLowerCase() == 'figure') {\n // If we have a p ancestor, we need to get out.\n const paragraphAncestor = inVicinityOfElement.closest('p');\n\n if (paragraphAncestor) {\n /**\n * p tags cannot be nested in other p tags, so if we found one, we know its parent isn't and doesn't belong to a p tag.\n * Add the new one right after paragraphAncestor.\n */\n inVicinityOfElement = paragraphAncestor;\n insertionType = 'afterend';\n }\n }\n\n this.options.insertElement(processedElement, inVicinityOfElement, insertionType);\n return processedElement;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvZmlsZUxvYWRlci50cy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0VkaXRvcktpdC8uL3NyYy9maWxlTG9hZGVyLnRzPzRhYTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2xlZXAgfSBmcm9tICcuL3V0aWxzJ1xuXG5leHBvcnQgdHlwZSBGaWxlTG9hZGVyT3B0aW9ucyA9IHtcbiAgZmlsZVNhZmVJbnN0YW5jZTogYW55XG4gIGdldEVsZW1lbnRzQnlTZWxlY3RvcjogKHNlbGVjdG9yOiBzdHJpbmcpID0+IEVsZW1lbnRbXVxuICBwcmVwcm9jZXNzRWxlbWVudDogKGVsZW1lbnQ6IEVsZW1lbnQpID0+IEVsZW1lbnRcbiAgaW5zZXJ0RWxlbWVudDogKGVsZW1lbnQ6IEVsZW1lbnQsIGluVmljaW5pdHlPZkVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsLCBpbnNlcnRpb25UeXBlOiBzdHJpbmcpID0+IHZvaWRcbn1cblxudHlwZSBGaWxlVHlwZXMgPSB7XG4gIFtrZXk6IHN0cmluZ106IHN0cmluZ1xufVxuXG50eXBlIFV1aWRUeXBlTWFwcGluZyA9IHtcbiAgW2tleTogc3RyaW5nXToge1xuICAgIHVybDogc3RyaW5nXG4gICAgZmlsZVR5cGU6IHN0cmluZ1xuICAgIGZzTmFtZTogc3RyaW5nXG4gIH1cbn1cblxudHlwZSBFbGVtZW50U3RhdHVzTWFwcGluZyA9IHtcbiAgW2tleTogc3RyaW5nXTogRWxlbWVudFxufVxuXG50eXBlIEluc2VydE1lZGlhRWxlbWVudFBhcmFtcyA9IHtcbiAgdXJsOiBzdHJpbmcsXG4gIGZzaWQ6IHN0cmluZyxcbiAgZnNOYW1lOiBzdHJpbmcsXG4gIGZpbGVUeXBlOiBzdHJpbmcsXG4gIGZzRWxlbWVudDogRWxlbWVudFxufVxuXG50eXBlIFdyYXBFbGVtZW50SW5UYWdQYXJhbXMgPSB7XG4gIGVsZW1lbnQ6IEVsZW1lbnQsXG4gIHRhZ05hbWU6IHN0cmluZyxcbiAgZnNpZDogc3RyaW5nLFxuICBmc05hbWU6IHN0cmluZ1xufVxuXG50eXBlIFNldFN0YXR1c1BhcmFtcyA9IHtcbiAgc3RhdHVzPzogc3RyaW5nLFxuICBmc0VsZW1lbnQ6IEVsZW1lbnQgfCBudWxsLFxuICBmc2lkOiBzdHJpbmcsXG4gIHJlbW92YWJsZT86IGJvb2xlYW5cbn1cblxudHlwZSBDcmVhdGVJbWFnZUVsZW1lbnRQYXJhbXMgPSB7XG4gIHVybDogc3RyaW5nLFxuICBmc2lkOiBzdHJpbmcsXG4gIGZzTmFtZTogc3RyaW5nLFxuICBmc0VsZW1lbnQ6IEVsZW1lbnRcbn1cblxudHlwZSBDcmVhdGVBdWRpb0VsZW1lbnRQYXJhbXMgPSB7XG4gIHVybDogc3RyaW5nLFxuICBmc2lkOiBzdHJpbmcsXG4gIGZzTmFtZTogc3RyaW5nXG59XG5cbnR5cGUgQ3JlYXRlVmlkZW9FbGVtZW50UGFyYW1zID0ge1xuICB1cmw6IHN0cmluZyxcbiAgZnNpZDogc3RyaW5nLFxuICBmaWxlVHlwZTogc3RyaW5nLFxuICBmc05hbWU6IHN0cmluZyxcbiAgZnNFbGVtZW50OiBFbGVtZW50XG59XG5cbnR5cGUgQ3JlYXRlRG93bmxvYWRFbGVtZW50UGFyYW1zID0ge1xuICB1cmw6IHN0cmluZyxcbiAgZnNpZDogc3RyaW5nLFxuICBmc05hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlTG9hZGVyIHtcbiAgLyoqXG4gICAqIFdoZW4gYSBmaWxlIGlzIGRlY3J5cHRlZCBhbmQgbG9hZGVkIGludG8gYSB0ZW1wIHVybCwgd2UnbGwgcGxhY2UgdGhlIHRlbXAgdXJsIGluIGhlcmUgc28gdGhhdCBzdWJzZXF1ZW50IGRlY3J5cHQgYXR0ZW1wdHNcbiAgICogZG9udCByZXF1aXJlIGZ1cnRoZXIgd29yay4gTWFwcGVkIHZhbHVlcyBoYXZlIHRoZSBzaGFwZSBvZiB7IHVybCwgZmlsZVR5cGUsIGZzTmFtZSB9XG4gICAqL1xuICBwcml2YXRlIHV1aWRUb0ZpbGVUZW1wVXJsQW5kVHlwZU1hcHBpbmc6IFV1aWRUeXBlTWFwcGluZyA9IHt9XG5cbiAgLy8gVGhlIFVVSURzIG9mIGZpbGVzIGN1cnJlbnRseSBsb2FkaW5nLCBzbyB0aGF0IHdlIGRvbid0IHN0YXJ0IGEgbmV3IGxvYWQgZm9yIGN1cnJlbnRseSBsb2FkaW5nIGZpbGUuXG4gIHByaXZhdGUgY3VycmVudGx5TG9hZGluZ0lkczogc3RyaW5nW10gPSBbXVxuXG4gIC8vIFRoZSBVVUlEIHRvIGN1cnJlbnQgc3RhdHVzIGVsZW1lbnQgbWFwcGluZ1xuICBwcml2YXRlIHN0YXR1c0VsZW1lbnRNYXBwaW5nOiBFbGVtZW50U3RhdHVzTWFwcGluZyA9IHt9XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZVR5cGVUb0VsZW1lbnRUeXBlOiBGaWxlVHlwZXMgPSB7XG4gICAgJ2ltYWdlL3BuZyc6ICdpbWcnLFxuICAgICdpbWFnZS9qcGcnOiAnaW1nJyxcbiAgICAnaW1hZ2UvanBlZyc6ICdpbWcnLFxuICAgICdpbWFnZS9naWYnOiAnaW1nJyxcbiAgICAnaW1hZ2UvdGlmZic6ICdpbWcnLFxuICAgICdpbWFnZS9ibXAnOiAnaW1nJyxcbiAgICAndmlkZW8vbXA0JzogJ3ZpZGVvJyxcbiAgICAnYXVkaW8vbXBlZyc6ICdhdWRpbycsXG4gICAgJ2F1ZGlvL21wMyc6ICdhdWRpbydcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3B0aW9uczogRmlsZUxvYWRlck9wdGlvbnMpIHsgfVxuXG4gIHB1YmxpYyBmaWxlVHlwZUZvckVsZW1lbnRUeXBlKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZVR5cGVUb0VsZW1lbnRUeXBlW3R5cGUudG9Mb3dlckNhc2UoKV1cbiAgfVxuXG4gIC8qKlxuICAgKiBTY2FucyB0aGUgZG9jdW1lbnQgZm9yIGVsZW1lbnRzIDxmaWxlU2FmZT4uIElmIGZvdW5kLCBiZWdpbnMgbG9hZGluZyBmaWxlLlxuICAgKi9cbiAgcHVibGljIGxvYWRGaWxlU2FmZUVsZW1lbnRzKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5vcHRpb25zLmdldEVsZW1lbnRzQnlTZWxlY3RvcignKltmc3BsYWNlaG9sZGVyXScpXG4gICAgZm9yIChjb25zdCBlbGVtZW50IG9mIGVsZW1lbnRzKSB7XG4gICAgICB0aGlzLmxvYWRGaWxlU2FmZUVsZW1lbnQoZWxlbWVudClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9hZEZpbGVTYWZlRWxlbWVudChmc0VsZW1lbnQ6IEVsZW1lbnQpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGZpbGVTYWZlSW5zdGFuY2UgfSA9IHRoaXMub3B0aW9uc1xuXG4gICAgY29uc3QgZnNpZCA9IGZzRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2ZzaWQnKVxuICAgIGNvbnN0IGZzTmFtZSA9IGZzRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2ZzTmFtZScpID8/ICcnXG4gICAgY29uc3QgZmlsZU5hbWVEaXNwbGF5ID0gKCFmc05hbWUgfHwgZnNOYW1lID09ICd1bmRlZmluZWQnKSA/ICdmaWxlJyA6IGZzTmFtZVxuXG4gICAgaWYgKCFmc2lkKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ01hcHBpbmcgPSB0aGlzLnV1aWRUb0ZpbGVUZW1wVXJsQW5kVHlwZU1hcHBpbmdbZnNpZF1cblxuICAgIGlmIChleGlzdGluZ01hcHBpbmcpIHtcbiAgICAgIHRoaXMuaW5zZXJ0TWVkaWFFbGVtZW50KHtcbiAgICAgICAgZnNpZCxcbiAgICAgICAgZnNFbGVtZW50LFxuICAgICAgICB1cmw6IGV4aXN0aW5nTWFwcGluZy51cmwsXG4gICAgICAgIGZpbGVUeXBlOiBleGlzdGluZ01hcHBpbmcuZmlsZVR5cGUsXG4gICAgICAgIGZzTmFtZTogZXhpc3RpbmdNYXBwaW5nLmZzTmFtZVxuICAgICAgfSlcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGlmICh0aGlzLmN1cnJlbnRseUxvYWRpbmdJZHMuaW5jbHVkZXMoZnNpZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBmaWxlU2FmZUluc3RhbmNlLmZpbmRGaWxlRGVzY3JpcHRvcihmc2lkKVxuXG4gICAgaWYgKCFkZXNjcmlwdG9yKSB7XG4gICAgICB0aGlzLnNldFN0YXR1cyh7XG4gICAgICAgIGZzRWxlbWVudCxcbiAgICAgICAgZnNpZCxcbiAgICAgICAgc3RhdHVzOiBgVW5hYmxlIHRvIGZpbmQgJHtmaWxlTmFtZURpc3BsYXl9ICR7ZnNpZH0uYCxcbiAgICAgICAgcmVtb3ZhYmxlOiB0cnVlXG4gICAgICB9KVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0b3JTeW50YXggPSBgW2ZzaWQ9XCIke2Rlc2NyaXB0b3IudXVpZH1cIl1bZnNjb2xsYXBzYWJsZV1gXG4gICAgY29uc3QgZXhpc3RpbmdFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICBgaW1nJHtzZWxlY3RvclN5bnRheH0sIGZpZ3VyZSR7c2VsZWN0b3JTeW50YXh9LCB2aWRlbyR7c2VsZWN0b3JTeW50YXh9LCBhdWRpbyR7c2VsZWN0b3JTeW50YXh9YFxuICAgIClcblxuICAgIGlmIChleGlzdGluZ0VsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IGNsZWFudXAgPSAoKSA9PiB0aGlzLmN1cnJlbnRseUxvYWRpbmdJZHMuc3BsaWNlKHRoaXMuY3VycmVudGx5TG9hZGluZ0lkcy5pbmRleE9mKGZzaWQpLCAxKVxuXG4gICAgdGhpcy5jdXJyZW50bHlMb2FkaW5nSWRzLnB1c2goZnNpZClcbiAgICB0aGlzLnNldFN0YXR1cyh7XG4gICAgICBmc0VsZW1lbnQsXG4gICAgICBmc2lkLFxuICAgICAgc3RhdHVzOiBgRG93bmxvYWRpbmcgJHtmaWxlTmFtZURpc3BsYXl9Li4uYFxuICAgIH0pXG5cbiAgICAgLy8gQWxsb3cgVUkgdG8gdXBkYXRlIGJlZm9yZSBiZWdpbm5pbmcgZG93bmxvYWQuLi5cbiAgICBhd2FpdCBzbGVlcCgwLjA1KVxuXG4gICAgY29uc3QgZmlsZUl0ZW0gPSBhd2FpdCBmaWxlU2FmZUluc3RhbmNlLmRvd25sb2FkRmlsZUZyb21EZXNjcmlwdG9yKGRlc2NyaXB0b3IpLmNhdGNoKCgpID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdHVzKHtcbiAgICAgICAgZnNFbGVtZW50LFxuICAgICAgICBmc2lkLFxuICAgICAgICBzdGF0dXM6IGBVbmFibGUgdG8gZG93bmxvYWQgJHtmaWxlTmFtZURpc3BsYXl9ICR7ZnNpZH0uYFxuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH0pXG5cbiAgICBpZiAoIWZpbGVJdGVtKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXR1cyh7XG4gICAgICBmc0VsZW1lbnQsXG4gICAgICBmc2lkLFxuICAgICAgc3RhdHVzOiBgRGVjcnlwdGluZyAke2ZpbGVOYW1lRGlzcGxheX0uLi5gXG4gICAgfSlcblxuICAgIC8vIEFsbG93IFVJIHRvIHVwZGF0ZSBiZWZvcmUgYmVnaW5uaW5nIGRlY3J5cHRpb25cbiAgICBhd2FpdCBzbGVlcCgwLjA1KVxuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZpbGVTYWZlSW5zdGFuY2UuZGVjcnlwdEZpbGUoeyBmaWxlRGVzY3JpcHRvcjogZGVzY3JpcHRvciwgZmlsZUl0ZW0gfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0dXMoe1xuICAgICAgICBmc0VsZW1lbnQsXG4gICAgICAgIGZzaWQsXG4gICAgICAgIHN0YXR1czogYFVuYWJsZSB0byBkZWNyeXB0ICR7ZmlsZU5hbWVEaXNwbGF5fSAke2ZzaWR9LmBcbiAgICAgIH0pXG4gICAgICByZXR1cm5cbiAgICB9KVxuXG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgbG9hZGluZyB0ZXh0XG4gICAgdGhpcy5zZXRTdGF0dXMoe1xuICAgICAgZnNFbGVtZW50LFxuICAgICAgZnNpZFxuICAgIH0pXG5cbiAgICAvLyBBbGxvdyBVSSB0byB1cGRhdGUgYmVmb3JlIGFkZGluZyBpbWFnZVxuICAgIGF3YWl0IHNsZWVwKDAuMDUpXG5cbiAgICAvLyBHZW5lcmF0ZSB0ZW1wb3JhcnkgdXJsLCBtdXN0IGJlIHJlbGVhc2VkIGxhdGVyXG4gICAgY29uc3QgZmlsZVR5cGUgPSBkZXNjcmlwdG9yLmNvbnRlbnQuZmlsZVR5cGVcbiAgICBjb25zdCB0ZW1wVXJsID0gZmlsZVNhZmVJbnN0YW5jZS5jcmVhdGVUZW1wb3JhcnlGaWxlVXJsKHtcbiAgICAgIGJhc2U2NERhdGE6IGRhdGEuZGVjcnlwdGVkRGF0YSxcbiAgICAgIGRhdGFUeXBlOiBmaWxlVHlwZVxuICAgIH0pXG5cbiAgICB0aGlzLmluc2VydE1lZGlhRWxlbWVudCh7XG4gICAgICBmc2lkLCBmaWxlVHlwZSxcbiAgICAgIGZzTmFtZSxcbiAgICAgIGZzRWxlbWVudCxcbiAgICAgIHVybDogdGVtcFVybFxuICAgIH0pXG5cbiAgICBjbGVhbnVwKClcblxuICAgIHRoaXMudXVpZFRvRmlsZVRlbXBVcmxBbmRUeXBlTWFwcGluZ1tmc2lkXSA9IHtcbiAgICAgIGZpbGVUeXBlLFxuICAgICAgdXJsOiB0ZW1wVXJsLFxuICAgICAgZnNOYW1lLFxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBwcml2YXRlIGluc2VydE1lZGlhRWxlbWVudCh7IHVybCwgZnNpZCwgZnNOYW1lLCBmaWxlVHlwZSwgZnNFbGVtZW50IH06IEluc2VydE1lZGlhRWxlbWVudFBhcmFtcykge1xuICAgIGNvbnN0IGVsZW1lbnRUeXBlID0gdGhpcy5maWxlVHlwZUZvckVsZW1lbnRUeXBlKGZpbGVUeXBlKVxuXG4gICAgbGV0IG1lZGlhRWxlbWVudDogRWxlbWVudFxuICAgIFxuICAgIHN3aXRjaCAoZWxlbWVudFR5cGUpIHtcbiAgICAgIGNhc2UgJ2ltZyc6XG4gICAgICAgIG1lZGlhRWxlbWVudCA9IHRoaXMuY3JlYXRlSW1hZ2VFbGVtZW50KHsgdXJsLCBmc2lkLCBmc05hbWUsIGZzRWxlbWVudCB9KVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAndmlkZW8nOlxuICAgICAgICBtZWRpYUVsZW1lbnQgPSB0aGlzLmNyZWF0ZVZpZGVvRWxlbWVudCh7IHVybCwgZnNpZCwgZmlsZVR5cGUsIGZzTmFtZSwgZnNFbGVtZW50IH0pXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdhdWRpbyc6XG4gICAgICAgIG1lZGlhRWxlbWVudCA9IHRoaXMuY3JlYXRlQXVkaW9FbGVtZW50KHsgdXJsLCBmc2lkLCBmc05hbWUgfSlcbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIG1lZGlhRWxlbWVudCA9IHRoaXMuY3JlYXRlRG93bmxvYWRFbGVtZW50KHsgdXJsLCBmc2lkLCBmc05hbWUgfSlcbiAgICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICB0aGlzLmluc2VydEVsZW1lbnROZWFyRWxlbWVudChtZWRpYUVsZW1lbnQsIGZzRWxlbWVudClcblxuICAgIC8vIFJlbW92ZSBmc0VsZW1lbnQgbm93IHRoYXQgaW1hZ2UgaXMgbG9hZGVkLlxuICAgIGZzRWxlbWVudC5yZW1vdmUoKVxuICB9XG5cbiAgcHJpdmF0ZSB3cmFwRWxlbWVudEluVGFnKHsgZWxlbWVudCwgdGFnTmFtZSwgZnNpZCwgZnNOYW1lIH06IFdyYXBFbGVtZW50SW5UYWdQYXJhbXMpIHtcbiAgICBjb25zdCB0YWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpXG4gICAgdGFnLnNldEF0dHJpYnV0ZSgnZnNpZCcsIGZzaWQpXG4gICAgdGFnLnNldEF0dHJpYnV0ZSgnZnNOYW1lJywgZnNOYW1lKVxuICAgIHRhZy5zZXRBdHRyaWJ1dGUoJ2ZzY29sbGFwc2FibGUnLCAndHJ1ZScpXG4gICAgdGFnLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgJ3RydWUnKVxuICAgIHRhZy5hcHBlbmQoZWxlbWVudClcbiAgICByZXR1cm4gdGFnXG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUltYWdlRWxlbWVudCh7IHVybCwgZnNpZCwgZnNOYW1lLCBmc0VsZW1lbnQgfTogQ3JlYXRlSW1hZ2VFbGVtZW50UGFyYW1zKTogSFRNTEltYWdlRWxlbWVudCB7XG4gICAgY29uc3QgaW1hZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKVxuICAgIGltYWdlLnNldEF0dHJpYnV0ZSgnc3JjJywgdXJsKVxuICAgIGltYWdlLnNldEF0dHJpYnV0ZSgnc3Jjc2V0JywgYCR7dXJsfSAyeGApXG5cbiAgICBpbWFnZS5zZXRBdHRyaWJ1dGUoJ2ZzaWQnLCBmc2lkKVxuICAgIGltYWdlLnNldEF0dHJpYnV0ZSgnZnNOYW1lJywgZnNOYW1lKVxuICAgIGltYWdlLnNldEF0dHJpYnV0ZSgnZnNjb2xsYXBzYWJsZScsICd0cnVlJylcblxuICAgIGNvbnN0IGVsZW1lbnRXaWR0aCA9IGZzRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3dpZHRoJylcbiAgICBpZiAoZWxlbWVudFdpZHRoKSB7XG4gICAgICBpbWFnZS5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgZWxlbWVudFdpZHRoKVxuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRIZWlnaHQgPSBmc0VsZW1lbnQuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKVxuICAgIGlmIChlbGVtZW50SGVpZ2h0KSB7XG4gICAgICBpbWFnZS5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsIGVsZW1lbnRIZWlnaHQpXG4gICAgfVxuXG4gICAgcmV0dXJuIGltYWdlXG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVZpZGVvRWxlbWVudCh7IHVybCwgZnNpZCwgZmlsZVR5cGUsIGZzTmFtZSwgZnNFbGVtZW50IH06IENyZWF0ZVZpZGVvRWxlbWVudFBhcmFtcykge1xuICAgIGNvbnN0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKVxuICAgIHZpZGVvLnNldEF0dHJpYnV0ZSgnY29udHJvbHMnLCAndHJ1ZScpXG4gICAgdmlkZW8uc2V0QXR0cmlidXRlKCdmc2lkJywgZnNpZClcbiAgICB2aWRlby5zZXRBdHRyaWJ1dGUoJ2ZzTmFtZScsIGZzTmFtZSlcbiAgICB2aWRlby5zZXRBdHRyaWJ1dGUoJ2ZzY29sbGFwc2FibGUnLCAndHJ1ZScpXG5cbiAgICBjb25zdCBlbGVtZW50V2lkdGggPSBmc0VsZW1lbnQuZ2V0QXR0cmlidXRlKCd3aWR0aCcpXG4gICAgaWYgKGVsZW1lbnRXaWR0aCkge1xuICAgICAgdmlkZW8uc2V0QXR0cmlidXRlKCd3aWR0aCcsIGVsZW1lbnRXaWR0aClcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50SGVpZ2h0ID0gZnNFbGVtZW50LmdldEF0dHJpYnV0ZSgnaGVpZ2h0JylcbiAgICBpZiAoZWxlbWVudEhlaWdodCkge1xuICAgICAgdmlkZW8uc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBlbGVtZW50SGVpZ2h0KVxuICAgIH1cblxuICAgIGNvbnN0IHNvdXJjZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NvdXJjZScpXG4gICAgc291cmNlLnNldEF0dHJpYnV0ZSgnc3JjJywgdXJsKVxuICAgIHNvdXJjZS5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCBmaWxlVHlwZSlcbiAgICB2aWRlby5hcHBlbmQoc291cmNlKVxuXG4gICAgLyoqXG4gICAgICogUmVkYWN0b3Igd2lsbCBhdXRvbWF0aWNhbGx5IGluc2VydCBhIHZpZGVvIGVsZW1lbnQgaW4gYSBwIHRhZyxcbiAgICAgKiBzbyB3ZSdsbCBkbyBpdCBvdXJzZWx2ZXMgc28gdGhhdCB3ZSBjYW4gY29udHJvbCBpdHMgYXR0cmlidXRlcy5cbiAgICAgKi9cbiAgICByZXR1cm4gdGhpcy53cmFwRWxlbWVudEluVGFnKHtcbiAgICAgIGZzaWQsXG4gICAgICBmc05hbWUsXG4gICAgICBlbGVtZW50OiB2aWRlbyxcbiAgICAgIHRhZ05hbWU6ICdwJ1xuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURvd25sb2FkRWxlbWVudCh7IHVybCwgZnNpZCwgZnNOYW1lIH06IENyZWF0ZURvd25sb2FkRWxlbWVudFBhcmFtcykge1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZnNpZCcsIGZzaWQpXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2ZzTmFtZScsIGZzTmFtZSlcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZ2hvc3QnLCAndHJ1ZScpXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2ZzY29sbGFwc2FibGUnLCAndHJ1ZScpXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB1cmwpXG4gICAgbGluay50ZXh0Q29udGVudCA9IGAke2ZzTmFtZX1gXG4gICAgcmV0dXJuIGxpbmtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQXVkaW9FbGVtZW50KHsgdXJsLCBmc2lkLCBmc05hbWUgfTogQ3JlYXRlQXVkaW9FbGVtZW50UGFyYW1zKSB7XG4gICAgY29uc3QgYXVkaW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhdWRpbycpXG4gICAgYXVkaW8uc2V0QXR0cmlidXRlKCdzcmMnLCB1cmwpXG4gICAgYXVkaW8uc2V0QXR0cmlidXRlKCdjb250cm9scycsICd0cnVlJylcbiAgICBhdWRpby5zZXRBdHRyaWJ1dGUoJ2ZzaWQnLCBmc2lkKVxuICAgIGF1ZGlvLnNldEF0dHJpYnV0ZSgnZnNOYW1lJywgZnNOYW1lKVxuICAgIGF1ZGlvLnNldEF0dHJpYnV0ZSgnZnNjb2xsYXBzYWJsZScsICd0cnVlJylcblxuICAgIHJldHVybiB0aGlzLndyYXBFbGVtZW50SW5UYWcoe1xuICAgICAgZnNpZCxcbiAgICAgIGZzTmFtZSxcbiAgICAgIGVsZW1lbnQ6IGF1ZGlvLFxuICAgICAgdGFnTmFtZTogJ3AnXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgc2V0U3RhdHVzKHsgc3RhdHVzLCBmc0VsZW1lbnQsIGZzaWQsIHJlbW92YWJsZSA9IGZhbHNlIH06IFNldFN0YXR1c1BhcmFtcyk6IEVsZW1lbnQgfCB2b2lkIHtcbiAgICBpZiAoZnNpZCkge1xuICAgICAgY29uc3QgZXhpc3RpbmdTdGF0dXNFbGVtZW50ID0gdGhpcy5zdGF0dXNFbGVtZW50TWFwcGluZ1tmc2lkXVxuXG4gICAgICBpZiAoZXhpc3RpbmdTdGF0dXNFbGVtZW50KSB7XG4gICAgICAgIGV4aXN0aW5nU3RhdHVzRWxlbWVudC5yZW1vdmUoKVxuICAgICAgICBkZWxldGUgdGhpcy5zdGF0dXNFbGVtZW50TWFwcGluZ1tmc2lkXVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdGF0dXMpIHtcbiAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKVxuXG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCBmc2lkKVxuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2dob3N0JywgJ3RydWUnKVxuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICdmYWxzZScpXG4gICAgICBlbGVtZW50LnN0eWxlLmZvbnRXZWlnaHQgPSAnYm9sZCdcbiAgICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSBzdGF0dXNcblxuICAgICAgaWYgKHJlbW92YWJsZSkge1xuICAgICAgICBlbGVtZW50LnN0eWxlLnVzZXJTZWxlY3QgPSAnYWxsJ1xuICAgICAgfVxuXG4gICAgICBlbGVtZW50ID0gdGhpcy5pbnNlcnRFbGVtZW50TmVhckVsZW1lbnQoZWxlbWVudCwgZnNFbGVtZW50KSBhcyBIVE1MTGFiZWxFbGVtZW50XG5cbiAgICAgIGlmIChmc2lkKSB7XG4gICAgICAgIHRoaXMuc3RhdHVzRWxlbWVudE1hcHBpbmdbZnNpZF0gPSBlbGVtZW50XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBlbGVtZW50XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGluc2VydFN0YXR1c0F0Q3Vyc29yKHN0YXR1czogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBpZGVudGlmaWVyID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDcpXG4gICAgdGhpcy5zZXRTdGF0dXMoe1xuICAgICAgc3RhdHVzLFxuICAgICAgZnNpZDogaWRlbnRpZmllcixcbiAgICAgIGZzRWxlbWVudDogbnVsbFxuICAgIH0pXG4gICAgcmV0dXJuIGlkZW50aWZpZXJcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDdXJzb3JTdGF0dXMoaWRlbnRpZmllcjogc3RyaW5nKTogdm9pZCB7XG4gICAgLyoqXG4gICAgICogV2Ugd2FudCB0byBzZWFyY2ggZm9yIHRoZSBlbGVtZW50IGJhc2VkIG9uIGlkZW50aWZpZXIsIGJlY2F1c2UgdGhlIGFjdHVhbCBlbGVtZW50XG4gICAgICogaW5zZXJ0ZWQgbWF5IGhhdmUgYmVlbiBkb25lIHNvIGFzIHJhdyBIVE1MLCBhbmQgbm90IHZpYSBhbiBlbGVtZW50IHBvaW50ZXIuXG4gICAgICovXG4gICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLm9wdGlvbnMuZ2V0RWxlbWVudHNCeVNlbGVjdG9yKGAjJHtpZGVudGlmaWVyfWApXG5cbiAgICBpZiAoZWxlbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgZWxlbWVudHNbMF0ucmVtb3ZlKClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW5zZXJ0RWxlbWVudE5lYXJFbGVtZW50KGRvbU5vZGVUb0luc2VydDogRWxlbWVudCwgaW5WaWNpbml0eU9mRWxlbWVudDogRWxlbWVudCB8IG51bGwpOiBFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBwcm9jZXNzZWRFbGVtZW50ID0gdGhpcy5vcHRpb25zLnByZXByb2Nlc3NFbGVtZW50KGRvbU5vZGVUb0luc2VydClcbiAgICBsZXQgaW5zZXJ0aW9uVHlwZSA9ICdjaGlsZCdcblxuICAgIC8vIDxmaWd1cmU+IHRhZ3MgY2Fubm90IGJlIG5lc3RlZCBpbnNpZGUgcCB0YWdzLlxuICAgIGlmIChpblZpY2luaXR5T2ZFbGVtZW50ICYmIHByb2Nlc3NlZEVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09ICdmaWd1cmUnKSB7XG4gICAgICAvLyBJZiB3ZSBoYXZlIGEgcCBhbmNlc3Rvciwgd2UgbmVlZCB0byBnZXQgb3V0LlxuICAgICAgY29uc3QgcGFyYWdyYXBoQW5jZXN0b3IgPSBpblZpY2luaXR5T2ZFbGVtZW50LmNsb3Nlc3QoJ3AnKVxuXG4gICAgICBpZiAocGFyYWdyYXBoQW5jZXN0b3IpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIHAgdGFncyBjYW5ub3QgYmUgbmVzdGVkIGluIG90aGVyIHAgdGFncywgc28gaWYgd2UgZm91bmQgb25lLCB3ZSBrbm93IGl0cyBwYXJlbnQgaXNuJ3QgYW5kIGRvZXNuJ3QgYmVsb25nIHRvIGEgcCB0YWcuXG4gICAgICAgICAqIEFkZCB0aGUgbmV3IG9uZSByaWdodCBhZnRlciBwYXJhZ3JhcGhBbmNlc3Rvci5cbiAgICAgICAgICovXG4gICAgICAgIGluVmljaW5pdHlPZkVsZW1lbnQgPSBwYXJhZ3JhcGhBbmNlc3RvclxuICAgICAgICBpbnNlcnRpb25UeXBlID0gJ2FmdGVyZW5kJ1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMub3B0aW9ucy5pbnNlcnRFbGVtZW50KHByb2Nlc3NlZEVsZW1lbnQsIGluVmljaW5pdHlPZkVsZW1lbnQsIGluc2VydGlvblR5cGUpXG4gICAgcmV0dXJuIHByb2Nlc3NlZEVsZW1lbnQgYXMgRWxlbWVudFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBMEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUdBO0FBY0E7QUFBQTtBQUNBO0FBREE7QUFDQTtBQURBO0FBQ0E7QUFEQTtBQUNBO0FBREE7QUFYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFUQTtBQVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBQ0E7QUFNQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUNBO0FBTUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFDQTtBQUtBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQVpBO0FBQ0E7QUFjQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBTUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBTUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE5V0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/fileLoader.ts\n")},"./src/fileSafeHtml.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"FileSafeSyntaxPattern\": () => (/* binding */ FileSafeSyntaxPattern),\n/* harmony export */ \"expandedFileSafeSyntax\": () => (/* binding */ expandedFileSafeSyntax),\n/* harmony export */ \"removeFileSafeSyntaxFromHtml\": () => (/* binding */ removeFileSafeSyntaxFromHtml),\n/* harmony export */ \"insertionSyntaxForFileDescriptor\": () => (/* binding */ insertionSyntaxForFileDescriptor),\n/* harmony export */ \"collapseFileSafeSyntax\": () => (/* binding */ collapseFileSafeSyntax)\n/* harmony export */ });\n/* unused harmony export fileSafeSyntaxToHtmlElement */\n/**\n * Remove matching

tags if present.\n * Also capable of matching adjacent [fsSyntax][fsSyntax]\n */\nconst FileSafeSyntaxPattern = /(

)?\\[FileSafe[^\\]]*\\](<\\/p>)?/g;\n/**\n * Given an HTML string that includes substrings matching `FileSafeSyntaxPattern`,\n * replace occurences with ghost div element \n */\n\nconst expandedFileSafeSyntax = html => {\n return html.replace(FileSafeSyntaxPattern, match => {\n return fileSafeSyntaxToHtmlElement(match);\n });\n};\nconst removeFileSafeSyntaxFromHtml = html => {\n return html.replace(FileSafeSyntaxPattern, _match => {\n return '';\n });\n};\nconst insertionSyntaxForFileDescriptor = descriptor => {\n return \"[FileSafe:\".concat(descriptor.uuid, \":\").concat(descriptor.content.fileName, \"]\");\n};\nconst fileSafeSyntaxToHtmlElement = syntax => {\n // Remove paragraph tags\n syntax = syntax.replace('

', '');\n syntax = syntax.replace('

', ''); // Remove brackets\n\n syntax = syntax.replace('[', '').replace(']', '');\n const components = syntax.split(':');\n const uuid = components[1];\n const name = components[2];\n const size = components[3];\n let sizeString = '';\n\n if (size) {\n const dimensions = size.split('x');\n sizeString = \"width=\".concat(dimensions[0], \" height=\").concat(dimensions[1]);\n }\n /**\n * We use a p tag here because if we try something custom, like `fileSafe` tag, the editor will automatically\n * wrap it in a p tag, causing littered p tags remaining in the plaintext representation.\n */\n\n\n return \"

\");\n};\n/**\n * Given a rendered HTML string, replace all items with [FileSafe:UUID] plaintext items.\n * Also, for any elements that have the 'ghost' attribute, remove it from the resulting string.\n */\n\nconst collapseFileSafeSyntax = html => {\n const domCopy = new DOMParser().parseFromString(html, 'text/html'); // Elements that have fscollapsable means they should be collapsed to plain syntax.\n\n const mediaElements = domCopy.querySelectorAll('*[fscollapsable]');\n\n for (const file of mediaElements) {\n const uuid = file.getAttribute('fsid');\n const name = file.getAttribute('fsname');\n const width = file.getAttribute('width');\n const height = file.getAttribute('height');\n const components = ['FileSafe', uuid, name];\n\n if (width && height) {\n const size = \"\".concat(width, \"x\").concat(height);\n components.push(size);\n }\n\n const fsSyntax = \"

[\".concat(components.join(':'), \"]

\");\n file.insertAdjacentHTML('afterend', fsSyntax);\n file.remove();\n } // Remove any remaining ghost elements.\n\n\n const ghosts = domCopy.querySelectorAll('*[ghost]');\n ghosts.forEach(ghost => ghost.remove());\n return domCopy.body.innerHTML;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvZmlsZVNhZmVIdG1sLnRzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vRWRpdG9yS2l0Ly4vc3JjL2ZpbGVTYWZlSHRtbC50cz8zNGY1Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZpbGVTYWZlRmlsZU1ldGFkYXRhID0ge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogUmVtb3ZlIG1hdGNoaW5nIDxwPiB0YWdzIGlmIHByZXNlbnQuXG4gKiBBbHNvIGNhcGFibGUgb2YgbWF0Y2hpbmcgYWRqYWNlbnQgW2ZzU3ludGF4XVtmc1N5bnRheF1cbiAqL1xuZXhwb3J0IGNvbnN0IEZpbGVTYWZlU3ludGF4UGF0dGVybiA9IC8oPHA+KT9cXFtGaWxlU2FmZVteXFxdXSpcXF0oPFxcL3A+KT8vZ1xuXG4vKipcbiAqIEdpdmVuIGFuIEhUTUwgc3RyaW5nIHRoYXQgaW5jbHVkZXMgc3Vic3RyaW5ncyBtYXRjaGluZyBgRmlsZVNhZmVTeW50YXhQYXR0ZXJuYCxcbiAqIHJlcGxhY2Ugb2NjdXJlbmNlcyB3aXRoIGdob3N0IGRpdiBlbGVtZW50IDxmaWxlU2FmZSB1dWlkPScxMjMnPlxuICovXG5leHBvcnQgY29uc3QgZXhwYW5kZWRGaWxlU2FmZVN5bnRheCA9IChodG1sOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gaHRtbC5yZXBsYWNlKEZpbGVTYWZlU3ludGF4UGF0dGVybiwgKG1hdGNoKSA9PiB7XG4gICAgcmV0dXJuIGZpbGVTYWZlU3ludGF4VG9IdG1sRWxlbWVudChtYXRjaClcbiAgfSlcbn1cblxuZXhwb3J0IGNvbnN0IHJlbW92ZUZpbGVTYWZlU3ludGF4RnJvbUh0bWwgPSAoaHRtbDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGh0bWwucmVwbGFjZShGaWxlU2FmZVN5bnRheFBhdHRlcm4sIChfbWF0Y2gpID0+IHtcbiAgICByZXR1cm4gJydcbiAgfSlcbn1cblxuZXhwb3J0IGNvbnN0IGluc2VydGlvblN5bnRheEZvckZpbGVEZXNjcmlwdG9yID0gKGRlc2NyaXB0b3I6IEZpbGVTYWZlRmlsZU1ldGFkYXRhKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGBbRmlsZVNhZmU6JHtkZXNjcmlwdG9yLnV1aWR9OiR7ZGVzY3JpcHRvci5jb250ZW50LmZpbGVOYW1lfV1gXG59XG5cbmV4cG9ydCBjb25zdCBmaWxlU2FmZVN5bnRheFRvSHRtbEVsZW1lbnQgPSAoc3ludGF4OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAvLyBSZW1vdmUgcGFyYWdyYXBoIHRhZ3NcbiAgc3ludGF4ID0gc3ludGF4LnJlcGxhY2UoJzxwPicsICcnKVxuICBzeW50YXggPSBzeW50YXgucmVwbGFjZSgnPC9wPicsICcnKVxuXG4gIC8vIFJlbW92ZSBicmFja2V0c1xuICBzeW50YXggPSBzeW50YXgucmVwbGFjZSgnWycsICcnKS5yZXBsYWNlKCddJywgJycpXG5cbiAgY29uc3QgY29tcG9uZW50cyA9IHN5bnRheC5zcGxpdCgnOicpXG4gIGNvbnN0IHV1aWQgPSBjb21wb25lbnRzWzFdXG4gIGNvbnN0IG5hbWUgPSBjb21wb25lbnRzWzJdXG4gIGNvbnN0IHNpemUgPSBjb21wb25lbnRzWzNdXG5cbiAgbGV0IHNpemVTdHJpbmcgPSAnJ1xuXG4gIGlmIChzaXplKSB7XG4gICAgY29uc3QgZGltZW5zaW9ucyA9IHNpemUuc3BsaXQoJ3gnKVxuICAgIHNpemVTdHJpbmcgPSBgd2lkdGg9JHtkaW1lbnNpb25zWzBdfSBoZWlnaHQ9JHtkaW1lbnNpb25zWzFdfWBcbiAgfVxuXG4gIC8qKlxuICAgKiBXZSB1c2UgYSBwIHRhZyBoZXJlIGJlY2F1c2UgaWYgd2UgdHJ5IHNvbWV0aGluZyBjdXN0b20sIGxpa2UgYGZpbGVTYWZlYCB0YWcsIHRoZSBlZGl0b3Igd2lsbCBhdXRvbWF0aWNhbGx5XG4gICAqIHdyYXAgaXQgaW4gYSBwIHRhZywgY2F1c2luZyBsaXR0ZXJlZCBwIHRhZ3MgcmVtYWluaW5nIGluIHRoZSBwbGFpbnRleHQgcmVwcmVzZW50YXRpb24uXG4gICAqL1xuICByZXR1cm4gYDxwIGZzcGxhY2Vob2xkZXI9dHJ1ZSBzdHlsZT0nZGlzcGxheTogbm9uZTsnIGZzY29sbGFwc2FibGU9dHJ1ZSBnaG9zdD10cnVlIGZzaWQ9JyR7dXVpZH0nIGZzbmFtZT0nJHtuYW1lfScgJHtzaXplU3RyaW5nfT48L3A+YFxufVxuXG4vKipcbiAqIEdpdmVuIGEgcmVuZGVyZWQgSFRNTCBzdHJpbmcsIHJlcGxhY2UgYWxsIDxmaWxlU2FmZT4gaXRlbXMgd2l0aCBbRmlsZVNhZmU6VVVJRF0gcGxhaW50ZXh0IGl0ZW1zLlxuICogQWxzbywgZm9yIGFueSBlbGVtZW50cyB0aGF0IGhhdmUgdGhlICdnaG9zdCcgYXR0cmlidXRlLCByZW1vdmUgaXQgZnJvbSB0aGUgcmVzdWx0aW5nIHN0cmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbGxhcHNlRmlsZVNhZmVTeW50YXggPSAoaHRtbDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgZG9tQ29weSA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoaHRtbCwgJ3RleHQvaHRtbCcpXG5cbiAgLy8gRWxlbWVudHMgdGhhdCBoYXZlIGZzY29sbGFwc2FibGUgbWVhbnMgdGhleSBzaG91bGQgYmUgY29sbGFwc2VkIHRvIHBsYWluIHN5bnRheC5cbiAgY29uc3QgbWVkaWFFbGVtZW50cyA9IGRvbUNvcHkucXVlcnlTZWxlY3RvckFsbCgnKltmc2NvbGxhcHNhYmxlXScpXG5cbiAgZm9yIChjb25zdCBmaWxlIG9mIG1lZGlhRWxlbWVudHMpIHtcbiAgICBjb25zdCB1dWlkID0gZmlsZS5nZXRBdHRyaWJ1dGUoJ2ZzaWQnKVxuICAgIGNvbnN0IG5hbWUgPSBmaWxlLmdldEF0dHJpYnV0ZSgnZnNuYW1lJylcbiAgICBjb25zdCB3aWR0aCA9IGZpbGUuZ2V0QXR0cmlidXRlKCd3aWR0aCcpXG4gICAgY29uc3QgaGVpZ2h0ID0gZmlsZS5nZXRBdHRyaWJ1dGUoJ2hlaWdodCcpXG5cbiAgICBjb25zdCBjb21wb25lbnRzID0gWydGaWxlU2FmZScsIHV1aWQsIG5hbWVdXG5cbiAgICBpZiAod2lkdGggJiYgaGVpZ2h0KSB7XG4gICAgICBjb25zdCBzaXplID0gYCR7d2lkdGh9eCR7aGVpZ2h0fWBcbiAgICAgIGNvbXBvbmVudHMucHVzaChzaXplKVxuICAgIH1cblxuICAgIGNvbnN0IGZzU3ludGF4ID0gYDxwPlske2NvbXBvbmVudHMuam9pbignOicpfV08L3A+YFxuICAgIGZpbGUuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlcmVuZCcsIGZzU3ludGF4KVxuICAgIGZpbGUucmVtb3ZlKClcbiAgfVxuXG4gIC8vIFJlbW92ZSBhbnkgcmVtYWluaW5nIGdob3N0IGVsZW1lbnRzLlxuICBjb25zdCBnaG9zdHMgPSBkb21Db3B5LnF1ZXJ5U2VsZWN0b3JBbGwoJypbZ2hvc3RdJylcbiAgZ2hvc3RzLmZvckVhY2goKGdob3N0KSA9PiBnaG9zdC5yZW1vdmUoKSlcblxuICByZXR1cm4gZG9tQ29weS5ib2R5LmlubmVySFRNTFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/fileSafeHtml.ts\n")},"./src/textExpander.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ TextExpander)\n/* harmony export */ });\nclass TextExpander {\n constructor(options) {\n this.options = options;\n }\n\n onKeyUp(_ref) {\n let {\n isEnter,\n isPaste,\n isSpace\n } = _ref;\n\n if (isEnter || isPaste || isSpace) {\n this.searchPatterns({\n searchPreviousLine: isEnter !== null && isEnter !== void 0 ? isEnter : false\n });\n }\n }\n\n searchPatterns() {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n searchPreviousLine: false\n };\n const text = params.searchPreviousLine ? this.options.getPreviousLineText() : this.options.getCurrentLineText();\n\n for (const pattern of this.options.patterns) {\n const match = pattern.regex.exec(text);\n if (!match) continue;\n const matchedText = match[0];\n\n if (matchedText) {\n const replaceWith = pattern.callback(matchedText);\n this.replaceSelection(pattern.regex, replaceWith, params.searchPreviousLine);\n }\n }\n }\n\n replaceSelection(regex, replacement, searchPreviousLine) {\n var _this$options, _this$options2;\n\n if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.beforeExpand) {\n this.options.beforeExpand();\n }\n\n this.options.replaceText({\n regex,\n replacement,\n searchPreviousLine\n });\n\n if ((_this$options2 = this.options) !== null && _this$options2 !== void 0 && _this$options2.afterExpand) {\n var _this$options3;\n\n (_this$options3 = this.options) === null || _this$options3 === void 0 ? void 0 : _this$options3.afterExpand();\n }\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdGV4dEV4cGFuZGVyLnRzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vRWRpdG9yS2l0Ly4vc3JjL3RleHRFeHBhbmRlci50cz80NTNhIl0sInNvdXJjZXNDb250ZW50IjpbInR5cGUgUGF0dGVybiA9IHtcbiAgcmVnZXg6IFJlZ0V4cFxuICBjYWxsYmFjazogKG1hdGNoZWRUZXh0OiBzdHJpbmcpID0+IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBUZXh0RXhwYW5kZXJPcHRpb25zID0ge1xuICBwYXR0ZXJuczogUGF0dGVybltdXG4gIGJlZm9yZUV4cGFuZD86ICgpID0+IHZvaWRcbiAgYWZ0ZXJFeHBhbmQ/OiAoKSA9PiB2b2lkXG4gIGdldEN1cnJlbnRMaW5lVGV4dDogKCkgPT4gc3RyaW5nXG4gIGdldFByZXZpb3VzTGluZVRleHQ6ICgpID0+IHN0cmluZ1xuICByZXBsYWNlVGV4dDogKHsgcmVnZXg6IFJlZ0V4cCwgcmVwbGFjZW1lbnQ6IHN0cmluZywgc2VhcmNoUHJldmlvdXNMaW5lOiBib29sZWFuIH0pID0+IHN0cmluZ1xufVxuXG50eXBlIE9uS2V5VXBQYXJhbXMgPSB7XG4gIGlzRW50ZXI/OiBib29sZWFuXG4gIGlzUGFzdGU/OiBib29sZWFuXG4gIGlzU3BhY2U/OiBib29sZWFuXG59XG5cbnR5cGUgU2VhcmNoUGF0dGVybnNQYXJhbXMgPSB7XG4gIHNlYXJjaFByZXZpb3VzTGluZTogYm9vbGVhblxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZXh0RXhwYW5kZXIge1xuICBjb25zdHJ1Y3RvciAocHJpdmF0ZSBvcHRpb25zOiBUZXh0RXhwYW5kZXJPcHRpb25zKSB7IH1cblxuICBwdWJsaWMgb25LZXlVcCAoeyBpc0VudGVyLCBpc1Bhc3RlLCBpc1NwYWNlIH06IE9uS2V5VXBQYXJhbXMpOiB2b2lkIHtcbiAgICBpZiAoaXNFbnRlciB8fCBpc1Bhc3RlIHx8IGlzU3BhY2UpIHtcbiAgICAgIHRoaXMuc2VhcmNoUGF0dGVybnMoe1xuICAgICAgICBzZWFyY2hQcmV2aW91c0xpbmU6IGlzRW50ZXIgPz8gZmFsc2VcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlYXJjaFBhdHRlcm5zIChwYXJhbXM6IFNlYXJjaFBhdHRlcm5zUGFyYW1zID0geyBzZWFyY2hQcmV2aW91c0xpbmU6IGZhbHNlIH0pOiB2b2lkIHtcbiAgICBjb25zdCB0ZXh0ID0gKHBhcmFtcy5zZWFyY2hQcmV2aW91c0xpbmUpID9cbiAgICAgIHRoaXMub3B0aW9ucy5nZXRQcmV2aW91c0xpbmVUZXh0KCkgOiB0aGlzLm9wdGlvbnMuZ2V0Q3VycmVudExpbmVUZXh0KClcblxuICAgIGZvciAoY29uc3QgcGF0dGVybiBvZiB0aGlzLm9wdGlvbnMucGF0dGVybnMpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gcGF0dGVybi5yZWdleC5leGVjKHRleHQpXG4gICAgICBpZiAoIW1hdGNoKSBjb250aW51ZVxuXG4gICAgICBjb25zdCBtYXRjaGVkVGV4dCA9IG1hdGNoWzBdXG5cbiAgICAgIGlmIChtYXRjaGVkVGV4dCkge1xuICAgICAgICBjb25zdCByZXBsYWNlV2l0aCA9IHBhdHRlcm4uY2FsbGJhY2sobWF0Y2hlZFRleHQpXG4gICAgICAgIHRoaXMucmVwbGFjZVNlbGVjdGlvbihwYXR0ZXJuLnJlZ2V4LCByZXBsYWNlV2l0aCwgcGFyYW1zLnNlYXJjaFByZXZpb3VzTGluZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2VTZWxlY3Rpb24gKHJlZ2V4OiBSZWdFeHAsIHJlcGxhY2VtZW50OiBzdHJpbmcsIHNlYXJjaFByZXZpb3VzTGluZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wdGlvbnM/LmJlZm9yZUV4cGFuZCkge1xuICAgICAgdGhpcy5vcHRpb25zLmJlZm9yZUV4cGFuZCgpXG4gICAgfVxuXG4gICAgdGhpcy5vcHRpb25zLnJlcGxhY2VUZXh0KHtcbiAgICAgIHJlZ2V4LFxuICAgICAgcmVwbGFjZW1lbnQsXG4gICAgICBzZWFyY2hQcmV2aW91c0xpbmVcbiAgICB9KVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucz8uYWZ0ZXJFeHBhbmQpIHtcbiAgICAgIHRoaXMub3B0aW9ucz8uYWZ0ZXJFeHBhbmQoKVxuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUF3QkE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFDQTtBQUtBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBM0NBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/textExpander.ts\n')},"./src/utils.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "htmlToText": () => (/* binding */ htmlToText),\n/* harmony export */ "truncateString": () => (/* binding */ truncateString),\n/* harmony export */ "sleep": () => (/* binding */ sleep)\n/* harmony export */ });\nconst htmlToText = html => {\n const tmpDocument = document.implementation.createHTMLDocument().body;\n tmpDocument.innerHTML = html;\n return tmpDocument.textContent || tmpDocument.innerText || \'\';\n};\nconst truncateString = function truncateString(text) {\n let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 90;\n\n if (text.length <= limit) {\n return text;\n }\n\n return text.substring(0, limit) + \'...\';\n};\nconst sleep = async seconds => {\n await new Promise(resolve => setTimeout(resolve, seconds * 1000));\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdXRpbHMudHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9FZGl0b3JLaXQvLi9zcmMvdXRpbHMudHM/N2RkYSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgaHRtbFRvVGV4dCA9IChodG1sOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0bXBEb2N1bWVudCA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpLmJvZHlcbiAgdG1wRG9jdW1lbnQuaW5uZXJIVE1MID0gaHRtbFxuICByZXR1cm4gdG1wRG9jdW1lbnQudGV4dENvbnRlbnQgfHwgdG1wRG9jdW1lbnQuaW5uZXJUZXh0IHx8ICcnXG59XG5cbmV4cG9ydCBjb25zdCB0cnVuY2F0ZVN0cmluZyA9ICh0ZXh0OiBzdHJpbmcsIGxpbWl0ID0gOTApOiBzdHJpbmcgPT4ge1xuICBpZiAodGV4dC5sZW5ndGggPD0gbGltaXQpIHtcbiAgICByZXR1cm4gdGV4dFxuICB9XG4gIHJldHVybiB0ZXh0LnN1YnN0cmluZygwLCBsaW1pdCkgKyAnLi4uJ1xufVxuXG5leHBvcnQgY29uc3Qgc2xlZXAgPSBhc3luYyAoc2Vjb25kczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCBzZWNvbmRzICogMTAwMCkpXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/utils.ts\n')},"filesafe-js":e=>{"use strict";e.exports=__WEBPACK_EXTERNAL_MODULE_filesafe_js__}},__webpack_module_cache__={},leafPrototypes,getProto;function __nested_webpack_require_120344__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](n,n.exports,__nested_webpack_require_120344__),n.exports}__nested_webpack_require_120344__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __nested_webpack_require_120344__.d(t,{a:t}),t},getProto=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,__nested_webpack_require_120344__.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var n=Object.create(null);__nested_webpack_require_120344__.r(n);var r={};leafPrototypes=leafPrototypes||[null,getProto({}),getProto([]),getProto(getProto)];for(var o=2&t&&e;"object"==typeof o&&!~leafPrototypes.indexOf(o);o=getProto(o))Object.getOwnPropertyNames(o).forEach((t=>r[t]=()=>e[t]));return r.default=()=>e,__nested_webpack_require_120344__.d(n,r),n},__nested_webpack_require_120344__.d=(e,t)=>{for(var n in t)__nested_webpack_require_120344__.o(t,n)&&!__nested_webpack_require_120344__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__nested_webpack_require_120344__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__nested_webpack_require_120344__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__nested_webpack_require_120344__("./src/editorKit.ts");return __webpack_exports__=__webpack_exports__.default,__webpack_exports__})()},module.exports=t(__webpack_require__(1111))},7757:(e,t,n)=>{e.exports=n(5666)},597:(e,t,n)=>{"use strict";var r,o=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["fill","width","height","style"]);return i.default.createElement("svg",o({viewBox:"0 0 24 24",style:o({fill:n,width:a,height:c},u)},d),i.default.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}},3891:(e,t,n)=>{"use strict";var r,o=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["fill","width","height","style"]);return i.default.createElement("svg",o({viewBox:"0 0 24 24",style:o({fill:n,width:a,height:c},u)},d),i.default.createElement("path",{d:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"}))}},8679:(e,t,n)=>{"use strict";var r=n(9864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function c(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var s=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,b=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(b){var o=f(n);o&&o!==b&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var l=c(t),g=c(n),h=0;h{"use strict";function n(e){return"object"!=typeof e||"toString"in e?e:Object.prototype.toString.call(e).slice(8,-1)}Object.defineProperty(t,"__esModule",{value:!0});var r="object"==typeof process&&!0;function o(e,t){if(!e){if(r)throw new Error("Invariant failed");throw new Error(t())}}t.invariant=o;var a=Object.prototype.hasOwnProperty,i=Array.prototype.splice,l=Object.prototype.toString;function c(e){return l.call(e).slice(8,-1)}var s=Object.assign||function(e,t){return u(t).forEach((function(n){a.call(t,n)&&(e[n]=t[n])})),e},u="function"==typeof Object.getOwnPropertySymbols?function(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.keys(e)};function d(e){return Array.isArray(e)?s(e.constructor(e.length),e):"Map"===c(e)?new Map(e):"Set"===c(e)?new Set(e):e&&"object"==typeof e?s(Object.create(Object.getPrototypeOf(e)),e):e}var p=function(){function e(){this.commands=s({},f),this.update=this.update.bind(this),this.update.extend=this.extend=this.extend.bind(this),this.update.isEquals=function(e,t){return e===t},this.update.newContext=function(){return(new e).update}}return Object.defineProperty(e.prototype,"isEquals",{get:function(){return this.update.isEquals},set:function(e){this.update.isEquals=e},enumerable:!0,configurable:!0}),e.prototype.extend=function(e,t){this.commands[e]=t},e.prototype.update=function(e,t){var n=this,r="function"==typeof t?{$apply:t}:t;Array.isArray(e)&&Array.isArray(r)||o(!Array.isArray(r),(function(){return"update(): You provided an invalid spec to update(). The spec may not contain an array except as the value of $set, $push, $unshift, $splice or any custom command allowing an array value."})),o("object"==typeof r&&null!==r,(function(){return"update(): You provided an invalid spec to update(). The spec and every included key path must be plain objects containing one of the following commands: "+Object.keys(n.commands).join(", ")+"."}));var i=e;return u(r).forEach((function(t){if(a.call(n.commands,t)){var o=e===i;i=n.commands[t](r[t],i,r,e),o&&n.isEquals(i,e)&&(i=e)}else{var l="Map"===c(e)?n.update(e.get(t),r[t]):n.update(e[t],r[t]),s="Map"===c(i)?i.get(t):i[t];n.isEquals(l,s)&&(void 0!==l||a.call(e,t))||(i===e&&(i=d(e)),"Map"===c(i)?i.set(t,l):i[t]=l)}})),i},e}();t.Context=p;var f={$push:function(e,t,n){return g(t,n,"$push"),e.length?t.concat(e):t},$unshift:function(e,t,n){return g(t,n,"$unshift"),e.length?e.concat(t):t},$splice:function(e,t,r,a){return function(e,t){o(Array.isArray(e),(function(){return"Expected $splice target to be an array; got "+n(e)})),m(t.$splice)}(t,r),e.forEach((function(e){m(e),t===a&&e.length&&(t=d(a)),i.apply(t,e)})),t},$set:function(e,t,n){return function(e){o(1===Object.keys(e).length,(function(){return"Cannot have more than one key in an object with $set"}))}(n),e},$toggle:function(e,t){h(e,"$toggle");var n=e.length?d(t):t;return e.forEach((function(e){n[e]=!t[e]})),n},$unset:function(e,t,n,r){return h(e,"$unset"),e.forEach((function(e){Object.hasOwnProperty.call(t,e)&&(t===r&&(t=d(r)),delete t[e])})),t},$add:function(e,t,n,r){return v(t,"$add"),h(e,"$add"),"Map"===c(t)?e.forEach((function(e){var n=e[0],o=e[1];t===r&&t.get(n)!==o&&(t=d(r)),t.set(n,o)})):e.forEach((function(e){t!==r||t.has(e)||(t=d(r)),t.add(e)})),t},$remove:function(e,t,n,r){return v(t,"$remove"),h(e,"$remove"),e.forEach((function(e){t===r&&t.has(e)&&(t=d(r)),t.delete(e)})),t},$merge:function(e,t,r,a){var i,l;return i=t,o((l=e)&&"object"==typeof l,(function(){return"update(): $merge expects a spec of type 'object'; got "+n(l)})),o(i&&"object"==typeof i,(function(){return"update(): $merge expects a target of type 'object'; got "+n(i)})),u(e).forEach((function(n){e[n]!==t[n]&&(t===a&&(t=d(a)),t[n]=e[n])})),t},$apply:function(e,t){var r;return o("function"==typeof(r=e),(function(){return"update(): expected spec of $apply to be a function; got "+n(r)+"."})),e(t)}},b=new p;function g(e,t,r){o(Array.isArray(e),(function(){return"update(): expected target of "+n(r)+" to be an array; got "+n(e)+"."})),h(t[r],r)}function h(e,t){o(Array.isArray(e),(function(){return"update(): expected spec of "+n(t)+" to be an array; got "+n(e)+". Did you forget to wrap your parameter in an array?"}))}function m(e){o(Array.isArray(e),(function(){return"update(): expected spec of $splice to be an array of arrays; got "+n(e)+". Did you forget to wrap your parameters in an array?"}))}function v(e,t){var r=c(e);o("Map"===r||"Set"===r,(function(){return"update(): "+n(t)+" expects a target of type Set or Map; got "+n(r)}))}t.isEquals=b.update.isEquals,t.extend=b.extend,t.default=b.update,t.default.default=e.exports=s(t.default,t)},5616:function(e){var t;"undefined"!=typeof self&&self,t=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){this.width=t,this.height=e.length/t,this.data=e}return e.createEmpty=function(t,n){return new e(new Uint8ClampedArray(t*n),t)},e.prototype.get=function(e,t){return!(e<0||e>=this.width||t<0||t>=this.height||!this.data[t*this.width+e])},e.prototype.set=function(e,t,n){this.data[t*this.width+e]=n?1:0},e.prototype.setRegion=function(e,t,n,r,o){for(var a=t;a=this.size&&(o=(o^this.primitive)&this.size-1);for(a=0;a1&&0===t[0]){for(var r=1;ra.length&&(o=(n=[a,o])[0],a=n[1]);for(var i=new Uint8ClampedArray(a.length),l=a.length-o.length,c=0;cn?n:e}var a=function(){function e(e,t){this.width=e,this.data=new Uint8ClampedArray(e*t)}return e.prototype.get=function(e,t){return this.data[t*this.width+e]},e.prototype.set=function(e,t,n){this.data[t*this.width+e]=n},e}();t.binarize=function(e,t,n,i){if(e.length!==t*n*4)throw new Error("Malformed data passed to binarizer.");for(var l=new a(t,n),c=0;c0&&m>0)){var I=(g.get(m,h-1)+2*g.get(m-1,h)+g.get(m-1,h-1))/4;y6&&(n.setRegion(t-11,0,3,6,!0),n.setRegion(0,t-11,6,3,!0)),n}(t),l=[],s=0,d=0,p=!0,f=a-1;f>0;f-=2){6===f&&f--;for(var b=0;b=0;o--)for(var a=t-9;a>=t-11;a--)r=c(e.get(a,o),r);var s=0;for(a=5;a>=0;a--)for(o=t-9;o>=t-11;o--)s=c(e.get(a,o),s);for(var u,d=1/0,p=0,f=i.VERSIONS;p=0;r--)6!==r&&(t=c(e.get(8,r),t));var o=e.height,a=0;for(r=o-1;r>=o-7;r--)a=c(e.get(8,r),a);for(n=o-8;n1){var u=r.ecBlocks[0].numBlocks,d=r.ecBlocks[1].numBlocks;for(l=0;l0;)for(var p=0,f=o;p=3;){if((s=e.readBits(10))>=1e3)throw new Error("Invalid numeric value above 999");var i=Math.floor(s/100),l=Math.floor(s/10)%10,c=s%10;n.push(48+i,48+l,48+c),r+=i.toString()+l.toString()+c.toString(),a-=3}if(2===a){if((s=e.readBits(7))>=100)throw new Error("Invalid numeric value above 99");i=Math.floor(s/10),l=s%10,n.push(48+i,48+l),r+=i.toString()+l.toString()}else if(1===a){var s;if((s=e.readBits(4))>=10)throw new Error("Invalid numeric value above 9");n.push(48+s),r+=s.toString()}return{bytes:n,text:r}}!function(e){e.Numeric="numeric",e.Alphanumeric="alphanumeric",e.Byte="byte",e.Kanji="kanji",e.ECI="eci"}(r=t.Mode||(t.Mode={})),function(e){e[e.Terminator=0]="Terminator",e[e.Numeric=1]="Numeric",e[e.Alphanumeric=2]="Alphanumeric",e[e.Byte=4]="Byte",e[e.Kanji=8]="Kanji",e[e.ECI=7]="ECI"}(o||(o={}));var c=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function s(e,t){for(var n=[],r="",o=[9,11,13][t],a=e.readBits(o);a>=2;){var i=e.readBits(11),l=Math.floor(i/45),s=i%45;n.push(c[l].charCodeAt(0),c[s].charCodeAt(0)),r+=c[l]+c[s],a-=2}return 1===a&&(l=e.readBits(6),n.push(c[l].charCodeAt(0)),r+=c[l]),{bytes:n,text:r}}function u(e,t){for(var n=[],r="",o=[8,16,16][t],a=e.readBits(o),i=0;i>8,255&s),r+=String.fromCharCode(i.shiftJISTable[s])}return{bytes:n,text:r}}t.decode=function(e,t){for(var n,i,c,p,f=new a.BitStream(e),b=t<=9?0:t<=26?1:2,g={text:"",bytes:[],chunks:[]};f.available()>=4;){var h=f.readBits(4);if(h===o.Terminator)return g;if(h===o.ECI)0===f.readBits(1)?g.chunks.push({type:r.ECI,assignmentNumber:f.readBits(7)}):0===f.readBits(1)?g.chunks.push({type:r.ECI,assignmentNumber:f.readBits(14)}):0===f.readBits(1)?g.chunks.push({type:r.ECI,assignmentNumber:f.readBits(21)}):g.chunks.push({type:r.ECI,assignmentNumber:-1});else if(h===o.Numeric){var m=l(f,b);g.text+=m.text,(n=g.bytes).push.apply(n,m.bytes),g.chunks.push({type:r.Numeric,text:m.text})}else if(h===o.Alphanumeric){var v=s(f,b);g.text+=v.text,(i=g.bytes).push.apply(i,v.bytes),g.chunks.push({type:r.Alphanumeric,text:v.text})}else if(h===o.Byte){var y=u(f,b);g.text+=y.text,(c=g.bytes).push.apply(c,y.bytes),g.chunks.push({type:r.Byte,bytes:y.bytes,text:y.text})}else if(h===o.Kanji){var B=d(f,b);g.text+=B.text,(p=g.bytes).push.apply(p,B.bytes),g.chunks.push({type:r.Kanji,bytes:B.bytes,text:B.text})}}if(0===f.available()||0===f.readBits(f.available()))return g}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.byteOffset=0,this.bitOffset=0,this.bytes=e}return e.prototype.readBits=function(e){if(e<1||e>32||e>this.available())throw new Error("Cannot read "+e.toString()+" bits");var t=0;if(this.bitOffset>0){var n=8-this.bitOffset,r=e>8-r<<(a=n-r);t=(this.bytes[this.byteOffset]&o)>>a,e-=r,this.bitOffset+=r,8===this.bitOffset&&(this.bitOffset=0,this.byteOffset++)}if(e>0){for(;e>=8;)t=t<<8|255&this.bytes[this.byteOffset],this.byteOffset++,e-=8;var a;if(e>0)o=255>>(a=8-e)<>a,this.bitOffset+=e}return t},e.prototype.available=function(){return 8*(this.bytes.length-this.byteOffset)-this.bitOffset},e}();t.BitStream=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shiftJISTable={32:32,33:33,34:34,35:35,36:36,37:37,38:38,39:39,40:40,41:41,42:42,43:43,44:44,45:45,46:46,47:47,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,58:58,59:59,60:60,61:61,62:62,63:63,64:64,65:65,66:66,67:67,68:68,69:69,70:70,71:71,72:72,73:73,74:74,75:75,76:76,77:77,78:78,79:79,80:80,81:81,82:82,83:83,84:84,85:85,86:86,87:87,88:88,89:89,90:90,91:91,92:165,93:93,94:94,95:95,96:96,97:97,98:98,99:99,100:100,101:101,102:102,103:103,104:104,105:105,106:106,107:107,108:108,109:109,110:110,111:111,112:112,113:113,114:114,115:115,116:116,117:117,118:118,119:119,120:120,121:121,122:122,123:123,124:124,125:125,126:8254,33088:12288,33089:12289,33090:12290,33091:65292,33092:65294,33093:12539,33094:65306,33095:65307,33096:65311,33097:65281,33098:12443,33099:12444,33100:180,33101:65344,33102:168,33103:65342,33104:65507,33105:65343,33106:12541,33107:12542,33108:12445,33109:12446,33110:12291,33111:20189,33112:12293,33113:12294,33114:12295,33115:12540,33116:8213,33117:8208,33118:65295,33119:92,33120:12316,33121:8214,33122:65372,33123:8230,33124:8229,33125:8216,33126:8217,33127:8220,33128:8221,33129:65288,33130:65289,33131:12308,33132:12309,33133:65339,33134:65341,33135:65371,33136:65373,33137:12296,33138:12297,33139:12298,33140:12299,33141:12300,33142:12301,33143:12302,33144:12303,33145:12304,33146:12305,33147:65291,33148:8722,33149:177,33150:215,33152:247,33153:65309,33154:8800,33155:65308,33156:65310,33157:8806,33158:8807,33159:8734,33160:8756,33161:9794,33162:9792,33163:176,33164:8242,33165:8243,33166:8451,33167:65509,33168:65284,33169:162,33170:163,33171:65285,33172:65283,33173:65286,33174:65290,33175:65312,33176:167,33177:9734,33178:9733,33179:9675,33180:9679,33181:9678,33182:9671,33183:9670,33184:9633,33185:9632,33186:9651,33187:9650,33188:9661,33189:9660,33190:8251,33191:12306,33192:8594,33193:8592,33194:8593,33195:8595,33196:12307,33208:8712,33209:8715,33210:8838,33211:8839,33212:8834,33213:8835,33214:8746,33215:8745,33224:8743,33225:8744,33226:172,33227:8658,33228:8660,33229:8704,33230:8707,33242:8736,33243:8869,33244:8978,33245:8706,33246:8711,33247:8801,33248:8786,33249:8810,33250:8811,33251:8730,33252:8765,33253:8733,33254:8757,33255:8747,33256:8748,33264:8491,33265:8240,33266:9839,33267:9837,33268:9834,33269:8224,33270:8225,33271:182,33276:9711,33359:65296,33360:65297,33361:65298,33362:65299,33363:65300,33364:65301,33365:65302,33366:65303,33367:65304,33368:65305,33376:65313,33377:65314,33378:65315,33379:65316,33380:65317,33381:65318,33382:65319,33383:65320,33384:65321,33385:65322,33386:65323,33387:65324,33388:65325,33389:65326,33390:65327,33391:65328,33392:65329,33393:65330,33394:65331,33395:65332,33396:65333,33397:65334,33398:65335,33399:65336,33400:65337,33401:65338,33409:65345,33410:65346,33411:65347,33412:65348,33413:65349,33414:65350,33415:65351,33416:65352,33417:65353,33418:65354,33419:65355,33420:65356,33421:65357,33422:65358,33423:65359,33424:65360,33425:65361,33426:65362,33427:65363,33428:65364,33429:65365,33430:65366,33431:65367,33432:65368,33433:65369,33434:65370,33439:12353,33440:12354,33441:12355,33442:12356,33443:12357,33444:12358,33445:12359,33446:12360,33447:12361,33448:12362,33449:12363,33450:12364,33451:12365,33452:12366,33453:12367,33454:12368,33455:12369,33456:12370,33457:12371,33458:12372,33459:12373,33460:12374,33461:12375,33462:12376,33463:12377,33464:12378,33465:12379,33466:12380,33467:12381,33468:12382,33469:12383,33470:12384,33471:12385,33472:12386,33473:12387,33474:12388,33475:12389,33476:12390,33477:12391,33478:12392,33479:12393,33480:12394,33481:12395,33482:12396,33483:12397,33484:12398,33485:12399,33486:12400,33487:12401,33488:12402,33489:12403,33490:12404,33491:12405,33492:12406,33493:12407,33494:12408,33495:12409,33496:12410,33497:12411,33498:12412,33499:12413,33500:12414,33501:12415,33502:12416,33503:12417,33504:12418,33505:12419,33506:12420,33507:12421,33508:12422,33509:12423,33510:12424,33511:12425,33512:12426,33513:12427,33514:12428,33515:12429,33516:12430,33517:12431,33518:12432,33519:12433,33520:12434,33521:12435,33600:12449,33601:12450,33602:12451,33603:12452,33604:12453,33605:12454,33606:12455,33607:12456,33608:12457,33609:12458,33610:12459,33611:12460,33612:12461,33613:12462,33614:12463,33615:12464,33616:12465,33617:12466,33618:12467,33619:12468,33620:12469,33621:12470,33622:12471,33623:12472,33624:12473,33625:12474,33626:12475,33627:12476,33628:12477,33629:12478,33630:12479,33631:12480,33632:12481,33633:12482,33634:12483,33635:12484,33636:12485,33637:12486,33638:12487,33639:12488,33640:12489,33641:12490,33642:12491,33643:12492,33644:12493,33645:12494,33646:12495,33647:12496,33648:12497,33649:12498,33650:12499,33651:12500,33652:12501,33653:12502,33654:12503,33655:12504,33656:12505,33657:12506,33658:12507,33659:12508,33660:12509,33661:12510,33662:12511,33664:12512,33665:12513,33666:12514,33667:12515,33668:12516,33669:12517,33670:12518,33671:12519,33672:12520,33673:12521,33674:12522,33675:12523,33676:12524,33677:12525,33678:12526,33679:12527,33680:12528,33681:12529,33682:12530,33683:12531,33684:12532,33685:12533,33686:12534,33695:913,33696:914,33697:915,33698:916,33699:917,33700:918,33701:919,33702:920,33703:921,33704:922,33705:923,33706:924,33707:925,33708:926,33709:927,33710:928,33711:929,33712:931,33713:932,33714:933,33715:934,33716:935,33717:936,33718:937,33727:945,33728:946,33729:947,33730:948,33731:949,33732:950,33733:951,33734:952,33735:953,33736:954,33737:955,33738:956,33739:957,33740:958,33741:959,33742:960,33743:961,33744:963,33745:964,33746:965,33747:966,33748:967,33749:968,33750:969,33856:1040,33857:1041,33858:1042,33859:1043,33860:1044,33861:1045,33862:1025,33863:1046,33864:1047,33865:1048,33866:1049,33867:1050,33868:1051,33869:1052,33870:1053,33871:1054,33872:1055,33873:1056,33874:1057,33875:1058,33876:1059,33877:1060,33878:1061,33879:1062,33880:1063,33881:1064,33882:1065,33883:1066,33884:1067,33885:1068,33886:1069,33887:1070,33888:1071,33904:1072,33905:1073,33906:1074,33907:1075,33908:1076,33909:1077,33910:1105,33911:1078,33912:1079,33913:1080,33914:1081,33915:1082,33916:1083,33917:1084,33918:1085,33920:1086,33921:1087,33922:1088,33923:1089,33924:1090,33925:1091,33926:1092,33927:1093,33928:1094,33929:1095,33930:1096,33931:1097,33932:1098,33933:1099,33934:1100,33935:1101,33936:1102,33937:1103,33951:9472,33952:9474,33953:9484,33954:9488,33955:9496,33956:9492,33957:9500,33958:9516,33959:9508,33960:9524,33961:9532,33962:9473,33963:9475,33964:9487,33965:9491,33966:9499,33967:9495,33968:9507,33969:9523,33970:9515,33971:9531,33972:9547,33973:9504,33974:9519,33975:9512,33976:9527,33977:9535,33978:9501,33979:9520,33980:9509,33981:9528,33982:9538,34975:20124,34976:21782,34977:23043,34978:38463,34979:21696,34980:24859,34981:25384,34982:23030,34983:36898,34984:33909,34985:33564,34986:31312,34987:24746,34988:25569,34989:28197,34990:26093,34991:33894,34992:33446,34993:39925,34994:26771,34995:22311,34996:26017,34997:25201,34998:23451,34999:22992,35e3:34427,35001:39156,35002:32098,35003:32190,35004:39822,35005:25110,35006:31903,35007:34999,35008:23433,35009:24245,35010:25353,35011:26263,35012:26696,35013:38343,35014:38797,35015:26447,35016:20197,35017:20234,35018:20301,35019:20381,35020:20553,35021:22258,35022:22839,35023:22996,35024:23041,35025:23561,35026:24799,35027:24847,35028:24944,35029:26131,35030:26885,35031:28858,35032:30031,35033:30064,35034:31227,35035:32173,35036:32239,35037:32963,35038:33806,35039:34915,35040:35586,35041:36949,35042:36986,35043:21307,35044:20117,35045:20133,35046:22495,35047:32946,35048:37057,35049:30959,35050:19968,35051:22769,35052:28322,35053:36920,35054:31282,35055:33576,35056:33419,35057:39983,35058:20801,35059:21360,35060:21693,35061:21729,35062:22240,35063:23035,35064:24341,35065:39154,35066:28139,35067:32996,35068:34093,35136:38498,35137:38512,35138:38560,35139:38907,35140:21515,35141:21491,35142:23431,35143:28879,35144:32701,35145:36802,35146:38632,35147:21359,35148:40284,35149:31418,35150:19985,35151:30867,35152:33276,35153:28198,35154:22040,35155:21764,35156:27421,35157:34074,35158:39995,35159:23013,35160:21417,35161:28006,35162:29916,35163:38287,35164:22082,35165:20113,35166:36939,35167:38642,35168:33615,35169:39180,35170:21473,35171:21942,35172:23344,35173:24433,35174:26144,35175:26355,35176:26628,35177:27704,35178:27891,35179:27945,35180:29787,35181:30408,35182:31310,35183:38964,35184:33521,35185:34907,35186:35424,35187:37613,35188:28082,35189:30123,35190:30410,35191:39365,35192:24742,35193:35585,35194:36234,35195:38322,35196:27022,35197:21421,35198:20870,35200:22290,35201:22576,35202:22852,35203:23476,35204:24310,35205:24616,35206:25513,35207:25588,35208:27839,35209:28436,35210:28814,35211:28948,35212:29017,35213:29141,35214:29503,35215:32257,35216:33398,35217:33489,35218:34199,35219:36960,35220:37467,35221:40219,35222:22633,35223:26044,35224:27738,35225:29989,35226:20985,35227:22830,35228:22885,35229:24448,35230:24540,35231:25276,35232:26106,35233:27178,35234:27431,35235:27572,35236:29579,35237:32705,35238:35158,35239:40236,35240:40206,35241:40644,35242:23713,35243:27798,35244:33659,35245:20740,35246:23627,35247:25014,35248:33222,35249:26742,35250:29281,35251:20057,35252:20474,35253:21368,35254:24681,35255:28201,35256:31311,35257:38899,35258:19979,35259:21270,35260:20206,35261:20309,35262:20285,35263:20385,35264:20339,35265:21152,35266:21487,35267:22025,35268:22799,35269:23233,35270:23478,35271:23521,35272:31185,35273:26247,35274:26524,35275:26550,35276:27468,35277:27827,35278:28779,35279:29634,35280:31117,35281:31166,35282:31292,35283:31623,35284:33457,35285:33499,35286:33540,35287:33655,35288:33775,35289:33747,35290:34662,35291:35506,35292:22057,35293:36008,35294:36838,35295:36942,35296:38686,35297:34442,35298:20420,35299:23784,35300:25105,35301:29273,35302:30011,35303:33253,35304:33469,35305:34558,35306:36032,35307:38597,35308:39187,35309:39381,35310:20171,35311:20250,35312:35299,35313:22238,35314:22602,35315:22730,35316:24315,35317:24555,35318:24618,35319:24724,35320:24674,35321:25040,35322:25106,35323:25296,35324:25913,35392:39745,35393:26214,35394:26800,35395:28023,35396:28784,35397:30028,35398:30342,35399:32117,35400:33445,35401:34809,35402:38283,35403:38542,35404:35997,35405:20977,35406:21182,35407:22806,35408:21683,35409:23475,35410:23830,35411:24936,35412:27010,35413:28079,35414:30861,35415:33995,35416:34903,35417:35442,35418:37799,35419:39608,35420:28012,35421:39336,35422:34521,35423:22435,35424:26623,35425:34510,35426:37390,35427:21123,35428:22151,35429:21508,35430:24275,35431:25313,35432:25785,35433:26684,35434:26680,35435:27579,35436:29554,35437:30906,35438:31339,35439:35226,35440:35282,35441:36203,35442:36611,35443:37101,35444:38307,35445:38548,35446:38761,35447:23398,35448:23731,35449:27005,35450:38989,35451:38990,35452:25499,35453:31520,35454:27179,35456:27263,35457:26806,35458:39949,35459:28511,35460:21106,35461:21917,35462:24688,35463:25324,35464:27963,35465:28167,35466:28369,35467:33883,35468:35088,35469:36676,35470:19988,35471:39993,35472:21494,35473:26907,35474:27194,35475:38788,35476:26666,35477:20828,35478:31427,35479:33970,35480:37340,35481:37772,35482:22107,35483:40232,35484:26658,35485:33541,35486:33841,35487:31909,35488:21e3,35489:33477,35490:29926,35491:20094,35492:20355,35493:20896,35494:23506,35495:21002,35496:21208,35497:21223,35498:24059,35499:21914,35500:22570,35501:23014,35502:23436,35503:23448,35504:23515,35505:24178,35506:24185,35507:24739,35508:24863,35509:24931,35510:25022,35511:25563,35512:25954,35513:26577,35514:26707,35515:26874,35516:27454,35517:27475,35518:27735,35519:28450,35520:28567,35521:28485,35522:29872,35523:29976,35524:30435,35525:30475,35526:31487,35527:31649,35528:31777,35529:32233,35530:32566,35531:32752,35532:32925,35533:33382,35534:33694,35535:35251,35536:35532,35537:36011,35538:36996,35539:37969,35540:38291,35541:38289,35542:38306,35543:38501,35544:38867,35545:39208,35546:33304,35547:20024,35548:21547,35549:23736,35550:24012,35551:29609,35552:30284,35553:30524,35554:23721,35555:32747,35556:36107,35557:38593,35558:38929,35559:38996,35560:39e3,35561:20225,35562:20238,35563:21361,35564:21916,35565:22120,35566:22522,35567:22855,35568:23305,35569:23492,35570:23696,35571:24076,35572:24190,35573:24524,35574:25582,35575:26426,35576:26071,35577:26082,35578:26399,35579:26827,35580:26820,35648:27231,35649:24112,35650:27589,35651:27671,35652:27773,35653:30079,35654:31048,35655:23395,35656:31232,35657:32e3,35658:24509,35659:35215,35660:35352,35661:36020,35662:36215,35663:36556,35664:36637,35665:39138,35666:39438,35667:39740,35668:20096,35669:20605,35670:20736,35671:22931,35672:23452,35673:25135,35674:25216,35675:25836,35676:27450,35677:29344,35678:30097,35679:31047,35680:32681,35681:34811,35682:35516,35683:35696,35684:25516,35685:33738,35686:38816,35687:21513,35688:21507,35689:21931,35690:26708,35691:27224,35692:35440,35693:30759,35694:26485,35695:40653,35696:21364,35697:23458,35698:33050,35699:34384,35700:36870,35701:19992,35702:20037,35703:20167,35704:20241,35705:21450,35706:21560,35707:23470,35708:24339,35709:24613,35710:25937,35712:26429,35713:27714,35714:27762,35715:27875,35716:28792,35717:29699,35718:31350,35719:31406,35720:31496,35721:32026,35722:31998,35723:32102,35724:26087,35725:29275,35726:21435,35727:23621,35728:24040,35729:25298,35730:25312,35731:25369,35732:28192,35733:34394,35734:35377,35735:36317,35736:37624,35737:28417,35738:31142,35739:39770,35740:20136,35741:20139,35742:20140,35743:20379,35744:20384,35745:20689,35746:20807,35747:31478,35748:20849,35749:20982,35750:21332,35751:21281,35752:21375,35753:21483,35754:21932,35755:22659,35756:23777,35757:24375,35758:24394,35759:24623,35760:24656,35761:24685,35762:25375,35763:25945,35764:27211,35765:27841,35766:29378,35767:29421,35768:30703,35769:33016,35770:33029,35771:33288,35772:34126,35773:37111,35774:37857,35775:38911,35776:39255,35777:39514,35778:20208,35779:20957,35780:23597,35781:26241,35782:26989,35783:23616,35784:26354,35785:26997,35786:29577,35787:26704,35788:31873,35789:20677,35790:21220,35791:22343,35792:24062,35793:37670,35794:26020,35795:27427,35796:27453,35797:29748,35798:31105,35799:31165,35800:31563,35801:32202,35802:33465,35803:33740,35804:34943,35805:35167,35806:35641,35807:36817,35808:37329,35809:21535,35810:37504,35811:20061,35812:20534,35813:21477,35814:21306,35815:29399,35816:29590,35817:30697,35818:33510,35819:36527,35820:39366,35821:39368,35822:39378,35823:20855,35824:24858,35825:34398,35826:21936,35827:31354,35828:20598,35829:23507,35830:36935,35831:38533,35832:20018,35833:27355,35834:37351,35835:23633,35836:23624,35904:25496,35905:31391,35906:27795,35907:38772,35908:36705,35909:31402,35910:29066,35911:38536,35912:31874,35913:26647,35914:32368,35915:26705,35916:37740,35917:21234,35918:21531,35919:34219,35920:35347,35921:32676,35922:36557,35923:37089,35924:21350,35925:34952,35926:31041,35927:20418,35928:20670,35929:21009,35930:20804,35931:21843,35932:22317,35933:29674,35934:22411,35935:22865,35936:24418,35937:24452,35938:24693,35939:24950,35940:24935,35941:25001,35942:25522,35943:25658,35944:25964,35945:26223,35946:26690,35947:28179,35948:30054,35949:31293,35950:31995,35951:32076,35952:32153,35953:32331,35954:32619,35955:33550,35956:33610,35957:34509,35958:35336,35959:35427,35960:35686,35961:36605,35962:38938,35963:40335,35964:33464,35965:36814,35966:39912,35968:21127,35969:25119,35970:25731,35971:28608,35972:38553,35973:26689,35974:20625,35975:27424,35976:27770,35977:28500,35978:31348,35979:32080,35980:34880,35981:35363,35982:26376,35983:20214,35984:20537,35985:20518,35986:20581,35987:20860,35988:21048,35989:21091,35990:21927,35991:22287,35992:22533,35993:23244,35994:24314,35995:25010,35996:25080,35997:25331,35998:25458,35999:26908,36e3:27177,36001:29309,36002:29356,36003:29486,36004:30740,36005:30831,36006:32121,36007:30476,36008:32937,36009:35211,36010:35609,36011:36066,36012:36562,36013:36963,36014:37749,36015:38522,36016:38997,36017:39443,36018:40568,36019:20803,36020:21407,36021:21427,36022:24187,36023:24358,36024:28187,36025:28304,36026:29572,36027:29694,36028:32067,36029:33335,36030:35328,36031:35578,36032:38480,36033:20046,36034:20491,36035:21476,36036:21628,36037:22266,36038:22993,36039:23396,36040:24049,36041:24235,36042:24359,36043:25144,36044:25925,36045:26543,36046:28246,36047:29392,36048:31946,36049:34996,36050:32929,36051:32993,36052:33776,36053:34382,36054:35463,36055:36328,36056:37431,36057:38599,36058:39015,36059:40723,36060:20116,36061:20114,36062:20237,36063:21320,36064:21577,36065:21566,36066:23087,36067:24460,36068:24481,36069:24735,36070:26791,36071:27278,36072:29786,36073:30849,36074:35486,36075:35492,36076:35703,36077:37264,36078:20062,36079:39881,36080:20132,36081:20348,36082:20399,36083:20505,36084:20502,36085:20809,36086:20844,36087:21151,36088:21177,36089:21246,36090:21402,36091:21475,36092:21521,36160:21518,36161:21897,36162:22353,36163:22434,36164:22909,36165:23380,36166:23389,36167:23439,36168:24037,36169:24039,36170:24055,36171:24184,36172:24195,36173:24218,36174:24247,36175:24344,36176:24658,36177:24908,36178:25239,36179:25304,36180:25511,36181:25915,36182:26114,36183:26179,36184:26356,36185:26477,36186:26657,36187:26775,36188:27083,36189:27743,36190:27946,36191:28009,36192:28207,36193:28317,36194:30002,36195:30343,36196:30828,36197:31295,36198:31968,36199:32005,36200:32024,36201:32094,36202:32177,36203:32789,36204:32771,36205:32943,36206:32945,36207:33108,36208:33167,36209:33322,36210:33618,36211:34892,36212:34913,36213:35611,36214:36002,36215:36092,36216:37066,36217:37237,36218:37489,36219:30783,36220:37628,36221:38308,36222:38477,36224:38917,36225:39321,36226:39640,36227:40251,36228:21083,36229:21163,36230:21495,36231:21512,36232:22741,36233:25335,36234:28640,36235:35946,36236:36703,36237:40633,36238:20811,36239:21051,36240:21578,36241:22269,36242:31296,36243:37239,36244:40288,36245:40658,36246:29508,36247:28425,36248:33136,36249:29969,36250:24573,36251:24794,36252:39592,36253:29403,36254:36796,36255:27492,36256:38915,36257:20170,36258:22256,36259:22372,36260:22718,36261:23130,36262:24680,36263:25031,36264:26127,36265:26118,36266:26681,36267:26801,36268:28151,36269:30165,36270:32058,36271:33390,36272:39746,36273:20123,36274:20304,36275:21449,36276:21766,36277:23919,36278:24038,36279:24046,36280:26619,36281:27801,36282:29811,36283:30722,36284:35408,36285:37782,36286:35039,36287:22352,36288:24231,36289:25387,36290:20661,36291:20652,36292:20877,36293:26368,36294:21705,36295:22622,36296:22971,36297:23472,36298:24425,36299:25165,36300:25505,36301:26685,36302:27507,36303:28168,36304:28797,36305:37319,36306:29312,36307:30741,36308:30758,36309:31085,36310:25998,36311:32048,36312:33756,36313:35009,36314:36617,36315:38555,36316:21092,36317:22312,36318:26448,36319:32618,36320:36001,36321:20916,36322:22338,36323:38442,36324:22586,36325:27018,36326:32948,36327:21682,36328:23822,36329:22524,36330:30869,36331:40442,36332:20316,36333:21066,36334:21643,36335:25662,36336:26152,36337:26388,36338:26613,36339:31364,36340:31574,36341:32034,36342:37679,36343:26716,36344:39853,36345:31545,36346:21273,36347:20874,36348:21047,36416:23519,36417:25334,36418:25774,36419:25830,36420:26413,36421:27578,36422:34217,36423:38609,36424:30352,36425:39894,36426:25420,36427:37638,36428:39851,36429:30399,36430:26194,36431:19977,36432:20632,36433:21442,36434:23665,36435:24808,36436:25746,36437:25955,36438:26719,36439:29158,36440:29642,36441:29987,36442:31639,36443:32386,36444:34453,36445:35715,36446:36059,36447:37240,36448:39184,36449:26028,36450:26283,36451:27531,36452:20181,36453:20180,36454:20282,36455:20351,36456:21050,36457:21496,36458:21490,36459:21987,36460:22235,36461:22763,36462:22987,36463:22985,36464:23039,36465:23376,36466:23629,36467:24066,36468:24107,36469:24535,36470:24605,36471:25351,36472:25903,36473:23388,36474:26031,36475:26045,36476:26088,36477:26525,36478:27490,36480:27515,36481:27663,36482:29509,36483:31049,36484:31169,36485:31992,36486:32025,36487:32043,36488:32930,36489:33026,36490:33267,36491:35222,36492:35422,36493:35433,36494:35430,36495:35468,36496:35566,36497:36039,36498:36060,36499:38604,36500:39164,36501:27503,36502:20107,36503:20284,36504:20365,36505:20816,36506:23383,36507:23546,36508:24904,36509:25345,36510:26178,36511:27425,36512:28363,36513:27835,36514:29246,36515:29885,36516:30164,36517:30913,36518:31034,36519:32780,36520:32819,36521:33258,36522:33940,36523:36766,36524:27728,36525:40575,36526:24335,36527:35672,36528:40235,36529:31482,36530:36600,36531:23437,36532:38635,36533:19971,36534:21489,36535:22519,36536:22833,36537:23241,36538:23460,36539:24713,36540:28287,36541:28422,36542:30142,36543:36074,36544:23455,36545:34048,36546:31712,36547:20594,36548:26612,36549:33437,36550:23649,36551:34122,36552:32286,36553:33294,36554:20889,36555:23556,36556:25448,36557:36198,36558:26012,36559:29038,36560:31038,36561:32023,36562:32773,36563:35613,36564:36554,36565:36974,36566:34503,36567:37034,36568:20511,36569:21242,36570:23610,36571:26451,36572:28796,36573:29237,36574:37196,36575:37320,36576:37675,36577:33509,36578:23490,36579:24369,36580:24825,36581:20027,36582:21462,36583:23432,36584:25163,36585:26417,36586:27530,36587:29417,36588:29664,36589:31278,36590:33131,36591:36259,36592:37202,36593:39318,36594:20754,36595:21463,36596:21610,36597:23551,36598:25480,36599:27193,36600:32172,36601:38656,36602:22234,36603:21454,36604:21608,36672:23447,36673:23601,36674:24030,36675:20462,36676:24833,36677:25342,36678:27954,36679:31168,36680:31179,36681:32066,36682:32333,36683:32722,36684:33261,36685:33311,36686:33936,36687:34886,36688:35186,36689:35728,36690:36468,36691:36655,36692:36913,36693:37195,36694:37228,36695:38598,36696:37276,36697:20160,36698:20303,36699:20805,36700:21313,36701:24467,36702:25102,36703:26580,36704:27713,36705:28171,36706:29539,36707:32294,36708:37325,36709:37507,36710:21460,36711:22809,36712:23487,36713:28113,36714:31069,36715:32302,36716:31899,36717:22654,36718:29087,36719:20986,36720:34899,36721:36848,36722:20426,36723:23803,36724:26149,36725:30636,36726:31459,36727:33308,36728:39423,36729:20934,36730:24490,36731:26092,36732:26991,36733:27529,36734:28147,36736:28310,36737:28516,36738:30462,36739:32020,36740:24033,36741:36981,36742:37255,36743:38918,36744:20966,36745:21021,36746:25152,36747:26257,36748:26329,36749:28186,36750:24246,36751:32210,36752:32626,36753:26360,36754:34223,36755:34295,36756:35576,36757:21161,36758:21465,36759:22899,36760:24207,36761:24464,36762:24661,36763:37604,36764:38500,36765:20663,36766:20767,36767:21213,36768:21280,36769:21319,36770:21484,36771:21736,36772:21830,36773:21809,36774:22039,36775:22888,36776:22974,36777:23100,36778:23477,36779:23558,36780:23567,36781:23569,36782:23578,36783:24196,36784:24202,36785:24288,36786:24432,36787:25215,36788:25220,36789:25307,36790:25484,36791:25463,36792:26119,36793:26124,36794:26157,36795:26230,36796:26494,36797:26786,36798:27167,36799:27189,36800:27836,36801:28040,36802:28169,36803:28248,36804:28988,36805:28966,36806:29031,36807:30151,36808:30465,36809:30813,36810:30977,36811:31077,36812:31216,36813:31456,36814:31505,36815:31911,36816:32057,36817:32918,36818:33750,36819:33931,36820:34121,36821:34909,36822:35059,36823:35359,36824:35388,36825:35412,36826:35443,36827:35937,36828:36062,36829:37284,36830:37478,36831:37758,36832:37912,36833:38556,36834:38808,36835:19978,36836:19976,36837:19998,36838:20055,36839:20887,36840:21104,36841:22478,36842:22580,36843:22732,36844:23330,36845:24120,36846:24773,36847:25854,36848:26465,36849:26454,36850:27972,36851:29366,36852:30067,36853:31331,36854:33976,36855:35698,36856:37304,36857:37664,36858:22065,36859:22516,36860:39166,36928:25325,36929:26893,36930:27542,36931:29165,36932:32340,36933:32887,36934:33394,36935:35302,36936:39135,36937:34645,36938:36785,36939:23611,36940:20280,36941:20449,36942:20405,36943:21767,36944:23072,36945:23517,36946:23529,36947:24515,36948:24910,36949:25391,36950:26032,36951:26187,36952:26862,36953:27035,36954:28024,36955:28145,36956:30003,36957:30137,36958:30495,36959:31070,36960:31206,36961:32051,36962:33251,36963:33455,36964:34218,36965:35242,36966:35386,36967:36523,36968:36763,36969:36914,36970:37341,36971:38663,36972:20154,36973:20161,36974:20995,36975:22645,36976:22764,36977:23563,36978:29978,36979:23613,36980:33102,36981:35338,36982:36805,36983:38499,36984:38765,36985:31525,36986:35535,36987:38920,36988:37218,36989:22259,36990:21416,36992:36887,36993:21561,36994:22402,36995:24101,36996:25512,36997:27700,36998:28810,36999:30561,37e3:31883,37001:32736,37002:34928,37003:36930,37004:37204,37005:37648,37006:37656,37007:38543,37008:29790,37009:39620,37010:23815,37011:23913,37012:25968,37013:26530,37014:36264,37015:38619,37016:25454,37017:26441,37018:26905,37019:33733,37020:38935,37021:38592,37022:35070,37023:28548,37024:25722,37025:23544,37026:19990,37027:28716,37028:30045,37029:26159,37030:20932,37031:21046,37032:21218,37033:22995,37034:24449,37035:24615,37036:25104,37037:25919,37038:25972,37039:26143,37040:26228,37041:26866,37042:26646,37043:27491,37044:28165,37045:29298,37046:29983,37047:30427,37048:31934,37049:32854,37050:22768,37051:35069,37052:35199,37053:35488,37054:35475,37055:35531,37056:36893,37057:37266,37058:38738,37059:38745,37060:25993,37061:31246,37062:33030,37063:38587,37064:24109,37065:24796,37066:25114,37067:26021,37068:26132,37069:26512,37070:30707,37071:31309,37072:31821,37073:32318,37074:33034,37075:36012,37076:36196,37077:36321,37078:36447,37079:30889,37080:20999,37081:25305,37082:25509,37083:25666,37084:25240,37085:35373,37086:31363,37087:31680,37088:35500,37089:38634,37090:32118,37091:33292,37092:34633,37093:20185,37094:20808,37095:21315,37096:21344,37097:23459,37098:23554,37099:23574,37100:24029,37101:25126,37102:25159,37103:25776,37104:26643,37105:26676,37106:27849,37107:27973,37108:27927,37109:26579,37110:28508,37111:29006,37112:29053,37113:26059,37114:31359,37115:31661,37116:32218,37184:32330,37185:32680,37186:33146,37187:33307,37188:33337,37189:34214,37190:35438,37191:36046,37192:36341,37193:36984,37194:36983,37195:37549,37196:37521,37197:38275,37198:39854,37199:21069,37200:21892,37201:28472,37202:28982,37203:20840,37204:31109,37205:32341,37206:33203,37207:31950,37208:22092,37209:22609,37210:23720,37211:25514,37212:26366,37213:26365,37214:26970,37215:29401,37216:30095,37217:30094,37218:30990,37219:31062,37220:31199,37221:31895,37222:32032,37223:32068,37224:34311,37225:35380,37226:38459,37227:36961,37228:40736,37229:20711,37230:21109,37231:21452,37232:21474,37233:20489,37234:21930,37235:22766,37236:22863,37237:29245,37238:23435,37239:23652,37240:21277,37241:24803,37242:24819,37243:25436,37244:25475,37245:25407,37246:25531,37248:25805,37249:26089,37250:26361,37251:24035,37252:27085,37253:27133,37254:28437,37255:29157,37256:20105,37257:30185,37258:30456,37259:31379,37260:31967,37261:32207,37262:32156,37263:32865,37264:33609,37265:33624,37266:33900,37267:33980,37268:34299,37269:35013,37270:36208,37271:36865,37272:36973,37273:37783,37274:38684,37275:39442,37276:20687,37277:22679,37278:24974,37279:33235,37280:34101,37281:36104,37282:36896,37283:20419,37284:20596,37285:21063,37286:21363,37287:24687,37288:25417,37289:26463,37290:28204,37291:36275,37292:36895,37293:20439,37294:23646,37295:36042,37296:26063,37297:32154,37298:21330,37299:34966,37300:20854,37301:25539,37302:23384,37303:23403,37304:23562,37305:25613,37306:26449,37307:36956,37308:20182,37309:22810,37310:22826,37311:27760,37312:35409,37313:21822,37314:22549,37315:22949,37316:24816,37317:25171,37318:26561,37319:33333,37320:26965,37321:38464,37322:39364,37323:39464,37324:20307,37325:22534,37326:23550,37327:32784,37328:23729,37329:24111,37330:24453,37331:24608,37332:24907,37333:25140,37334:26367,37335:27888,37336:28382,37337:32974,37338:33151,37339:33492,37340:34955,37341:36024,37342:36864,37343:36910,37344:38538,37345:40667,37346:39899,37347:20195,37348:21488,37349:22823,37350:31532,37351:37261,37352:38988,37353:40441,37354:28381,37355:28711,37356:21331,37357:21828,37358:23429,37359:25176,37360:25246,37361:25299,37362:27810,37363:28655,37364:29730,37365:35351,37366:37944,37367:28609,37368:35582,37369:33592,37370:20967,37371:34552,37372:21482,37440:21481,37441:20294,37442:36948,37443:36784,37444:22890,37445:33073,37446:24061,37447:31466,37448:36799,37449:26842,37450:35895,37451:29432,37452:40008,37453:27197,37454:35504,37455:20025,37456:21336,37457:22022,37458:22374,37459:25285,37460:25506,37461:26086,37462:27470,37463:28129,37464:28251,37465:28845,37466:30701,37467:31471,37468:31658,37469:32187,37470:32829,37471:32966,37472:34507,37473:35477,37474:37723,37475:22243,37476:22727,37477:24382,37478:26029,37479:26262,37480:27264,37481:27573,37482:30007,37483:35527,37484:20516,37485:30693,37486:22320,37487:24347,37488:24677,37489:26234,37490:27744,37491:30196,37492:31258,37493:32622,37494:33268,37495:34584,37496:36933,37497:39347,37498:31689,37499:30044,37500:31481,37501:31569,37502:33988,37504:36880,37505:31209,37506:31378,37507:33590,37508:23265,37509:30528,37510:20013,37511:20210,37512:23449,37513:24544,37514:25277,37515:26172,37516:26609,37517:27880,37518:34411,37519:34935,37520:35387,37521:37198,37522:37619,37523:39376,37524:27159,37525:28710,37526:29482,37527:33511,37528:33879,37529:36015,37530:19969,37531:20806,37532:20939,37533:21899,37534:23541,37535:24086,37536:24115,37537:24193,37538:24340,37539:24373,37540:24427,37541:24500,37542:25074,37543:25361,37544:26274,37545:26397,37546:28526,37547:29266,37548:30010,37549:30522,37550:32884,37551:33081,37552:33144,37553:34678,37554:35519,37555:35548,37556:36229,37557:36339,37558:37530,37559:38263,37560:38914,37561:40165,37562:21189,37563:25431,37564:30452,37565:26389,37566:27784,37567:29645,37568:36035,37569:37806,37570:38515,37571:27941,37572:22684,37573:26894,37574:27084,37575:36861,37576:37786,37577:30171,37578:36890,37579:22618,37580:26626,37581:25524,37582:27131,37583:20291,37584:28460,37585:26584,37586:36795,37587:34086,37588:32180,37589:37716,37590:26943,37591:28528,37592:22378,37593:22775,37594:23340,37595:32044,37596:29226,37597:21514,37598:37347,37599:40372,37600:20141,37601:20302,37602:20572,37603:20597,37604:21059,37605:35998,37606:21576,37607:22564,37608:23450,37609:24093,37610:24213,37611:24237,37612:24311,37613:24351,37614:24716,37615:25269,37616:25402,37617:25552,37618:26799,37619:27712,37620:30855,37621:31118,37622:31243,37623:32224,37624:33351,37625:35330,37626:35558,37627:36420,37628:36883,37696:37048,37697:37165,37698:37336,37699:40718,37700:27877,37701:25688,37702:25826,37703:25973,37704:28404,37705:30340,37706:31515,37707:36969,37708:37841,37709:28346,37710:21746,37711:24505,37712:25764,37713:36685,37714:36845,37715:37444,37716:20856,37717:22635,37718:22825,37719:23637,37720:24215,37721:28155,37722:32399,37723:29980,37724:36028,37725:36578,37726:39003,37727:28857,37728:20253,37729:27583,37730:28593,37731:3e4,37732:38651,37733:20814,37734:21520,37735:22581,37736:22615,37737:22956,37738:23648,37739:24466,37740:26007,37741:26460,37742:28193,37743:30331,37744:33759,37745:36077,37746:36884,37747:37117,37748:37709,37749:30757,37750:30778,37751:21162,37752:24230,37753:22303,37754:22900,37755:24594,37756:20498,37757:20826,37758:20908,37760:20941,37761:20992,37762:21776,37763:22612,37764:22616,37765:22871,37766:23445,37767:23798,37768:23947,37769:24764,37770:25237,37771:25645,37772:26481,37773:26691,37774:26812,37775:26847,37776:30423,37777:28120,37778:28271,37779:28059,37780:28783,37781:29128,37782:24403,37783:30168,37784:31095,37785:31561,37786:31572,37787:31570,37788:31958,37789:32113,37790:21040,37791:33891,37792:34153,37793:34276,37794:35342,37795:35588,37796:35910,37797:36367,37798:36867,37799:36879,37800:37913,37801:38518,37802:38957,37803:39472,37804:38360,37805:20685,37806:21205,37807:21516,37808:22530,37809:23566,37810:24999,37811:25758,37812:27934,37813:30643,37814:31461,37815:33012,37816:33796,37817:36947,37818:37509,37819:23776,37820:40199,37821:21311,37822:24471,37823:24499,37824:28060,37825:29305,37826:30563,37827:31167,37828:31716,37829:27602,37830:29420,37831:35501,37832:26627,37833:27233,37834:20984,37835:31361,37836:26932,37837:23626,37838:40182,37839:33515,37840:23493,37841:37193,37842:28702,37843:22136,37844:23663,37845:24775,37846:25958,37847:27788,37848:35930,37849:36929,37850:38931,37851:21585,37852:26311,37853:37389,37854:22856,37855:37027,37856:20869,37857:20045,37858:20970,37859:34201,37860:35598,37861:28760,37862:25466,37863:37707,37864:26978,37865:39348,37866:32260,37867:30071,37868:21335,37869:26976,37870:36575,37871:38627,37872:27741,37873:20108,37874:23612,37875:24336,37876:36841,37877:21250,37878:36049,37879:32905,37880:34425,37881:24319,37882:26085,37883:20083,37884:20837,37952:22914,37953:23615,37954:38894,37955:20219,37956:22922,37957:24525,37958:35469,37959:28641,37960:31152,37961:31074,37962:23527,37963:33905,37964:29483,37965:29105,37966:24180,37967:24565,37968:25467,37969:25754,37970:29123,37971:31896,37972:20035,37973:24316,37974:20043,37975:22492,37976:22178,37977:24745,37978:28611,37979:32013,37980:33021,37981:33075,37982:33215,37983:36786,37984:35223,37985:34468,37986:24052,37987:25226,37988:25773,37989:35207,37990:26487,37991:27874,37992:27966,37993:29750,37994:30772,37995:23110,37996:32629,37997:33453,37998:39340,37999:20467,38e3:24259,38001:25309,38002:25490,38003:25943,38004:26479,38005:30403,38006:29260,38007:32972,38008:32954,38009:36649,38010:37197,38011:20493,38012:22521,38013:23186,38014:26757,38016:26995,38017:29028,38018:29437,38019:36023,38020:22770,38021:36064,38022:38506,38023:36889,38024:34687,38025:31204,38026:30695,38027:33833,38028:20271,38029:21093,38030:21338,38031:25293,38032:26575,38033:27850,38034:30333,38035:31636,38036:31893,38037:33334,38038:34180,38039:36843,38040:26333,38041:28448,38042:29190,38043:32283,38044:33707,38045:39361,38046:40614,38047:20989,38048:31665,38049:30834,38050:31672,38051:32903,38052:31560,38053:27368,38054:24161,38055:32908,38056:30033,38057:30048,38058:20843,38059:37474,38060:28300,38061:30330,38062:37271,38063:39658,38064:20240,38065:32624,38066:25244,38067:31567,38068:38309,38069:40169,38070:22138,38071:22617,38072:34532,38073:38588,38074:20276,38075:21028,38076:21322,38077:21453,38078:21467,38079:24070,38080:25644,38081:26001,38082:26495,38083:27710,38084:27726,38085:29256,38086:29359,38087:29677,38088:30036,38089:32321,38090:33324,38091:34281,38092:36009,38093:31684,38094:37318,38095:29033,38096:38930,38097:39151,38098:25405,38099:26217,38100:30058,38101:30436,38102:30928,38103:34115,38104:34542,38105:21290,38106:21329,38107:21542,38108:22915,38109:24199,38110:24444,38111:24754,38112:25161,38113:25209,38114:25259,38115:26e3,38116:27604,38117:27852,38118:30130,38119:30382,38120:30865,38121:31192,38122:32203,38123:32631,38124:32933,38125:34987,38126:35513,38127:36027,38128:36991,38129:38750,38130:39131,38131:27147,38132:31800,38133:20633,38134:23614,38135:24494,38136:26503,38137:27608,38138:29749,38139:30473,38140:32654,38208:40763,38209:26570,38210:31255,38211:21305,38212:30091,38213:39661,38214:24422,38215:33181,38216:33777,38217:32920,38218:24380,38219:24517,38220:30050,38221:31558,38222:36924,38223:26727,38224:23019,38225:23195,38226:32016,38227:30334,38228:35628,38229:20469,38230:24426,38231:27161,38232:27703,38233:28418,38234:29922,38235:31080,38236:34920,38237:35413,38238:35961,38239:24287,38240:25551,38241:30149,38242:31186,38243:33495,38244:37672,38245:37618,38246:33948,38247:34541,38248:39981,38249:21697,38250:24428,38251:25996,38252:27996,38253:28693,38254:36007,38255:36051,38256:38971,38257:25935,38258:29942,38259:19981,38260:20184,38261:22496,38262:22827,38263:23142,38264:23500,38265:20904,38266:24067,38267:24220,38268:24598,38269:25206,38270:25975,38272:26023,38273:26222,38274:28014,38275:29238,38276:31526,38277:33104,38278:33178,38279:33433,38280:35676,38281:36e3,38282:36070,38283:36212,38284:38428,38285:38468,38286:20398,38287:25771,38288:27494,38289:33310,38290:33889,38291:34154,38292:37096,38293:23553,38294:26963,38295:39080,38296:33914,38297:34135,38298:20239,38299:21103,38300:24489,38301:24133,38302:26381,38303:31119,38304:33145,38305:35079,38306:35206,38307:28149,38308:24343,38309:25173,38310:27832,38311:20175,38312:29289,38313:39826,38314:20998,38315:21563,38316:22132,38317:22707,38318:24996,38319:25198,38320:28954,38321:22894,38322:31881,38323:31966,38324:32027,38325:38640,38326:25991,38327:32862,38328:19993,38329:20341,38330:20853,38331:22592,38332:24163,38333:24179,38334:24330,38335:26564,38336:20006,38337:34109,38338:38281,38339:38491,38340:31859,38341:38913,38342:20731,38343:22721,38344:30294,38345:30887,38346:21029,38347:30629,38348:34065,38349:31622,38350:20559,38351:22793,38352:29255,38353:31687,38354:32232,38355:36794,38356:36820,38357:36941,38358:20415,38359:21193,38360:23081,38361:24321,38362:38829,38363:20445,38364:33303,38365:37610,38366:22275,38367:25429,38368:27497,38369:29995,38370:35036,38371:36628,38372:31298,38373:21215,38374:22675,38375:24917,38376:25098,38377:26286,38378:27597,38379:31807,38380:33769,38381:20515,38382:20472,38383:21253,38384:21574,38385:22577,38386:22857,38387:23453,38388:23792,38389:23791,38390:23849,38391:24214,38392:25265,38393:25447,38394:25918,38395:26041,38396:26379,38464:27861,38465:27873,38466:28921,38467:30770,38468:32299,38469:32990,38470:33459,38471:33804,38472:34028,38473:34562,38474:35090,38475:35370,38476:35914,38477:37030,38478:37586,38479:39165,38480:40179,38481:40300,38482:20047,38483:20129,38484:20621,38485:21078,38486:22346,38487:22952,38488:24125,38489:24536,38490:24537,38491:25151,38492:26292,38493:26395,38494:26576,38495:26834,38496:20882,38497:32033,38498:32938,38499:33192,38500:35584,38501:35980,38502:36031,38503:37502,38504:38450,38505:21536,38506:38956,38507:21271,38508:20693,38509:21340,38510:22696,38511:25778,38512:26420,38513:29287,38514:30566,38515:31302,38516:37350,38517:21187,38518:27809,38519:27526,38520:22528,38521:24140,38522:22868,38523:26412,38524:32763,38525:20961,38526:30406,38528:25705,38529:30952,38530:39764,38531:40635,38532:22475,38533:22969,38534:26151,38535:26522,38536:27598,38537:21737,38538:27097,38539:24149,38540:33180,38541:26517,38542:39850,38543:26622,38544:40018,38545:26717,38546:20134,38547:20451,38548:21448,38549:25273,38550:26411,38551:27819,38552:36804,38553:20397,38554:32365,38555:40639,38556:19975,38557:24930,38558:28288,38559:28459,38560:34067,38561:21619,38562:26410,38563:39749,38564:24051,38565:31637,38566:23724,38567:23494,38568:34588,38569:28234,38570:34001,38571:31252,38572:33032,38573:22937,38574:31885,38575:27665,38576:30496,38577:21209,38578:22818,38579:28961,38580:29279,38581:30683,38582:38695,38583:40289,38584:26891,38585:23167,38586:23064,38587:20901,38588:21517,38589:21629,38590:26126,38591:30431,38592:36855,38593:37528,38594:40180,38595:23018,38596:29277,38597:28357,38598:20813,38599:26825,38600:32191,38601:32236,38602:38754,38603:40634,38604:25720,38605:27169,38606:33538,38607:22916,38608:23391,38609:27611,38610:29467,38611:30450,38612:32178,38613:32791,38614:33945,38615:20786,38616:26408,38617:40665,38618:30446,38619:26466,38620:21247,38621:39173,38622:23588,38623:25147,38624:31870,38625:36016,38626:21839,38627:24758,38628:32011,38629:38272,38630:21249,38631:20063,38632:20918,38633:22812,38634:29242,38635:32822,38636:37326,38637:24357,38638:30690,38639:21380,38640:24441,38641:32004,38642:34220,38643:35379,38644:36493,38645:38742,38646:26611,38647:34222,38648:37971,38649:24841,38650:24840,38651:27833,38652:30290,38720:35565,38721:36664,38722:21807,38723:20305,38724:20778,38725:21191,38726:21451,38727:23461,38728:24189,38729:24736,38730:24962,38731:25558,38732:26377,38733:26586,38734:28263,38735:28044,38736:29494,38737:29495,38738:30001,38739:31056,38740:35029,38741:35480,38742:36938,38743:37009,38744:37109,38745:38596,38746:34701,38747:22805,38748:20104,38749:20313,38750:19982,38751:35465,38752:36671,38753:38928,38754:20653,38755:24188,38756:22934,38757:23481,38758:24248,38759:25562,38760:25594,38761:25793,38762:26332,38763:26954,38764:27096,38765:27915,38766:28342,38767:29076,38768:29992,38769:31407,38770:32650,38771:32768,38772:33865,38773:33993,38774:35201,38775:35617,38776:36362,38777:36965,38778:38525,38779:39178,38780:24958,38781:25233,38782:27442,38784:27779,38785:28020,38786:32716,38787:32764,38788:28096,38789:32645,38790:34746,38791:35064,38792:26469,38793:33713,38794:38972,38795:38647,38796:27931,38797:32097,38798:33853,38799:37226,38800:20081,38801:21365,38802:23888,38803:27396,38804:28651,38805:34253,38806:34349,38807:35239,38808:21033,38809:21519,38810:23653,38811:26446,38812:26792,38813:29702,38814:29827,38815:30178,38816:35023,38817:35041,38818:37324,38819:38626,38820:38520,38821:24459,38822:29575,38823:31435,38824:33870,38825:25504,38826:30053,38827:21129,38828:27969,38829:28316,38830:29705,38831:30041,38832:30827,38833:31890,38834:38534,38835:31452,38836:40845,38837:20406,38838:24942,38839:26053,38840:34396,38841:20102,38842:20142,38843:20698,38844:20001,38845:20940,38846:23534,38847:26009,38848:26753,38849:28092,38850:29471,38851:30274,38852:30637,38853:31260,38854:31975,38855:33391,38856:35538,38857:36988,38858:37327,38859:38517,38860:38936,38861:21147,38862:32209,38863:20523,38864:21400,38865:26519,38866:28107,38867:29136,38868:29747,38869:33256,38870:36650,38871:38563,38872:40023,38873:40607,38874:29792,38875:22593,38876:28057,38877:32047,38878:39006,38879:20196,38880:20278,38881:20363,38882:20919,38883:21169,38884:23994,38885:24604,38886:29618,38887:31036,38888:33491,38889:37428,38890:38583,38891:38646,38892:38666,38893:40599,38894:40802,38895:26278,38896:27508,38897:21015,38898:21155,38899:28872,38900:35010,38901:24265,38902:24651,38903:24976,38904:28451,38905:29001,38906:31806,38907:32244,38908:32879,38976:34030,38977:36899,38978:37676,38979:21570,38980:39791,38981:27347,38982:28809,38983:36034,38984:36335,38985:38706,38986:21172,38987:23105,38988:24266,38989:24324,38990:26391,38991:27004,38992:27028,38993:28010,38994:28431,38995:29282,38996:29436,38997:31725,38998:32769,38999:32894,39e3:34635,39001:37070,39002:20845,39003:40595,39004:31108,39005:32907,39006:37682,39007:35542,39008:20525,39009:21644,39010:35441,39011:27498,39012:36036,39013:33031,39014:24785,39015:26528,39016:40434,39017:20121,39018:20120,39019:39952,39020:35435,39021:34241,39022:34152,39023:26880,39024:28286,39025:30871,39026:33109,39071:24332,39072:19984,39073:19989,39074:20010,39075:20017,39076:20022,39077:20028,39078:20031,39079:20034,39080:20054,39081:20056,39082:20098,39083:20101,39084:35947,39085:20106,39086:33298,39087:24333,39088:20110,39089:20126,39090:20127,39091:20128,39092:20130,39093:20144,39094:20147,39095:20150,39096:20174,39097:20173,39098:20164,39099:20166,39100:20162,39101:20183,39102:20190,39103:20205,39104:20191,39105:20215,39106:20233,39107:20314,39108:20272,39109:20315,39110:20317,39111:20311,39112:20295,39113:20342,39114:20360,39115:20367,39116:20376,39117:20347,39118:20329,39119:20336,39120:20369,39121:20335,39122:20358,39123:20374,39124:20760,39125:20436,39126:20447,39127:20430,39128:20440,39129:20443,39130:20433,39131:20442,39132:20432,39133:20452,39134:20453,39135:20506,39136:20520,39137:20500,39138:20522,39139:20517,39140:20485,39141:20252,39142:20470,39143:20513,39144:20521,39145:20524,39146:20478,39147:20463,39148:20497,39149:20486,39150:20547,39151:20551,39152:26371,39153:20565,39154:20560,39155:20552,39156:20570,39157:20566,39158:20588,39159:20600,39160:20608,39161:20634,39162:20613,39163:20660,39164:20658,39232:20681,39233:20682,39234:20659,39235:20674,39236:20694,39237:20702,39238:20709,39239:20717,39240:20707,39241:20718,39242:20729,39243:20725,39244:20745,39245:20737,39246:20738,39247:20758,39248:20757,39249:20756,39250:20762,39251:20769,39252:20794,39253:20791,39254:20796,39255:20795,39256:20799,39257:20800,39258:20818,39259:20812,39260:20820,39261:20834,39262:31480,39263:20841,39264:20842,39265:20846,39266:20864,39267:20866,39268:22232,39269:20876,39270:20873,39271:20879,39272:20881,39273:20883,39274:20885,39275:20886,39276:20900,39277:20902,39278:20898,39279:20905,39280:20906,39281:20907,39282:20915,39283:20913,39284:20914,39285:20912,39286:20917,39287:20925,39288:20933,39289:20937,39290:20955,39291:20960,39292:34389,39293:20969,39294:20973,39296:20976,39297:20981,39298:20990,39299:20996,39300:21003,39301:21012,39302:21006,39303:21031,39304:21034,39305:21038,39306:21043,39307:21049,39308:21071,39309:21060,39310:21067,39311:21068,39312:21086,39313:21076,39314:21098,39315:21108,39316:21097,39317:21107,39318:21119,39319:21117,39320:21133,39321:21140,39322:21138,39323:21105,39324:21128,39325:21137,39326:36776,39327:36775,39328:21164,39329:21165,39330:21180,39331:21173,39332:21185,39333:21197,39334:21207,39335:21214,39336:21219,39337:21222,39338:39149,39339:21216,39340:21235,39341:21237,39342:21240,39343:21241,39344:21254,39345:21256,39346:30008,39347:21261,39348:21264,39349:21263,39350:21269,39351:21274,39352:21283,39353:21295,39354:21297,39355:21299,39356:21304,39357:21312,39358:21318,39359:21317,39360:19991,39361:21321,39362:21325,39363:20950,39364:21342,39365:21353,39366:21358,39367:22808,39368:21371,39369:21367,39370:21378,39371:21398,39372:21408,39373:21414,39374:21413,39375:21422,39376:21424,39377:21430,39378:21443,39379:31762,39380:38617,39381:21471,39382:26364,39383:29166,39384:21486,39385:21480,39386:21485,39387:21498,39388:21505,39389:21565,39390:21568,39391:21548,39392:21549,39393:21564,39394:21550,39395:21558,39396:21545,39397:21533,39398:21582,39399:21647,39400:21621,39401:21646,39402:21599,39403:21617,39404:21623,39405:21616,39406:21650,39407:21627,39408:21632,39409:21622,39410:21636,39411:21648,39412:21638,39413:21703,39414:21666,39415:21688,39416:21669,39417:21676,39418:21700,39419:21704,39420:21672,39488:21675,39489:21698,39490:21668,39491:21694,39492:21692,39493:21720,39494:21733,39495:21734,39496:21775,39497:21780,39498:21757,39499:21742,39500:21741,39501:21754,39502:21730,39503:21817,39504:21824,39505:21859,39506:21836,39507:21806,39508:21852,39509:21829,39510:21846,39511:21847,39512:21816,39513:21811,39514:21853,39515:21913,39516:21888,39517:21679,39518:21898,39519:21919,39520:21883,39521:21886,39522:21912,39523:21918,39524:21934,39525:21884,39526:21891,39527:21929,39528:21895,39529:21928,39530:21978,39531:21957,39532:21983,39533:21956,39534:21980,39535:21988,39536:21972,39537:22036,39538:22007,39539:22038,39540:22014,39541:22013,39542:22043,39543:22009,39544:22094,39545:22096,39546:29151,39547:22068,39548:22070,39549:22066,39550:22072,39552:22123,39553:22116,39554:22063,39555:22124,39556:22122,39557:22150,39558:22144,39559:22154,39560:22176,39561:22164,39562:22159,39563:22181,39564:22190,39565:22198,39566:22196,39567:22210,39568:22204,39569:22209,39570:22211,39571:22208,39572:22216,39573:22222,39574:22225,39575:22227,39576:22231,39577:22254,39578:22265,39579:22272,39580:22271,39581:22276,39582:22281,39583:22280,39584:22283,39585:22285,39586:22291,39587:22296,39588:22294,39589:21959,39590:22300,39591:22310,39592:22327,39593:22328,39594:22350,39595:22331,39596:22336,39597:22351,39598:22377,39599:22464,39600:22408,39601:22369,39602:22399,39603:22409,39604:22419,39605:22432,39606:22451,39607:22436,39608:22442,39609:22448,39610:22467,39611:22470,39612:22484,39613:22482,39614:22483,39615:22538,39616:22486,39617:22499,39618:22539,39619:22553,39620:22557,39621:22642,39622:22561,39623:22626,39624:22603,39625:22640,39626:27584,39627:22610,39628:22589,39629:22649,39630:22661,39631:22713,39632:22687,39633:22699,39634:22714,39635:22750,39636:22715,39637:22712,39638:22702,39639:22725,39640:22739,39641:22737,39642:22743,39643:22745,39644:22744,39645:22757,39646:22748,39647:22756,39648:22751,39649:22767,39650:22778,39651:22777,39652:22779,39653:22780,39654:22781,39655:22786,39656:22794,39657:22800,39658:22811,39659:26790,39660:22821,39661:22828,39662:22829,39663:22834,39664:22840,39665:22846,39666:31442,39667:22869,39668:22864,39669:22862,39670:22874,39671:22872,39672:22882,39673:22880,39674:22887,39675:22892,39676:22889,39744:22904,39745:22913,39746:22941,39747:20318,39748:20395,39749:22947,39750:22962,39751:22982,39752:23016,39753:23004,39754:22925,39755:23001,39756:23002,39757:23077,39758:23071,39759:23057,39760:23068,39761:23049,39762:23066,39763:23104,39764:23148,39765:23113,39766:23093,39767:23094,39768:23138,39769:23146,39770:23194,39771:23228,39772:23230,39773:23243,39774:23234,39775:23229,39776:23267,39777:23255,39778:23270,39779:23273,39780:23254,39781:23290,39782:23291,39783:23308,39784:23307,39785:23318,39786:23346,39787:23248,39788:23338,39789:23350,39790:23358,39791:23363,39792:23365,39793:23360,39794:23377,39795:23381,39796:23386,39797:23387,39798:23397,39799:23401,39800:23408,39801:23411,39802:23413,39803:23416,39804:25992,39805:23418,39806:23424,39808:23427,39809:23462,39810:23480,39811:23491,39812:23495,39813:23497,39814:23508,39815:23504,39816:23524,39817:23526,39818:23522,39819:23518,39820:23525,39821:23531,39822:23536,39823:23542,39824:23539,39825:23557,39826:23559,39827:23560,39828:23565,39829:23571,39830:23584,39831:23586,39832:23592,39833:23608,39834:23609,39835:23617,39836:23622,39837:23630,39838:23635,39839:23632,39840:23631,39841:23409,39842:23660,39843:23662,39844:20066,39845:23670,39846:23673,39847:23692,39848:23697,39849:23700,39850:22939,39851:23723,39852:23739,39853:23734,39854:23740,39855:23735,39856:23749,39857:23742,39858:23751,39859:23769,39860:23785,39861:23805,39862:23802,39863:23789,39864:23948,39865:23786,39866:23819,39867:23829,39868:23831,39869:23900,39870:23839,39871:23835,39872:23825,39873:23828,39874:23842,39875:23834,39876:23833,39877:23832,39878:23884,39879:23890,39880:23886,39881:23883,39882:23916,39883:23923,39884:23926,39885:23943,39886:23940,39887:23938,39888:23970,39889:23965,39890:23980,39891:23982,39892:23997,39893:23952,39894:23991,39895:23996,39896:24009,39897:24013,39898:24019,39899:24018,39900:24022,39901:24027,39902:24043,39903:24050,39904:24053,39905:24075,39906:24090,39907:24089,39908:24081,39909:24091,39910:24118,39911:24119,39912:24132,39913:24131,39914:24128,39915:24142,39916:24151,39917:24148,39918:24159,39919:24162,39920:24164,39921:24135,39922:24181,39923:24182,39924:24186,39925:40636,39926:24191,39927:24224,39928:24257,39929:24258,39930:24264,39931:24272,39932:24271,4e4:24278,40001:24291,40002:24285,40003:24282,40004:24283,40005:24290,40006:24289,40007:24296,40008:24297,40009:24300,40010:24305,40011:24307,40012:24304,40013:24308,40014:24312,40015:24318,40016:24323,40017:24329,40018:24413,40019:24412,40020:24331,40021:24337,40022:24342,40023:24361,40024:24365,40025:24376,40026:24385,40027:24392,40028:24396,40029:24398,40030:24367,40031:24401,40032:24406,40033:24407,40034:24409,40035:24417,40036:24429,40037:24435,40038:24439,40039:24451,40040:24450,40041:24447,40042:24458,40043:24456,40044:24465,40045:24455,40046:24478,40047:24473,40048:24472,40049:24480,40050:24488,40051:24493,40052:24508,40053:24534,40054:24571,40055:24548,40056:24568,40057:24561,40058:24541,40059:24755,40060:24575,40061:24609,40062:24672,40064:24601,40065:24592,40066:24617,40067:24590,40068:24625,40069:24603,40070:24597,40071:24619,40072:24614,40073:24591,40074:24634,40075:24666,40076:24641,40077:24682,40078:24695,40079:24671,40080:24650,40081:24646,40082:24653,40083:24675,40084:24643,40085:24676,40086:24642,40087:24684,40088:24683,40089:24665,40090:24705,40091:24717,40092:24807,40093:24707,40094:24730,40095:24708,40096:24731,40097:24726,40098:24727,40099:24722,40100:24743,40101:24715,40102:24801,40103:24760,40104:24800,40105:24787,40106:24756,40107:24560,40108:24765,40109:24774,40110:24757,40111:24792,40112:24909,40113:24853,40114:24838,40115:24822,40116:24823,40117:24832,40118:24820,40119:24826,40120:24835,40121:24865,40122:24827,40123:24817,40124:24845,40125:24846,40126:24903,40127:24894,40128:24872,40129:24871,40130:24906,40131:24895,40132:24892,40133:24876,40134:24884,40135:24893,40136:24898,40137:24900,40138:24947,40139:24951,40140:24920,40141:24921,40142:24922,40143:24939,40144:24948,40145:24943,40146:24933,40147:24945,40148:24927,40149:24925,40150:24915,40151:24949,40152:24985,40153:24982,40154:24967,40155:25004,40156:24980,40157:24986,40158:24970,40159:24977,40160:25003,40161:25006,40162:25036,40163:25034,40164:25033,40165:25079,40166:25032,40167:25027,40168:25030,40169:25018,40170:25035,40171:32633,40172:25037,40173:25062,40174:25059,40175:25078,40176:25082,40177:25076,40178:25087,40179:25085,40180:25084,40181:25086,40182:25088,40183:25096,40184:25097,40185:25101,40186:25100,40187:25108,40188:25115,40256:25118,40257:25121,40258:25130,40259:25134,40260:25136,40261:25138,40262:25139,40263:25153,40264:25166,40265:25182,40266:25187,40267:25179,40268:25184,40269:25192,40270:25212,40271:25218,40272:25225,40273:25214,40274:25234,40275:25235,40276:25238,40277:25300,40278:25219,40279:25236,40280:25303,40281:25297,40282:25275,40283:25295,40284:25343,40285:25286,40286:25812,40287:25288,40288:25308,40289:25292,40290:25290,40291:25282,40292:25287,40293:25243,40294:25289,40295:25356,40296:25326,40297:25329,40298:25383,40299:25346,40300:25352,40301:25327,40302:25333,40303:25424,40304:25406,40305:25421,40306:25628,40307:25423,40308:25494,40309:25486,40310:25472,40311:25515,40312:25462,40313:25507,40314:25487,40315:25481,40316:25503,40317:25525,40318:25451,40320:25449,40321:25534,40322:25577,40323:25536,40324:25542,40325:25571,40326:25545,40327:25554,40328:25590,40329:25540,40330:25622,40331:25652,40332:25606,40333:25619,40334:25638,40335:25654,40336:25885,40337:25623,40338:25640,40339:25615,40340:25703,40341:25711,40342:25718,40343:25678,40344:25898,40345:25749,40346:25747,40347:25765,40348:25769,40349:25736,40350:25788,40351:25818,40352:25810,40353:25797,40354:25799,40355:25787,40356:25816,40357:25794,40358:25841,40359:25831,40360:33289,40361:25824,40362:25825,40363:25260,40364:25827,40365:25839,40366:25900,40367:25846,40368:25844,40369:25842,40370:25850,40371:25856,40372:25853,40373:25880,40374:25884,40375:25861,40376:25892,40377:25891,40378:25899,40379:25908,40380:25909,40381:25911,40382:25910,40383:25912,40384:30027,40385:25928,40386:25942,40387:25941,40388:25933,40389:25944,40390:25950,40391:25949,40392:25970,40393:25976,40394:25986,40395:25987,40396:35722,40397:26011,40398:26015,40399:26027,40400:26039,40401:26051,40402:26054,40403:26049,40404:26052,40405:26060,40406:26066,40407:26075,40408:26073,40409:26080,40410:26081,40411:26097,40412:26482,40413:26122,40414:26115,40415:26107,40416:26483,40417:26165,40418:26166,40419:26164,40420:26140,40421:26191,40422:26180,40423:26185,40424:26177,40425:26206,40426:26205,40427:26212,40428:26215,40429:26216,40430:26207,40431:26210,40432:26224,40433:26243,40434:26248,40435:26254,40436:26249,40437:26244,40438:26264,40439:26269,40440:26305,40441:26297,40442:26313,40443:26302,40444:26300,40512:26308,40513:26296,40514:26326,40515:26330,40516:26336,40517:26175,40518:26342,40519:26345,40520:26352,40521:26357,40522:26359,40523:26383,40524:26390,40525:26398,40526:26406,40527:26407,40528:38712,40529:26414,40530:26431,40531:26422,40532:26433,40533:26424,40534:26423,40535:26438,40536:26462,40537:26464,40538:26457,40539:26467,40540:26468,40541:26505,40542:26480,40543:26537,40544:26492,40545:26474,40546:26508,40547:26507,40548:26534,40549:26529,40550:26501,40551:26551,40552:26607,40553:26548,40554:26604,40555:26547,40556:26601,40557:26552,40558:26596,40559:26590,40560:26589,40561:26594,40562:26606,40563:26553,40564:26574,40565:26566,40566:26599,40567:27292,40568:26654,40569:26694,40570:26665,40571:26688,40572:26701,40573:26674,40574:26702,40576:26803,40577:26667,40578:26713,40579:26723,40580:26743,40581:26751,40582:26783,40583:26767,40584:26797,40585:26772,40586:26781,40587:26779,40588:26755,40589:27310,40590:26809,40591:26740,40592:26805,40593:26784,40594:26810,40595:26895,40596:26765,40597:26750,40598:26881,40599:26826,40600:26888,40601:26840,40602:26914,40603:26918,40604:26849,40605:26892,40606:26829,40607:26836,40608:26855,40609:26837,40610:26934,40611:26898,40612:26884,40613:26839,40614:26851,40615:26917,40616:26873,40617:26848,40618:26863,40619:26920,40620:26922,40621:26906,40622:26915,40623:26913,40624:26822,40625:27001,40626:26999,40627:26972,40628:27e3,40629:26987,40630:26964,40631:27006,40632:26990,40633:26937,40634:26996,40635:26941,40636:26969,40637:26928,40638:26977,40639:26974,40640:26973,40641:27009,40642:26986,40643:27058,40644:27054,40645:27088,40646:27071,40647:27073,40648:27091,40649:27070,40650:27086,40651:23528,40652:27082,40653:27101,40654:27067,40655:27075,40656:27047,40657:27182,40658:27025,40659:27040,40660:27036,40661:27029,40662:27060,40663:27102,40664:27112,40665:27138,40666:27163,40667:27135,40668:27402,40669:27129,40670:27122,40671:27111,40672:27141,40673:27057,40674:27166,40675:27117,40676:27156,40677:27115,40678:27146,40679:27154,40680:27329,40681:27171,40682:27155,40683:27204,40684:27148,40685:27250,40686:27190,40687:27256,40688:27207,40689:27234,40690:27225,40691:27238,40692:27208,40693:27192,40694:27170,40695:27280,40696:27277,40697:27296,40698:27268,40699:27298,40700:27299,40768:27287,40769:34327,40770:27323,40771:27331,40772:27330,40773:27320,40774:27315,40775:27308,40776:27358,40777:27345,40778:27359,40779:27306,40780:27354,40781:27370,40782:27387,40783:27397,40784:34326,40785:27386,40786:27410,40787:27414,40788:39729,40789:27423,40790:27448,40791:27447,40792:30428,40793:27449,40794:39150,40795:27463,40796:27459,40797:27465,40798:27472,40799:27481,40800:27476,40801:27483,40802:27487,40803:27489,40804:27512,40805:27513,40806:27519,40807:27520,40808:27524,40809:27523,40810:27533,40811:27544,40812:27541,40813:27550,40814:27556,40815:27562,40816:27563,40817:27567,40818:27570,40819:27569,40820:27571,40821:27575,40822:27580,40823:27590,40824:27595,40825:27603,40826:27615,40827:27628,40828:27627,40829:27635,40830:27631,40832:40638,40833:27656,40834:27667,40835:27668,40836:27675,40837:27684,40838:27683,40839:27742,40840:27733,40841:27746,40842:27754,40843:27778,40844:27789,40845:27802,40846:27777,40847:27803,40848:27774,40849:27752,40850:27763,40851:27794,40852:27792,40853:27844,40854:27889,40855:27859,40856:27837,40857:27863,40858:27845,40859:27869,40860:27822,40861:27825,40862:27838,40863:27834,40864:27867,40865:27887,40866:27865,40867:27882,40868:27935,40869:34893,40870:27958,40871:27947,40872:27965,40873:27960,40874:27929,40875:27957,40876:27955,40877:27922,40878:27916,40879:28003,40880:28051,40881:28004,40882:27994,40883:28025,40884:27993,40885:28046,40886:28053,40887:28644,40888:28037,40889:28153,40890:28181,40891:28170,40892:28085,40893:28103,40894:28134,40895:28088,40896:28102,40897:28140,40898:28126,40899:28108,40900:28136,40901:28114,40902:28101,40903:28154,40904:28121,40905:28132,40906:28117,40907:28138,40908:28142,40909:28205,40910:28270,40911:28206,40912:28185,40913:28274,40914:28255,40915:28222,40916:28195,40917:28267,40918:28203,40919:28278,40920:28237,40921:28191,40922:28227,40923:28218,40924:28238,40925:28196,40926:28415,40927:28189,40928:28216,40929:28290,40930:28330,40931:28312,40932:28361,40933:28343,40934:28371,40935:28349,40936:28335,40937:28356,40938:28338,40939:28372,40940:28373,40941:28303,40942:28325,40943:28354,40944:28319,40945:28481,40946:28433,40947:28748,40948:28396,40949:28408,40950:28414,40951:28479,40952:28402,40953:28465,40954:28399,40955:28466,40956:28364,161:65377,162:65378,163:65379,164:65380,165:65381,166:65382,167:65383,168:65384,169:65385,170:65386,171:65387,172:65388,173:65389,174:65390,175:65391,176:65392,177:65393,178:65394,179:65395,180:65396,181:65397,182:65398,183:65399,184:65400,185:65401,186:65402,187:65403,188:65404,189:65405,190:65406,191:65407,192:65408,193:65409,194:65410,195:65411,196:65412,197:65413,198:65414,199:65415,200:65416,201:65417,202:65418,203:65419,204:65420,205:65421,206:65422,207:65423,208:65424,209:65425,210:65426,211:65427,212:65428,213:65429,214:65430,215:65431,216:65432,217:65433,218:65434,219:65435,220:65436,221:65437,222:65438,223:65439,57408:28478,57409:28435,57410:28407,57411:28550,57412:28538,57413:28536,57414:28545,57415:28544,57416:28527,57417:28507,57418:28659,57419:28525,57420:28546,57421:28540,57422:28504,57423:28558,57424:28561,57425:28610,57426:28518,57427:28595,57428:28579,57429:28577,57430:28580,57431:28601,57432:28614,57433:28586,57434:28639,57435:28629,57436:28652,57437:28628,57438:28632,57439:28657,57440:28654,57441:28635,57442:28681,57443:28683,57444:28666,57445:28689,57446:28673,57447:28687,57448:28670,57449:28699,57450:28698,57451:28532,57452:28701,57453:28696,57454:28703,57455:28720,57456:28734,57457:28722,57458:28753,57459:28771,57460:28825,57461:28818,57462:28847,57463:28913,57464:28844,57465:28856,57466:28851,57467:28846,57468:28895,57469:28875,57470:28893,57472:28889,57473:28937,57474:28925,57475:28956,57476:28953,57477:29029,57478:29013,57479:29064,57480:29030,57481:29026,57482:29004,57483:29014,57484:29036,57485:29071,57486:29179,57487:29060,57488:29077,57489:29096,57490:29100,57491:29143,57492:29113,57493:29118,57494:29138,57495:29129,57496:29140,57497:29134,57498:29152,57499:29164,57500:29159,57501:29173,57502:29180,57503:29177,57504:29183,57505:29197,57506:29200,57507:29211,57508:29224,57509:29229,57510:29228,57511:29232,57512:29234,57513:29243,57514:29244,57515:29247,57516:29248,57517:29254,57518:29259,57519:29272,57520:29300,57521:29310,57522:29314,57523:29313,57524:29319,57525:29330,57526:29334,57527:29346,57528:29351,57529:29369,57530:29362,57531:29379,57532:29382,57533:29380,57534:29390,57535:29394,57536:29410,57537:29408,57538:29409,57539:29433,57540:29431,57541:20495,57542:29463,57543:29450,57544:29468,57545:29462,57546:29469,57547:29492,57548:29487,57549:29481,57550:29477,57551:29502,57552:29518,57553:29519,57554:40664,57555:29527,57556:29546,57557:29544,57558:29552,57559:29560,57560:29557,57561:29563,57562:29562,57563:29640,57564:29619,57565:29646,57566:29627,57567:29632,57568:29669,57569:29678,57570:29662,57571:29858,57572:29701,57573:29807,57574:29733,57575:29688,57576:29746,57577:29754,57578:29781,57579:29759,57580:29791,57581:29785,57582:29761,57583:29788,57584:29801,57585:29808,57586:29795,57587:29802,57588:29814,57589:29822,57590:29835,57591:29854,57592:29863,57593:29898,57594:29903,57595:29908,57596:29681,57664:29920,57665:29923,57666:29927,57667:29929,57668:29934,57669:29938,57670:29936,57671:29937,57672:29944,57673:29943,57674:29956,57675:29955,57676:29957,57677:29964,57678:29966,57679:29965,57680:29973,57681:29971,57682:29982,57683:29990,57684:29996,57685:30012,57686:30020,57687:30029,57688:30026,57689:30025,57690:30043,57691:30022,57692:30042,57693:30057,57694:30052,57695:30055,57696:30059,57697:30061,57698:30072,57699:30070,57700:30086,57701:30087,57702:30068,57703:30090,57704:30089,57705:30082,57706:30100,57707:30106,57708:30109,57709:30117,57710:30115,57711:30146,57712:30131,57713:30147,57714:30133,57715:30141,57716:30136,57717:30140,57718:30129,57719:30157,57720:30154,57721:30162,57722:30169,57723:30179,57724:30174,57725:30206,57726:30207,57728:30204,57729:30209,57730:30192,57731:30202,57732:30194,57733:30195,57734:30219,57735:30221,57736:30217,57737:30239,57738:30247,57739:30240,57740:30241,57741:30242,57742:30244,57743:30260,57744:30256,57745:30267,57746:30279,57747:30280,57748:30278,57749:30300,57750:30296,57751:30305,57752:30306,57753:30312,57754:30313,57755:30314,57756:30311,57757:30316,57758:30320,57759:30322,57760:30326,57761:30328,57762:30332,57763:30336,57764:30339,57765:30344,57766:30347,57767:30350,57768:30358,57769:30355,57770:30361,57771:30362,57772:30384,57773:30388,57774:30392,57775:30393,57776:30394,57777:30402,57778:30413,57779:30422,57780:30418,57781:30430,57782:30433,57783:30437,57784:30439,57785:30442,57786:34351,57787:30459,57788:30472,57789:30471,57790:30468,57791:30505,57792:30500,57793:30494,57794:30501,57795:30502,57796:30491,57797:30519,57798:30520,57799:30535,57800:30554,57801:30568,57802:30571,57803:30555,57804:30565,57805:30591,57806:30590,57807:30585,57808:30606,57809:30603,57810:30609,57811:30624,57812:30622,57813:30640,57814:30646,57815:30649,57816:30655,57817:30652,57818:30653,57819:30651,57820:30663,57821:30669,57822:30679,57823:30682,57824:30684,57825:30691,57826:30702,57827:30716,57828:30732,57829:30738,57830:31014,57831:30752,57832:31018,57833:30789,57834:30862,57835:30836,57836:30854,57837:30844,57838:30874,57839:30860,57840:30883,57841:30901,57842:30890,57843:30895,57844:30929,57845:30918,57846:30923,57847:30932,57848:30910,57849:30908,57850:30917,57851:30922,57852:30956,57920:30951,57921:30938,57922:30973,57923:30964,57924:30983,57925:30994,57926:30993,57927:31001,57928:31020,57929:31019,57930:31040,57931:31072,57932:31063,57933:31071,57934:31066,57935:31061,57936:31059,57937:31098,57938:31103,57939:31114,57940:31133,57941:31143,57942:40779,57943:31146,57944:31150,57945:31155,57946:31161,57947:31162,57948:31177,57949:31189,57950:31207,57951:31212,57952:31201,57953:31203,57954:31240,57955:31245,57956:31256,57957:31257,57958:31264,57959:31263,57960:31104,57961:31281,57962:31291,57963:31294,57964:31287,57965:31299,57966:31319,57967:31305,57968:31329,57969:31330,57970:31337,57971:40861,57972:31344,57973:31353,57974:31357,57975:31368,57976:31383,57977:31381,57978:31384,57979:31382,57980:31401,57981:31432,57982:31408,57984:31414,57985:31429,57986:31428,57987:31423,57988:36995,57989:31431,57990:31434,57991:31437,57992:31439,57993:31445,57994:31443,57995:31449,57996:31450,57997:31453,57998:31457,57999:31458,58e3:31462,58001:31469,58002:31472,58003:31490,58004:31503,58005:31498,58006:31494,58007:31539,58008:31512,58009:31513,58010:31518,58011:31541,58012:31528,58013:31542,58014:31568,58015:31610,58016:31492,58017:31565,58018:31499,58019:31564,58020:31557,58021:31605,58022:31589,58023:31604,58024:31591,58025:31600,58026:31601,58027:31596,58028:31598,58029:31645,58030:31640,58031:31647,58032:31629,58033:31644,58034:31642,58035:31627,58036:31634,58037:31631,58038:31581,58039:31641,58040:31691,58041:31681,58042:31692,58043:31695,58044:31668,58045:31686,58046:31709,58047:31721,58048:31761,58049:31764,58050:31718,58051:31717,58052:31840,58053:31744,58054:31751,58055:31763,58056:31731,58057:31735,58058:31767,58059:31757,58060:31734,58061:31779,58062:31783,58063:31786,58064:31775,58065:31799,58066:31787,58067:31805,58068:31820,58069:31811,58070:31828,58071:31823,58072:31808,58073:31824,58074:31832,58075:31839,58076:31844,58077:31830,58078:31845,58079:31852,58080:31861,58081:31875,58082:31888,58083:31908,58084:31917,58085:31906,58086:31915,58087:31905,58088:31912,58089:31923,58090:31922,58091:31921,58092:31918,58093:31929,58094:31933,58095:31936,58096:31941,58097:31938,58098:31960,58099:31954,58100:31964,58101:31970,58102:39739,58103:31983,58104:31986,58105:31988,58106:31990,58107:31994,58108:32006,58176:32002,58177:32028,58178:32021,58179:32010,58180:32069,58181:32075,58182:32046,58183:32050,58184:32063,58185:32053,58186:32070,58187:32115,58188:32086,58189:32078,58190:32114,58191:32104,58192:32110,58193:32079,58194:32099,58195:32147,58196:32137,58197:32091,58198:32143,58199:32125,58200:32155,58201:32186,58202:32174,58203:32163,58204:32181,58205:32199,58206:32189,58207:32171,58208:32317,58209:32162,58210:32175,58211:32220,58212:32184,58213:32159,58214:32176,58215:32216,58216:32221,58217:32228,58218:32222,58219:32251,58220:32242,58221:32225,58222:32261,58223:32266,58224:32291,58225:32289,58226:32274,58227:32305,58228:32287,58229:32265,58230:32267,58231:32290,58232:32326,58233:32358,58234:32315,58235:32309,58236:32313,58237:32323,58238:32311,58240:32306,58241:32314,58242:32359,58243:32349,58244:32342,58245:32350,58246:32345,58247:32346,58248:32377,58249:32362,58250:32361,58251:32380,58252:32379,58253:32387,58254:32213,58255:32381,58256:36782,58257:32383,58258:32392,58259:32393,58260:32396,58261:32402,58262:32400,58263:32403,58264:32404,58265:32406,58266:32398,58267:32411,58268:32412,58269:32568,58270:32570,58271:32581,58272:32588,58273:32589,58274:32590,58275:32592,58276:32593,58277:32597,58278:32596,58279:32600,58280:32607,58281:32608,58282:32616,58283:32617,58284:32615,58285:32632,58286:32642,58287:32646,58288:32643,58289:32648,58290:32647,58291:32652,58292:32660,58293:32670,58294:32669,58295:32666,58296:32675,58297:32687,58298:32690,58299:32697,58300:32686,58301:32694,58302:32696,58303:35697,58304:32709,58305:32710,58306:32714,58307:32725,58308:32724,58309:32737,58310:32742,58311:32745,58312:32755,58313:32761,58314:39132,58315:32774,58316:32772,58317:32779,58318:32786,58319:32792,58320:32793,58321:32796,58322:32801,58323:32808,58324:32831,58325:32827,58326:32842,58327:32838,58328:32850,58329:32856,58330:32858,58331:32863,58332:32866,58333:32872,58334:32883,58335:32882,58336:32880,58337:32886,58338:32889,58339:32893,58340:32895,58341:32900,58342:32902,58343:32901,58344:32923,58345:32915,58346:32922,58347:32941,58348:20880,58349:32940,58350:32987,58351:32997,58352:32985,58353:32989,58354:32964,58355:32986,58356:32982,58357:33033,58358:33007,58359:33009,58360:33051,58361:33065,58362:33059,58363:33071,58364:33099,58432:38539,58433:33094,58434:33086,58435:33107,58436:33105,58437:33020,58438:33137,58439:33134,58440:33125,58441:33126,58442:33140,58443:33155,58444:33160,58445:33162,58446:33152,58447:33154,58448:33184,58449:33173,58450:33188,58451:33187,58452:33119,58453:33171,58454:33193,58455:33200,58456:33205,58457:33214,58458:33208,58459:33213,58460:33216,58461:33218,58462:33210,58463:33225,58464:33229,58465:33233,58466:33241,58467:33240,58468:33224,58469:33242,58470:33247,58471:33248,58472:33255,58473:33274,58474:33275,58475:33278,58476:33281,58477:33282,58478:33285,58479:33287,58480:33290,58481:33293,58482:33296,58483:33302,58484:33321,58485:33323,58486:33336,58487:33331,58488:33344,58489:33369,58490:33368,58491:33373,58492:33370,58493:33375,58494:33380,58496:33378,58497:33384,58498:33386,58499:33387,58500:33326,58501:33393,58502:33399,58503:33400,58504:33406,58505:33421,58506:33426,58507:33451,58508:33439,58509:33467,58510:33452,58511:33505,58512:33507,58513:33503,58514:33490,58515:33524,58516:33523,58517:33530,58518:33683,58519:33539,58520:33531,58521:33529,58522:33502,58523:33542,58524:33500,58525:33545,58526:33497,58527:33589,58528:33588,58529:33558,58530:33586,58531:33585,58532:33600,58533:33593,58534:33616,58535:33605,58536:33583,58537:33579,58538:33559,58539:33560,58540:33669,58541:33690,58542:33706,58543:33695,58544:33698,58545:33686,58546:33571,58547:33678,58548:33671,58549:33674,58550:33660,58551:33717,58552:33651,58553:33653,58554:33696,58555:33673,58556:33704,58557:33780,58558:33811,58559:33771,58560:33742,58561:33789,58562:33795,58563:33752,58564:33803,58565:33729,58566:33783,58567:33799,58568:33760,58569:33778,58570:33805,58571:33826,58572:33824,58573:33725,58574:33848,58575:34054,58576:33787,58577:33901,58578:33834,58579:33852,58580:34138,58581:33924,58582:33911,58583:33899,58584:33965,58585:33902,58586:33922,58587:33897,58588:33862,58589:33836,58590:33903,58591:33913,58592:33845,58593:33994,58594:33890,58595:33977,58596:33983,58597:33951,58598:34009,58599:33997,58600:33979,58601:34010,58602:34e3,58603:33985,58604:33990,58605:34006,58606:33953,58607:34081,58608:34047,58609:34036,58610:34071,58611:34072,58612:34092,58613:34079,58614:34069,58615:34068,58616:34044,58617:34112,58618:34147,58619:34136,58620:34120,58688:34113,58689:34306,58690:34123,58691:34133,58692:34176,58693:34212,58694:34184,58695:34193,58696:34186,58697:34216,58698:34157,58699:34196,58700:34203,58701:34282,58702:34183,58703:34204,58704:34167,58705:34174,58706:34192,58707:34249,58708:34234,58709:34255,58710:34233,58711:34256,58712:34261,58713:34269,58714:34277,58715:34268,58716:34297,58717:34314,58718:34323,58719:34315,58720:34302,58721:34298,58722:34310,58723:34338,58724:34330,58725:34352,58726:34367,58727:34381,58728:20053,58729:34388,58730:34399,58731:34407,58732:34417,58733:34451,58734:34467,58735:34473,58736:34474,58737:34443,58738:34444,58739:34486,58740:34479,58741:34500,58742:34502,58743:34480,58744:34505,58745:34851,58746:34475,58747:34516,58748:34526,58749:34537,58750:34540,58752:34527,58753:34523,58754:34543,58755:34578,58756:34566,58757:34568,58758:34560,58759:34563,58760:34555,58761:34577,58762:34569,58763:34573,58764:34553,58765:34570,58766:34612,58767:34623,58768:34615,58769:34619,58770:34597,58771:34601,58772:34586,58773:34656,58774:34655,58775:34680,58776:34636,58777:34638,58778:34676,58779:34647,58780:34664,58781:34670,58782:34649,58783:34643,58784:34659,58785:34666,58786:34821,58787:34722,58788:34719,58789:34690,58790:34735,58791:34763,58792:34749,58793:34752,58794:34768,58795:38614,58796:34731,58797:34756,58798:34739,58799:34759,58800:34758,58801:34747,58802:34799,58803:34802,58804:34784,58805:34831,58806:34829,58807:34814,58808:34806,58809:34807,58810:34830,58811:34770,58812:34833,58813:34838,58814:34837,58815:34850,58816:34849,58817:34865,58818:34870,58819:34873,58820:34855,58821:34875,58822:34884,58823:34882,58824:34898,58825:34905,58826:34910,58827:34914,58828:34923,58829:34945,58830:34942,58831:34974,58832:34933,58833:34941,58834:34997,58835:34930,58836:34946,58837:34967,58838:34962,58839:34990,58840:34969,58841:34978,58842:34957,58843:34980,58844:34992,58845:35007,58846:34993,58847:35011,58848:35012,58849:35028,58850:35032,58851:35033,58852:35037,58853:35065,58854:35074,58855:35068,58856:35060,58857:35048,58858:35058,58859:35076,58860:35084,58861:35082,58862:35091,58863:35139,58864:35102,58865:35109,58866:35114,58867:35115,58868:35137,58869:35140,58870:35131,58871:35126,58872:35128,58873:35148,58874:35101,58875:35168,58876:35166,58944:35174,58945:35172,58946:35181,58947:35178,58948:35183,58949:35188,58950:35191,58951:35198,58952:35203,58953:35208,58954:35210,58955:35219,58956:35224,58957:35233,58958:35241,58959:35238,58960:35244,58961:35247,58962:35250,58963:35258,58964:35261,58965:35263,58966:35264,58967:35290,58968:35292,58969:35293,58970:35303,58971:35316,58972:35320,58973:35331,58974:35350,58975:35344,58976:35340,58977:35355,58978:35357,58979:35365,58980:35382,58981:35393,58982:35419,58983:35410,58984:35398,58985:35400,58986:35452,58987:35437,58988:35436,58989:35426,58990:35461,58991:35458,58992:35460,58993:35496,58994:35489,58995:35473,58996:35493,58997:35494,58998:35482,58999:35491,59e3:35524,59001:35533,59002:35522,59003:35546,59004:35563,59005:35571,59006:35559,59008:35556,59009:35569,59010:35604,59011:35552,59012:35554,59013:35575,59014:35550,59015:35547,59016:35596,59017:35591,59018:35610,59019:35553,59020:35606,59021:35600,59022:35607,59023:35616,59024:35635,59025:38827,59026:35622,59027:35627,59028:35646,59029:35624,59030:35649,59031:35660,59032:35663,59033:35662,59034:35657,59035:35670,59036:35675,59037:35674,59038:35691,59039:35679,59040:35692,59041:35695,59042:35700,59043:35709,59044:35712,59045:35724,59046:35726,59047:35730,59048:35731,59049:35734,59050:35737,59051:35738,59052:35898,59053:35905,59054:35903,59055:35912,59056:35916,59057:35918,59058:35920,59059:35925,59060:35938,59061:35948,59062:35960,59063:35962,59064:35970,59065:35977,59066:35973,59067:35978,59068:35981,59069:35982,59070:35988,59071:35964,59072:35992,59073:25117,59074:36013,59075:36010,59076:36029,59077:36018,59078:36019,59079:36014,59080:36022,59081:36040,59082:36033,59083:36068,59084:36067,59085:36058,59086:36093,59087:36090,59088:36091,59089:36100,59090:36101,59091:36106,59092:36103,59093:36111,59094:36109,59095:36112,59096:40782,59097:36115,59098:36045,59099:36116,59100:36118,59101:36199,59102:36205,59103:36209,59104:36211,59105:36225,59106:36249,59107:36290,59108:36286,59109:36282,59110:36303,59111:36314,59112:36310,59113:36300,59114:36315,59115:36299,59116:36330,59117:36331,59118:36319,59119:36323,59120:36348,59121:36360,59122:36361,59123:36351,59124:36381,59125:36382,59126:36368,59127:36383,59128:36418,59129:36405,59130:36400,59131:36404,59132:36426,59200:36423,59201:36425,59202:36428,59203:36432,59204:36424,59205:36441,59206:36452,59207:36448,59208:36394,59209:36451,59210:36437,59211:36470,59212:36466,59213:36476,59214:36481,59215:36487,59216:36485,59217:36484,59218:36491,59219:36490,59220:36499,59221:36497,59222:36500,59223:36505,59224:36522,59225:36513,59226:36524,59227:36528,59228:36550,59229:36529,59230:36542,59231:36549,59232:36552,59233:36555,59234:36571,59235:36579,59236:36604,59237:36603,59238:36587,59239:36606,59240:36618,59241:36613,59242:36629,59243:36626,59244:36633,59245:36627,59246:36636,59247:36639,59248:36635,59249:36620,59250:36646,59251:36659,59252:36667,59253:36665,59254:36677,59255:36674,59256:36670,59257:36684,59258:36681,59259:36678,59260:36686,59261:36695,59262:36700,59264:36706,59265:36707,59266:36708,59267:36764,59268:36767,59269:36771,59270:36781,59271:36783,59272:36791,59273:36826,59274:36837,59275:36834,59276:36842,59277:36847,59278:36999,59279:36852,59280:36869,59281:36857,59282:36858,59283:36881,59284:36885,59285:36897,59286:36877,59287:36894,59288:36886,59289:36875,59290:36903,59291:36918,59292:36917,59293:36921,59294:36856,59295:36943,59296:36944,59297:36945,59298:36946,59299:36878,59300:36937,59301:36926,59302:36950,59303:36952,59304:36958,59305:36968,59306:36975,59307:36982,59308:38568,59309:36978,59310:36994,59311:36989,59312:36993,59313:36992,59314:37002,59315:37001,59316:37007,59317:37032,59318:37039,59319:37041,59320:37045,59321:37090,59322:37092,59323:25160,59324:37083,59325:37122,59326:37138,59327:37145,59328:37170,59329:37168,59330:37194,59331:37206,59332:37208,59333:37219,59334:37221,59335:37225,59336:37235,59337:37234,59338:37259,59339:37257,59340:37250,59341:37282,59342:37291,59343:37295,59344:37290,59345:37301,59346:37300,59347:37306,59348:37312,59349:37313,59350:37321,59351:37323,59352:37328,59353:37334,59354:37343,59355:37345,59356:37339,59357:37372,59358:37365,59359:37366,59360:37406,59361:37375,59362:37396,59363:37420,59364:37397,59365:37393,59366:37470,59367:37463,59368:37445,59369:37449,59370:37476,59371:37448,59372:37525,59373:37439,59374:37451,59375:37456,59376:37532,59377:37526,59378:37523,59379:37531,59380:37466,59381:37583,59382:37561,59383:37559,59384:37609,59385:37647,59386:37626,59387:37700,59388:37678,59456:37657,59457:37666,59458:37658,59459:37667,59460:37690,59461:37685,59462:37691,59463:37724,59464:37728,59465:37756,59466:37742,59467:37718,59468:37808,59469:37804,59470:37805,59471:37780,59472:37817,59473:37846,59474:37847,59475:37864,59476:37861,59477:37848,59478:37827,59479:37853,59480:37840,59481:37832,59482:37860,59483:37914,59484:37908,59485:37907,59486:37891,59487:37895,59488:37904,59489:37942,59490:37931,59491:37941,59492:37921,59493:37946,59494:37953,59495:37970,59496:37956,59497:37979,59498:37984,59499:37986,59500:37982,59501:37994,59502:37417,59503:38e3,59504:38005,59505:38007,59506:38013,59507:37978,59508:38012,59509:38014,59510:38017,59511:38015,59512:38274,59513:38279,59514:38282,59515:38292,59516:38294,59517:38296,59518:38297,59520:38304,59521:38312,59522:38311,59523:38317,59524:38332,59525:38331,59526:38329,59527:38334,59528:38346,59529:28662,59530:38339,59531:38349,59532:38348,59533:38357,59534:38356,59535:38358,59536:38364,59537:38369,59538:38373,59539:38370,59540:38433,59541:38440,59542:38446,59543:38447,59544:38466,59545:38476,59546:38479,59547:38475,59548:38519,59549:38492,59550:38494,59551:38493,59552:38495,59553:38502,59554:38514,59555:38508,59556:38541,59557:38552,59558:38549,59559:38551,59560:38570,59561:38567,59562:38577,59563:38578,59564:38576,59565:38580,59566:38582,59567:38584,59568:38585,59569:38606,59570:38603,59571:38601,59572:38605,59573:35149,59574:38620,59575:38669,59576:38613,59577:38649,59578:38660,59579:38662,59580:38664,59581:38675,59582:38670,59583:38673,59584:38671,59585:38678,59586:38681,59587:38692,59588:38698,59589:38704,59590:38713,59591:38717,59592:38718,59593:38724,59594:38726,59595:38728,59596:38722,59597:38729,59598:38748,59599:38752,59600:38756,59601:38758,59602:38760,59603:21202,59604:38763,59605:38769,59606:38777,59607:38789,59608:38780,59609:38785,59610:38778,59611:38790,59612:38795,59613:38799,59614:38800,59615:38812,59616:38824,59617:38822,59618:38819,59619:38835,59620:38836,59621:38851,59622:38854,59623:38856,59624:38859,59625:38876,59626:38893,59627:40783,59628:38898,59629:31455,59630:38902,59631:38901,59632:38927,59633:38924,59634:38968,59635:38948,59636:38945,59637:38967,59638:38973,59639:38982,59640:38991,59641:38987,59642:39019,59643:39023,59644:39024,59712:39025,59713:39028,59714:39027,59715:39082,59716:39087,59717:39089,59718:39094,59719:39108,59720:39107,59721:39110,59722:39145,59723:39147,59724:39171,59725:39177,59726:39186,59727:39188,59728:39192,59729:39201,59730:39197,59731:39198,59732:39204,59733:39200,59734:39212,59735:39214,59736:39229,59737:39230,59738:39234,59739:39241,59740:39237,59741:39248,59742:39243,59743:39249,59744:39250,59745:39244,59746:39253,59747:39319,59748:39320,59749:39333,59750:39341,59751:39342,59752:39356,59753:39391,59754:39387,59755:39389,59756:39384,59757:39377,59758:39405,59759:39406,59760:39409,59761:39410,59762:39419,59763:39416,59764:39425,59765:39439,59766:39429,59767:39394,59768:39449,59769:39467,59770:39479,59771:39493,59772:39490,59773:39488,59774:39491,59776:39486,59777:39509,59778:39501,59779:39515,59780:39511,59781:39519,59782:39522,59783:39525,59784:39524,59785:39529,59786:39531,59787:39530,59788:39597,59789:39600,59790:39612,59791:39616,59792:39631,59793:39633,59794:39635,59795:39636,59796:39646,59797:39647,59798:39650,59799:39651,59800:39654,59801:39663,59802:39659,59803:39662,59804:39668,59805:39665,59806:39671,59807:39675,59808:39686,59809:39704,59810:39706,59811:39711,59812:39714,59813:39715,59814:39717,59815:39719,59816:39720,59817:39721,59818:39722,59819:39726,59820:39727,59821:39730,59822:39748,59823:39747,59824:39759,59825:39757,59826:39758,59827:39761,59828:39768,59829:39796,59830:39827,59831:39811,59832:39825,59833:39830,59834:39831,59835:39839,59836:39840,59837:39848,59838:39860,59839:39872,59840:39882,59841:39865,59842:39878,59843:39887,59844:39889,59845:39890,59846:39907,59847:39906,59848:39908,59849:39892,59850:39905,59851:39994,59852:39922,59853:39921,59854:39920,59855:39957,59856:39956,59857:39945,59858:39955,59859:39948,59860:39942,59861:39944,59862:39954,59863:39946,59864:39940,59865:39982,59866:39963,59867:39973,59868:39972,59869:39969,59870:39984,59871:40007,59872:39986,59873:40006,59874:39998,59875:40026,59876:40032,59877:40039,59878:40054,59879:40056,59880:40167,59881:40172,59882:40176,59883:40201,59884:40200,59885:40171,59886:40195,59887:40198,59888:40234,59889:40230,59890:40367,59891:40227,59892:40223,59893:40260,59894:40213,59895:40210,59896:40257,59897:40255,59898:40254,59899:40262,59900:40264,59968:40285,59969:40286,59970:40292,59971:40273,59972:40272,59973:40281,59974:40306,59975:40329,59976:40327,59977:40363,59978:40303,59979:40314,59980:40346,59981:40356,59982:40361,59983:40370,59984:40388,59985:40385,59986:40379,59987:40376,59988:40378,59989:40390,59990:40399,59991:40386,59992:40409,59993:40403,59994:40440,59995:40422,59996:40429,59997:40431,59998:40445,59999:40474,6e4:40475,60001:40478,60002:40565,60003:40569,60004:40573,60005:40577,60006:40584,60007:40587,60008:40588,60009:40594,60010:40597,60011:40593,60012:40605,60013:40613,60014:40617,60015:40632,60016:40618,60017:40621,60018:38753,60019:40652,60020:40654,60021:40655,60022:40656,60023:40660,60024:40668,60025:40670,60026:40669,60027:40672,60028:40677,60029:40680,60030:40687,60032:40692,60033:40694,60034:40695,60035:40697,60036:40699,60037:40700,60038:40701,60039:40711,60040:40712,60041:30391,60042:40725,60043:40737,60044:40748,60045:40766,60046:40778,60047:40786,60048:40788,60049:40803,60050:40799,60051:40800,60052:40801,60053:40806,60054:40807,60055:40812,60056:40810,60057:40823,60058:40818,60059:40822,60060:40853,60061:40860,60062:40864,60063:22575,60064:27079,60065:36953,60066:29796,60067:20956,60068:29081}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=n(2);t.decode=function(e,t){var n=new Uint8ClampedArray(e.length);n.set(e);for(var a=new r.default(285,256,0),i=new o.default(a,n),l=new Uint8ClampedArray(t),c=!1,s=0;s=r/2;){var s=a,u=l;if(l=c,(a=i).isZero())return null;i=s;for(var d=e.zero,p=a.getCoefficient(a.degree()),f=e.inverse(p);i.degree()>=a.degree()&&!i.isZero();){var b=i.degree()-a.degree(),g=e.multiply(i.getCoefficient(i.degree()),f);d=d.addOrSubtract(e.buildMonomial(b,g)),i=i.addOrSubtract(a.multiplyByMonomial(b,g))}if(c=d.multiplyPoly(l).addOrSubtract(u),i.degree()>=a.degree())return null}var h=c.getCoefficient(0);if(0===h)return null;var m=e.inverse(h);return[c.multiply(m),i.multiply(m)]}(a,a.buildMonomial(t,1),d,t);if(null===p)return null;var f=function(e,t){var n=t.degree();if(1===n)return[t.getCoefficient(1)];for(var r=new Array(n),o=0,a=1;aMath.abs(t.x-e.x);u?(a=Math.floor(e.y),i=Math.floor(e.x),l=Math.floor(t.y),c=Math.floor(t.x)):(a=Math.floor(e.x),i=Math.floor(e.y),l=Math.floor(t.x),c=Math.floor(t.y));for(var d=Math.abs(l-a),p=Math.abs(c-i),f=Math.floor(-d/2),b=a0){if(v===c)break;v+=g,f-=d}}for(var C=[],x=0;x=15&&m.length?m[0]:h,dimension:u}}t.locate=function(e){for(var t=[],n=[],a=[],i=[],l=function(r){for(var l=0,c=!1,s=[0,0,0,0,0],u=function(t){var a=e.get(t,r);if(a===c)l++;else{s=[s[1],s[2],s[3],s[4],l],l=1,c=a;var u=o(s)/7,d=Math.abs(s[0]-u)=e.bottom.startX&&g<=e.bottom.endX||b>=e.bottom.startX&&g<=e.bottom.endX||g<=e.bottom.startX&&b>=e.bottom.endX&&s[2]/(e.bottom.endX-e.bottom.startX)<1.5&&s[2]/(e.bottom.endX-e.bottom.startX)>.5}))).length>0?m[0].bottom=h:n.push({top:h,bottom:h})}if(f){var m,v=t-s[4],y=v-s[3];h={startX:y,y:r,endX:v},(m=i.filter((function(e){return y>=e.bottom.startX&&y<=e.bottom.endX||v>=e.bottom.startX&&y<=e.bottom.endX||y<=e.bottom.startX&&v>=e.bottom.endX&&s[2]/(e.bottom.endX-e.bottom.startX)<1.5&&s[2]/(e.bottom.endX-e.bottom.startX)>.5}))).length>0?m[0].bottom=h:i.push({top:h,bottom:h})}}},d=-1;d<=e.width;d++)u(d);t.push.apply(t,n.filter((function(e){return e.bottom.y!==r&&e.bottom.y-e.top.y>=2}))),n=n.filter((function(e){return e.bottom.y===r})),a.push.apply(a,i.filter((function(e){return e.bottom.y!==r}))),i=i.filter((function(e){return e.bottom.y===r}))},d=0;d<=e.height;d++)l(d);t.push.apply(t,n.filter((function(e){return e.bottom.y-e.top.y>=2}))),a.push.apply(a,i);var p=t.filter((function(e){return e.bottom.y-e.top.y>=2})).map((function(t){var n=(t.top.startX+t.top.endX+t.bottom.startX+t.bottom.endX)/4,r=(t.top.y+t.bottom.y+1)/2;if(e.get(Math.round(n),Math.round(r))){var a=[t.top.endX-t.top.startX,t.bottom.endX-t.bottom.startX,t.bottom.y-t.top.y+1],i=o(a)/a.length;return{score:c({x:Math.round(n),y:Math.round(r)},[1,1,3,1,1],e),x:n,y:r,size:i}}})).filter((function(e){return!!e})).sort((function(e,t){return e.score-t.score})).map((function(e,t,n){if(t>4)return null;var r=n.filter((function(e,n){return t!==n})).map((function(t){return{x:t.x,y:t.y,score:t.score+Math.pow(t.size-e.size,2)/e.size,size:t.size}})).sort((function(e,t){return e.score-t.score}));if(r.length<2)return null;var o=e.score+r[0].score+r[1].score;return{points:[e].concat(r.slice(0,2)),score:o}})).filter((function(e){return!!e})).sort((function(e,t){return e.score-t.score}));if(0===p.length)return null;var f=function(e,t,n){var o,a,i,l,c,s,u,d=r(e,t),p=r(t,n),f=r(e,n);return p>=d&&p>=f?(c=(o=[t,e,n])[0],s=o[1],u=o[2]):f>=p&&f>=d?(c=(a=[e,t,n])[0],s=a[1],u=a[2]):(c=(i=[e,n,t])[0],s=i[1],u=i[2]),(u.x-s.x)*(c.y-s.y)-(u.y-s.y)*(c.x-s.x)<0&&(c=(l=[u,c])[0],u=l[1]),{bottomLeft:c,topLeft:s,topRight:u}}(p[0].points[0],p[0].points[1],p[0].points[2]),b=f.topRight,g=f.topLeft,h=f.bottomLeft,m=u(e,a,b,g,h),v=[];m&&v.push({alignmentPattern:{x:m.alignmentPattern.x,y:m.alignmentPattern.y},bottomLeft:{x:h.x,y:h.y},dimension:m.dimension,topLeft:{x:g.x,y:g.y},topRight:{x:b.x,y:b.y}});var y=s(e,b),B=s(e,g),C=s(e,h),x=u(e,a,y,B,C);return x&&v.push({alignmentPattern:{x:x.alignmentPattern.x,y:x.alignmentPattern.y},bottomLeft:{x:C.x,y:C.y},topLeft:{x:B.x,y:B.y},topRight:{x:y.x,y:y.y},dimension:x.dimension}),0===v.length?null:v}}]).default},e.exports=t()},8552:(e,t,n)=>{var r=n(852)(n(5639),"DataView");e.exports=r},1989:(e,t,n)=>{var r=n(1789),o=n(401),a=n(7667),i=n(1327),l=n(1866);function c(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(7040),o=n(4125),a=n(2117),i=n(7529),l=n(4705);function c(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(852)(n(5639),"Map");e.exports=r},3369:(e,t,n)=>{var r=n(4785),o=n(1285),a=n(6e3),i=n(9916),l=n(5265);function c(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(852)(n(5639),"Promise");e.exports=r},8525:(e,t,n)=>{var r=n(852)(n(5639),"Set");e.exports=r},8668:(e,t,n)=>{var r=n(3369),o=n(619),a=n(2385);function i(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t{var r=n(8407),o=n(7465),a=n(3779),i=n(7599),l=n(4758),c=n(4309);function s(e){var t=this.__data__=new r(e);this.size=t.size}s.prototype.clear=o,s.prototype.delete=a,s.prototype.get=i,s.prototype.has=l,s.prototype.set=c,e.exports=s},2705:(e,t,n)=>{var r=n(5639).Symbol;e.exports=r},1149:(e,t,n)=>{var r=n(5639).Uint8Array;e.exports=r},577:(e,t,n)=>{var r=n(852)(n(5639),"WeakMap");e.exports=r},7412:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n{var r=n(2545),o=n(5694),a=n(1469),i=n(4144),l=n(5776),c=n(6719),s=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=a(e),u=!n&&o(e),d=!n&&!u&&i(e),p=!n&&!u&&!d&&c(e),f=n||u||d||p,b=f?r(e.length,String):[],g=b.length;for(var h in e)!t&&!s.call(e,h)||f&&("length"==h||d&&("offset"==h||"parent"==h)||p&&("buffer"==h||"byteLength"==h||"byteOffset"==h)||l(h,g))||b.push(h);return b}},9932:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n{e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n{var r=n(9465),o=n(7813),a=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var i=e[t];a.call(e,t)&&o(i,n)&&(void 0!==n||t in e)||r(e,t,n)}},8470:(e,t,n)=>{var r=n(7813);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},4037:(e,t,n)=>{var r=n(8363),o=n(3674);e.exports=function(e,t){return e&&r(t,o(t),e)}},3886:(e,t,n)=>{var r=n(8363),o=n(1704);e.exports=function(e,t){return e&&r(t,o(t),e)}},9465:(e,t,n)=>{var r=n(8777);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},5990:(e,t,n)=>{var r=n(6384),o=n(7412),a=n(4865),i=n(4037),l=n(3886),c=n(4626),s=n(278),u=n(8805),d=n(1911),p=n(8234),f=n(6904),b=n(4160),g=n(3824),h=n(9148),m=n(8517),v=n(1469),y=n(4144),B=n(6688),C=n(3218),x=n(2928),I=n(3674),w=n(1704),k="[object Arguments]",Z="[object Function]",G="[object Object]",E={};E[k]=E["[object Array]"]=E["[object ArrayBuffer]"]=E["[object DataView]"]=E["[object Boolean]"]=E["[object Date]"]=E["[object Float32Array]"]=E["[object Float64Array]"]=E["[object Int8Array]"]=E["[object Int16Array]"]=E["[object Int32Array]"]=E["[object Map]"]=E["[object Number]"]=E[G]=E["[object RegExp]"]=E["[object Set]"]=E["[object String]"]=E["[object Symbol]"]=E["[object Uint8Array]"]=E["[object Uint8ClampedArray]"]=E["[object Uint16Array]"]=E["[object Uint32Array]"]=!0,E["[object Error]"]=E[Z]=E["[object WeakMap]"]=!1,e.exports=function e(t,n,R,F,W,S){var V,N=1&n,X=2&n,A=4&n;if(R&&(V=W?R(t,F,W,S):R(t)),void 0!==V)return V;if(!C(t))return t;var Q=v(t);if(Q){if(V=g(t),!N)return s(t,V)}else{var _=b(t),U=_==Z||"[object GeneratorFunction]"==_;if(y(t))return c(t,N);if(_==G||_==k||U&&!W){if(V=X||U?{}:m(t),!N)return X?d(t,l(V,t)):u(t,i(V,t))}else{if(!E[_])return W?t:{};V=h(t,_,N)}}S||(S=new r);var P=S.get(t);if(P)return P;S.set(t,V),x(t)?t.forEach((function(r){V.add(e(r,n,R,r,t,S))})):B(t)&&t.forEach((function(r,o){V.set(o,e(r,n,R,o,t,S))}));var O=Q?void 0:(A?X?f:p:X?w:I)(t);return o(O||t,(function(r,o){O&&(r=t[o=r]),a(V,o,e(r,n,R,o,t,S))})),V}},3118:(e,t,n)=>{var r=n(3218),o=Object.create,a=function(){function e(){}return function(t){if(!r(t))return{};if(o)return o(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=a},9881:(e,t,n)=>{var r=n(7816),o=n(9291)(r);e.exports=o},8483:(e,t,n)=>{var r=n(5063)();e.exports=r},7816:(e,t,n)=>{var r=n(8483),o=n(3674);e.exports=function(e,t){return e&&r(e,t,o)}},7786:(e,t,n)=>{var r=n(1811),o=n(327);e.exports=function(e,t){for(var n=0,a=(t=r(t,e)).length;null!=e&&n{var r=n(2488),o=n(1469);e.exports=function(e,t,n){var a=t(e);return o(e)?a:r(a,n(e))}},4239:(e,t,n)=>{var r=n(2705),o=n(9607),a=n(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):a(e)}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},9454:(e,t,n)=>{var r=n(4239),o=n(7005);e.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},939:(e,t,n)=>{var r=n(2492),o=n(7005);e.exports=function e(t,n,a,i,l){return t===n||(null==t||null==n||!o(t)&&!o(n)?t!=t&&n!=n:r(t,n,a,i,e,l))}},2492:(e,t,n)=>{var r=n(6384),o=n(7114),a=n(8351),i=n(6096),l=n(4160),c=n(1469),s=n(4144),u=n(6719),d="[object Arguments]",p="[object Array]",f="[object Object]",b=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,g,h,m){var v=c(e),y=c(t),B=v?p:l(e),C=y?p:l(t),x=(B=B==d?f:B)==f,I=(C=C==d?f:C)==f,w=B==C;if(w&&s(e)){if(!s(t))return!1;v=!0,x=!1}if(w&&!x)return m||(m=new r),v||u(e)?o(e,t,n,g,h,m):a(e,t,B,n,g,h,m);if(!(1&n)){var k=x&&b.call(e,"__wrapped__"),Z=I&&b.call(t,"__wrapped__");if(k||Z){var G=k?e.value():e,E=Z?t.value():t;return m||(m=new r),h(G,E,n,g,m)}}return!!w&&(m||(m=new r),i(e,t,n,g,h,m))}},5588:(e,t,n)=>{var r=n(4160),o=n(7005);e.exports=function(e){return o(e)&&"[object Map]"==r(e)}},2958:(e,t,n)=>{var r=n(6384),o=n(939);e.exports=function(e,t,n,a){var i=n.length,l=i,c=!a;if(null==e)return!l;for(e=Object(e);i--;){var s=n[i];if(c&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i{var r=n(3560),o=n(5346),a=n(3218),i=n(346),l=/^\[object .+?Constructor\]$/,c=Function.prototype,s=Object.prototype,u=c.toString,d=s.hasOwnProperty,p=RegExp("^"+u.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!a(e)||o(e))&&(r(e)?p:l).test(i(e))}},9221:(e,t,n)=>{var r=n(4160),o=n(7005);e.exports=function(e){return o(e)&&"[object Set]"==r(e)}},8749:(e,t,n)=>{var r=n(4239),o=n(1780),a=n(7005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return a(e)&&o(e.length)&&!!i[r(e)]}},7206:(e,t,n)=>{var r=n(1573),o=n(6432),a=n(6557),i=n(1469),l=n(9601);e.exports=function(e){return"function"==typeof e?e:null==e?a:"object"==typeof e?i(e)?o(e[0],e[1]):r(e):l(e)}},280:(e,t,n)=>{var r=n(5726),o=n(6916),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))a.call(e,n)&&"constructor"!=n&&t.push(n);return t}},313:(e,t,n)=>{var r=n(3218),o=n(5726),a=n(3498),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return a(e);var t=o(e),n=[];for(var l in e)("constructor"!=l||!t&&i.call(e,l))&&n.push(l);return n}},9199:(e,t,n)=>{var r=n(9881),o=n(8612);e.exports=function(e,t){var n=-1,a=o(e)?Array(e.length):[];return r(e,(function(e,r,o){a[++n]=t(e,r,o)})),a}},1573:(e,t,n)=>{var r=n(2958),o=n(1499),a=n(2634);e.exports=function(e){var t=o(e);return 1==t.length&&t[0][2]?a(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},6432:(e,t,n)=>{var r=n(939),o=n(7361),a=n(9095),i=n(5403),l=n(9162),c=n(2634),s=n(327);e.exports=function(e,t){return i(e)&&l(t)?c(s(e),t):function(n){var i=o(n,e);return void 0===i&&i===t?a(n,e):r(t,i,3)}}},371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},9152:(e,t,n)=>{var r=n(7786);e.exports=function(e){return function(t){return r(t,e)}}},2545:e=>{e.exports=function(e,t){for(var n=-1,r=Array(e);++n{var r=n(2705),o=n(9932),a=n(1469),i=n(3448),l=r?r.prototype:void 0,c=l?l.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(a(t))return o(t,e)+"";if(i(t))return c?c.call(t):"";var n=t+"";return"0"==n&&1/t==-Infinity?"-0":n}},7518:e=>{e.exports=function(e){return function(t){return e(t)}}},4757:e=>{e.exports=function(e,t){return e.has(t)}},4290:(e,t,n)=>{var r=n(6557);e.exports=function(e){return"function"==typeof e?e:r}},1811:(e,t,n)=>{var r=n(1469),o=n(5403),a=n(5514),i=n(9833);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:a(i(e))}},4318:(e,t,n)=>{var r=n(1149);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},4626:(e,t,n)=>{e=n.nmd(e);var r=n(5639),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o?r.Buffer:void 0,l=i?i.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=l?l(n):new e.constructor(n);return e.copy(r),r}},7157:(e,t,n)=>{var r=n(4318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},3147:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},419:(e,t,n)=>{var r=n(2705),o=r?r.prototype:void 0,a=o?o.valueOf:void 0;e.exports=function(e){return a?Object(a.call(e)):{}}},7133:(e,t,n)=>{var r=n(4318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},278:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n{var r=n(4865),o=n(9465);e.exports=function(e,t,n,a){var i=!n;n||(n={});for(var l=-1,c=t.length;++l{var r=n(8363),o=n(9551);e.exports=function(e,t){return r(e,o(e),t)}},1911:(e,t,n)=>{var r=n(8363),o=n(1442);e.exports=function(e,t){return r(e,o(e),t)}},4429:(e,t,n)=>{var r=n(5639)["__core-js_shared__"];e.exports=r},9291:(e,t,n)=>{var r=n(8612);e.exports=function(e,t){return function(n,o){if(null==n)return n;if(!r(n))return e(n,o);for(var a=n.length,i=t?a:-1,l=Object(n);(t?i--:++i{e.exports=function(e){return function(t,n,r){for(var o=-1,a=Object(t),i=r(t),l=i.length;l--;){var c=i[e?l:++o];if(!1===n(a[c],c,a))break}return t}}},8777:(e,t,n)=>{var r=n(852),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},7114:(e,t,n)=>{var r=n(8668),o=n(2908),a=n(4757);e.exports=function(e,t,n,i,l,c){var s=1&n,u=e.length,d=t.length;if(u!=d&&!(s&&d>u))return!1;var p=c.get(e),f=c.get(t);if(p&&f)return p==t&&f==e;var b=-1,g=!0,h=2&n?new r:void 0;for(c.set(e,t),c.set(t,e);++b{var r=n(2705),o=n(1149),a=n(7813),i=n(7114),l=n(8776),c=n(1814),s=r?r.prototype:void 0,u=s?s.valueOf:void 0;e.exports=function(e,t,n,r,s,d,p){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!d(new o(e),new o(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return a(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var f=l;case"[object Set]":var b=1&r;if(f||(f=c),e.size!=t.size&&!b)return!1;var g=p.get(e);if(g)return g==t;r|=2,p.set(e,t);var h=i(f(e),f(t),r,s,d,p);return p.delete(e),h;case"[object Symbol]":if(u)return u.call(e)==u.call(t)}return!1}},6096:(e,t,n)=>{var r=n(8234),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,a,i,l){var c=1&n,s=r(e),u=s.length;if(u!=r(t).length&&!c)return!1;for(var d=u;d--;){var p=s[d];if(!(c?p in t:o.call(t,p)))return!1}var f=l.get(e),b=l.get(t);if(f&&b)return f==t&&b==e;var g=!0;l.set(e,t),l.set(t,e);for(var h=c;++d{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},8234:(e,t,n)=>{var r=n(8866),o=n(9551),a=n(3674);e.exports=function(e){return r(e,a,o)}},6904:(e,t,n)=>{var r=n(8866),o=n(1442),a=n(1704);e.exports=function(e){return r(e,a,o)}},5050:(e,t,n)=>{var r=n(7019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},1499:(e,t,n)=>{var r=n(9162),o=n(3674);e.exports=function(e){for(var t=o(e),n=t.length;n--;){var a=t[n],i=e[a];t[n]=[a,i,r(i)]}return t}},852:(e,t,n)=>{var r=n(8458),o=n(7801);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},5924:(e,t,n)=>{var r=n(5569)(Object.getPrototypeOf,Object);e.exports=r},9607:(e,t,n)=>{var r=n(2705),o=Object.prototype,a=o.hasOwnProperty,i=o.toString,l=r?r.toStringTag:void 0;e.exports=function(e){var t=a.call(e,l),n=e[l];try{e[l]=void 0;var r=!0}catch(e){}var o=i.call(e);return r&&(t?e[l]=n:delete e[l]),o}},9551:(e,t,n)=>{var r=n(4963),o=n(479),a=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,l=i?function(e){return null==e?[]:(e=Object(e),r(i(e),(function(t){return a.call(e,t)})))}:o;e.exports=l},1442:(e,t,n)=>{var r=n(2488),o=n(5924),a=n(9551),i=n(479),l=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,a(e)),e=o(e);return t}:i;e.exports=l},4160:(e,t,n)=>{var r=n(8552),o=n(7071),a=n(3818),i=n(8525),l=n(577),c=n(4239),s=n(346),u="[object Map]",d="[object Promise]",p="[object Set]",f="[object WeakMap]",b="[object DataView]",g=s(r),h=s(o),m=s(a),v=s(i),y=s(l),B=c;(r&&B(new r(new ArrayBuffer(1)))!=b||o&&B(new o)!=u||a&&B(a.resolve())!=d||i&&B(new i)!=p||l&&B(new l)!=f)&&(B=function(e){var t=c(e),n="[object Object]"==t?e.constructor:void 0,r=n?s(n):"";if(r)switch(r){case g:return b;case h:return u;case m:return d;case v:return p;case y:return f}return t}),e.exports=B},7801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,n)=>{var r=n(1811),o=n(5694),a=n(1469),i=n(5776),l=n(1780),c=n(327);e.exports=function(e,t,n){for(var s=-1,u=(t=r(t,e)).length,d=!1;++s{var r=n(4536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},7667:(e,t,n)=>{var r=n(4536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(t,e)?t[e]:void 0}},1327:(e,t,n)=>{var r=n(4536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},1866:(e,t,n)=>{var r=n(4536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},3824:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},9148:(e,t,n)=>{var r=n(4318),o=n(7157),a=n(3147),i=n(419),l=n(7133);e.exports=function(e,t,n){var c=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new c(+e);case"[object DataView]":return o(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return l(e,n);case"[object Map]":return new c;case"[object Number]":case"[object String]":return new c(e);case"[object RegExp]":return a(e);case"[object Set]":return new c;case"[object Symbol]":return i(e)}}},8517:(e,t,n)=>{var r=n(3118),o=n(5924),a=n(5726);e.exports=function(e){return"function"!=typeof e.constructor||a(e)?{}:r(o(e))}},5776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e{var r=n(1469),o=n(3448),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||(i.test(e)||!a.test(e)||null!=t&&e in Object(t))}},7019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},5346:(e,t,n)=>{var r,o=n(4429),a=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!a&&a in e}},5726:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},9162:(e,t,n)=>{var r=n(3218);e.exports=function(e){return e==e&&!r(e)}},7040:e=>{e.exports=function(){this.__data__=[],this.size=0}},4125:(e,t,n)=>{var r=n(8470),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():o.call(t,n,1),--this.size,!0)}},2117:(e,t,n)=>{var r=n(8470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},7529:(e,t,n)=>{var r=n(8470);e.exports=function(e){return r(this.__data__,e)>-1}},4705:(e,t,n)=>{var r=n(8470);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},4785:(e,t,n)=>{var r=n(1989),o=n(8407),a=n(7071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(a||o),string:new r}}},1285:(e,t,n)=>{var r=n(5050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},6e3:(e,t,n)=>{var r=n(5050);e.exports=function(e){return r(this,e).get(e)}},9916:(e,t,n)=>{var r=n(5050);e.exports=function(e){return r(this,e).has(e)}},5265:(e,t,n)=>{var r=n(5050);e.exports=function(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}},8776:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},2634:e=>{e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},4523:(e,t,n)=>{var r=n(8306);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},4536:(e,t,n)=>{var r=n(852)(Object,"create");e.exports=r},6916:(e,t,n)=>{var r=n(5569)(Object.keys,Object);e.exports=r},3498:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},1167:(e,t,n)=>{e=n.nmd(e);var r=n(1957),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o&&r.process,l=function(){try{var e=a&&a.require&&a.require("util").types;return e||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=l},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},5639:(e,t,n)=>{var r=n(1957),o="object"==typeof self&&self&&self.Object===Object&&self,a=r||o||Function("return this")();e.exports=a},619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},2385:e=>{e.exports=function(e){return this.__data__.has(e)}},1814:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},7465:(e,t,n)=>{var r=n(8407);e.exports=function(){this.__data__=new r,this.size=0}},3779:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},7599:e=>{e.exports=function(e){return this.__data__.get(e)}},4758:e=>{e.exports=function(e){return this.__data__.has(e)}},4309:(e,t,n)=>{var r=n(8407),o=n(7071),a=n(3369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var i=n.__data__;if(!o||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new a(i)}return n.set(e,t),this.size=n.size,this}},5514:(e,t,n)=>{var r=n(4523),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,i=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,(function(e,n,r,o){t.push(r?o.replace(a,"$1"):n||e)})),t}));e.exports=i},327:(e,t,n)=>{var r=n(3448);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t}},346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},361:(e,t,n)=>{var r=n(5990);e.exports=function(e){return r(e,5)}},7813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},2525:(e,t,n)=>{var r=n(7816),o=n(4290);e.exports=function(e,t){return e&&r(e,o(t))}},7361:(e,t,n)=>{var r=n(7786);e.exports=function(e,t,n){var o=null==e?void 0:r(e,t);return void 0===o?n:o}},9095:(e,t,n)=>{var r=n(13),o=n(222);e.exports=function(e,t){return null!=e&&o(e,t,r)}},6557:e=>{e.exports=function(e){return e}},5694:(e,t,n)=>{var r=n(9454),o=n(7005),a=Object.prototype,i=a.hasOwnProperty,l=a.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(e){return o(e)&&i.call(e,"callee")&&!l.call(e,"callee")};e.exports=c},1469:e=>{var t=Array.isArray;e.exports=t},8612:(e,t,n)=>{var r=n(3560),o=n(1780);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},4144:(e,t,n)=>{e=n.nmd(e);var r=n(5639),o=n(5062),a=t&&!t.nodeType&&t,i=a&&e&&!e.nodeType&&e,l=i&&i.exports===a?r.Buffer:void 0,c=(l?l.isBuffer:void 0)||o;e.exports=c},3560:(e,t,n)=>{var r=n(4239),o=n(3218);e.exports=function(e){if(!o(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},1780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},6688:(e,t,n)=>{var r=n(5588),o=n(7518),a=n(1167),i=a&&a.isMap,l=i?o(i):r;e.exports=l},3218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},7005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},8630:(e,t,n)=>{var r=n(4239),o=n(5924),a=n(7005),i=Function.prototype,l=Object.prototype,c=i.toString,s=l.hasOwnProperty,u=c.call(Object);e.exports=function(e){if(!a(e)||"[object Object]"!=r(e))return!1;var t=o(e);if(null===t)return!0;var n=s.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==u}},2928:(e,t,n)=>{var r=n(9221),o=n(7518),a=n(1167),i=a&&a.isSet,l=i?o(i):r;e.exports=l},7037:(e,t,n)=>{var r=n(4239),o=n(1469),a=n(7005);e.exports=function(e){return"string"==typeof e||!o(e)&&a(e)&&"[object String]"==r(e)}},3448:(e,t,n)=>{var r=n(4239),o=n(7005);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},6719:(e,t,n)=>{var r=n(8749),o=n(7518),a=n(1167),i=a&&a.isTypedArray,l=i?o(i):r;e.exports=l},3674:(e,t,n)=>{var r=n(4636),o=n(280),a=n(8612);e.exports=function(e){return a(e)?r(e):o(e)}},1704:(e,t,n)=>{var r=n(4636),o=n(313),a=n(8612);e.exports=function(e){return a(e)?r(e,!0):o(e)}},5161:(e,t,n)=>{var r=n(9932),o=n(7206),a=n(9199),i=n(1469);e.exports=function(e,t){return(i(e)?r:a)(e,o(t,3))}},8306:(e,t,n)=>{var r=n(3369);function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i)||a,i};return n.cache=new(o.Cache||r),n}o.Cache=r,e.exports=o},9601:(e,t,n)=>{var r=n(371),o=n(9152),a=n(5403),i=n(327);e.exports=function(e){return a(e)?r(i(e)):o(e)}},479:e=>{e.exports=function(){return[]}},5062:e=>{e.exports=function(){return!1}},9833:(e,t,n)=>{var r=n(531);e.exports=function(e){return null==e?"":r(e)}},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,a){for(var i,l,c=o(e),s=1;s{"use strict";var r=n(414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),o=n(7418),a=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n