dexie-cloud-addon 1.0.0-alpha.6 → 1.0.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/copydts.sh +5 -0
  2. package/dist/modern/dexie-cloud-addon.js +5954 -0
  3. package/dist/modern/dexie-cloud-addon.js.map +1 -0
  4. package/dist/modern/dexie-cloud-addon.min.js +1 -0
  5. package/dist/modern/dexie-cloud-addon.min.js.map +1 -0
  6. package/dist/modern/service-worker.js +6054 -0
  7. package/dist/modern/service-worker.js.map +1 -0
  8. package/dist/modern/service-worker.min.js +1 -0
  9. package/dist/modern/service-worker.min.js.map +1 -0
  10. package/dist/module-es5/dexie-cloud-addon.js +6908 -0
  11. package/dist/module-es5/dexie-cloud-addon.js.map +1 -0
  12. package/dist/module-es5/dexie-cloud-addon.min.js +1 -0
  13. package/dist/module-es5/dexie-cloud-addon.min.js.map +1 -0
  14. package/dist/types/DISABLE_SERVICEWORKER_STRATEGY.d.ts +1 -0
  15. package/dist/types/DXCWebSocketStatus.d.ts +1 -0
  16. package/dist/types/DexieCloudOptions.d.ts +19 -0
  17. package/dist/types/DexieCloudServerState.d.ts +5 -0
  18. package/dist/types/TSON.d.ts +17 -0
  19. package/dist/types/WSObservable.d.ts +62 -0
  20. package/dist/types/WebSocketStatus.d.ts +1 -0
  21. package/dist/types/authentication/AuthPersistedContext.d.ts +9 -0
  22. package/dist/types/authentication/TokenExpiredError.d.ts +3 -0
  23. package/dist/types/authentication/UNAUTHORIZED_USER.d.ts +2 -0
  24. package/dist/types/authentication/authenticate.d.ts +20 -0
  25. package/dist/types/authentication/currentUserObservable.d.ts +1 -0
  26. package/dist/types/authentication/interactWithUser.d.ts +18 -0
  27. package/dist/types/authentication/login.d.ts +6 -0
  28. package/dist/types/authentication/otpFetchTokenCallback.d.ts +3 -0
  29. package/dist/types/authentication/setCurrentUser.d.ts +14 -0
  30. package/dist/types/computeSyncState.d.ts +4 -0
  31. package/dist/types/db/DexieCloudDB.d.ts +58 -0
  32. package/dist/types/db/entities/BaseRevisionMapEntry.d.ts +5 -0
  33. package/dist/types/db/entities/EntityCommon.d.ts +4 -0
  34. package/dist/types/db/entities/GuardedJob.d.ts +5 -0
  35. package/dist/types/db/entities/Member.d.ts +19 -0
  36. package/dist/types/db/entities/PersistedSyncState.d.ts +14 -0
  37. package/dist/types/db/entities/Realm.d.ts +16 -0
  38. package/dist/types/db/entities/Role.d.ts +11 -0
  39. package/dist/types/db/entities/UserLogin.d.ts +18 -0
  40. package/dist/types/default-ui/Dialog.d.ts +4 -0
  41. package/dist/types/default-ui/LoginDialog.d.ts +6 -0
  42. package/dist/types/default-ui/Styles.d.ts +3 -0
  43. package/dist/types/default-ui/index.d.ts +24 -0
  44. package/dist/types/dexie-cloud-client.d.ts +8 -0
  45. package/dist/types/errors/HttpError.d.ts +5 -0
  46. package/dist/types/extend-dexie-interface.d.ts +59 -0
  47. package/dist/types/helpers/BroadcastedAndLocalEvent.d.ts +8 -0
  48. package/dist/types/helpers/BroadcastedLocalEvent.d.ts +8 -0
  49. package/dist/types/helpers/CancelToken.d.ts +4 -0
  50. package/dist/types/helpers/IS_SERVICE_WORKER.d.ts +1 -0
  51. package/dist/types/helpers/SWBroadcastChannel.d.ts +6 -0
  52. package/dist/types/helpers/allSettled.d.ts +1 -0
  53. package/dist/types/helpers/bulkUpdate.d.ts +4 -0
  54. package/dist/types/helpers/computeRealmSetHash.d.ts +2 -0
  55. package/dist/types/helpers/date-constants.d.ts +5 -0
  56. package/dist/types/helpers/dbOnClosed.d.ts +2 -0
  57. package/dist/types/helpers/getMutationTable.d.ts +1 -0
  58. package/dist/types/helpers/getSyncableTables.d.ts +4 -0
  59. package/dist/types/helpers/getTableFromMutationTable.d.ts +1 -0
  60. package/dist/types/helpers/makeArray.d.ts +1 -0
  61. package/dist/types/helpers/randomString.d.ts +1 -0
  62. package/dist/types/helpers/resolveText.d.ts +2 -0
  63. package/dist/types/helpers/throwVersionIncrementNeeded.d.ts +1 -0
  64. package/dist/types/helpers/visibilityState.d.ts +1 -0
  65. package/dist/types/helpers/visibleState.d.ts +1 -0
  66. package/dist/types/isFirefox.d.ts +1 -0
  67. package/dist/types/isSafari.d.ts +2 -0
  68. package/dist/types/middleware-helpers/guardedTable.d.ts +11 -0
  69. package/dist/types/middlewares/createIdGenerationMiddleware.d.ts +8 -0
  70. package/dist/types/middlewares/createImplicitPropSetterMiddleware.d.ts +3 -0
  71. package/dist/types/middlewares/createMutationTrackingMiddleware.d.ts +17 -0
  72. package/dist/types/middlewares/outstandingTransaction.d.ts +4 -0
  73. package/dist/types/overrideParseStoresSpec.d.ts +4 -0
  74. package/dist/types/performInitialSync.d.ts +4 -0
  75. package/dist/types/service-worker.d.ts +1 -0
  76. package/dist/types/sync/LocalSyncWorker.d.ts +7 -0
  77. package/dist/types/sync/SyncRequiredError.d.ts +3 -0
  78. package/dist/types/sync/connectWebSocket.d.ts +2 -0
  79. package/dist/types/sync/extractRealm.d.ts +2 -0
  80. package/dist/types/sync/getLatestRevisionsPerTable.d.ts +6 -0
  81. package/dist/types/sync/getTablesToSyncify.d.ts +3 -0
  82. package/dist/types/sync/isOnline.d.ts +1 -0
  83. package/dist/types/sync/isSyncNeeded.d.ts +2 -0
  84. package/dist/types/sync/listClientChanges.d.ts +9 -0
  85. package/dist/types/sync/listSyncifiedChanges.d.ts +5 -0
  86. package/dist/types/sync/messageConsumerIsReady.d.ts +2 -0
  87. package/dist/types/sync/messagesFromServerQueue.d.ts +8 -0
  88. package/dist/types/sync/modifyLocalObjectsWithNewUserId.d.ts +4 -0
  89. package/dist/types/sync/myId.d.ts +1 -0
  90. package/dist/types/sync/numUnsyncedMutations.d.ts +2 -0
  91. package/dist/types/sync/old_startSyncingClientChanges.d.ts +39 -0
  92. package/dist/types/sync/performGuardedJob.d.ts +4 -0
  93. package/dist/types/sync/registerSyncEvent.d.ts +3 -0
  94. package/dist/types/sync/sync.d.ts +17 -0
  95. package/dist/types/sync/syncIfPossible.d.ts +5 -0
  96. package/dist/types/sync/syncServerToClientOnly.d.ts +3 -0
  97. package/dist/types/sync/syncWithServer.d.ts +5 -0
  98. package/dist/types/sync/triggerSync.d.ts +2 -0
  99. package/dist/types/sync/updateBaseRevs.d.ts +5 -0
  100. package/dist/types/types/CloudConnectionStatus.d.ts +0 -0
  101. package/dist/types/types/ConnectionStatus.d.ts +0 -0
  102. package/dist/types/types/DXCAlert.d.ts +25 -0
  103. package/dist/types/types/DXCInputField.d.ts +11 -0
  104. package/dist/types/types/DXCUserInteraction.d.ts +55 -0
  105. package/dist/types/types/LoginState.d.ts +41 -0
  106. package/dist/types/types/SWMessageEvent.d.ts +3 -0
  107. package/dist/types/types/SWSyncEvent.d.ts +4 -0
  108. package/dist/types/types/SyncConnectionStatus.d.ts +1 -0
  109. package/dist/types/types/SyncFlowStatus.d.ts +6 -0
  110. package/dist/types/types/SyncState.d.ts +8 -0
  111. package/dist/types/types/SyncStatus.d.ts +6 -0
  112. package/dist/types/types/TXExpandos.d.ts +10 -0
  113. package/dist/types/updateSchemaFromOptions.d.ts +3 -0
  114. package/dist/types/userIsActive.d.ts +7 -0
  115. package/dist/types/verifyConfig.d.ts +2 -0
  116. package/dist/types/verifySchema.d.ts +2 -0
  117. package/dist/umd/dexie-cloud-addon.js +6919 -0
  118. package/dist/umd/dexie-cloud-addon.js.map +1 -0
  119. package/dist/umd/dexie-cloud-addon.min.js +1 -0
  120. package/dist/umd/dexie-cloud-addon.min.js.map +1 -0
  121. package/dist/umd/service-worker.js +6063 -0
  122. package/dist/umd/service-worker.js.map +1 -0
  123. package/dist/umd/service-worker.min.js +1 -0
  124. package/dist/umd/service-worker.min.js.map +1 -0
  125. package/dist/umd-modern/dexie-cloud-addon.js +5965 -0
  126. package/dist/umd-modern/dexie-cloud-addon.js.map +1 -0
  127. package/package.json +71 -39
  128. package/dist/dexie-cloud.d.ts +0 -27
  129. package/dist/dexie-cloud.js +0 -285
  130. package/dist/dexie-cloud.js.map +0 -1
  131. package/dist/dexie-cloud.min.js +0 -1
  132. package/dist/dexie-cloud.min.js.map +0 -1
  133. package/dist/dexie-cloud.mjs +0 -273
  134. package/dist/dexie-cloud.mjs.map +0 -1
  135. package/esnext/dexie-cloud.js +0 -278
  136. package/esnext/dexie-cloud.js.map +0 -1
  137. package/esnext/dexie-cloud.min.js +0 -1
  138. package/esnext/dexie-cloud.min.js.map +0 -1
@@ -0,0 +1 @@
1
+ import e,{liveQuery as t}from"dexie";import{Observable as n,BehaviorSubject as r,Subject as o,from as i,fromEvent as s,of as a,merge as c,Subscription as u,throwError as l,combineLatest as d}from"rxjs";const h={userId:"unauthorized",name:"Unauthorized",claims:{sub:"unauthorized"},lastLogin:new Date(0)};try{Object.freeze(h),Object.freeze(h.claims)}catch(e){}const f={},p=self.document&&navigator.serviceWorker;p&&p.ready.then((e=>f.registration=e)),"undefined"!=typeof self&&"clients"in self&&!self.document&&addEventListener("message",(e=>{var t,n;(null===(n=null===(t=e.data)||void 0===t?void 0:t.type)||void 0===n?void 0:n.startsWith("sw-broadcast-"))&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>{var n;return t.id!==(null===(n=e.source)||void 0===n?void 0:n.id)&&t.postMessage(e.data)}))}));class y{constructor(e){this.name=e}subscribe(e){if(!p)return()=>{};const t=t=>{var n;(null===(n=t.data)||void 0===n?void 0:n.type)===`sw-broadcast-${this.name}`&&e(t.data.message)};return p.addEventListener("message",t),()=>p.removeEventListener("message",t)}postMessage(e){var t;"object"==typeof self.clients?[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))):f.registration&&(null===(t=f.registration.active)||void 0===t||t.postMessage({type:`sw-broadcast-${this.name}`,message:e}))}}class b extends n{constructor(e){const t="undefined"==typeof BroadcastChannel?new y(e):new BroadcastChannel(e);super((n=>{function r(e){n.next(e.detail)}function o(e){console.debug("BroadcastedAndLocalEvent: onMessageEvent",e),n.next(e.data)}let i;return self.addEventListener(`lbc-${e}`,r),t instanceof y?i=t.subscribe((e=>n.next(e))):(console.debug("BroadcastedAndLocalEvent: bc.addEventListener()",e,"bc is a",t),t.addEventListener("message",o)),()=>{self.removeEventListener(`lbc-${e}`,r),t instanceof y?i():t.removeEventListener("message",o)}})),this.name=e,this.bc=t}next(e){console.debug("BroadcastedAndLocalEvent: bc.postMessage()",{...e},"bc is a",this.bc),this.bc.postMessage(e);const t=new CustomEvent(`lbc-${this.name}`,{detail:e});self.dispatchEvent(t)}}var v=function(e,t){return(v=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function m(e,t){function n(){this.constructor=e}v(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function g(e){return"function"==typeof e}var _=!1,w={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){e&&(new Error).stack;_=e},get useDeprecatedSynchronousErrorHandling(){return _}};function S(e){setTimeout((function(){throw e}),0)}var k={closed:!0,next:function(e){},error:function(e){if(w.useDeprecatedSynchronousErrorHandling)throw e;S(e)},complete:function(){}},x=function(){return Array.isArray||function(e){return e&&"number"==typeof e.length}}();function E(e){return null!==e&&"object"==typeof e}var I=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),T=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}return e.prototype.unsubscribe=function(){var t;if(!this.closed){var n=this,r=n._parentOrParents,o=n._ctorUnsubscribe,i=n._unsubscribe,s=n._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,r instanceof e)r.remove(this);else if(null!==r)for(var a=0;a<r.length;++a){r[a].remove(this)}if(g(i)){o&&(this._unsubscribe=void 0);try{i.call(this)}catch(e){t=e instanceof I?C(e.errors):[e]}}if(x(s)){a=-1;for(var c=s.length;++a<c;){var u=s[a];if(E(u))try{u.unsubscribe()}catch(e){t=t||[],e instanceof I?t=t.concat(C(e.errors)):t.push(e)}}}if(t)throw new I(t)}},e.prototype.add=function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case"function":n=new e(t);case"object":if(n===this||n.closed||"function"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n},e.prototype.remove=function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}},e.EMPTY=function(e){return e.closed=!0,e}(new e),e}();function C(e){return e.reduce((function(e,t){return e.concat(t instanceof I?t.errors:t)}),[])}var A=function(){return"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()}(),P=function(e){function t(n,r,o){var i=e.call(this)||this;switch(i.syncErrorValue=null,i.syncErrorThrown=!1,i.syncErrorThrowable=!1,i.isStopped=!1,arguments.length){case 0:i.destination=k;break;case 1:if(!n){i.destination=k;break}if("object"==typeof n){n instanceof t?(i.syncErrorThrowable=n.syncErrorThrowable,i.destination=n,n.add(i)):(i.syncErrorThrowable=!0,i.destination=new O(i,n));break}default:i.syncErrorThrowable=!0,i.destination=new O(i,n,r,o)}return i}return m(t,e),t.prototype[A]=function(){return this},t.create=function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this},t}(T),O=function(e){function t(t,n,r,o){var i,s=e.call(this)||this;s._parentSubscriber=t;var a=s;return g(n)?i=n:n&&(i=n.next,r=n.error,o=n.complete,n!==k&&(g((a=Object.create(n)).unsubscribe)&&s.add(a.unsubscribe.bind(a)),a.unsubscribe=s.unsubscribe.bind(s))),s._context=a,s._next=i,s._error=r,s._complete=o,s}return m(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;w.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber,n=w.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):S(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;S(e)}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};w.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){if(this.unsubscribe(),w.useDeprecatedSynchronousErrorHandling)throw e;S(e)}},t.prototype.__tryOrSetError=function(e,t,n){if(!w.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,n)}catch(t){return w.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=t,e.syncErrorThrown=!0,!0):(S(t),!0)}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(P);var U=function(){return"function"==typeof Symbol&&Symbol.observable||"@@observable"}();function D(e){return e}function $(e){return 0===e.length?D:1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)}}var N=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof P)return e;if(e[A])return e[A]()}return e||t||n?new P(e,t,n):new P(k)}(e,t,n);if(r?o.add(r.call(o,this.source)):o.add(this.source||w.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),w.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){w.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),!function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof P?r:null}return!0}(e)?console.warn(t):e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=R(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(e){r(e),o&&o.unsubscribe()}}),r,t)}))},e.prototype._subscribe=function(e){var t=this.source;return t&&t.subscribe(e)},e.prototype[U]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return 0===e.length?this:$(e)(this)},e.prototype.toPromise=function(e){var t=this;return new(e=R(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))},e.create=function(t){return new e(t)},e}();function R(e){if(e||(e=Promise),!e)throw new Error("no Promise impl found");return e}var j=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};function L(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}var W=L(),B=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function F(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}var M=function(e){if(e&&"function"==typeof e[U])return r=e,function(e){var t=r[U]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)};if(B(e))return j(e);if(F(e))return n=e,function(e){return n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,S),e};if(e&&"function"==typeof e[W])return t=e,function(e){for(var n=t[W]();;){var r=void 0;try{r=n.next()}catch(t){return e.error(t),e}if(r.done){e.complete();break}if(e.next(r.value),e.closed)break}return"function"==typeof n.return&&e.add((function(){n.return&&n.return()})),e};var t,n,r,o=E(e)?"an invalid object":"'"+e+"'";throw new TypeError("You provided "+o+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.")},H=function(e){function t(t){var n=e.call(this)||this;return n.parent=t,n}return m(t,e),t.prototype._next=function(e){this.parent.notifyNext(e)},t.prototype._error=function(e){this.parent.notifyError(e),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(),this.unsubscribe()},t}(P),V=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return m(t,e),t.prototype.notifyNext=function(e){this.destination.next(e)},t.prototype.notifyError=function(e){this.destination.error(e)},t.prototype.notifyComplete=function(){this.destination.complete()},t}(P);function K(e,t){if(!t.closed){if(e instanceof N)return e.subscribe(t);var n;try{n=M(e)(t)}catch(e){t.error(e)}return n}}var q=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r.pending=!1,r}return m(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(r,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),setInterval(e.flush.bind(e,this),n)},t.prototype.recycleAsyncId=function(e,t,n){if(void 0===n&&(n=0),null!==n&&this.delay===n&&!1===this.pending)return t;clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var n=!1,r=void 0;try{this.work(e)}catch(e){n=!0,r=!!e&&e||new Error(e)}if(n)return this.unsubscribe(),r},t.prototype._unsubscribe=function(){var e=this.id,t=this.scheduler,n=t.actions,r=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==r&&n.splice(r,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null},t}(function(e){function t(t,n){return e.call(this)||this}return m(t,e),t.prototype.schedule=function(e,t){return this},t}(T)),z=function(){function e(t,n){void 0===n&&(n=e.now),this.SchedulerAction=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.SchedulerAction(this,e).schedule(n,t)},e.now=function(){return Date.now()},e}(),G=new(function(e){function t(n,r){void 0===r&&(r=z.now);var o=e.call(this,n,(function(){return t.delegate&&t.delegate!==o?t.delegate.now():r()}))||this;return o.actions=[],o.active=!1,o.scheduled=void 0,o}return m(t,e),t.prototype.schedule=function(n,r,o){return void 0===r&&(r=0),t.delegate&&t.delegate!==this?t.delegate.schedule(n,r,o):e.prototype.schedule.call(this,n,r,o)},t.prototype.flush=function(e){var t=this.actions;if(this.active)t.push(e);else{var n;this.active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(z))(q);function J(e){return e&&"function"==typeof e.schedule}function Y(e){return function(t){var n=new X(e),r=t.lift(n);return n.caught=r}}var X=function(){function e(e){this.selector=e}return e.prototype.call=function(e,t){return t.subscribe(new Z(e,this.selector,this.caught))},e}(),Z=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.selector=n,o.caught=r,o}return m(t,e),t.prototype.error=function(t){if(!this.isStopped){var n=void 0;try{n=this.selector(t,this.caught)}catch(t){return void e.prototype.error.call(this,t)}this._unsubscribeAndRecycle();var r=new H(this);this.add(r);var o=K(n,r);o!==r&&this.add(o)}},t}(V);function Q(e,t){return new N((function(n){var r=new T,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}function ee(e,t){return t?Q(e,t):new N(j(e))}function te(e,t){if(null!=e){if(function(e){return e&&"function"==typeof e[U]}(e))return function(e,t){return new N((function(n){var r=new T;return r.add(t.schedule((function(){var o=e[U]();r.add(o.subscribe({next:function(e){r.add(t.schedule((function(){return n.next(e)})))},error:function(e){r.add(t.schedule((function(){return n.error(e)})))},complete:function(){r.add(t.schedule((function(){return n.complete()})))}}))}))),r}))}(e,t);if(F(e))return function(e,t){return new N((function(n){var r=new T;return r.add(t.schedule((function(){return e.then((function(e){r.add(t.schedule((function(){n.next(e),r.add(t.schedule((function(){return n.complete()})))})))}),(function(e){r.add(t.schedule((function(){return n.error(e)})))}))}))),r}))}(e,t);if(B(e))return Q(e,t);if(function(e){return e&&"function"==typeof e[W]}(e)||"string"==typeof e)return function(e,t){if(!e)throw new Error("Iterable cannot be null");return new N((function(n){var r,o=new T;return o.add((function(){r&&"function"==typeof r.return&&r.return()})),o.add(t.schedule((function(){r=e[W](),o.add(t.schedule((function(){if(!n.closed){var e,t;try{var o=r.next();e=o.value,t=o.done}catch(e){return void n.error(e)}t?n.complete():(n.next(e),this.schedule())}})))}))),o}))}(e,t)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")}function ne(e,t){return t?te(e,t):e instanceof N?e:new N(M(e))}function re(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=e[e.length-1];return J(n)?(e.pop(),Q(e,n)):ee(e)}function oe(e,t){return function(n){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new ie(e,t))}}var ie=function(){function e(e,t){this.project=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new se(e,this.project,this.thisArg))},e}(),se=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.project=n,o.count=0,o.thisArg=r||o,o}return m(t,e),t.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(P);function ae(e,t,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),"function"==typeof t?function(r){return r.pipe(ae((function(n,r){return ne(e(n,r)).pipe(oe((function(e,o){return t(n,e,r,o)})))}),n))}:("number"==typeof t&&(n=t),function(t){return t.lift(new ce(e,n))})}var ce=function(){function e(e,t){void 0===t&&(t=Number.POSITIVE_INFINITY),this.project=e,this.concurrent=t}return e.prototype.call=function(e,t){return t.subscribe(new ue(e,this.project,this.concurrent))},e}(),ue=function(e){function t(t,n,r){void 0===r&&(r=Number.POSITIVE_INFINITY);var o=e.call(this,t)||this;return o.project=n,o.concurrent=r,o.hasCompleted=!1,o.buffer=[],o.active=0,o.index=0,o}return m(t,e),t.prototype._next=function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)},t.prototype._tryNext=function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(e){return void this.destination.error(e)}this.active++,this._innerSub(t)},t.prototype._innerSub=function(e){var t=new H(this),n=this.destination;n.add(t);var r=K(e,t);r!==t&&n.add(r)},t.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()},t.prototype.notifyNext=function(e){this.destination.next(e)},t.prototype.notifyComplete=function(){var e=this.buffer;this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(V);function le(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),ae(D,e)}function de(){return le(1)}function he(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return de()(re.apply(void 0,e))}function fe(e,t){return void 0===t&&(t=G),function(n){return n.lift(new pe(e,t))}}var pe=function(){function e(e,t){this.dueTime=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new ye(e,this.dueTime,this.scheduler))},e}(),ye=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.dueTime=n,o.scheduler=r,o.debouncedSubscription=null,o.lastValue=null,o.hasValue=!1,o}return m(t,e),t.prototype._next=function(e){this.clearDebounce(),this.lastValue=e,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(be,this.dueTime,this))},t.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},t.prototype.debouncedNext=function(){if(this.clearDebounce(),this.hasValue){var e=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(e)}},t.prototype.clearDebounce=function(){var e=this.debouncedSubscription;null!==e&&(this.remove(e),e.unsubscribe(),this.debouncedSubscription=null)},t}(P);function be(e){e.debouncedNext()}function ve(e){return e instanceof Date&&!isNaN(+e)}var me=new N((function(e){return e.complete()}));function ge(e){return e?function(e){return new N((function(t){return e.schedule((function(){return t.complete()}))}))}(e):me}function _e(e,t){return new N(t?function(n){return t.schedule(we,0,{error:e,subscriber:n})}:function(t){return t.error(e)})}function we(e){var t=e.error;e.subscriber.error(t)}var Se=function(){function e(e,t,n){this.kind=e,this.value=t,this.error=n,this.hasValue="N"===e}return e.prototype.observe=function(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}},e.prototype.do=function(e,t,n){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return n&&n()}},e.prototype.accept=function(e,t,n){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,n)},e.prototype.toObservable=function(){switch(this.kind){case"N":return re(this.value);case"E":return _e(this.error);case"C":return ge()}throw new Error("unexpected notification kind value")},e.createNext=function(t){return void 0!==t?new e("N",t):e.undefinedValueNotification},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e.undefinedValueNotification=new e("N",void 0),e}();function ke(e,t){void 0===t&&(t=G);var n=ve(e)?+e-t.now():Math.abs(e);return function(e){return e.lift(new xe(n,t))}}var xe=function(){function e(e,t){this.delay=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new Ee(e,this.delay,this.scheduler))},e}(),Ee=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.delay=n,o.scheduler=r,o.queue=[],o.active=!1,o.errored=!1,o}return m(t,e),t.dispatch=function(e){for(var t=e.source,n=t.queue,r=e.scheduler,o=e.destination;n.length>0&&n[0].time-r.now()<=0;)n.shift().notification.observe(o);if(n.length>0){var i=Math.max(0,n[0].time-r.now());this.schedule(e,i)}else this.unsubscribe(),t.active=!1},t.prototype._schedule=function(e){this.active=!0,this.destination.add(e.schedule(t.dispatch,this.delay,{source:this,destination:this.destination,scheduler:e}))},t.prototype.scheduleNotification=function(e){if(!0!==this.errored){var t=this.scheduler,n=new Ie(t.now()+this.delay,e);this.queue.push(n),!1===this.active&&this._schedule(t)}},t.prototype._next=function(e){this.scheduleNotification(Se.createNext(e))},t.prototype._error=function(e){this.errored=!0,this.queue=[],this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.scheduleNotification(Se.createComplete()),this.unsubscribe()},t}(P),Ie=function(){return function(e,t){this.time=e,this.notification=t}}();var Te=function(){function e(e,t){this.compare=e,this.keySelector=t}return e.prototype.call=function(e,t){return t.subscribe(new Ce(e,this.compare,this.keySelector))},e}(),Ce=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.keySelector=r,o.hasKey=!1,"function"==typeof n&&(o.compare=n),o}return m(t,e),t.prototype.compare=function(e,t){return e===t},t.prototype._next=function(e){var t;try{var n=this.keySelector;t=n?n(e):e}catch(e){return this.destination.error(e)}var r=!1;if(this.hasKey)try{r=(0,this.compare)(this.key,t)}catch(e){return this.destination.error(e)}else this.hasKey=!0;r||(this.key=t,this.destination.next(e))},t}(P),Ae=function(){function e(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return e.prototype=Object.create(Error.prototype),e}();function Pe(e,t){return function(n){return n.lift(new Oe(e,t))}}var Oe=function(){function e(e,t){this.predicate=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new Ue(e,this.predicate,this.thisArg))},e}(),Ue=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.predicate=n,o.thisArg=r,o.count=0,o}return m(t,e),t.prototype._next=function(e){var t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}t&&this.destination.next(e)},t}(P);function De(e){return function(t){return 0===e?ge():t.lift(new $e(e))}}var $e=function(){function e(e){if(this.total=e,this.total<0)throw new Ae}return e.prototype.call=function(e,t){return t.subscribe(new Ne(e,this.total))},e}(),Ne=function(e){function t(t,n){var r=e.call(this,t)||this;return r.total=n,r.count=0,r}return m(t,e),t.prototype._next=function(e){var t=this.total,n=++this.count;n<=t&&(this.destination.next(e),n===t&&(this.destination.complete(),this.unsubscribe()))},t}(P);function Re(e){return function(t){return t.lift(new je(e))}}var je=function(){function e(e){this.total=e}return e.prototype.call=function(e,t){return t.subscribe(new Le(e,this.total))},e}(),Le=function(e){function t(t,n){var r=e.call(this,t)||this;return r.total=n,r.count=0,r}return m(t,e),t.prototype._next=function(e){++this.count>this.total&&this.destination.next(e)},t}(P);function We(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=e[e.length-1];return J(n)?(e.pop(),function(t){return he(e,t,n)}):function(t){return he(e,t)}}function Be(e,t){return"function"==typeof t?function(n){return n.pipe(Be((function(n,r){return ne(e(n,r)).pipe(oe((function(e,o){return t(n,e,r,o)})))})))}:function(t){return t.lift(new Fe(e))}}var Fe=function(){function e(e){this.project=e}return e.prototype.call=function(e,t){return t.subscribe(new Me(e,this.project))},e}(),Me=function(e){function t(t,n){var r=e.call(this,t)||this;return r.project=n,r.index=0,r}return m(t,e),t.prototype._next=function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(e){return void this.destination.error(e)}this._innerSub(t)},t.prototype._innerSub=function(e){var t=this.innerSubscription;t&&t.unsubscribe();var n=new H(this),r=this.destination;r.add(n),this.innerSubscription=K(e,n),this.innerSubscription!==n&&r.add(this.innerSubscription)},t.prototype._complete=function(){var t=this.innerSubscription;t&&!t.closed||e.prototype._complete.call(this),this.unsubscribe()},t.prototype._unsubscribe=function(){this.innerSubscription=void 0},t.prototype.notifyComplete=function(){this.innerSubscription=void 0,this.isStopped&&e.prototype._complete.call(this)},t.prototype.notifyNext=function(e){this.destination.next(e)},t}(V);function He(){}function Ve(e,t,n){return function(r){return r.lift(new Ke(e,t,n))}}var Ke=function(){function e(e,t,n){this.nextOrObserver=e,this.error=t,this.complete=n}return e.prototype.call=function(e,t){return t.subscribe(new qe(e,this.nextOrObserver,this.error,this.complete))},e}(),qe=function(e){function t(t,n,r,o){var i=e.call(this,t)||this;return i._tapNext=He,i._tapError=He,i._tapComplete=He,i._tapError=r||He,i._tapComplete=o||He,g(n)?(i._context=i,i._tapNext=n):n&&(i._context=n,i._tapNext=n.next||He,i._tapError=n.error||He,i._tapComplete=n.complete||He),i}return m(t,e),t.prototype._next=function(e){try{this._tapNext.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.next(e)},t.prototype._error=function(e){try{this._tapError.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.error(e)},t.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()},t}(P),ze=function(){function e(){return Error.call(this),this.message="Timeout has occurred",this.name="TimeoutError",this}return e.prototype=Object.create(Error.prototype),e}();var Ge=function(){function e(e,t,n,r){this.waitFor=e,this.absoluteTimeout=t,this.withObservable=n,this.scheduler=r}return e.prototype.call=function(e,t){return t.subscribe(new Je(e,this.absoluteTimeout,this.waitFor,this.withObservable,this.scheduler))},e}(),Je=function(e){function t(t,n,r,o,i){var s=e.call(this,t)||this;return s.absoluteTimeout=n,s.waitFor=r,s.withObservable=o,s.scheduler=i,s.scheduleTimeout(),s}return m(t,e),t.dispatchTimeout=function(e){var t=e.withObservable;e._unsubscribeAndRecycle(),e.add(K(t,new H(e)))},t.prototype.scheduleTimeout=function(){var e=this.action;e?this.action=e.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(t.dispatchTimeout,this.waitFor,this))},t.prototype._next=function(t){this.absoluteTimeout||this.scheduleTimeout(),e.prototype._next.call(this,t)},t.prototype._unsubscribe=function(){this.action=void 0,this.scheduler=null,this.withObservable=null},t}(V);function Ye(e,t){return void 0===t&&(t=G),function(e,t,n){return void 0===n&&(n=G),function(r){var o=ve(e),i=o?+e-n.now():Math.abs(e);return r.lift(new Ge(i,o,t,n))}}(e,_e(new ze),t)}let Xe=!1;async function Ze(e,t){try{const n=await navigator.serviceWorker.ready;return"push"===t&&n.sync&&await n.sync.register(`dexie-cloud:${e.name}`),void(n.active?n.active.postMessage({type:"dexie-cloud-sync",dbName:e.name,purpose:t}):console.error("Dexie Cloud: There's no active service worker. Can this ever happen??"))}catch(e){Xe||(console.debug("Dexie Cloud: Could not register sync event",e),Xe=!0)}}function Qe(e,t){e.cloud.usingServiceWorker?Ze(e,t):e.localSyncEvent.next({purpose:t})}const et="undefined"!=typeof Buffer?e=>Buffer.from(e,"base64"):e=>{const t=atob(e),n=t.length,r=new Uint8Array(n);for(var o=0;o<n;o++)r[o]=t.charCodeAt(o);return r},tt="undefined"!=typeof Buffer?e=>ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):Buffer.from(e).toString("base64"):e=>btoa(String.fromCharCode.apply(null,e));async function nt({realms:e,inviteRealms:t}){const n=JSON.stringify([...e.map((e=>({realmId:e,accepted:!0}))),...t.map((e=>({realmId:e,accepted:!1})))].sort(((e,t)=>e.realmId<t.realmId?-1:e.realmId>t.realmId?1:0))),r=(new TextEncoder).encode(n),o=await crypto.subtle.digest("SHA-1",r);return tt(o)}function rt(e){return Object.entries(e.cloud.schema||{}).filter((([,{markedForSync:e}])=>e)).map((([t])=>e.table(t)))}function ot(e){return`$${e}_mutations`}function it(e){var t;const n=null===(t=/^\$(.*)_mutations$/.exec(e))||void 0===t?void 0:t[1];if(!n)throw new Error(`Given mutationTable ${e} is not correct`);return n}async function st(e,t,{since:n={},limit:r=1/0}={}){return(await Promise.all(e.map((async e=>{const t=it(e.name),o=n[t];let i=o?e.where("rev").above(o):e;r<1/0&&(i=i.limit(r));return{table:t,muts:await i.toArray()}})))).filter((({muts:e})=>e.length>0))}const at=crypto.getRandomValues;function ct(e,t,n){if(e&&void 0!==t&&(!("isFrozen"in Object)||!Object.isFrozen(e)))if("string"!=typeof t&&"length"in t){!function(e){if(!e)throw new Error("Assertion Failed")}("string"!=typeof n&&"length"in n);for(var r=0,o=t.length;r<o;++r)ct(e,t[r],n[r])}else{var i=t.indexOf(".");if(-1!==i){var s=t.substr(0,i),a=t.substr(i+1);if(""===a)void 0===n?Array.isArray(e)?isNaN(parseInt(s))||e.splice(parseInt(s),1):delete e[s]:e[s]=n;else{var c=e[s];c||(c=e[s]={}),ct(c,a,n)}}else void 0===n?Array.isArray(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}const ut="undefined"==typeof self?e=>{const t=Buffer.alloc(e);return at(t),t.toString("base64")}:e=>{const t=new Uint8Array(e);return crypto.getRandomValues(t),btoa(String.fromCharCode.apply(null,t))};function lt(e){return"string"==typeof e||!!(Array.isArray(e)&&e.some((e=>lt(e)))&&e.every(dt))}function dt(e){return"string"==typeof e||"number"==typeof e||Array.isArray(e)&&e.every(dt)}function ht(e,t,n){const r=e[t]||(e[t]={});switch(n.type){case"insert":case"upsert":n.keys.forEach(((e,t)=>{r[e]={type:"ups",val:n.values[t]}}));break;case"update":case"modify":n.keys.forEach(((e,t)=>{const o="update"===n.type?n.changeSpecs[t]:n.changeSpec,i=r[e];if(i)switch(i.type){case"ups":for(const[e,t]of Object.entries(o))ct(i.val,e,t);break;case"del":break;case"upd":Object.assign(i.mod,o)}else r[e]={type:"upd",mod:o}}));break;case"delete":n.keys.forEach((e=>{r[e]={type:"del"}}))}return e}function ft(e,t){for(const{table:n,muts:r}of t)for(const t of r)ht(e,n,t)}function pt(t,n){return new Promise(((r,o)=>{const i={...n,onSubmit:e=>{t.next(void 0),r(e)},onCancel:()=>{t.next(void 0),o(new e.AbortError("User cancelled"))}};t.next(i)}))}function yt(e,t,...n){return pt(e,{type:"message-alert",title:t,alerts:n,fields:{}})}async function bt(e,t,n){let r=n||"";for(;!r||!/^[\w-\.]+@([\w-]+\.)+[\w-]{2,10}$/.test(r);)r=(await pt(e,{type:"email",title:t,alerts:r?[{type:"error",messageCode:"INVALID_EMAIL",message:"Please enter a valid email address",messageParams:{}}]:[],fields:{email:{type:"email",placeholder:"you@somedomain.com"}}})).email;return r}async function vt(e,t,n){const r=[{type:"info",messageCode:"OTP_SENT",message:"A One-Time password has been sent to {email}",messageParams:{email:t}}];n&&r.push(n);const{otp:o}=await pt(e,{type:"otp",title:"Enter OTP",alerts:r,fields:{otp:{type:"otp",label:"OTP",placeholder:"Paste OTP here"}}});return o}async function mt(e,t,n,r,o){return t.accessToken&&t.accessTokenExpiration.getTime()>Date.now()?t:t.refreshToken&&(!t.refreshTokenExpiration||t.refreshTokenExpiration.getTime()>Date.now())?await gt(e,t):await async function(e,t,n,r){const{privateKey:o,publicKey:i}=await crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!1,["sign","verify"]);e.nonExportablePrivateKey=o;const s=function(e){const t=tt(e);return function(e){let t="-----BEGIN PUBLIC KEY-----\n";for(;e.length>0;)t+=e.substring(0,64)+"\n",e=e.substring(64);return t+="-----END PUBLIC KEY-----",t}(t)}(await crypto.subtle.exportKey("spki",i));e.publicKey=i;try{const o=await t({public_key:s,hints:r});if("tokens"!==o.type)throw new Error(`Unexpected response type from token endpoint: ${o.type}`);return e.accessToken=o.accessToken,e.accessTokenExpiration=new Date(o.accessTokenExpiration),e.refreshToken=o.refreshToken,o.refreshTokenExpiration&&(e.refreshTokenExpiration=new Date(o.refreshTokenExpiration)),e.userId=o.claims.sub,e.email=o.claims.email,e.name=o.claims.name,e.claims=o.claims,o.alerts&&o.alerts.length>0&&await pt(n,{type:"message-alert",title:"Authentication Alert",fields:{},alerts:o.alerts}),e}catch(e){throw await yt(n,"Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:"We're having a problem to authenticate rigth now.",messageParams:{}}).catch((()=>{})),e}}(t,n,r,o)}async function gt(e,t){if(!t.refreshToken)throw new Error("Cannot refresh token - refresh token is missing.");if(!t.nonExportablePrivateKey)throw new Error("login.nonExportablePrivateKey is missing - cannot sign refresh token without a private key.");const n=Date.now(),r="RSASSA-PKCS1-v1_5",o=(new TextEncoder).encode(t.refreshToken+n),i=await crypto.subtle.sign(r,t.nonExportablePrivateKey,o),s=tt(i),a={grant_type:"refresh_token",refresh_token:t.refreshToken,scopes:["ACCESS_DB"],signature:s,signing_algorithm:r,time_stamp:n},c=await fetch(`${e}/token`,{body:JSON.stringify(a),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});if(200!==c.status)throw new Error(`RefreshToken: Status ${c.status} from ${e}/token`);const u=await c.json();return t.accessToken=u.accessToken,t.accessTokenExpiration=u.accessTokenExpiration?new Date(u.accessTokenExpiration):void 0,t}const{toString:_t}={};const wt={replace:function(e){const t=Object.keys(e);let n=null;for(let e=0,r=t.length;e<r;++e)"$"===t[e][0]&&(n=n||[],n.push(t[e]));if(!n)return e;const r={...e};for(const t of n)delete r[t],r["$"+t]=e[t];return r}};function St(...e){const t=e.reduce(((e,t)=>({...e,...t})),e.reduce(((e,t)=>({...t,...e})),{})),n=new WeakMap;return{stringify:(e,r,o)=>JSON.stringify(e,(function(e){const o=this[e],i=function(e){const r=typeof e;switch(typeof e){case"object":case"function":{if(null===e)return null;const r=Object.getPrototypeOf(e);if(!r)return wt;let i=n.get(r);if(void 0!==i)return i;const s=(o=e,_t.call(o).slice(8,-1)),a=Object.entries(t).find((([t,n])=>{var r,o;return null!==(o=null===(r=null==n?void 0:n.test)||void 0===r?void 0:r.call(n,e,s))&&void 0!==o?o:t===s}));return i=null==a?void 0:a[1],i||(i=Array.isArray(e)?null:"function"==typeof e?t.function||null:wt),n.set(r,i),i}default:return t[r]}var o}(o);return i?i.replace(o,r,t):o}),o),parse(e,n){let r=null,o=[];return JSON.parse(e,(function(e,i){const s=null==i?void 0:i.$t;if(s){const e=t[s];i=e?e.revive(i,n,t):i}if(i===r){if(o.length>0){i={...i};for(const e of o)i[e.substr(1)]=i[e],delete i[e]}return o=[],i}return"$"===e[0]&&"$t"!==e&&(r=this,o.push(e)),i}))}}}const kt={Blob:{test:(e,t)=>"Blob"===t,replace:(e,t)=>{const n=t.length;return t.push(e),{$t:"Blob",mimeType:e.type,i:n}},revive:({i:e,mimeType:t},n)=>new Blob([n[e]],{type:t})}};var xt={number:{replace:e=>{switch(!0){case isNaN(e):return{$t:"number",v:"NaN"};case e===1/0:return{$t:"number",v:"Infinity"};case e===-1/0:return{$t:"number",v:"-Infinity"};default:return e}},revive:({v:e})=>Number(e)}};const Et={bigint:{replace:e=>({$t:"bigint",v:""+e}),revive:e=>BigInt(e.v)}};var It={Date:{replace:e=>({$t:"Date",v:isNaN(e.getTime())?"NaN":e.toISOString()}),revive:({v:e})=>new Date("NaN"===e?NaN:Date.parse(e))}},Tt={Set:{replace:e=>({$t:"Set",v:Array.from(e.entries())}),revive:({v:e})=>new Set(e)}},Ct={Map:{replace:e=>({$t:"Map",v:Array.from(e.entries())}),revive:({v:e})=>new Map(e)}};const At="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"==typeof global?global:void 0;var Pt=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","DataView","BigInt64Array","BigUint64Array"].reduce(((e,t)=>({...e,[t]:{replace:(e,n,r)=>({$t:t,v:r.ArrayBuffer.replace(0===e.byteOffset&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n,r).v}),revive:({v:e},n,r)=>{const o=At[t];return o&&new o(r.ArrayBuffer.revive({v:e},n,r))}}})),{});function Ot(e){return function(e){for(var t="",n=0,r=e.length;n<r;n++)t+=$t[e[n]];return t}(tt(e))}function Ut(e){return et(function(e){if("string"!=typeof e)throw new Error("invalid decoder input: "+e);for(var t="",n=0,r=e.length;n<r;n++)t+=Dt[e[n]];return t}(e))}const Dt={"-":"=",0:"A",1:"B",2:"C",3:"D",4:"E",5:"F",6:"G",7:"H",8:"I",9:"J",A:"K",B:"L",C:"M",D:"N",E:"O",F:"P",G:"Q",H:"R",I:"S",J:"T",K:"U",L:"V",M:"W",N:"X",O:"Y",P:"Z",Q:"a",R:"b",S:"c",T:"d",U:"e",V:"f",W:"g",X:"h",Y:"i",Z:"j",_:"k",a:"l",b:"m",c:"n",d:"o",e:"p",f:"q",g:"r",h:"s",i:"t",j:"u",k:"v",l:"w",m:"x",n:"y",o:"z",p:"0",q:"1",r:"2",s:"3",t:"4",u:"5",v:"6",w:"7",x:"8",y:"9",z:"+","|":"/"},$t={};for(const e of Object.keys(Dt))$t[Dt[e]]=e;var Nt={ArrayBuffer:{replace:e=>({$t:"ArrayBuffer",v:Ot(e)}),revive:({v:e})=>{const t=Ut(e);return t.buffer.byteLength===t.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}};class Rt{constructor(e,t){this.buf=e,this.type=t}}function jt(e){const t=new XMLHttpRequest;if(t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad Blob access: "+t.status);return t.responseText}function Lt(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t.buffer}const Wt={...xt,...Et,...It,...Tt,...Ct,...Pt,...Nt,...{Blob:{test:(e,t)=>"Blob"===t||e instanceof Rt,replace:e=>({$t:"Blob",v:tt(e instanceof Rt?e.buf:Lt(jt(e))),type:e.type}),revive:({type:e,v:t})=>{const n=et(t);return void 0!==typeof Blob?new Blob([n]):new Rt(n.buffer,e)}}}};function Bt(e){return new Promise(((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsArrayBuffer(e)}))}var Ft={undefined:{replace:()=>{},revive:()=>{}}};const Mt="bigint"==typeof BigInt(0);class Ht{constructor(e){this.v=e}toString(){return this.v}}const Vt={...Ft,...Mt?{}:{bigint:{test:e=>e instanceof Ht,replace:e=>({$t:"bigint",...e}),revive:({v:e})=>new Ht(e)}}},Kt=St(Wt,Vt),qt=function(...e){const t=St(Wt,kt,...e);return{toBinary(e){const[t,n]=this.stringify(e),r=new ArrayBuffer(4);return new DataView(r).setUint32(0,t.size),new Blob([r,t,n])},stringify(e){const n=[],r=t.stringify(e,n);return[new Blob(n.map((e=>{const t=new ArrayBuffer(4);return new DataView(t).setUint32(0,"byteLength"in e?e.byteLength:e.size),new Blob([t,e])}))),r]},async parse(e,n){let r=0;const o=[],i=await Bt(n),s=new DataView(i);for(;r<i.byteLength;){const e=s.getUint32(r);r+=4;const t=i.slice(r,r+e);r+=e,o.push(t)}return t.parse(e,o)},async fromBinary(e){const t=new DataView(await Bt(e.slice(0,4))).getUint32(0),n=e.slice(4,t+4),r=await function(e){return new Promise(((t,n)=>{const r=new FileReader;r.onabort=e=>n(new Error("file read aborted")),r.onerror=e=>n(e.target.error),r.onload=e=>t(e.target.result),r.readAsText(e)}))}(e.slice(t+4));return await this.parse(r,n)}}}(Vt);class zt extends Error{constructor(e,t){super(t||`${e.status} ${e.statusText}`),this.httpStatus=e.status}get name(){return"HttpError"}}async function Gt(e,t,n,r,o,i,s){const a={Accept:"application/json, application/x-bison, application/x-bison-stream","Content-Type":"application/tson"},c=await async function(e){var t,n;const r=await e.getCurrentUser(),{accessToken:o,accessTokenExpiration:i,refreshToken:s,refreshTokenExpiration:a,claims:c}=r;if(!o)return;if((null!==(t=null==i?void 0:i.getTime())&&void 0!==t?t:1/0)>Date.now())return o;if(!s)throw new Error("Refresh token missing");if((null!==(n=null==a?void 0:a.getTime())&&void 0!==n?n:1/0)<=Date.now())throw new Error("Refresh token has expired");const u=await gt(e.cloud.options.databaseUrl,r);return await e.table("$logins").update(c.sub,{accessToken:u.accessToken,accessTokenExpiration:u.accessTokenExpiration}),u.accessToken}(r);c&&(a.Authorization=`Bearer ${c}`);const u={v:2,dbID:null==t?void 0:t.remoteDbId,clientIdentity:s,schema:i||{},lastPull:t?{serverRevision:t.serverRevision,realms:t.realms,inviteRealms:t.inviteRealms}:void 0,baseRevs:n,changes:e};console.debug("Sync request",u),r.syncStateChangedEvent.next({phase:"pushing"});const l=await fetch(`${o}/sync`,{method:"post",headers:a,body:Kt.stringify(u)});if(r.syncStateChangedEvent.next({phase:"pulling"}),!l.ok)throw new zt(l);switch(l.headers.get("content-type")){case"application/x-bison":return qt.fromBinary(await l.blob());case"application/x-bison-stream":default:case"application/json":{const e=await l.text();return Kt.parse(e)}}}async function Jt(t,n,r){const o=await t.bulkGet(n),i=[],s=[];n.forEach(((n,a)=>{const c=o[a];if(c){for(const[n,o]of Object.entries(r[a])){if(n===t.schema.primKey.keyPath)throw new Error("Cannot change primary key");e.setByKeyPath(c,n,o)}i.push(n),s.push(c)}})),await(null==t.schema.primKey.keyPath?t.bulkPut(s,i):t.bulkPut(s))}function Yt(t){if(null==t?void 0:t.cancelled)throw new e.AbortError("Operation was cancelled")}let Xt=navigator.onLine;async function Zt(e,t,n,r){await e.$baseRevs.bulkPut(Object.keys(t).filter((e=>t[e].markedForSync)).map((e=>({tableName:e,clientRev:(n[e]||0)+1,serverRev:r}))))}function Qt(e,t={}){for(const{table:n,muts:r}of e){const e=r.length>0?r[r.length-1].rev:null;t[n]=e||t[n]||0}return t}self.addEventListener("online",(()=>Xt=!0)),self.addEventListener("offline",(()=>Xt=!1));function en(e,t,n,r){return tn.apply(this,arguments).then((()=>{(null==r?void 0:r.justCheckIfNeeded)||e.syncStateChangedEvent.next({phase:"in-sync"})})).catch((async o=>(null==r?void 0:r.justCheckIfNeeded)?Promise.reject(o):(console.debug("Error from _sync",{isOnline:Xt,syncOptions:r,error:o}),Xt&&(null==r?void 0:r.retryImmediatelyOnFetchError)&&"TypeError"===(null==o?void 0:o.name)&&/fetch/.test(null==o?void 0:o.message)?(e.syncStateChangedEvent.next({phase:"error",error:o}),await new Promise((e=>setTimeout(e,500))),await en(e,t,n,{...r,retryImmediatelyOnFetchError:!1})):(await e.$syncState.update("syncState",{timestamp:new Date,error:""+o}),e.syncStateChangedEvent.next({phase:Xt?"error":"offline",error:o}),Promise.reject(o)))))}async function tn(e,t,n,{isInitialSync:r,cancelToken:o,justCheckIfNeeded:i,purpose:s}={isInitialSync:!1}){var a;if(i||console.debug("SYNC STARTED",{isInitialSync:r,purpose:s}),!(null===(a=e.cloud.options)||void 0===a?void 0:a.databaseUrl))throw new Error("Internal error: sync must not be called when no databaseUrl is configured");const{databaseUrl:c}=t,u=await e.getCurrentUser(),l=u.isLoggedIn?rt(e):[],d=l.map((t=>e.table(ot(t.name)))),f=await e.getPersistedSyncState(),p=!r&&u.isLoggedIn?function(e,t){const n=(null==t?void 0:t.syncedTables)||[];return rt(e).filter((e=>!n.includes(e.name)))}(e,f):[];Yt(o);const y=p.length>0;if(y){if(i)return!0;console.debug("sync doSyncify is true"),await e.transaction("rw",p,(async e=>{e.idbtrans.disableChangeTracking=!0,e.idbtrans.disableAccessControl=!0,await async function(e,t,n){const r=new Set(n||[]);for(const n of e)"members"===n.name?await n.toCollection().modify((e=>{r.has(e.realmId)||e.userId!==h.userId||(e.userId=t.userId)})):"roles"===n.name||("realms"===n.name?await n.toCollection().modify((e=>{(r.has(e.realmId)||e.owner)&&e.owner!==h.userId||(e.owner=t.userId)})):await n.toCollection().modify((e=>{e.realmId&&r.has(e.realmId)||(e.owner&&e.owner!==h.userId||(e.owner=t.userId),e.realmId&&e.realmId!==h.userId||(e.realmId=t.userId))})))}(p,u,null==f?void 0:f.realms)})),Yt(o)}const[b,v,m]=await e.transaction("r",e.tables,(async()=>{const t=await e.getPersistedSyncState(),r=await e.$baseRevs.toArray();let i=await st(d);if(Yt(o),y){const e=await async function(e,t,n,r){if(t.isLoggedIn&&e.length>0){const o=new Set(r||[]);return(await Promise.all(e.map((async e=>{const{extractKey:r}=e.core.schema.primaryKey;if(!r)return{table:e.name,muts:[]};const i=n[e.name],s=(null==i?void 0:i.generatedGlobalId)?e.filter((e=>!o.has(e.realmId||"")&&lt(r(e)))):e.filter((e=>{return!o.has(e.realmId||"")&&(t=r(e),!(n=null==i?void 0:i.idPrefix)||"string"==typeof t&&t.startsWith(n));var t,n})),a=await s.toArray();if(a.length>0){const n={type:"insert",values:a,keys:a.map(r),userId:t.userId};return{table:e.name,muts:[n]}}return{table:e.name,muts:[]}})))).filter((e=>e.muts.length>0))}return[]}(p,u,n,null==f?void 0:f.realms);return Yt(o),i=i.concat(e),[i,t,r]}return[i,t,r]})),g=b.some((e=>e.muts.some((e=>e.keys.length>0))));if(i)return console.debug("Sync is needed:",g),g;if("push"===s&&!g)return!1;const _=Qt(b,null==v?void 0:v.latestRevisions),w=(null==v?void 0:v.clientIdentity)||ut(16);Yt(o);const S=await Gt(b,v,m,e,c,n,w);console.debug("Sync response",S);return await e.transaction("rw",e.tables,(async t=>{t.idbtrans.disableChangeTracking=!0,t.idbtrans.disableAccessControl=!0;for(const e of Object.keys(n))S.schema[e]&&(n[e]=S.schema[e]);await e.$syncState.put(n,"schema");const r=await st(d,0,{since:_});for(const t of d){const n=it(t.name);if(r.some((e=>e.table===n&&e.muts.length>0))){if(_[t.name]){const r=_[t.name]||0;await Promise.all([t.where("rev").belowOrEqual(r).delete(),e.$baseRevs.where(":id").between([n,-1/0],[n,r+1],!0,!0).reverse().offset(1).delete()])}}else await Promise.all([t.clear(),e.$baseRevs.where({tableName:n}).delete()])}Qt(r,_),await Zt(e,n,_,S.serverRevision);const o=await e.getPersistedSyncState();await async function(e,t,n){const r=[],o=n?n.realms.concat(n.inviteRealms):[],i=new Set([...t.realms,...t.inviteRealms]);for(const e of o)i.has(e)||r.push(e);if(r.length>0){const t=new Set(r),n=rt(e);for(const e of n)e.schema.indexes.some((e=>"realmId"===e.keyPath||Array.isArray(e.keyPath)&&"realmId"===e.keyPath[0]))?await e.where("realmId").anyOf(r).delete():await e.filter((e=>!!(null==e?void 0:e.realmId)&&t.has(e.realmId))).delete()}}(e,S,o);const i=o||{syncedTables:[],latestRevisions:{},realms:[],inviteRealms:[],clientIdentity:w};i.syncedTables=l.map((e=>e.name)).concat(p.map((e=>e.name))),i.latestRevisions=_,i.remoteDbId=S.dbId,i.initiallySynced=!0,i.realms=S.realms,i.inviteRealms=S.inviteRealms,i.serverRevision=S.serverRevision,i.timestamp=new Date,delete i.error;const s=rn(S.changes,r);return await nn(s,e),e.$syncState.put(i,"syncState"),0===r.length}))?(console.debug("SYNC DONE",{isInitialSync:r}),!1):(console.debug("MORE SYNC NEEDED. Go for it again!"),await tn(e,t,n,{isInitialSync:r,cancelToken:o}))}async function nn(t,n){console.debug("Applying server changes",t,e.currentTransaction);for(const{table:r,muts:o}of t){const t=n.table(r);if(!t)continue;const{primaryKey:i}=t.core.schema;for(const n of o)switch(n.type){case"insert":i.outbound?await t.bulkAdd(n.values,n.keys):(n.keys.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),await t.bulkAdd(n.values));break;case"upsert":i.outbound?await t.bulkPut(n.values,n.keys):(n.keys.forEach(((t,r)=>{e.setByKeyPath(n.values[r],i.keyPath,t)})),await t.bulkPut(n.values));break;case"modify":1===n.keys.length?await t.update(n.keys[0],n.changeSpec):await t.where(":id").anyOf(n.keys).modify(n.changeSpec);break;case"update":await Jt(t,n.keys,n.changeSpecs);break;case"delete":await t.bulkDelete(n.keys)}}}function rn(e,t){const n={};ft(n,e);const r={};return ft(r,t),function(e,t){var n,r,o;for(const[i,s]of Object.entries(t))for(const[t,a]of Object.entries(s))switch(a.type){case"ups":{const r=null===(n=e[i])||void 0===n?void 0:n[t];if(r)switch(r.type){case"ups":delete e[i][t];break;case"del":break;case"upd":delete e[i][t]}}break;case"del":null===(r=e[i])||void 0===r||delete r[t];break;case"upd":{const n=null===(o=e[i])||void 0===o?void 0:o[t];if(n)switch(n.type){case"ups":for(const[e,t]of Object.entries(a.mod))ct(n.val,e,t);break;case"del":break;case"upd":for(const e of Object.keys(a.mod))delete n.mod[e]}break}}}(n,r),function(e){const t=ut(16),n={};for(const[t,r]of Object.entries(e))for(const[e,o]of Object.entries(r)){const r=n[t]||(n[t]={});(r[o.type]||(r[o.type]=[])).push(Object.assign({key:e},o))}const r=[];for(const[e,o]of Object.entries(n)){const n={table:e,muts:[]};for(const[e,r]of Object.entries(o))switch(e){case"ups":{const e={type:"upsert",keys:r.map((e=>e.key)),values:r.map((e=>e.val)),txid:t};n.muts.push(e);break}case"upd":{const e={type:"update",keys:r.map((e=>e.key)),changeSpecs:r.map((e=>e.mod)),txid:t};n.muts.push(e);break}case"del":{const e={type:"delete",keys:r.map((e=>e.key)),txid:t};n.muts.push(e);break}}r.push(n)}return r}(n)}function on(t){const n=[],o=new r(!0),i=new r(null);let s=!1,a=0,c=[0,0,0,0,0,0,0,0,0,Date.now()];return i.subscribe((async()=>{if(!s&&n.length>0){s=!0,c.shift(),c.push(Date.now()),o.next(!1);try{await async function(){var r,o,i;for(;n.length>0;){const s=n.shift();try{console.debug("processing msg",s),await t.cloud.syncState.pipe(Pe((({phase:e})=>"in-sync"===e||"error"===e)),De(1)).toPromise(),console.debug("processing msg",s);const n=t.cloud.persistedSyncState.value;if(!s)continue;switch(s.type){case"token-expired":console.debug("WebSocket observable: Token expired. Refreshing token...");const a=t.cloud.currentUser.value,c=await gt(t.cloud.options.databaseUrl,a);await t.table("$logins").update(a.userId,{accessToken:c.accessToken,accessTokenExpiration:c.accessTokenExpiration});break;case"realm-added":(null===(r=null==n?void 0:n.realms)||void 0===r?void 0:r.includes(s.realm))||Qe(t,"pull");break;case"realm-removed":(null===(o=null==n?void 0:n.realms)||void 0===o?void 0:o.includes(s.realm))&&Qe(t,"pull");break;case"realms-changed":Qe(t,"pull");break;case"changes":if(console.debug("changes"),"error"===(null===(i=t.cloud.syncState.value)||void 0===i?void 0:i.phase)){Qe(t,"pull");break}await t.transaction("rw",t.dx.tables,(async n=>{n.idbtrans.disableChangeTracking=!0,n.idbtrans.disableAccessControl=!0;const[r,o,i]=await Promise.all([t.getSchema(),t.getPersistedSyncState(),t.getCurrentUser()]);if(console.debug("ws message queue: in transaction"),!o||!r||!i)return void console.debug("required vars not present",{syncState:o,schema:r,currentUser:i});if(s.baseRev!==o.serverRevision)return console.debug(`baseRev (${s.baseRev}) differs from our serverRevision in syncState (${o.serverRevision})`),void("string"!=typeof s.baseRev||"bigint"!=typeof o.serverRevision&&"object"!=typeof o.serverRevision||Qe(t,"pull"));const a=await e.waitFor(nt(o));if(console.debug("ourRealmSetHash",a),a!==s.realmSetHash)return console.debug("not same realmSetHash",s.realmSetHash),void Qe(t,"pull");let c=[];if(i.isLoggedIn){const e=rt(t).map((e=>t.table(ot(e.name))));c=await st(e),console.debug("msg queue: client changes",c)}if(s.changes.length>0){const e=rn(s.changes,c);console.debug("applying filtered server changes",e),await nn(e,t)}o.latestRevisions=Qt(c,o.latestRevisions),o.serverRevision=s.newRev,console.debug("Updating baseRefs",o.latestRevisions),await Zt(t,r,o.latestRevisions,s.newRev),console.debug("Updating syncState",o),await t.$syncState.put(o,"syncState")})),console.debug("msg queue: done with rw transaction")}}catch(e){console.error("Error in msg queue",e)}}}()}finally{c[c.length-1]-c[0]<1e4&&(Date.now()-a<5e3?(console.warn("Slowing down websocket loop for one minute"),a=Date.now()+6e4,await new Promise((e=>setTimeout(e,6e4)))):(console.warn("Slowing down websocket loop for 10 seconds"),a=Date.now()+1e4,await new Promise((e=>setTimeout(e,1e4))))),s=!1,o.next(!0)}}})),{enqueue:function(e){n.push(e),i.next(null)},readyToServe:o}}const sn=new WeakMap,an={realms:"@realmId",members:"@id",roles:"[realmId+name]",$jobs:"",$syncState:"",$baseRevs:"[tableName+clientRev]",$logins:"claims.sub, lastLogin"};let cn=0;function un(e){"vip"in e&&(e=e.vip);let t=sn.get(e.cloud);if(!t){const n=new o;let r=new b(`syncstatechanged-${e.name}`);n.id=++cn;let i=!1;t={get name(){return e.name},close:()=>e.close(),transaction:e.transaction.bind(e),table:e.table.bind(e),get tables(){return e.tables},cloud:e.cloud,get $jobs(){return e.table("$jobs")},get $syncState(){return e.table("$syncState")},get $baseRevs(){return e.table("$baseRevs")},get $logins(){return e.table("$logins")},get realms(){return e.realms},get members(){return e.members},get roles(){return e.roles},get initiallySynced(){return i},localSyncEvent:n,get syncStateChangedEvent(){return r},dx:e};const s={getCurrentUser:()=>t.$logins.toArray().then((e=>e.find((e=>e.isLoggedIn))||h)),getPersistedSyncState:()=>t.$syncState.get("syncState"),getSchema:()=>t.$syncState.get("schema"),getOptions:()=>t.$syncState.get("options"),setInitiallySynced(e){i=e},reconfigure(){r=new b(`syncstatechanged-${e.name}`)}};Object.assign(t,s),t.messageConsumer=on(t),sn.set(e.cloud,t)}return t}const ln=new WeakMap;class dn{constructor(e,t){ln.set(this,e),Object.assign(this,t)}static load(e,t){return e.table("$logins").get(t).then((n=>new dn(e,n||{userId:t,claims:{sub:t},lastLogin:new Date(0)})))}async save(){ln.get(this).table("$logins").put(this)}}async function hn(e,t){if((await e.getCurrentUser()).isLoggedIn){if(t){if(t.email&&e.cloud.currentUser.value.email!==t.email)throw new Error("Must logout before changing user");if(t.userId&&e.cloud.currentUserId!==t.userId)throw new Error("Must logout before changing user")}return}const n=new dn(e,{claims:{},lastLogin:new Date(0)});await mt(e.cloud.options.databaseUrl,n,e.cloud.options.fetchTokens||function(e){const{userInteraction:t}=e.cloud;return async function({public_key:n,hints:r}){var o;let i;const s=null===(o=e.cloud.options)||void 0===o?void 0:o.databaseUrl;if(!s)throw new Error("No database URL given.");i="demo"===(null==r?void 0:r.grant_type)?{demo_user:await bt(t,"Enter a demo user email",(null==r?void 0:r.email)||(null==r?void 0:r.userId)),grant_type:"demo",scopes:["ACCESS_DB"],public_key:n}:{email:await bt(t,"Enter email address",null==r?void 0:r.email),grant_type:"otp",scopes:["ACCESS_DB"],public_key:n};const a=await fetch(`${s}/token`,{body:JSON.stringify(i),method:"post",headers:{"Content-Type":"application/json",mode:"cors"}});if(200!==a.status){const e=await a.text();throw await yt(t,"Token request failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new zt(a,e)}const c=await a.json();if("tokens"===c.type)return c;if("otp"===i.grant_type){if("otp-sent"!==c.type)throw new Error(`Unexpected response from ${s}/token`);const e=await vt(t,i.email);i.otp=e||"",i.otp_id=c.otp_id;let n=await fetch(`${s}/token`,{body:JSON.stringify(i),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"});for(;401===n.status;){const e=await n.text();i.otp=await vt(t,i.email,{type:"error",messageCode:"INVALID_OTP",message:e,messageParams:{}}),n=await fetch(`${s}/token`,{body:JSON.stringify(i),method:"post",headers:{"Content-Type":"application/json"},mode:"cors"})}if(200!==n.status){const e=await n.text();throw await yt(t,"OTP Authentication Failed",{type:"error",messageCode:"GENERIC_ERROR",message:e,messageParams:{}}).catch((()=>{})),new zt(n,e)}return await n.json()}throw new Error(`Unexpected response from ${s}/token`)}}(e),e.cloud.userInteraction,t),await n.save(),await async function(e,t){if(t.userId===e.cloud.currentUserId)return;const n=e.table("$logins");await e.transaction("rw",n,(async e=>{const r=await n.toArray();await Promise.all(r.filter((e=>e.userId!==t.userId&&e.isLoggedIn)).map((e=>(e.isLoggedIn=!1,n.put(e))))),t.isLoggedIn=!0,t.lastLogin=new Date,await t.save(),console.debug("Saved new user",t.email)})),await new Promise((n=>{if(e.cloud.currentUserId===t.userId)n(null);else{const r=e.cloud.currentUser.subscribe((e=>{e.userId===t.userId&&(r.unsubscribe(),n(null))}))}}))}(e,n),Qe(e,"pull")}const fn="undefined"!=typeof InstallTrigger,pn="undefined"!=typeof navigator&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\/|Edge\//.test(navigator.userAgent),yn=pn?[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]:NaN,bn=pn&&yn<=605||fn;const vn="undefined"!=typeof self&&"clients"in self&&!self.document;function mn(){throw new e.SchemaError("Version increment needed to allow dexie-cloud change tracking")}const{toString:gn}={};function _n(e){return gn.call(e).slice(8,-1)}function wn(e,t){var n;return"delete"===t.type?t.keys:(null===(n=t.keys)||void 0===n?void 0:n.slice())||t.values.map(e.extractKey)}const Sn=/b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|x|y|z/i;let kn=0;function xn(t){return{stack:"dbcore",name:"idGenerationMiddleware",level:1,create:n=>({...n,table:r=>{const o=n.table(r);function i(n,i){let s=null;const a=wn(o.schema.primaryKey,n);return a.forEach(((c,u)=>{if(void 0===c){const r=n.values[u].realmId||t.cloud.currentUserId,c=r.substr(r.length-3);a[u]=function(e,t){const n=new Uint8Array(18),r=new Uint8Array(n.buffer,0,6),o=Date.now();kn>=o?++kn:kn=o,r[0]=kn/1099511627776,r[1]=kn/4294967296,r[2]=kn/16777216,r[3]=kn/65536,r[4]=kn/256,r[5]=kn;const i=new Uint8Array(n.buffer,6);return crypto.getRandomValues(i),e+Ot(new Uint8Array(n.buffer))+(t||"")}(i,c),o.schema.primaryKey.outbound||(s||(s=n.values.slice()),s[u]=e.deepClone(s[u]),e.setByKeyPath(s[u],o.schema.primaryKey.keyPath,a[u]))}else if("string"!=typeof c||!c.startsWith(i))throw new e.ConstraintError(`The ID "${c}" is not valid for table "${r}". Primary '@' keys requires the key to be prefixed with "${i}.\n"If you want to generate IDs programmatically, remove '@' from the schema to get rid of this constraint. Dexie Cloud supports custom IDs as long as they are random and globally unique.`)})),o.mutate({...n,keys:a,values:s||n.values})}return{...o,mutate:n=>{var s,a;if(n.trans.disableChangeTracking)return o.mutate(n);if("add"===n.type||"put"===n.type){const c=null===(s=t.cloud.schema)||void 0===s?void 0:s[r];if(null==c?void 0:c.generatedGlobalId){if((null===(a=t.cloud.options)||void 0===a?void 0:a.databaseUrl)&&!t.initiallySynced){const e=wn(o.schema.primaryKey,n);return o.getMany({keys:e,trans:n.trans,cache:"immutable"}).then((t=>{if(t.length<e.length)throw new Error("Unable to create new objects without an initial sync having been performed.");return o.mutate(n)}))}return i(n,c.idPrefix)}if(null==c?void 0:c.markedForSync){wn(o.schema.primaryKey,n).forEach(((t,n)=>{if(!lt(t)){const n=Array.isArray(t)?t.map(_n).join(","):_n(t);throw new e.ConstraintError(`Invalid primary key type ${n} for table ${r}. Tables marked for sync has primary keys of type string or Array of string (and optional numbers)`)}}))}}return o.mutate(n)}}}})}}function En(e){const t=new Uint8Array(e);return crypto.getRandomValues(t),btoa(String.fromCharCode.apply(null,t))}let In=0;function Tn(e,t){return function(n){const{readers:r,writers:o}=n.trans[t]||(n.trans[t]={writers:[],readers:[]}),i=o.length,s=(i>0?o[i-1].then((()=>e(n)),(()=>e(n))):e(n)).finally((()=>r.splice(r.indexOf(s))));return r.push(s),s}}function Cn(e,t){return function(n){const{readers:r,writers:o}=n.trans[t]||(n.trans[t]={writers:[],readers:[]});let i=(o.length>0?o[o.length-1].then((()=>e(n)),(()=>e(n))):r.length>0?(s=r,new Promise((e=>{0===s.length&&e([]);let t=s.length;const n=new Array(t);s.forEach(((r,o)=>Promise.resolve(r).then((e=>n[o]={status:"fulfilled",value:e}),(e=>n[o]={status:"rejected",reason:e})).then((()=>--t||e(n)))))}))).then((()=>e(n))):e(n)).finally((()=>o.shift()));var s;return o.push(i),i}}const An=new r(new Set);function Pn({currentUserObservable:e,db:t}){return{stack:"dbcore",name:"MutationTrackingMiddleware",level:1,create:n=>{const r=n.schema.tables.filter((e=>!/^\$/.test(e.name)));let o;try{o=new Map(r.map((e=>[e.name,n.table(`$${e.name}_mutations`)])))}catch(e){mn()}return{...n,transaction:(r,o)=>{let i;if("readwrite"===o){const e=r.filter((e=>{var n,r;return null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[e])||void 0===r?void 0:r.markedForSync})).map((e=>ot(e)));i=n.transaction([...r,...e],o)}else i=n.transaction(r,o);if("readwrite"===o){i.txid=En(16),i.currentUser=e.value,An.value.add(i),An.next(An.value);const n=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",n),i.removeEventListener("abort",n),An.value.delete(i),An.next(An.value)},r=()=>{var e;i.mutationsAdded&&(null===(e=t.cloud.options)||void 0===e?void 0:e.databaseUrl)&&(t.cloud.usingServiceWorker?(console.debug("registering sync event"),Ze(t,"push")):t.localSyncEvent.next({purpose:"push"})),n()};i.addEventListener("complete",r),i.addEventListener("error",n),i.addEventListener("abort",n)}return i},table:e=>{const t=n.table(e);if(/^\$/.test(e))return e.endsWith("_mutations")?{...t,mutate:e=>("add"!==e.type&&"put"!==e.type||(e.trans.mutationsAdded=!0),t.mutate(e))}:"$logins"===e?{...t,mutate:e=>(console.debug("Mutating $logins table",e),t.mutate(e).then((t=>(console.debug("Mutating $logins"),e.trans.mutationsAdded=!0,console.debug("$logins mutated"),t))).catch((e=>(console.debug("Failed mutation $logins",e),Promise.reject(e)))))}:t;const{schema:r}=t,i=o.get(e);return function(e){const t="$lock"+ ++In;return{...e,count:Tn(e.count,t),get:Tn(e.get,t),getMany:Tn(e.getMany,t),openCursor:Tn(e.openCursor,t),query:Tn(e.query,t),mutate:Cn(e.mutate,t)}}({...t,mutate:e=>{var n;const o=e.trans;return o.txid?o.disableChangeTracking?t.mutate(e):(null===(n=o.currentUser)||void 0===n?void 0:n.isLoggedIn)?"deleteRange"===e.type?t.query({query:{range:e.range,index:r.primaryKey},trans:e.trans,values:!1}).then((t=>s({type:"delete",keys:t.result,trans:e.trans,criteria:{index:null,range:e.range}}))):s(e):t.mutate(e):t.mutate(e)}});function s(e){const n=e.trans;n.mutationsAdded=!0;const{txid:r,currentUser:{userId:o}}=n,{type:s}=e;return t.mutate(e).then((t=>{const{numFailures:a,failures:c}=t;let u="delete"===s?e.keys:t.results,l="values"in e?e.values:[],d="changeSpecs"in e?e.changeSpecs:[];a&&(u=u.filter(((e,t)=>!c[t])),l=l.filter(((e,t)=>!c[t])),d=d.filter(((e,t)=>!c[t])));const h=Date.now(),f="delete"===e.type?{type:"delete",ts:h,keys:u,criteria:e.criteria,txid:r,userId:o}:"add"===e.type?{type:"insert",ts:h,keys:u,txid:r,userId:o,values:l}:e.criteria&&e.changeSpec?{type:"modify",ts:h,keys:u,criteria:e.criteria,changeSpec:e.changeSpec,txid:r,userId:o}:e.changeSpecs?{type:"update",ts:h,keys:u,changeSpecs:d,txid:r,userId:o}:{type:"upsert",ts:h,keys:u,values:l,txid:r,userId:o};return u.length>0||"criteria"in e&&e.criteria?i.mutate({type:"add",trans:n,values:[f]}).then((()=>t)):t}))}}}}}}function On(e,t){return function(n,r){const o={...an,...n},i=t.cloud.schema||(t.cloud.schema={}),s=new Set;Object.keys(o).forEach((e=>{const t=o[e],n=i[e]||(i[e]={});null!=t?(/^\@/.test(t)&&(o[e]=o[e].substr(1),n.generatedGlobalId=!0,n.idPrefix=function(e,t){let n=e[0].toLocaleLowerCase();for(let t=1,o=e.length;t<o&&n.length<3;++t)(Sn.test(e[t])||(r=e[t])>="A"&&r<="Z")&&(n+=e[t].toLowerCase());for(var r,o,i;t.has(n);){if(/\d/g.test(n)){if(n=n.substr(0,n.length-1)+(n[n.length-1]+1),!(n.length>3))continue;n=n.substr(0,3)}else if(n.length<3){n+="2";continue}let e=1,r=n;for(;t.has(r)&&e<8;)o=n,r=(1&(i=e)?o[0].toUpperCase():o[0].toLowerCase())+(2&i?o[1].toUpperCase():o[1].toLowerCase())+(4&i?o[2].toUpperCase():o[2].toLowerCase()),++e;if(e<8)n=r;else{let e=n.charCodeAt(2)+1&127;n=n.substr(0,2)+String.fromCharCode(e)}}return n}(e,s),s.add(n.idPrefix)),/^\$/.test(e)||(o[`$${e}_mutations`]="++rev",n.markedForSync=!0),n.deleted&&(n.deleted=!1)):(n.deleted=!0,n.markedForSync=!1,o[`$${e}_mutations`]=null)}));return e.call(this,o,r)}}const Un=En(16);async function Dn(e,n,r,o,{awaitRemoteJob:s}={}){const a=e.table(r);if(await async function o(){if(await e.transaction("rw!",r,(async()=>{const e=await a.get(n);return e?e.heartbeat.getTime()<Date.now()-6e4&&(console.warn(`Latest ${n} worker seem to have died.\n`,"The dead job started:",e.started,"\n","Last heart beat was:",e.heartbeat,"\n","We're now taking over!"),await a.put({nodeId:Un,started:new Date,heartbeat:new Date},n),!0):(await a.add({nodeId:Un,started:new Date,heartbeat:new Date},n),!0)})))return!0;if(s)try{const e=i(t((()=>a.get(n)))).pipe(Ye(6e4),Pe((e=>!e)));return await e.toPromise(),!1}catch(e){if("TimeoutError"!==e.name)throw e;return await o()}return!1}()){const t=setInterval((()=>{a.update(n,(e=>e.nodeId===Un&&(e.heartbeat=new Date)))}),1e3);try{return await o()}finally{clearInterval(t),await e.transaction("rw!",r,(async()=>{const e=await a.get(n);e&&e.nodeId===Un&&a.delete(n)}))}}}const $n=new r(!0),Nn=new r(!0);var Rn,jn;$n.pipe(Be((e=>e?a(!0):a(!1).pipe(ke(2e4)))),(function(e){return e.lift(new Te(Rn,jn))})).subscribe(Nn);const Ln="undefined"!=typeof document?s(document,"visibilitychange"):a({}),Wn=Ln.pipe(Pe((()=>"hidden"===document.visibilityState))),Bn=Ln.pipe(Pe((()=>"visible"===document.visibilityState))),Fn="undefined"!=typeof window?c(Bn,s(window,"mousemove"),s(window,"keydown"),s(window,"wheel"),s(window,"touchmove")):a({});"undefined"!=typeof document&&c(a(!0),Wn,Fn).pipe(oe((()=>"visible"===document.visibilityState)),Ve((e=>{$n.value!==e&&$n.next(e)})),Be((e=>e?a(0).pipe(ke(28e4),Ve((()=>$n.next(!1)))):a(0)))).subscribe((()=>{}));class Mn extends Error{constructor(){super(...arguments),this.name="TokenExpiredError"}}class Hn extends n{constructor(e,t,n,r,o,i,s,a){super((c=>new Kn(e,t,n,r,s,a,c,o,i)))}}let Vn=0;class Kn extends u{constructor(e,t,n,r,o,i,s,a,c){super((()=>this.teardown())),this.id=++Vn,console.debug("New WebSocket Connection",this.id,o?"authorized":"unauthorized"),this.databaseUrl=e,this.rev=t,this.realmSetHash=n,this.clientIdentity=r,this.token=o,this.tokenExpiration=i,this.subscriber=s,this.lastUserActivity=new Date,this.messageProducer=a,this.messageProducerSubscription=null,this.webSocketStatus=c,this.connect()}teardown(){console.debug("Teardown WebSocket Connection",this.id),this.disconnect()}disconnect(){if(this.webSocketStatus.next("disconnected"),this.pinger&&(clearInterval(this.pinger),this.pinger=null),this.ws)try{this.ws.close()}catch(e){}this.ws=null,this.messageProducerSubscription&&(this.messageProducerSubscription.unsubscribe(),this.messageProducerSubscription=null)}reconnect(){this.disconnect(),this.connect()}async connect(){if(this.webSocketStatus.next("connecting"),this.lastServerActivity=new Date,this.pauseUntil&&this.pauseUntil>new Date)return void console.debug("WS not reconnecting just yet",{id:this.id,pauseUntil:this.pauseUntil});if(this.ws)throw new Error("Called connect() when a connection is already open");if(!this.databaseUrl)throw new Error("Cannot connect without a database URL");if(this.closed)return;if(this.tokenExpiration&&this.tokenExpiration<new Date)return void this.subscriber.error(new Mn);this.pinger=setInterval((async()=>{if(this.closed)return console.debug("pinger check",this.id,"CLOSED."),void this.teardown();if(this.ws)try{this.ws.send(JSON.stringify({type:"ping"})),setTimeout((()=>{if(console.debug("pinger setTimeout",this.id,this.pinger?"alive":"dead"),this.pinger)return this.closed?(console.debug("pinger setTimeout",this.id,"subscription is closed"),void this.teardown()):void(this.lastServerActivity<new Date(Date.now()-2e4)?(console.debug("pinger: server is inactive"),console.debug("pinger reconnecting"),this.reconnect()):console.debug("pinger: server still active"))}),2e4)}catch(e){console.debug("pinger catch error",this.id,"reconnecting"),this.reconnect()}else console.debug("pinger",this.id,"reconnecting"),this.reconnect()}),3e4);const e=new URL(this.databaseUrl);e.protocol="http:"===e.protocol?"ws":"wss";const t=new URLSearchParams;if(this.subscriber.closed)return;t.set("v","2"),t.set("rev",this.rev),t.set("realmsHash",this.realmSetHash),t.set("clientId",this.clientIdentity),this.token&&t.set("token",this.token),console.debug("dexie-cloud WebSocket create");const n=this.ws=new WebSocket(`${e}/changes?${t}`);n.onclose=e=>{this.pinger&&(console.debug("dexie-cloud WebSocket onclosed",this.id),this.reconnect())},n.onmessage=e=>{if(this.pinger){console.debug("dexie-cloud WebSocket onmessage",e.data),this.lastServerActivity=new Date;try{const t=Kt.parse(e.data);if("error"===t.type)throw new Error(`Error message from dexie-cloud: ${t.error}`);"rev"===t.type&&(this.rev=t.rev),"pong"!==t.type&&this.subscriber.next(t)}catch(e){this.subscriber.error(e)}}};try{await new Promise(((e,t)=>{n.onopen=t=>{console.debug("dexie-cloud WebSocket onopen"),e(null)},n.onerror=e=>{const n=e.error||new Error("WebSocket Error");this.disconnect(),this.subscriber.error(n),this.webSocketStatus.next("error"),t(n)}})),this.messageProducerSubscription=this.messageProducer.subscribe((e=>{var t;this.closed||("ready"===e.type&&"connected"!==this.webSocketStatus.value&&this.webSocketStatus.next("connected"),null===(t=this.ws)||void 0===t||t.send(Kt.stringify(e)))}))}catch(e){this.pauseUntil=new Date(Date.now()+6e4)}}}async function qn(e){var t;console.error("WebSocket observable: error but revive when user does some active thing...",e),await(t=3e3,new Promise((e=>setTimeout(e,t)))),console.debug("waiting for someone to do something"),await Fn.pipe(De(1)).toPromise(),console.debug("someone did something!")}async function zn(e){var t;return!(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl)||!e.cloud.schema)&&await en(e,e.cloud.options,e.cloud.schema,{justCheckIfNeeded:!0})}const Gn=new WeakMap;function Jn(e,t,n,r){const o=Gn.get(e);if(o){if(o.pull||"push"===(null==r?void 0:r.purpose))return console.debug("syncIfPossible(): returning the ongoing sync promise."),o.promise;{let i=!1;const s=e.cloud.syncState.subscribe((e=>{"pulling"===e.phase&&(i=!0)}));return o.promise.then((()=>{s.unsubscribe()})).catch((e=>(s.unsubscribe(),Promise.reject(e)))).then((()=>{if(!i)return Jn(e,t,n,r)}))}}const i=async function(){try{e.cloud.usingServiceWorker?vn&&await en(e,t,n,r):await Dn(e,"currentSyncWorker","$jobs",(()=>en(e,t,n,r))),Gn.delete(e),console.debug("Done sync")}catch(t){throw Gn.delete(e),console.error("Failed to sync client changes",t),t}}();return Gn.set(e,{promise:i,pull:"push"!==(null==r?void 0:r.purpose)}),i}function Yn(e,t,n){let r=null,o={cancelled:!1};function i(r,a=1){setTimeout((()=>{Jn(e,t,n,{cancelToken:o,retryImmediatelyOnFetchError:!0,purpose:r}).catch((e=>{console.error("error in syncIfPossible()",e),o.cancelled?s():a<3&&setTimeout((()=>i(r,a+1)),6e4*[0,5,15][a])}))}),0)}const s=()=>{console.debug("Stopping LocalSyncWorker"),o.cancelled=!0,r&&r.unsubscribe()};return{start:()=>{console.debug("Starting LocalSyncWorker",e.localSyncEvent.id),r=e.localSyncEvent.subscribe((({purpose:e})=>{try{i(e||"pull")}catch(e){console.error("What-the....",e)}}))},stop:s}}function Xn(e,t){if(e&&t&&t.unsyncedTables)for(const n of t.unsyncedTables)e[n]&&(e[n].markedForSync=!1)}var Zn,Qn,er,tr,nr={},rr=[],or=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function ir(e,t){for(var n in t)e[n]=t[n];return e}function sr(e){var t=e.parentNode;t&&t.removeChild(e)}function ar(e,t,n){var r,o,i,s=arguments,a={};for(i in t)"key"==i?r=t[i]:"ref"==i?o=t[i]:a[i]=t[i];if(arguments.length>3)for(n=[n],i=3;i<arguments.length;i++)n.push(s[i]);if(null!=n&&(a.children=n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===a[i]&&(a[i]=e.defaultProps[i]);return cr(e,a,r,o,null)}function cr(e,t,n,r,o){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++Zn.__v:o};return null!=Zn.vnode&&Zn.vnode(i),i}function ur(e){return e.children}function lr(e,t){this.props=e,this.context=t}function dr(e,t){if(null==t)return e.__?dr(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?dr(e):null}function hr(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return hr(e)}}function fr(e){(!e.__d&&(e.__d=!0)&&Qn.push(e)&&!pr.__r++||tr!==Zn.debounceRendering)&&((tr=Zn.debounceRendering)||er)(pr)}function pr(){for(var e;pr.__r=Qn.length;)e=Qn.sort((function(e,t){return e.__v.__b-t.__v.__b})),Qn=[],e.some((function(e){var t,n,r,o,i,s;e.__d&&(i=(o=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=ir({},o)).__v=o.__v+1,Sr(s,o,r,t.__n,void 0!==s.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?dr(o):i,o.__h),kr(n,o),o.__e!=i&&hr(o)))}))}function yr(e,t,n,r,o,i,s,a,c,u){var l,d,h,f,p,y,b,v=r&&r.__k||rr,m=v.length;for(n.__k=[],l=0;l<t.length;l++)if(null!=(f=n.__k[l]=null==(f=t[l])||"boolean"==typeof f?null:"string"==typeof f||"number"==typeof f||"bigint"==typeof f?cr(null,f,null,null,f):Array.isArray(f)?cr(ur,{children:f},null,null,null):f.__b>0?cr(f.type,f.props,f.key,null,f.__v):f)){if(f.__=n,f.__b=n.__b+1,null===(h=v[l])||h&&f.key==h.key&&f.type===h.type)v[l]=void 0;else for(d=0;d<m;d++){if((h=v[d])&&f.key==h.key&&f.type===h.type){v[d]=void 0;break}h=null}Sr(e,f,h=h||nr,o,i,s,a,c,u),p=f.__e,(d=f.ref)&&h.ref!=d&&(b||(b=[]),h.ref&&b.push(h.ref,null,f),b.push(d,f.__c||p,f)),null!=p?(null==y&&(y=p),"function"==typeof f.type&&null!=f.__k&&f.__k===h.__k?f.__d=c=br(f,c,e):c=vr(e,f,h,v,p,c),u||"option"!==n.type?"function"==typeof n.type&&(n.__d=c):e.value=""):c&&h.__e==c&&c.parentNode!=e&&(c=dr(h))}for(n.__e=y,l=m;l--;)null!=v[l]&&("function"==typeof n.type&&null!=v[l].__e&&v[l].__e==n.__d&&(n.__d=dr(r,l+1)),Ir(v[l],v[l]));if(b)for(l=0;l<b.length;l++)Er(b[l],b[++l],b[++l])}function br(e,t,n){var r,o;for(r=0;r<e.__k.length;r++)(o=e.__k[r])&&(o.__=e,t="function"==typeof o.type?br(o,t,n):vr(n,o,o,e.__k,o.__e,t));return t}function vr(e,t,n,r,o,i){var s,a,c;if(void 0!==t.__d)s=t.__d,t.__d=void 0;else if(null==n||o!=i||null==o.parentNode)e:if(null==i||i.parentNode!==e)e.appendChild(o),s=null;else{for(a=i,c=0;(a=a.nextSibling)&&c<r.length;c+=2)if(a==o)break e;e.insertBefore(o,i),s=i}return void 0!==s?s:o.nextSibling}function mr(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||or.test(t)?n:n+"px"}function gr(e,t,n,r,o){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||mr(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||mr(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])i=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r||e.addEventListener(t,i?wr:_r,i):e.removeEventListener(t,i?wr:_r,i);else if("dangerouslySetInnerHTML"!==t){if(o)t=t.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null!=n&&(!1!==n||"a"===t[0]&&"r"===t[1])?e.setAttribute(t,n):e.removeAttribute(t))}}function _r(e){this.l[e.type+!1](Zn.event?Zn.event(e):e)}function wr(e){this.l[e.type+!0](Zn.event?Zn.event(e):e)}function Sr(e,t,n,r,o,i,s,a,c){var u,l,d,h,f,p,y,b,v,m,g,_=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(c=n.__h,a=t.__e=n.__e,t.__h=null,i=[a]),(u=Zn.__b)&&u(t);try{e:if("function"==typeof _){if(b=t.props,v=(u=_.contextType)&&r[u.__c],m=u?v?v.props.value:u.__:r,n.__c?y=(l=t.__c=n.__c).__=l.__E:("prototype"in _&&_.prototype.render?t.__c=l=new _(b,m):(t.__c=l=new lr(b,m),l.constructor=_,l.render=Tr),v&&v.sub(l),l.props=b,l.state||(l.state={}),l.context=m,l.__n=r,d=l.__d=!0,l.__h=[]),null==l.__s&&(l.__s=l.state),null!=_.getDerivedStateFromProps&&(l.__s==l.state&&(l.__s=ir({},l.__s)),ir(l.__s,_.getDerivedStateFromProps(b,l.__s))),h=l.props,f=l.state,d)null==_.getDerivedStateFromProps&&null!=l.componentWillMount&&l.componentWillMount(),null!=l.componentDidMount&&l.__h.push(l.componentDidMount);else{if(null==_.getDerivedStateFromProps&&b!==h&&null!=l.componentWillReceiveProps&&l.componentWillReceiveProps(b,m),!l.__e&&null!=l.shouldComponentUpdate&&!1===l.shouldComponentUpdate(b,l.__s,m)||t.__v===n.__v){l.props=b,l.state=l.__s,t.__v!==n.__v&&(l.__d=!1),l.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),l.__h.length&&s.push(l);break e}null!=l.componentWillUpdate&&l.componentWillUpdate(b,l.__s,m),null!=l.componentDidUpdate&&l.__h.push((function(){l.componentDidUpdate(h,f,p)}))}l.context=m,l.props=b,l.state=l.__s,(u=Zn.__r)&&u(t),l.__d=!1,l.__v=t,l.__P=e,u=l.render(l.props,l.state,l.context),l.state=l.__s,null!=l.getChildContext&&(r=ir(ir({},r),l.getChildContext())),d||null==l.getSnapshotBeforeUpdate||(p=l.getSnapshotBeforeUpdate(h,f)),g=null!=u&&u.type===ur&&null==u.key?u.props.children:u,yr(e,Array.isArray(g)?g:[g],t,n,r,o,i,s,a,c),l.base=t.__e,t.__h=null,l.__h.length&&s.push(l),y&&(l.__E=l.__=null),l.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=xr(n.__e,t,n,r,o,i,s,c);(u=Zn.diffed)&&u(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=a,t.__h=!!c,i[i.indexOf(a)]=null),Zn.__e(e,t,n)}}function kr(e,t){Zn.__c&&Zn.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){Zn.__e(e,t.__v)}}))}function xr(e,t,n,r,o,i,s,a){var c,u,l,d,h=n.props,f=t.props,p=t.type,y=0;if("svg"===p&&(o=!0),null!=i)for(;y<i.length;y++)if((c=i[y])&&(c===e||(p?c.localName==p:3==c.nodeType))){e=c,i[y]=null;break}if(null==e){if(null===p)return document.createTextNode(f);e=o?document.createElementNS("http://www.w3.org/2000/svg",p):document.createElement(p,f.is&&f),i=null,a=!1}if(null===p)h===f||a&&e.data===f||(e.data=f);else{if(i=i&&rr.slice.call(e.childNodes),u=(h=n.props||nr).dangerouslySetInnerHTML,l=f.dangerouslySetInnerHTML,!a){if(null!=i)for(h={},d=0;d<e.attributes.length;d++)h[e.attributes[d].name]=e.attributes[d].value;(l||u)&&(l&&(u&&l.__html==u.__html||l.__html===e.innerHTML)||(e.innerHTML=l&&l.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||gr(e,i,null,n[i],r);for(i in t)o&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||gr(e,i,t[i],n[i],r)}(e,f,h,o,a),l)t.__k=[];else if(y=t.props.children,yr(e,Array.isArray(y)?y:[y],t,n,r,o&&"foreignObject"!==p,i,s,e.firstChild,a),null!=i)for(y=i.length;y--;)null!=i[y]&&sr(i[y]);a||("value"in f&&void 0!==(y=f.value)&&(y!==e.value||"progress"===p&&!y)&&gr(e,"value",y,h.value,!1),"checked"in f&&void 0!==(y=f.checked)&&y!==e.checked&&gr(e,"checked",y,h.checked,!1))}return e}function Er(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){Zn.__e(e,n)}}function Ir(e,t,n){var r,o,i;if(Zn.unmount&&Zn.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Er(r,null,t)),n||"function"==typeof e.type||(n=null!=(o=e.__e)),e.__e=e.__d=void 0,null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Zn.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(i=0;i<r.length;i++)r[i]&&Ir(r[i],t,n);null!=o&&sr(o)}function Tr(e,t,n){return this.constructor(e,n)}Zn={__e:function(e,t){for(var n,r,o;t=t.__;)if((n=t.__c)&&!n.__)try{if((r=n.constructor)&&null!=r.getDerivedStateFromError&&(n.setState(r.getDerivedStateFromError(e)),o=n.__d),null!=n.componentDidCatch&&(n.componentDidCatch(e),o=n.__d),o)return n.__E=n}catch(t){e=t}throw e},__v:0},lr.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=ir({},this.state),"function"==typeof e&&(e=e(ir({},n),this.props)),e&&ir(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),fr(this))},lr.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),fr(this))},lr.prototype.render=ur,Qn=[],er="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,pr.__r=0;const Cr={Error:{color:"red"},Alert:{error:{color:"red"},warning:{color:"yellow"},info:{color:"black"}},Darken:{position:"fixed",top:0,left:0,opacity:.5,backgroundColor:"#000",width:"100vw",height:"100vh",zIndex:150,webkitBackdropFilter:"blur(2px)",backdropFilter:"blur(2px)"},DialogOuter:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",zIndex:150,alignItems:"center",display:"flex",justifyContent:"center"},DialogInner:{position:"relative",color:"#222",backgroundColor:"#fff",padding:"30px",marginBottom:"2em",maxWidth:"90%",maxHeight:"90%",overflowY:"auto",border:"3px solid #3d3d5d",borderRadius:"8px",boxShadow:"0 0 80px 10px #666",width:"auto"},Input:{height:"35px",width:"17em",borderColor:"#ccf4",outline:"none",fontSize:"17pt",padding:"8px"}};function Ar({children:e}){return ar("div",null,ar("div",{style:Cr.Darken}),ar("div",{style:Cr.DialogOuter},ar("div",{style:Cr.DialogInner},e)))}var Pr,Or,Ur,Dr=0,$r=[],Nr=Zn.__b,Rr=Zn.__r,jr=Zn.diffed,Lr=Zn.__c,Wr=Zn.unmount;function Br(e,t){Zn.__h&&Zn.__h(Or,e,Dr||t),Dr=0;var n=Or.__H||(Or.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Fr(e){return Dr=1,function(e,t,n){var r=Br(Pr++,2);return r.t=e,r.__c||(r.__=[n?n(t):Gr(void 0,t),function(e){var t=r.t(r.__[0],e);r.__[0]!==t&&(r.__=[t,r.__[1]],r.__c.setState({}))}],r.__c=Or),r.__}(Gr,e)}function Mr(e){return Dr=5,function(e,t){var n=Br(Pr++,7);return zr(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}((function(){return{current:e}}),[])}function Hr(){$r.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(Kr),e.__H.__h.forEach(qr),e.__H.__h=[]}catch(t){e.__H.__h=[],Zn.__e(t,e.__v)}})),$r=[]}Zn.__b=function(e){Or=null,Nr&&Nr(e)},Zn.__r=function(e){Rr&&Rr(e),Pr=0;var t=(Or=e.__c).__H;t&&(t.__h.forEach(Kr),t.__h.forEach(qr),t.__h=[])},Zn.diffed=function(e){jr&&jr(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==$r.push(t)&&Ur===Zn.requestAnimationFrame||((Ur=Zn.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),Vr&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);Vr&&(t=requestAnimationFrame(n))})(Hr)),Or=void 0},Zn.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Kr),e.__h=e.__h.filter((function(e){return!e.__||qr(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],Zn.__e(n,e.__v)}})),Lr&&Lr(e,t)},Zn.unmount=function(e){Wr&&Wr(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(Kr)}catch(e){Zn.__e(e,t.__v)}};var Vr="function"==typeof requestAnimationFrame;function Kr(e){var t=Or;"function"==typeof e.__c&&e.__c(),Or=t}function qr(e){var t=Or;e.__c=e.__(),Or=t}function zr(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function Gr(e,t){return"function"==typeof t?t(e):t}function Jr({title:e,alerts:t,fields:n,onCancel:r,onSubmit:o}){const[i,s]=Fr({}),a=Mr();return function(e,t){var n=Br(Pr++,4);!Zn.__s&&zr(n.__H,t)&&(n.__=e,n.__H=t,Or.__h.push(n))}((()=>{var e;return null===(e=a.current)||void 0===e?void 0:e.focus()}),[]),ar(Ar,null,ar(ur,null,ar("h3",{style:Cr.WindowHeader},e),t.map((e=>ar("p",{style:Cr.Alert[e.type]},function({message:e,messageCode:t,messageParams:n}){return e.replace(/\{\w+\}/gi,(e=>n[e.substr(1,e.length-2)]))}(e)))),ar("form",{onSubmit:e=>{e.preventDefault(),o(i)}},Object.entries(n).map((([e,{type:t,label:n,placeholder:r}],o)=>ar("label",{style:Cr.Label},n?`${n}: `:"",ar("input",{ref:0===o?a:void 0,type:t,name:e,autoComplete:"on",style:Cr.Input,autoFocus:!0,placeholder:r,value:i[e]||"",onInput:n=>{var r;return s({...i,[e]:Yr(t,null===(r=n.target)||void 0===r?void 0:r.value)})}})))))),ar("div",{style:Cr.ButtonsDiv},ar("button",{type:"submit",style:Cr.Button,onClick:()=>o(i)},"Submit"),ar("button",{style:Cr.Button,onClick:r},"Cancel")))}function Yr(e,t){switch(e){case"email":return t.toLowerCase();case"otp":return t.toUpperCase();default:return t}}class Xr extends lr{constructor(e){super(e),this.observer=e=>this.setState({userInteraction:e}),this.state={userInteraction:void 0}}componentDidMount(){this.subscription=i(this.props.db.cloud.userInteraction).subscribe(this.observer)}componentWillUnmount(){this.subscription&&(this.subscription.unsubscribe(),delete this.subscription)}render(e,{userInteraction:t}){return t?ar(Jr,Object.assign({},t)):null}}function Zr(e){const t=document.createElement("div");document.body.appendChild(t),function(e,t,n){var r,o,i;Zn.__&&Zn.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],Sr(t,e=(!r&&n||t).__k=ar(ur,null,[e]),o||nr,nr,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?rr.slice.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),kr(i,e)}(ar(Xr,{db:e.vip}),t);let n=!1;return{unsubscribe(){t.remove(),n=!0},get closed(){return n}}}function Qr(n){const o=n.name,c=new r(h),u=[];let f=null;n.on("ready",(async n=>{try{await async function(n){var r,o,h,b,v,m;p=!1;const g=un(n);vn||((null===(r=g.cloud.options)||void 0===r?void 0:r.customLoginGui)||u.push(Zr(n)),u.push(function(e){let t=e.cloud.webSocketStatus.value;const n=e.cloud.webSocketStatus.pipe(Be((e=>{const n=t;t=e;const r=a(e);switch(e){case"disconnected":return $n.value?r.pipe(fe(500)):r;case"connecting":return"not-started"===n||"error"===n?r:r.pipe(fe(4e3));default:return r}})));return d([n,e.syncStateChangedEvent.pipe(We({phase:"initial"})),Nn]).pipe(oe((([t,n,r])=>{let{phase:o,error:i,progress:s}=n,a=t;return"error"===o&&(a="error"),"not-started"===t&&("pushing"!==o&&"pulling"!==o||(a="connecting")),"error"!==e.cloud.syncState.value.phase||"pushing"!==n.phase&&"pulling"!==n.phase||(a="connecting"),r||(a="disconnected"),{phase:o,error:i,progress:s,status:Xt?a:"offline"}})))}(g).subscribe(n.cloud.syncState)));g.tables.every((e=>e.core))||mn();const _="serviceWorker"in navigator?await navigator.serviceWorker.getRegistrations():[],w=await g.transaction("rw",g.$syncState,(async()=>{var e,t;const{options:n,schema:r}=g.cloud,[o,i,s]=await Promise.all([g.getOptions(),g.getSchema(),g.getPersistedSyncState()]);if(n?o&&JSON.stringify(o)===JSON.stringify(n)||await g.$syncState.put(n,"options"):g.cloud.options=o||null,(null===(e=g.cloud.options)||void 0===e?void 0:e.tryUseServiceWorker)&&"serviceWorker"in navigator&&_.length>0&&!bn?(console.debug("Dexie Cloud Addon: Using service worker"),g.cloud.usingServiceWorker=!0):((null===(t=g.cloud.options)||void 0===t?void 0:t.tryUseServiceWorker)&&!vn&&console.debug("dexie-cloud-addon: Not using service worker.",0===_.length?"No SW registrations found.":"serviceWorker"in navigator&&bn?"Avoiding SW background sync and SW periodic bg sync for this browser due to browser bugs.":"navigator.serviceWorker not present"),g.cloud.usingServiceWorker=!1),Xn(r,g.cloud.options),Xn(i,g.cloud.options),r){if(!i||JSON.stringify(i)!==JSON.stringify(r)){const e=i||{};for(const[t,n]of Object.entries(r)){const r=e[t];r?(r.markedForSync=n.markedForSync,n.deleted=r.deleted,r.generatedGlobalId=n.generatedGlobalId):e[t]={...n}}await g.$syncState.put(e,"schema"),Object.assign(r,e)}}else g.cloud.schema=i||null;return null==s?void 0:s.initiallySynced}));w&&g.setInitiallySynced(!0);(function(t){var n,r;for(const o of t.tables)if(null===(r=null===(n=t.cloud.schema)||void 0===n?void 0:n[o.name])||void 0===r?void 0:r.markedForSync){if(o.schema.primKey.auto)throw new e.SchemaError(`Table ${o.name} is both autoIncremented and synced. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(o.name)}]}) to blacklist it from sync`);if(!o.schema.primKey.keyPath)throw new e.SchemaError(`Table ${o.name} cannot be both synced and outbound. Use db.cloud.configure({unsyncedTables: [${JSON.stringify(o.name)}]}) to blacklist it from sync`)}})(g),(null===(o=g.cloud.options)||void 0===o?void 0:o.databaseUrl)&&!w&&(await async function(e,t,n){console.debug("Performing initial sync"),await Dn(e,"initialSync","$jobs",(async()=>{const r=await e.getPersistedSyncState();(null==r?void 0:r.initiallySynced)||await en(e,t,n,{isInitialSync:!0})}),{awaitRemoteJob:!0}),console.debug("Done initial sync")}(g,g.cloud.options,g.cloud.schema),g.setInitiallySynced(!0));y(),vn||(u.push(t((()=>g.getCurrentUser())).subscribe(c)),u.push(t((()=>g.getPersistedSyncState())).subscribe(g.cloud.persistedSyncState)),await d([c.pipe(Re(1),De(1)),g.cloud.persistedSyncState.pipe(Re(1),De(1))]).toPromise());(null===(h=g.cloud.options)||void 0===h?void 0:h.requireAuth)&&await hn(g);f&&f.stop();f=null,y(),g.cloud.usingServiceWorker&&(null===(b=g.cloud.options)||void 0===b?void 0:b.databaseUrl)?(Ze(g,"push").catch((()=>{})),async function(e){var t;try{const{periodicSync:n}=await navigator.serviceWorker.ready;if(n)try{await n.register(`dexie-cloud:${e.name}`,null===(t=e.cloud.options)||void 0===t?void 0:t.periodicSync),console.debug(`Dexie Cloud: Successfully registered periodicsync event for ${e.name}`)}catch(e){console.debug("Dexie Cloud: Failed to register periodic sync. Your PWA must be installed to allow background sync.",e)}else console.debug("Dexie Cloud: periodicSync not supported.")}catch(t){console.debug(`Dexie Cloud: Could not register periodicSync for ${e.name}`,t)}}(g).catch((()=>{}))):(null===(v=g.cloud.options)||void 0===v?void 0:v.databaseUrl)&&g.cloud.schema&&!vn&&(f=Yn(g,g.cloud.options,g.cloud.schema),f.start(),Qe(g,"push"));y(),vn||u.push(s(self,"online").subscribe((()=>{console.debug("online!"),g.syncStateChangedEvent.next({phase:"not-in-sync"}),Qe(g,"push")})),s(self,"offline").subscribe((()=>{console.debug("offline!"),g.syncStateChangedEvent.next({phase:"offline"})})));"undefined"!=typeof window&&!vn&&(null===(m=g.cloud.options)||void 0===m?void 0:m.databaseUrl)&&u.push(function(e){var t;if(!(null===(t=e.cloud.options)||void 0===t?void 0:t.databaseUrl))throw new Error("No database URL to connect WebSocket to");const n=e.messageConsumer.readyToServe.pipe(Pe((e=>e)),Be((()=>e.getPersistedSyncState())),Pe((e=>e&&e.serverRevision)),oe((e=>({type:"ready",rev:e.serverRevision}))));return function t(){return e.cloud.persistedSyncState.pipe(Pe((e=>null==e?void 0:e.serverRevision)),De(1),Be((t=>e.cloud.currentUser.pipe(oe((e=>[e,t]))))),Be((([e,t])=>Nn.pipe(oe((n=>[n?e:null,t]))))),Be((async([e,t])=>[e,await nt(t)])),Be((([t,r])=>t?new Hn(e.cloud.options.databaseUrl,e.cloud.persistedSyncState.value.serverRevision,r,e.cloud.persistedSyncState.value.clientIdentity,n,e.cloud.webSocketStatus,t.accessToken,t.accessTokenExpiration):i([]))),Y((n=>"TokenExpiredError"===(null==n?void 0:n.name)?(console.debug("WebSocket observable: Token expired. Refreshing token..."),a(!0).pipe(Be((async()=>{const t=await e.getCurrentUser(),n=await gt(e.cloud.options.databaseUrl,t);await e.table("$logins").update(t.userId,{accessToken:n.accessToken,accessTokenExpiration:n.accessTokenExpiration})})),Be((()=>t())))):l(n))),Y((e=>i(qn(e)).pipe(Be((()=>t()))))))}().subscribe((t=>{t&&(console.debug("WS got message",t),e.messageConsumer.enqueue(t))}),(e=>{console.error("Oops! The main observable errored!",e)}),(()=>{console.error("Oops! The main observable completed!")}))}(g))}(n)}catch(e){console.error(e)}}),!0);let p=!1;function y(){if(p)throw new e.DatabaseClosedError}var b;!function(e,t){e.on.close.subscribe(t);const n=e.close;e.close=function(){n.call(this),t()}}(n,(()=>{u.forEach((e=>e.unsubscribe())),p=!0,f&&f.stop(),f=null,c.next(h)})),n.cloud={version:"1.0.0-beta.10",options:null,schema:null,serverState:null,get currentUserId(){return c.value.userId||h.userId},currentUser:c,syncState:new r({phase:"initial",status:"not-started"}),persistedSyncState:new r(void 0),userInteraction:new r(void 0),webSocketStatus:new r("not-started"),async login(e){const t=un(n);await t.cloud.sync(),await hn(t,e)},configure(e){n.cloud.options=e,e.databaseUrl&&(n.name=`${o}-${function(e){const t=new URL(e);return"/"===t.pathname?t.hostname.split(".")[0]:t.pathname.split("/")[1]}(e.databaseUrl)}`,un(n).reconfigure()),Xn(n.cloud.schema,n.cloud.options)},async sync({wait:e,purpose:r}={wait:!0,purpose:"push"}){void 0===e&&(e=!0);const o=un(n);if("pull"===r){const t=o.cloud.persistedSyncState.value;if(Qe(o,r),e){const e=await o.cloud.persistedSyncState.pipe(Pe((e=>null!=(null==e?void 0:e.timestamp)&&(!t||e.timestamp>t.timestamp))),De(1)).toPromise();if(null==e?void 0:e.error)throw new Error("Sync error: "+e.error)}}else if(await zn(o)){const n=o.cloud.persistedSyncState.value;Qe(o,r),e&&(console.debug("db.cloud.login() is waiting for sync completion..."),await i(t((async()=>{const e=await zn(o),t=await o.getPersistedSyncState();if((null==t?void 0:t.timestamp)!==(null==n?void 0:n.timestamp)&&(null==t?void 0:t.error))throw new Error("Sync error: "+t.error);return e}))).pipe(Pe((e=>!e)),De(1)).toPromise(),console.debug("Done waiting for sync completion because we have nothing to push anymore"))}}},n.Version.prototype._parseStoresSpec=e.override(n.Version.prototype._parseStoresSpec,(e=>On(e,n))),n.use(Pn({currentUserObservable:n.cloud.currentUser,db:un(n)})),n.use((b=un(n),{stack:"dbcore",name:"implicitPropSetterMiddleware",level:1,create:e=>({...e,table:t=>{const n=e.table(t);return{...n,mutate:e=>{var r,o,i;const s=e.trans;if((null===(o=null===(r=b.cloud.schema)||void 0===r?void 0:r[t])||void 0===o?void 0:o.markedForSync)&&(null===(i=s.currentUser)||void 0===i?void 0:i.isLoggedIn)&&("add"===e.type||"put"===e.type))for(const t of e.values)"owner"in t||(t.owner=s.currentUser.userId),"realmId"in t||(t.realmId=s.currentUser.userId);return n.mutate(e)}}}})})),n.use(xn(un(n)))}Qr.version="1.0.0-beta.10",e.Cloud=Qr;const eo=new Map;function to(e){return e.startsWith("dexie-cloud:")&&e.split(":")[1]}const no=new Map;function ro(t,n){let r=no.get(t+"/"+n);return r||(r=async function(t,n){var r;let o=eo.get(t);if(!o){console.debug("Dexie Cloud SW: Creating new Dexie instance for",t);const n=new e(t,{addons:[Qr]});o=un(n),n.on("versionchange",i),await o.dx.open(),eo.get(t)||eo.set(t,o)}if(!(null===(r=o.cloud.options)||void 0===r?void 0:r.databaseUrl))return void console.error("Dexie Cloud: No databaseUrl configured");if(!o.cloud.schema)return void console.error("Dexie Cloud: No schema persisted");function i(){return o.dx.on.versionchange.unsubscribe(i),eo.get(o.name)===o&&eo.delete(o.name),console.debug(`Dexie Cloud SW: Closing Dexie instance for ${t}`),o.dx.close(),!1}try{console.debug("Dexie Cloud SW: Syncing"),await Jn(o,o.cloud.options,o.cloud.schema,{retryImmediatelyOnFetchError:!0,purpose:n}),console.debug("Dexie Cloud SW: Done Syncing")}catch(t){if(console.error("Dexie Cloud SW Error",t),i(),t.name!==e.errnames.NoSuchDatabase)throw t}}(t,n).then((()=>{no.delete(t+"/"+n)})).catch((e=>(no.delete(t+"/"+n),Promise.reject(e)))),no.set(t+"/"+n,r)),r}bn||(self.addEventListener("sync",(e=>{console.debug('SW "sync" Event',e.tag);const t=to(e.tag);t&&e.waitUntil(ro(t,"push"))})),self.addEventListener("periodicsync",(e=>{console.debug('SW "periodicsync" Event',e.tag);const t=to(e.tag);t&&e.waitUntil(ro(t,"pull"))})),self.addEventListener("message",(e=>{if(console.debug('SW "message" Event',e.data),"dexie-cloud-sync"===e.data.type){const{dbName:t}=e.data,n=(r=1)=>ro(t,e.data.purpose||"pull").catch((async e=>{if(3===r)throw e;var t;await(t=6e4,new Promise((e=>setTimeout(e,t)))),n(r+1)}));"waitUntil"in e?e.waitUntil(n().catch((e=>console.error(e)))):n().catch((e=>console.error(e)))}})));
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["dist/modern/service-worker.js"],"names":["Dexie","liveQuery","Observable$1","BehaviorSubject","Subject","from$1","fromEvent","of$1","merge","Subscription$1","throwError$1","combineLatest","UNAUTHORIZED_USER","userId","name","claims","sub","lastLogin","Date","Object","freeze","_a","swHolder","swContainer","self","document","navigator","serviceWorker","ready","then","registration","addEventListener","ev","_b","data","type","startsWith","matchAll","includeUncontrolled","forEach","client","id","source","postMessage","SWBroadcastChannel","[object Object]","this","listener","forwarder","message","removeEventListener","active","BroadcastedAndLocalEvent","bc","BroadcastChannel","super","subscriber","onCustomEvent","next","detail","onMessageEvent","console","debug","unsubscribe","subscribe","CustomEvent","dispatchEvent","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","isFunction","x","_enable_super_gross_mode_that_will_cause_bad_things","config","Promise","undefined","useDeprecatedSynchronousErrorHandling","value","Error","stack","hostReportError","err","setTimeout","empty$1","closed","error","complete","isArray","length","isObject","UnsubscriptionError","UnsubscriptionErrorImpl","errors","call","map","i","toString","join","Subscription","_parentOrParents","_subscriptions","_ctorUnsubscribe","_unsubscribe","remove","index","e","flattenUnsubscriptionErrors","len","concat","push","add","teardown","subscription","EMPTY","tmp","indexOf","subscriptions","subscriptionIndex","splice","empty","reduce","errs","rxSubscriber","Symbol","Math","random","Subscriber","_super","destinationOrNext","_this","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","arguments","destination","SafeSubscriber","_next","_error","_complete","_unsubscribeAndRecycle","_parentSubscriber","observerOrNext","context","bind","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","fn","parent","observable","identity","pipeFromArray","fns","input","prev","Observable","_isScalar","_subscribe","lift","operator","sink","nextOrObserver","toSubscriber","_trySubscribe","observer","closed_1","canReportError","warn","promiseCtor","getPromiseCtor","resolve","reject","pipe","operations","_i","toPromise","subscribeToArray","array","getSymbolIterator","iterator","isArrayLike","isPromise","subscribeTo","result","obj","obs","TypeError","promise","iterable","iterator$1","item","done","return","SimpleInnerSubscriber","notifyNext","notifyError","notifyComplete","SimpleOuterSubscriber","apply","innerValue","innerSubscribe","innerSubscriber","AsyncAction","scheduler","work","pending","schedule","state","delay","recycleAsyncId","requestAsyncId","setInterval","flush","clearInterval","execute","_execute","errored","errorValue","actions","Action","Scheduler","SchedulerAction","now","async","AsyncScheduler","delegate","scheduled","action","shift","isScheduler","catchError","selector","CatchOperator","caught","CatchSubscriber","err2","innerSubscription","scheduleArray","fromArray","isInteropObservable","observable$1","scheduleObservable","schedulePromise","isIterable","scheduleIterable","from","of","args","pop","project","thisArg","MapOperator","MapSubscriber","count","mergeMap","resultSelector","concurrent","Number","POSITIVE_INFINITY","a","ii","MergeMapOperator","MergeMapSubscriber","hasCompleted","buffer","_tryNext","_innerSub","ish","mergeAll","concatAll","observables","debounceTime","dueTime","DebounceTimeOperator","DebounceTimeSubscriber","debouncedSubscription","lastValue","hasValue","clearDebounce","dispatchNext","debouncedNext","isDate","isNaN","emptyScheduled","throwError","dispatch","Notification","kind","observe","do","accept","toObservable","createNext","undefinedValueNotification","createError","createComplete","completeNotification","delayFor","abs","DelayOperator","DelaySubscriber","queue","time","notification","delay_1","max","_schedule","scheduleNotification","DelayMessage","DistinctUntilChangedOperator","compare","keySelector","DistinctUntilChangedSubscriber","hasKey","y","key","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","filter","predicate","FilterOperator","FilterSubscriber","take","TakeOperator","total","TakeSubscriber","skip","SkipOperator","SkipSubscriber","startWith","switchMap","SwitchMapOperator","SwitchMapSubscriber","noop","tap","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","TimeoutError","TimeoutErrorImpl","TimeoutWithOperator","waitFor","absoluteTimeout","withObservable","TimeoutWithSubscriber","scheduleTimeout","dispatchTimeout","timeout","due","timeoutWith","hasComplainedAboutSyncEvent","registerSyncEvent","db","purpose","sw","sync","register","dbName","triggerSync","cloud","usingServiceWorker","localSyncEvent","b64decode","Buffer","base64","binary_string","atob","bytes","Uint8Array","charCodeAt","b64encode","ArrayBuffer","isView","byteOffset","byteLength","btoa","String","fromCharCode","computeRealmSetHash","realms","inviteRealms","JSON","stringify","realmId","accepted","sort","byteArray","TextEncoder","encode","digestBytes","crypto","subtle","digest","getSyncableTables","entries","schema","markedForSync","tbl","table","getMutationTable","tableName","getTableFromMutationTable","mutationTable","exec","listClientChanges","mutationTables","since","limit","Infinity","all","lastRevision","query","where","above","muts","toArray","randomFillSync","getRandomValues","setByKeyPath","keyPath","isFrozen","assert","l","period","currentKeyPath","substr","remainingKeyPath","parseInt","innerObj","randomString$1","buf","alloc","isValidSyncableID","some","every","isValidSyncableIDPart","part","applyOperation","target","op","keys","idx","val","values","changeSpec","changeSpecs","entry","propPath","assign","mod","applyOperations","ops","mut","interactWithUser","userInteraction","req","interactionProps","onSubmit","res","onCancel","AbortError","alertUser","title","alerts","fields","promptForEmail","emailHint","email","test","messageCode","messageParams","placeholder","promptForOTP","alert","otp","label","authenticate","url","fetchToken","hints","accessToken","accessTokenExpiration","getTime","refreshToken","refreshTokenExpiration","refreshAccessToken","privateKey","publicKey","generateKey","modulusLength","publicExponent","hash","nonExportablePrivateKey","publicKeyPEM","keydata","keydataB64","str","finalString","substring","formatAsPem","spkiToPEM","exportKey","response2","public_key","catch","userAuthenticate","login","time_stamp","signing_algorithm","binarySignature","sign","signature","tokenRequest","grant_type","refresh_token","scopes","fetch","body","method","headers","Content-Type","mode","status","response","json","toStr","ObjectDef","replace","dollarKeys","clone","k","TypesonSimplified","typeDefsInputs","typeDefs","c","protoMap","WeakMap","alternateChannel","space","realVal","typeDef","proto","getPrototypeOf","get","toStringTag","slice","find","typeName","function","set","getTypeDef","tson","unescapeParentKeys","parse","$t","revive","BisonBinaryTypes","Blob","blob","altChannel","mimeType","numberDef","number","num","v","bigIntDef","bigint","BigInt","DateDef","date","toISOString","NaN","SetDef","Set","MapDef","Map","_global","globalThis","global","TypedArraysDefs","specs","_","TypedArray","b64LexEncode","encoded","ENCODE_TABLE","b64ToLex","b64LexDecode","b64Lex","base64lex","DECODE_TABLE","lexToB64","-","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","f","g","h","j","m","n","o","q","r","s","t","u","w","z","|","ArrayBufferDef","ab","ba","FakeBlob","readBlobSync","XMLHttpRequest","overrideMimeType","open","URL","createObjectURL","send","responseText","string2ArrayBuffer","builtin","readBlobBinary","reader","FileReader","onabort","onerror","onload","readAsArrayBuffer","undefinedDef","hasBigIntSupport","FakeBigInt","defs","fakeBigInt","TSON","BISON","lenBuf","DataView","setUint32","size","binaries","binData","pos","arrayBuffers","view","getUint32","readAsText","readBlob","Bison","HttpError","statusText","httpStatus","syncWithServer","changes","syncState","baseRevs","databaseUrl","clientIdentity","Accept","currentUser","getCurrentUser","refreshedLogin","options","update","loadAccessToken","Authorization","syncRequest","dbID","remoteDbId","lastPull","serverRevision","syncStateChangedEvent","phase","ok","fromBinary","text","bulkUpdate","objs","bulkGet","resultKeys","resultObjs","primKey","bulkPut","throwIfCancelled","cancelToken","cancelled","isOnline","onLine","updateBaseRevs","latestRevisions","serverRev","$baseRevs","clientRev","getLatestRevisionsPerTable","clientChangeSet","lastRevisions","lastRev","rev","syncOptions","_sync","justCheckIfNeeded","retryImmediatelyOnFetchError","$syncState","timestamp","isInitialSync","tablesToSync","isLoggedIn","persistedSyncState","getPersistedSyncState","tablesToSyncify","syncedTables","includes","getTablesToSyncify","doSyncify","transaction","tx","idbtrans","disableChangeTracking","disableAccessControl","syncifiedTables","alreadySyncedRealms","ignoredRealms","toCollection","modify","member","has","realm","owner","modifyLocalObjectsWithNewUserId","tables","clientChanges","syncificationInserts","extractKey","core","primaryKey","dexieCloudTableSchema","generatedGlobalId","idPrefix","unsyncedObjects","listSyncifiedChanges","syncIsNeeded","put","addedClientChanges","mutTable","ch","latestRev","belowOrEqual","delete","between","reverse","offset","clear","prevState","deletedRealms","previousRealmSet","updatedRealmSet","deletedRealmSet","indexes","anyOf","deleteObjectsFromRemovedRealms","newSyncState","dbId","initiallySynced","filteredChanges","filterServerChangesThroughAddedClientChanges","applyServerChanges","currentTransaction","outbound","bulkAdd","bulkDelete","serverChanges","localPostChanges","changesToSubtract","_c","mutationSet","targetMut","subtractChanges","inSet","txid","mapEntry","resultEntry","optype","toDBOperationSet","MessagesFromServerConsumer","readyToServe","event","isWorking","loopWarning","loopDetection","msg","user","dx","getSchema","baseRev","ourRealmSetHash","realmSetHash","newRev","consumeQueue","enqueue","wm$1","DEXIE_CLOUD_SCHEMA","members","roles","$jobs","$logins","static_counter","DexieCloudDB","close","helperMethods","logins","getOptions","messageConsumer","wm","AuthPersistedContext","userLogin","currentUserId","fetchTokens","demo_user","res1","errMsg","otp_id","res2","errorText","otpFetchTokenCallback","save","existingLogins","setCurrentUser","isFirefox","InstallTrigger","isSafari","userAgent","safariVersion","match","DISABLE_SERVICEWORKER_STRATEGY","IS_SERVICE_WORKER","throwVersionIncrementNeeded","SchemaError","getEffectiveKeys","consonants","createIdGenerationMiddleware","level","generateOrVerifyAtKeys","valueClones","colocatedId","shardKey","prefix","timePart","randomPart","deepClone","ConstraintError","mutate","trans","cloudTableSchema","getMany","cache","results","randomString","counter$1","readLock","prop","readers","writers","numWriters","finally","writeLock","possiblePromises","remaining","reason","outstandingTransactions","createMutationTrackingMiddleware","currentUserObservable","ordinaryTables","mutTableMap","removeTransaction","txComplete","mutationsAdded","endsWith","mutsTable","openCursor","guardedTable","range","mutateAndLog","criteria","numFailures","hasFailures","failures","ts","overrideParseStoresSpec","origFunc","dexie","stores","dbSchema","storesClone","cloudSchema","allPrefixes","schemaSrc","rv","toLocaleLowerCase","toLowerCase","orig","bits","bitFix","upperFixed","toUpperCase","nextChar","generateTablePrefix","deleted","myId","performGuardedJob","jobName","jobsTableName","job","awaitRemoteJob","jobsTable","aquireLock","currentWork","heartbeat","started","nodeId","jobDoneObservable","userIsActive","userIsReallyActive","isActive","visibilityStateIsChanged","documentBecomesHidden","visibilityState","documentBecomesVisible","userDoesSomething","window","USER_INACTIVITY_TIMEOUT","TokenExpiredError","WSObservable","messageProducer","webSocketStatus","token","tokenExpiration","WSConnection","counter","lastUserActivity","messageProducerSubscription","connect","disconnect","pinger","ws","lastServerActivity","pauseUntil","reconnect","wsUrl","protocol","searchParams","URLSearchParams","WebSocket","onclose","onmessage","onopen","waitAndReconnectWhenUserDoesSomething","ms","isSyncNeeded","ongoingSyncs","syncIfPossible","cloudOptions","ongoing","pull","hasPullTakenPlace","_syncIfPossible","LocalSyncWorker","localSyncEventSubscription","syncAndRetry","retryNum","stop","start","updateSchemaFromOptions","unsyncedTables","u$1","i$1","t$1","r$1","f$1","e$1","c$1","s$1","parentNode","removeChild","a$1","children","defaultProps","v$1","props","ref","__k","__b","__e","__d","__c","__h","__v","vnode","p$1","d$1","base","k$1","b$1","__r","debounceRendering","__P","__n","ownerSVGElement","m$1","g$1","x$1","appendChild","nextSibling","insertBefore","setProperty","style","cssText","$","setAttribute","removeAttribute","contextType","__E","render","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","j$1","diffed","localName","nodeType","createTextNode","createElementNS","createElement","is","childNodes","dangerouslySetInnerHTML","attributes","__html","innerHTML","firstChild","checked","current","unmount","componentWillUnmount","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Styles","color","Alert","warning","info","Darken","position","top","left","opacity","backgroundColor","width","height","zIndex","webkitBackdropFilter","backdropFilter","DialogOuter","alignItems","display","justifyContent","DialogInner","padding","marginBottom","maxWidth","maxHeight","overflowY","border","borderRadius","boxShadow","Input","borderColor","outline","fontSize","Dialog","__H","requestAnimationFrame","clearTimeout","cancelAnimationFrame","LoginDialog","params","setParams","firstFieldRef","focus","WindowHeader","resolveText","preventDefault","fieldName","Label","autoComplete","autoFocus","onInput","valueTransformer","ButtonsDiv","Button","onClick","LoginGui","setupDefaultGUI","el","vip","dexieCloud","origIdbName","currentUserEmitter","localSyncWorker","on","_d","_e","_f","customLoginGui","_prevStatus","lazyWebSocketStatus","prevStatus","progress","adjustedStatus","computeSyncState","swRegistrations","getRegistrations","persistedOptions","persistedSchema","tryUseServiceWorker","newPersistedSchema","tblSchema","newTblSchema","setInitiallySynced","auto","verifySchema","performInitialSync","throwIfClosed","requireAuth","periodicSync","registerPeriodicSyncEvent","isReady","createObservable","connectWebSocket","onDbReady","DatabaseClosedError","handler","origClose","dbOnClosed","version","serverState","hint","dbUrl","pathname","hostname","split","getDbNameFromDbUrl","reconfigure","wait","syncNeeded","isNeeded","Version","override","use","Cloud","managedDBs","getDbNameFromTag","tag","syncDBSemaphore","syncDB","addons","stopManagingDB","versionchange","errnames","NoSuchDatabase","_syncDB","waitUntil"],"mappings":"OAAOA,gBAASC,MAAiB,6BACVC,qBAAcC,aAAiBC,UAAiBC,eAAQC,QAAiBC,WAAMC,kBAAuBC,gBAA8BC,mBAAcC,MAAqB,OAE9L,MAAMC,EAAoB,CACtBC,OAAQ,eACRC,KAAM,eACNC,OAAQ,CACJC,IAAK,gBAETC,UAAW,IAAIC,KAAK,IAExB,IACIC,OAAOC,OAAOR,GACdO,OAAOC,OAAOR,EAAkBG,QAEpC,MAAOM,IAEP,MAAMC,EAAW,GACXC,EAAcC,KAAKC,UAAYC,UAAUC,cAC3CJ,GACAA,EAAYK,MAAMC,MAAMC,GAAkBR,EAASQ,aAAeA,IAClD,oBAATN,MAAwB,YAAaA,OAASA,KAAKC,UAE1DM,iBAAiB,WAAYC,IACzB,IAAIX,EAAIY,GACmE,QAAtEA,EAAwB,QAAlBZ,EAAKW,EAAGE,YAAyB,IAAPb,OAAgB,EAASA,EAAGc,YAAyB,IAAPF,OAAgB,EAASA,EAAGG,WAAW,mBACtH,IAAIZ,KAAc,QAAEa,SAAS,CAAEC,qBAAqB,KAASC,SAASC,IAAa,IAAInB,EAAI,OAAOmB,EAAOC,MAA6B,QAApBpB,EAAKW,EAAGU,cAA2B,IAAPrB,OAAgB,EAASA,EAAGoB,KAAOD,EAAOG,YAAYX,EAAGE,YAInN,MAAMU,EACFC,YAAY/B,GACRgC,KAAKhC,KAAOA,EAEhB+B,UAAUE,GACN,IAAKxB,EACD,MAAO,OACX,MAAMyB,EAAahB,IACf,IAAIX,GACoB,QAAlBA,EAAKW,EAAGE,YAAyB,IAAPb,OAAgB,EAASA,EAAGc,QAAU,gBAAgBW,KAAKhC,QACvFiC,EAASf,EAAGE,KAAKe,UAIzB,OADA1B,EAAYQ,iBAAiB,UAAWiB,GACjC,IAAMzB,EAAY2B,oBAAoB,UAAWF,GAE5DH,YAAYI,GACR,IAAI5B,EAC2B,iBAApBG,KAAc,QAErB,IAAIA,KAAc,QAAEa,SAAS,CAAEC,qBAAqB,KAASC,SAASC,GAAWA,EAAOG,YAAY,CAChGR,KAAM,gBAAgBW,KAAKhC,OAC3BmC,QAAAA,MAGC3B,EAASQ,eAG0B,QAAvCT,EAAKC,EAASQ,aAAaqB,cAA2B,IAAP9B,GAAyBA,EAAGsB,YAAY,CACpFR,KAAM,gBAAgBW,KAAKhC,OAC3BmC,QAAAA,MAMhB,MAAMG,UAAiClD,EACnC2C,YAAY/B,GACR,MAAMuC,EAAiC,oBAArBC,iBACZ,IAAIV,EAAmB9B,GAAQ,IAAIwC,iBAAiBxC,GAC1DyC,OAAMC,IACF,SAASC,EAAczB,GACnBwB,EAAWE,KAAK1B,EAAG2B,QAEvB,SAASC,EAAe5B,GACpB6B,QAAQC,MAAM,2CAA4C9B,GAC1DwB,EAAWE,KAAK1B,EAAGE,MAEvB,IAAI6B,EASJ,OARAvC,KAAKO,iBAAiB,OAAOjB,IAAQ2C,GACjCJ,aAAcT,EACdmB,EAAcV,EAAGW,WAAUf,GAAWO,EAAWE,KAAKT,MAGtDY,QAAQC,MAAM,kDAAmDhD,EAAM,UAAWuC,GAClFA,EAAGtB,iBAAiB,UAAW6B,IAE5B,KACHpC,KAAK0B,oBAAoB,OAAOpC,IAAQ2C,GACpCJ,aAAcT,EACdmB,IAGAV,EAAGH,oBAAoB,UAAWU,OAI9Cd,KAAKhC,KAAOA,EACZgC,KAAKO,GAAKA,EAEdR,KAAKI,GACDY,QAAQC,MAAM,6CAA8C,IAAKb,GAAW,UAAWH,KAAKO,IAC5FP,KAAKO,GAAGV,YAAYM,GACpB,MAAMjB,EAAK,IAAIiC,YAAY,OAAOnB,KAAKhC,OAAQ,CAAE6C,OAAQV,IACzDzB,KAAK0C,cAAclC,IAoB3B,IAAImC,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBhD,OAAOmD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOA,EAAEK,eAAeD,KAAIL,EAAEK,GAAKJ,EAAEI,MACpDL,EAAGC,IAG5B,SAASM,EAAUP,EAAGC,GAElB,SAASO,IAAO9B,KAAK+B,YAAcT,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEU,UAAkB,OAANT,EAAalD,OAAO4D,OAAOV,IAAMO,EAAGE,UAAYT,EAAES,UAAW,IAAIF,GAInF,SAASI,EAAWC,GAChB,MAAoB,mBAANA,EAIlB,IAAIC,GAAsD,EACtDC,EAAS,CACTC,aAASC,EACTC,0CAA0CC,GAClCA,IAC0B,IAAIC,OACqGC,MAEvIP,EAAsDK,GAE1DD,4CACI,OAAOJ,IAKf,SAASQ,EAAgBC,GACrBC,YAAW,WAAc,MAAMD,IAAQ,GAI3C,IAAIE,EAAU,CACVC,QAAQ,EACRpC,KAAM,SAAU6B,KAChBQ,MAAO,SAAUJ,GACb,GAAIR,EAAOG,sCACP,MAAMK,EAGND,EAAgBC,IAGxBK,SAAU,cAIVC,EAAwB,WAAe,OAAOzB,MAAMyB,SAAW,SAAWhB,GAAK,OAAOA,GAAyB,iBAAbA,EAAEiB,QAA5E,GAG5B,SAASC,EAASlB,GACd,OAAa,OAANA,GAA2B,iBAANA,EAIhC,IAYImB,EAZwC,WACxC,SAASC,EAAwBC,GAM7B,OALAd,MAAMe,KAAKzD,MACXA,KAAKG,QAAUqD,EACXA,EAAOJ,OAAS,4CAA8CI,EAAOE,KAAI,SAAUb,EAAKc,GAAK,OAAOA,EAAI,EAAI,KAAOd,EAAIe,cAAeC,KAAK,QAAU,GACzJ7D,KAAKhC,KAAO,sBACZgC,KAAKwD,OAASA,EACPxD,KAGX,OADAuD,EAAwBvB,UAA0B3D,OAAO4D,OAAOS,MAAMV,WAC/DuB,EAViC,GAexCO,EAA8B,WAC9B,SAASA,EAAa7C,GAClBjB,KAAKgD,QAAS,EACdhD,KAAK+D,iBAAmB,KACxB/D,KAAKgE,eAAiB,KAClB/C,IACAjB,KAAKiE,kBAAmB,EACxBjE,KAAKkE,aAAejD,GAyH5B,OAtHA6C,EAAa9B,UAAUf,YAAc,WACjC,IAAIuC,EACJ,IAAIxD,KAAKgD,OAAT,CAGA,IAAIzE,EAAKyB,KAAM+D,EAAmBxF,EAAGwF,iBAAkBE,EAAmB1F,EAAG0F,iBAAkBC,EAAe3F,EAAG2F,aAAcF,EAAiBzF,EAAGyF,eAInJ,GAHAhE,KAAKgD,QAAS,EACdhD,KAAK+D,iBAAmB,KACxB/D,KAAKgE,eAAiB,KAClBD,aAA4BD,EAC5BC,EAAiBI,OAAOnE,WAEvB,GAAyB,OAArB+D,EACL,IAAK,IAAIK,EAAQ,EAAGA,EAAQL,EAAiBX,SAAUgB,EAAO,CAC3CL,EAAiBK,GACvBD,OAAOnE,MAGxB,GAAIkC,EAAWgC,GAAe,CACtBD,IACAjE,KAAKkE,kBAAe3B,GAExB,IACI2B,EAAaT,KAAKzD,MAEtB,MAAOqE,GACHb,EAASa,aAAaf,EAAsBgB,EAA4BD,EAAEb,QAAU,CAACa,IAG7F,GAAIlB,EAAQa,GACR,CAAII,GAAS,EAEb,IAFA,IACIG,EAAMP,EAAeZ,SAChBgB,EAAQG,GAAK,CAClB,IAAIrG,EAAM8F,EAAeI,GACzB,GAAIf,EAASnF,GACT,IACIA,EAAI+C,cAER,MAAOoD,GACHb,EAASA,GAAU,GACfa,aAAaf,EACbE,EAASA,EAAOgB,OAAOF,EAA4BD,EAAEb,SAGrDA,EAAOiB,KAAKJ,KAMhC,GAAIb,EACA,MAAM,IAAIF,EAAoBE,KAGtCM,EAAa9B,UAAU0C,IAAM,SAAUC,GACnC,IAAIC,EAAeD,EACnB,IAAKA,EACD,OAAOb,EAAae,MAExB,cAAeF,GACX,IAAK,WACDC,EAAe,IAAId,EAAaa,GACpC,IAAK,SACD,GAAIC,IAAiB5E,MAAQ4E,EAAa5B,QAA8C,mBAA7B4B,EAAa3D,YACpE,OAAO2D,EAEN,GAAI5E,KAAKgD,OAEV,OADA4B,EAAa3D,cACN2D,EAEN,KAAMA,aAAwBd,GAAe,CAC9C,IAAIgB,EAAMF,GACVA,EAAe,IAAId,GACNE,eAAiB,CAACc,GAEnC,MACJ,QACI,MAAM,IAAIpC,MAAM,yBAA2BiC,EAAW,2BAG9D,IAAIZ,EAAmBa,EAAab,iBACpC,GAAyB,OAArBA,EACAa,EAAab,iBAAmB/D,UAE/B,GAAI+D,aAA4BD,EAAc,CAC/C,GAAIC,IAAqB/D,KACrB,OAAO4E,EAEXA,EAAab,iBAAmB,CAACA,EAAkB/D,UAElD,CAAA,IAAwC,IAApC+D,EAAiBgB,QAAQ/E,MAI9B,OAAO4E,EAHPb,EAAiBU,KAAKzE,MAK1B,IAAIgF,EAAgBhF,KAAKgE,eAOzB,OANsB,OAAlBgB,EACAhF,KAAKgE,eAAiB,CAACY,GAGvBI,EAAcP,KAAKG,GAEhBA,GAEXd,EAAa9B,UAAUmC,OAAS,SAAUS,GACtC,IAAII,EAAgBhF,KAAKgE,eACzB,GAAIgB,EAAe,CACf,IAAIC,EAAoBD,EAAcD,QAAQH,IACnB,IAAvBK,GACAD,EAAcE,OAAOD,EAAmB,KAIpDnB,EAAae,MAAS,SAAUM,GAE5B,OADAA,EAAMnC,QAAS,EACRmC,EAFU,CAGnB,IAAIrB,GACCA,EAhIsB,GAkIjC,SAASQ,EAA4Bd,GACjC,OAAOA,EAAO4B,QAAO,SAAUC,EAAMxC,GAAO,OAAOwC,EAAKb,OAAQ3B,aAAeS,EAAuBT,EAAIW,OAASX,KAAS,IAIhI,IAAIyC,EAA6B,WAC7B,MAAyB,mBAAXC,OACMA,OAAO,gBACrB,kBAAkCC,KAAKC,SAHhB,GAO7BC,EAA4B,SAAUC,GAEtC,SAASD,EAAWE,EAAmB3C,EAAOC,GAC1C,IAAI2C,EAAQF,EAAOlC,KAAKzD,OAASA,KAKjC,OAJA6F,EAAMC,eAAiB,KACvBD,EAAME,iBAAkB,EACxBF,EAAMG,oBAAqB,EAC3BH,EAAMI,WAAY,EACVC,UAAU9C,QACd,KAAK,EACDyC,EAAMM,YAAcpD,EACpB,MACJ,KAAK,EACD,IAAK6C,EAAmB,CACpBC,EAAMM,YAAcpD,EACpB,MAEJ,GAAiC,iBAAtB6C,EAAgC,CACnCA,aAA6BF,GAC7BG,EAAMG,mBAAqBJ,EAAkBI,mBAC7CH,EAAMM,YAAcP,EACpBA,EAAkBlB,IAAImB,KAGtBA,EAAMG,oBAAqB,EAC3BH,EAAMM,YAAc,IAAIC,EAAeP,EAAOD,IAElD,MAER,QACIC,EAAMG,oBAAqB,EAC3BH,EAAMM,YAAc,IAAIC,EAAeP,EAAOD,EAAmB3C,EAAOC,GAGhF,OAAO2C,EAoDX,OArFAhE,EAAU6D,EAAYC,GAmCtBD,EAAW1D,UAAUsD,GAAgB,WAAc,OAAOtF,MAC1D0F,EAAWzD,OAAS,SAAUrB,EAAMqC,EAAOC,GACvC,IAAIxC,EAAa,IAAIgF,EAAW9E,EAAMqC,EAAOC,GAE7C,OADAxC,EAAWsF,oBAAqB,EACzBtF,GAEXgF,EAAW1D,UAAUpB,KAAO,SAAU6B,GAC7BzC,KAAKiG,WACNjG,KAAKqG,MAAM5D,IAGnBiD,EAAW1D,UAAUiB,MAAQ,SAAUJ,GAC9B7C,KAAKiG,YACNjG,KAAKiG,WAAY,EACjBjG,KAAKsG,OAAOzD,KAGpB6C,EAAW1D,UAAUkB,SAAW,WACvBlD,KAAKiG,YACNjG,KAAKiG,WAAY,EACjBjG,KAAKuG,cAGbb,EAAW1D,UAAUf,YAAc,WAC3BjB,KAAKgD,SAGThD,KAAKiG,WAAY,EACjBN,EAAO3D,UAAUf,YAAYwC,KAAKzD,QAEtC0F,EAAW1D,UAAUqE,MAAQ,SAAU5D,GACnCzC,KAAKmG,YAAYvF,KAAK6B,IAE1BiD,EAAW1D,UAAUsE,OAAS,SAAUzD,GACpC7C,KAAKmG,YAAYlD,MAAMJ,GACvB7C,KAAKiB,eAETyE,EAAW1D,UAAUuE,UAAY,WAC7BvG,KAAKmG,YAAYjD,WACjBlD,KAAKiB,eAETyE,EAAW1D,UAAUwE,uBAAyB,WAC1C,IAAIzC,EAAmB/D,KAAK+D,iBAM5B,OALA/D,KAAK+D,iBAAmB,KACxB/D,KAAKiB,cACLjB,KAAKgD,QAAS,EACdhD,KAAKiG,WAAY,EACjBjG,KAAK+D,iBAAmBA,EACjB/D,MAEJ0F,EAtFoB,CAuF7B5B,GACEsC,EAAgC,SAAUT,GAE1C,SAASS,EAAeK,EAAmBC,EAAgBzD,EAAOC,GAC9D,IAEItC,EAFAiF,EAAQF,EAAOlC,KAAKzD,OAASA,KACjC6F,EAAMY,kBAAoBA,EAE1B,IAAIE,EAAUd,EAoBd,OAnBI3D,EAAWwE,GACX9F,EAAO8F,EAEFA,IACL9F,EAAO8F,EAAe9F,KACtBqC,EAAQyD,EAAezD,MACvBC,EAAWwD,EAAexD,SACtBwD,IAAmB3D,IAEfb,GADJyE,EAAUtI,OAAO4D,OAAOyE,IACDzF,cACnB4E,EAAMnB,IAAIiC,EAAQ1F,YAAY2F,KAAKD,IAEvCA,EAAQ1F,YAAc4E,EAAM5E,YAAY2F,KAAKf,KAGrDA,EAAMgB,SAAWF,EACjBd,EAAMQ,MAAQzF,EACdiF,EAAMS,OAASrD,EACf4C,EAAMU,UAAYrD,EACX2C,EA0GX,OAnIAhE,EAAUuE,EAAgBT,GA2B1BS,EAAepE,UAAUpB,KAAO,SAAU6B,GACtC,IAAKzC,KAAKiG,WAAajG,KAAKqG,MAAO,CAC/B,IAAII,EAAoBzG,KAAKyG,kBACxBpE,EAAOG,uCAA0CiE,EAAkBT,mBAG/DhG,KAAK8G,gBAAgBL,EAAmBzG,KAAKqG,MAAO5D,IACzDzC,KAAKiB,cAHLjB,KAAK+G,aAAa/G,KAAKqG,MAAO5D,KAO1C2D,EAAepE,UAAUiB,MAAQ,SAAUJ,GACvC,IAAK7C,KAAKiG,UAAW,CACjB,IAAIQ,EAAoBzG,KAAKyG,kBACzBjE,EAAwCH,EAAOG,sCACnD,GAAIxC,KAAKsG,OACA9D,GAA0CiE,EAAkBT,oBAK7DhG,KAAK8G,gBAAgBL,EAAmBzG,KAAKsG,OAAQzD,GACrD7C,KAAKiB,gBALLjB,KAAK+G,aAAa/G,KAAKsG,OAAQzD,GAC/B7C,KAAKiB,oBAOR,GAAKwF,EAAkBT,mBAQpBxD,GACAiE,EAAkBX,eAAiBjD,EACnC4D,EAAkBV,iBAAkB,GAGpCnD,EAAgBC,GAEpB7C,KAAKiB,kBAfuC,CAE5C,GADAjB,KAAKiB,cACDuB,EACA,MAAMK,EAEVD,EAAgBC,MAc5BuD,EAAepE,UAAUkB,SAAW,WAChC,IAAI2C,EAAQ7F,KACZ,IAAKA,KAAKiG,UAAW,CACjB,IAAIQ,EAAoBzG,KAAKyG,kBAC7B,GAAIzG,KAAKuG,UAAW,CAChB,IAAIS,EAAkB,WAAc,OAAOnB,EAAMU,UAAU9C,KAAKoC,EAAMgB,WACjExE,EAAOG,uCAA0CiE,EAAkBT,oBAKpEhG,KAAK8G,gBAAgBL,EAAmBO,GACxChH,KAAKiB,gBALLjB,KAAK+G,aAAaC,GAClBhH,KAAKiB,oBAQTjB,KAAKiB,gBAIjBmF,EAAepE,UAAU+E,aAAe,SAAUE,EAAIxE,GAClD,IACIwE,EAAGxD,KAAKzD,KAAK6G,SAAUpE,GAE3B,MAAOI,GAEH,GADA7C,KAAKiB,cACDoB,EAAOG,sCACP,MAAMK,EAGND,EAAgBC,KAI5BuD,EAAepE,UAAU8E,gBAAkB,SAAUI,EAAQD,EAAIxE,GAC7D,IAAKJ,EAAOG,sCACR,MAAM,IAAIE,MAAM,YAEpB,IACIuE,EAAGxD,KAAKzD,KAAK6G,SAAUpE,GAE3B,MAAOI,GACH,OAAIR,EAAOG,uCACP0E,EAAOpB,eAAiBjD,EACxBqE,EAAOnB,iBAAkB,GAClB,IAGPnD,EAAgBC,IACT,GAGf,OAAO,GAEXuD,EAAepE,UAAUkC,aAAe,WACpC,IAAIuC,EAAoBzG,KAAKyG,kBAC7BzG,KAAK6G,SAAW,KAChB7G,KAAKyG,kBAAoB,KACzBA,EAAkBxF,eAEfmF,EApIwB,CAqIjCV,GAoCF,IAAIyB,EAA2B,WAAe,MAAyB,mBAAX5B,QAAyBA,OAAO4B,YAAc,eAA3E,GAG/B,SAASC,EAASjF,GACd,OAAOA,EAIX,SAASkF,EAAcC,GACnB,OAAmB,IAAfA,EAAIlE,OACGgE,EAEQ,IAAfE,EAAIlE,OACGkE,EAAI,GAER,SAAeC,GAClB,OAAOD,EAAIlC,QAAO,SAAUoC,EAAMP,GAAM,OAAOA,EAAGO,KAAUD,IAKpE,IAAIE,EAA4B,WAC5B,SAASA,EAAWvG,GAChBlB,KAAK0H,WAAY,EACbxG,IACAlB,KAAK2H,WAAazG,GA6F1B,OA1FAuG,EAAWzF,UAAU4F,KAAO,SAAUC,GAClC,IAAIV,EAAa,IAAIM,EAGrB,OAFAN,EAAWvH,OAASI,KACpBmH,EAAWU,SAAWA,EACfV,GAEXM,EAAWzF,UAAUd,UAAY,SAAUwF,EAAgBzD,EAAOC,GAC9D,IAAI2E,EAAW7H,KAAK6H,SAChBC,EApDZ,SAAsBC,EAAgB9E,EAAOC,GACzC,GAAI6E,EAAgB,CAChB,GAAIA,aAA0BrC,EAC1B,OAAOqC,EAEX,GAAIA,EAAezC,GACf,OAAOyC,EAAezC,KAG9B,OAAKyC,GAAmB9E,GAAUC,EAG3B,IAAIwC,EAAWqC,EAAgB9E,EAAOC,GAFlC,IAAIwC,EAAW3C,GA0CXiF,CAAatB,EAAgBzD,EAAOC,GAS/C,GARI2E,EACAC,EAAKpD,IAAImD,EAASpE,KAAKqE,EAAM9H,KAAKJ,SAGlCkI,EAAKpD,IAAI1E,KAAKJ,QAAWyC,EAAOG,wCAA0CsF,EAAK9B,mBAC3EhG,KAAK2H,WAAWG,GAChB9H,KAAKiI,cAAcH,IAEvBzF,EAAOG,uCACHsF,EAAK9B,qBACL8B,EAAK9B,oBAAqB,EACtB8B,EAAK/B,iBACL,MAAM+B,EAAKhC,eAIvB,OAAOgC,GAEXL,EAAWzF,UAAUiG,cAAgB,SAAUH,GAC3C,IACI,OAAO9H,KAAK2H,WAAWG,GAE3B,MAAOjF,GACCR,EAAOG,wCACPsF,EAAK/B,iBAAkB,EACvB+B,EAAKhC,eAAiBjD,IA/FtC,SAAwBqF,GACpB,KAAOA,GAAU,CACb,IAAI3J,EAAK2J,EAAUC,EAAW5J,EAAGyE,OAAQmD,EAAc5H,EAAG4H,YAAaF,EAAY1H,EAAG0H,UACtF,GAAIkC,GAAYlC,EACZ,OAAO,EAGPiC,EADK/B,GAAeA,aAAuBT,EAChCS,EAGA,KAGnB,OAAO,EAoFKiC,CAAeN,GAIf/G,QAAQsH,KAAKxF,GAHbiF,EAAK7E,MAAMJ,KAOvB4E,EAAWzF,UAAUvC,QAAU,SAAUmB,EAAM0H,GAC3C,IAAIzC,EAAQ7F,KAEZ,OAAO,IADPsI,EAAcC,EAAeD,KACN,SAAUE,EAASC,GACtC,IAAI7D,EACJA,EAAeiB,EAAM3E,WAAU,SAAUuB,GACrC,IACI7B,EAAK6B,GAET,MAAOI,GACH4F,EAAO5F,GACH+B,GACAA,EAAa3D,iBAGtBwH,EAAQD,OAGnBf,EAAWzF,UAAU2F,WAAa,SAAUjH,GACxC,IAAId,EAASI,KAAKJ,OAClB,OAAOA,GAAUA,EAAOsB,UAAUR,IAEtC+G,EAAWzF,UAAUmF,GAAc,WAC/B,OAAOnH,MAEXyH,EAAWzF,UAAU0G,KAAO,WAExB,IADA,IAAIC,EAAa,GACRC,EAAK,EAAGA,EAAK1C,UAAU9C,OAAQwF,IACpCD,EAAWC,GAAM1C,UAAU0C,GAE/B,OAA0B,IAAtBD,EAAWvF,OACJpD,KAEJqH,EAAcsB,EAAdtB,CAA0BrH,OAErCyH,EAAWzF,UAAU6G,UAAY,SAAUP,GACvC,IAAIzC,EAAQ7F,KAEZ,OAAO,IADPsI,EAAcC,EAAeD,KACN,SAAUE,EAASC,GACtC,IAAIhG,EACJoD,EAAM3E,WAAU,SAAUiB,GAAK,OAAOM,EAAQN,KAAM,SAAUU,GAAO,OAAO4F,EAAO5F,MAAS,WAAc,OAAO2F,EAAQ/F,UAGjIgF,EAAWxF,OAAS,SAAUf,GAC1B,OAAO,IAAIuG,EAAWvG,IAEnBuG,EAjGoB,GAmG/B,SAASc,EAAeD,GAIpB,GAHKA,IACDA,EAAchG,UAEbgG,EACD,MAAM,IAAI5F,MAAM,yBAEpB,OAAO4F,EAIX,IAAIQ,EAAmB,SAAUC,GAC7B,OAAO,SAAUrI,GACb,IAAK,IAAIiD,EAAI,EAAGY,EAAMwE,EAAM3F,OAAQO,EAAIY,IAAQ7D,EAAWsC,OAAQW,IAC/DjD,EAAWE,KAAKmI,EAAMpF,IAE1BjD,EAAWwC,aAmBnB,SAAS8F,IACL,MAAsB,mBAAXzD,QAA0BA,OAAO0D,SAGrC1D,OAAO0D,SAFH,aAIf,IAAIA,EAAyBD,IAiDzBE,EAAc,SAAW/G,GAAK,OAAOA,GAAyB,iBAAbA,EAAEiB,QAAoC,mBAANjB,GAGrF,SAASgH,EAAU1G,GACf,QAASA,GAAoC,mBAApBA,EAAMvB,WAAkD,mBAAfuB,EAAM1D,KAI5E,IAAIqK,EAAc,SAAUC,GACxB,GAAMA,GAAwC,mBAAvBA,EAAOlC,GAC1B,OAvB8BmC,EAuBDD,EAtB1B,SAAU3I,GACb,IAAI6I,EAAMD,EAAInC,KACd,GAA6B,mBAAlBoC,EAAIrI,UACX,MAAM,IAAIsI,UAAU,kEAGpB,OAAOD,EAAIrI,UAAUR,IAkBxB,GAAIwI,EAAYG,GACjB,OAAOP,EAAiBO,GAEvB,GAAIF,EAAUE,GACf,OArF2BI,EAqFDJ,EApFvB,SAAU3I,GAQb,OAPA+I,EAAQ1K,MAAK,SAAU0D,GACd/B,EAAWsC,SACZtC,EAAWE,KAAK6B,GAChB/B,EAAWwC,eAEhB,SAAUL,GAAO,OAAOnC,EAAWuC,MAAMJ,MACvC9D,KAAK,KAAM6D,GACTlC,GA8EN,GAAM2I,GAAsC,mBAArBA,EAAOJ,GAC/B,OAjE4BS,EAiEDL,EAhExB,SAAU3I,GAEb,IADA,IAAIiJ,EAAaD,EAAST,OACvB,CACC,IAAIW,OAAO,EACX,IACIA,EAAOD,EAAW/I,OAEtB,MAAOiC,GAEH,OADAnC,EAAWuC,MAAMJ,GACVnC,EAEX,GAAIkJ,EAAKC,KAAM,CACXnJ,EAAWwC,WACX,MAGJ,GADAxC,EAAWE,KAAKgJ,EAAKnH,OACjB/B,EAAWsC,OACX,MAUR,MAPiC,mBAAtB2G,EAAWG,QAClBpJ,EAAWgE,KAAI,WACPiF,EAAWG,QACXH,EAAWG,YAIhBpJ,GAwCP,IApE4BgJ,EAvBDD,EAwDGH,EAmC1B7G,EAAQY,EAASgG,GAAU,oBAAsB,IAAMA,EAAS,IAGpE,MAAM,IAAIG,UAFA,gBAAkB/G,EAAlB,8FAOdsH,EAAuC,SAAUpE,GAEjD,SAASoE,EAAsB7C,GAC3B,IAAIrB,EAAQF,EAAOlC,KAAKzD,OAASA,KAEjC,OADA6F,EAAMqB,OAASA,EACRrB,EAaX,OAjBAhE,EAAUkI,EAAuBpE,GAMjCoE,EAAsB/H,UAAUqE,MAAQ,SAAU5D,GAC9CzC,KAAKkH,OAAO8C,WAAWvH,IAE3BsH,EAAsB/H,UAAUsE,OAAS,SAAUrD,GAC/CjD,KAAKkH,OAAO+C,YAAYhH,GACxBjD,KAAKiB,eAET8I,EAAsB/H,UAAUuE,UAAY,WACxCvG,KAAKkH,OAAOgD,iBACZlK,KAAKiB,eAEF8I,EAlB+B,CAmBxCrE,GACEyE,EAAuC,SAAUxE,GAEjD,SAASwE,IACL,OAAkB,OAAXxE,GAAmBA,EAAOyE,MAAMpK,KAAMkG,YAAclG,KAW/D,OAbA6B,EAAUsI,EAAuBxE,GAIjCwE,EAAsBnI,UAAUgI,WAAa,SAAUK,GACnDrK,KAAKmG,YAAYvF,KAAKyJ,IAE1BF,EAAsBnI,UAAUiI,YAAc,SAAUpH,GACpD7C,KAAKmG,YAAYlD,MAAMJ,IAE3BsH,EAAsBnI,UAAUkI,eAAiB,WAC7ClK,KAAKmG,YAAYjD,YAEdiH,EAd+B,CAexCzE,GACF,SAAS4E,EAAejB,EAAQkB,GAC5B,IAAIA,EAAgBvH,OAApB,CAGA,GAAIqG,aAAkB5B,EAClB,OAAO4B,EAAOnI,UAAUqJ,GAE5B,IAAI3F,EACJ,IACIA,EAAewE,EAAYC,EAAZD,CAAoBmB,GAEvC,MAAOtH,GACHsH,EAAgBtH,MAAMA,GAE1B,OAAO2B,GAIX,IAYI4F,EAA6B,SAAU7E,GAEvC,SAAS6E,EAAYC,EAAWC,GAC5B,IAAI7E,EAAQF,EAAOlC,KAAKzD,KAAMyK,EAAWC,IAAS1K,KAIlD,OAHA6F,EAAM4E,UAAYA,EAClB5E,EAAM6E,KAAOA,EACb7E,EAAM8E,SAAU,EACT9E,EAiFX,OAvFAhE,EAAU2I,EAAa7E,GAQvB6E,EAAYxI,UAAU4I,SAAW,SAAUC,EAAOC,GAI9C,QAHc,IAAVA,IACAA,EAAQ,GAER9K,KAAKgD,OACL,OAAOhD,KAEXA,KAAK6K,MAAQA,EACb,IAAIlL,EAAKK,KAAKL,GACV8K,EAAYzK,KAAKyK,UAOrB,OANU,MAAN9K,IACAK,KAAKL,GAAKK,KAAK+K,eAAeN,EAAW9K,EAAImL,IAEjD9K,KAAK2K,SAAU,EACf3K,KAAK8K,MAAQA,EACb9K,KAAKL,GAAKK,KAAKL,IAAMK,KAAKgL,eAAeP,EAAWzK,KAAKL,GAAImL,GACtD9K,MAEXwK,EAAYxI,UAAUgJ,eAAiB,SAAUP,EAAW9K,EAAImL,GAI5D,YAHc,IAAVA,IACAA,EAAQ,GAELG,YAAYR,EAAUS,MAAMtE,KAAK6D,EAAWzK,MAAO8K,IAE9DN,EAAYxI,UAAU+I,eAAiB,SAAUN,EAAW9K,EAAImL,GAI5D,QAHc,IAAVA,IACAA,EAAQ,GAEE,OAAVA,GAAkB9K,KAAK8K,QAAUA,IAA0B,IAAjB9K,KAAK2K,QAC/C,OAAOhL,EAEXwL,cAAcxL,IAGlB6K,EAAYxI,UAAUoJ,QAAU,SAAUP,EAAOC,GAC7C,GAAI9K,KAAKgD,OACL,OAAO,IAAIN,MAAM,gCAErB1C,KAAK2K,SAAU,EACf,IAAI1H,EAAQjD,KAAKqL,SAASR,EAAOC,GACjC,GAAI7H,EACA,OAAOA,GAEe,IAAjBjD,KAAK2K,SAAgC,MAAX3K,KAAKL,KACpCK,KAAKL,GAAKK,KAAK+K,eAAe/K,KAAKyK,UAAWzK,KAAKL,GAAI,QAG/D6K,EAAYxI,UAAUqJ,SAAW,SAAUR,EAAOC,GAC9C,IAAIQ,GAAU,EACVC,OAAahJ,EACjB,IACIvC,KAAK0K,KAAKG,GAEd,MAAOxG,GACHiH,GAAU,EACVC,IAAelH,GAAKA,GAAK,IAAI3B,MAAM2B,GAEvC,GAAIiH,EAEA,OADAtL,KAAKiB,cACEsK,GAGff,EAAYxI,UAAUkC,aAAe,WACjC,IAAIvE,EAAKK,KAAKL,GACV8K,EAAYzK,KAAKyK,UACjBe,EAAUf,EAAUe,QACpBpH,EAAQoH,EAAQzG,QAAQ/E,MAC5BA,KAAK0K,KAAO,KACZ1K,KAAK6K,MAAQ,KACb7K,KAAK2K,SAAU,EACf3K,KAAKyK,UAAY,MACF,IAAXrG,GACAoH,EAAQtG,OAAOd,EAAO,GAEhB,MAANzE,IACAK,KAAKL,GAAKK,KAAK+K,eAAeN,EAAW9K,EAAI,OAEjDK,KAAK8K,MAAQ,MAEVN,EAxFqB,CAZJ,SAAU7E,GAElC,SAAS8F,EAAOhB,EAAWC,GACvB,OAAO/E,EAAOlC,KAAKzD,OAASA,KAKhC,OAPA6B,EAAU4J,EAAQ9F,GAIlB8F,EAAOzJ,UAAU4I,SAAW,SAAUC,EAAOC,GACzC,OAAO9K,MAEJyL,EARgB,CASzB3H,IA8FE4H,EAA2B,WAC3B,SAASA,EAAUC,EAAiBC,QACpB,IAARA,IACAA,EAAMF,EAAUE,KAEpB5L,KAAK2L,gBAAkBA,EACvB3L,KAAK4L,IAAMA,EASf,OAPAF,EAAU1J,UAAU4I,SAAW,SAAUF,EAAMI,EAAOD,GAIlD,YAHc,IAAVC,IACAA,EAAQ,GAEL,IAAI9K,KAAK2L,gBAAgB3L,KAAM0K,GAAME,SAASC,EAAOC,IAEhEY,EAAUE,IAAM,WAAc,OAAOxN,KAAKwN,OACnCF,EAfmB,GA2E1BG,EAD+B,IAvDC,SAAUlG,GAE1C,SAASmG,EAAeH,EAAiBC,QACzB,IAARA,IACAA,EAAMF,EAAUE,KAEpB,IAAI/F,EAAQF,EAAOlC,KAAKzD,KAAM2L,GAAiB,WAC3C,OAAIG,EAAeC,UAAYD,EAAeC,WAAalG,EAChDiG,EAAeC,SAASH,MAGxBA,QAET5L,KAIN,OAHA6F,EAAM2F,QAAU,GAChB3F,EAAMxF,QAAS,EACfwF,EAAMmG,eAAYzJ,EACXsD,EAkCX,OAlDAhE,EAAUiK,EAAgBnG,GAkB1BmG,EAAe9J,UAAU4I,SAAW,SAAUF,EAAMI,EAAOD,GAIvD,YAHc,IAAVC,IACAA,EAAQ,GAERgB,EAAeC,UAAYD,EAAeC,WAAa/L,KAChD8L,EAAeC,SAASnB,SAASF,EAAMI,EAAOD,GAG9ClF,EAAO3D,UAAU4I,SAASnH,KAAKzD,KAAM0K,EAAMI,EAAOD,IAGjEiB,EAAe9J,UAAUkJ,MAAQ,SAAUe,GACvC,IAAIT,EAAUxL,KAAKwL,QACnB,GAAIxL,KAAKK,OACLmL,EAAQ/G,KAAKwH,OADjB,CAIA,IAAIhJ,EACJjD,KAAKK,QAAS,EACd,GACI,GAAI4C,EAAQgJ,EAAOb,QAAQa,EAAOpB,MAAOoB,EAAOnB,OAC5C,YAECmB,EAAST,EAAQU,SAE1B,GADAlM,KAAKK,QAAS,EACV4C,EAAO,CACP,KAAOgJ,EAAST,EAAQU,SACpBD,EAAOhL,cAEX,MAAMgC,KAGP6I,EAnDwB,CAoDjCJ,GAGiC,CAAmBlB,GAItD,SAAS2B,EAAY1J,GACjB,OAAOA,GAAmC,mBAAnBA,EAAMmI,SAIjC,SAASwB,EAAWC,GAChB,OAAO,SAAoCzM,GACvC,IAAIiI,EAAW,IAAIyE,EAAcD,GAC7BE,EAAS3M,EAAOgI,KAAKC,GACzB,OAAQA,EAAS0E,OAASA,GAGlC,IAAID,EAA+B,WAC/B,SAASA,EAAcD,GACnBrM,KAAKqM,SAAWA,EAKpB,OAHAC,EAActK,UAAUyB,KAAO,SAAU/C,EAAYd,GACjD,OAAOA,EAAOsB,UAAU,IAAIsL,EAAgB9L,EAAYV,KAAKqM,SAAUrM,KAAKuM,UAEzED,EAPuB,GAS9BE,EAAiC,SAAU7G,GAE3C,SAAS6G,EAAgBrG,EAAakG,EAAUE,GAC5C,IAAI1G,EAAQF,EAAOlC,KAAKzD,KAAMmG,IAAgBnG,KAG9C,OAFA6F,EAAMwG,SAAWA,EACjBxG,EAAM0G,OAASA,EACR1G,EAqBX,OA1BAhE,EAAU2K,EAAiB7G,GAO3B6G,EAAgBxK,UAAUiB,MAAQ,SAAUJ,GACxC,IAAK7C,KAAKiG,UAAW,CACjB,IAAIoD,OAAS,EACb,IACIA,EAASrJ,KAAKqM,SAASxJ,EAAK7C,KAAKuM,QAErC,MAAOE,GAEH,YADA9G,EAAO3D,UAAUiB,MAAMQ,KAAKzD,KAAMyM,GAGtCzM,KAAKwG,yBACL,IAAI+D,EAAkB,IAAIR,EAAsB/J,MAChDA,KAAK0E,IAAI6F,GACT,IAAImC,EAAoBpC,EAAejB,EAAQkB,GAC3CmC,IAAsBnC,GACtBvK,KAAK0E,IAAIgI,KAIdF,EA3ByB,CA4BlCrC,GAGF,SAASwC,EAAcpF,EAAOkD,GAC1B,OAAO,IAAIhD,GAAW,SAAU/G,GAC5B,IAAIxC,EAAM,IAAI4F,EACVH,EAAI,EAWR,OAVAzF,EAAIwG,IAAI+F,EAAUG,UAAS,WACnBjH,IAAM4D,EAAMnE,QAIhB1C,EAAWE,KAAK2G,EAAM5D,MACjBjD,EAAWsC,QACZ9E,EAAIwG,IAAI1E,KAAK4K,aALblK,EAAWwC,eAQZhF,KAKf,SAAS0O,GAAUrF,EAAOkD,GACtB,OAAKA,EAIMkC,EAAcpF,EAAOkD,GAHrB,IAAIhD,EAAWqB,EAAiBvB,IA+F/C,SAASyE,GAAUzE,EAAOkD,GACtB,GAAa,MAATlD,EAAe,CACf,GAZR,SAA6BA,GACzB,OAAOA,GAAsC,mBAAtBA,EAAMJ,GAWrB0F,CAAoBtF,GACpB,OA1FZ,SAA4BA,EAAOkD,GAC/B,OAAO,IAAIhD,GAAW,SAAU/G,GAC5B,IAAIxC,EAAM,IAAI4F,EASd,OARA5F,EAAIwG,IAAI+F,EAAUG,UAAS,WACvB,IAAIkC,EAAevF,EAAMJ,KACzBjJ,EAAIwG,IAAIoI,EAAa5L,UAAU,CAC3BN,KAAM,SAAU6B,GAASvE,EAAIwG,IAAI+F,EAAUG,UAAS,WAAc,OAAOlK,EAAWE,KAAK6B,QACzFQ,MAAO,SAAUJ,GAAO3E,EAAIwG,IAAI+F,EAAUG,UAAS,WAAc,OAAOlK,EAAWuC,MAAMJ,QACzFK,SAAU,WAAchF,EAAIwG,IAAI+F,EAAUG,UAAS,WAAc,OAAOlK,EAAWwC,uBAGpFhF,KA+EI6O,CAAmBxF,EAAOkD,GAEhC,GAAItB,EAAU5B,GACf,OA7EZ,SAAyBA,EAAOkD,GAC5B,OAAO,IAAIhD,GAAW,SAAU/G,GAC5B,IAAIxC,EAAM,IAAI4F,EAWd,OAVA5F,EAAIwG,IAAI+F,EAAUG,UAAS,WACvB,OAAOrD,EAAMxI,MAAK,SAAU0D,GACxBvE,EAAIwG,IAAI+F,EAAUG,UAAS,WACvBlK,EAAWE,KAAK6B,GAChBvE,EAAIwG,IAAI+F,EAAUG,UAAS,WAAc,OAAOlK,EAAWwC,sBAEhE,SAAUL,GACT3E,EAAIwG,IAAI+F,EAAUG,UAAS,WAAc,OAAOlK,EAAWuC,MAAMJ,cAGlE3E,KAgEI8O,CAAgBzF,EAAOkD,GAE7B,GAAIvB,EAAY3B,GACjB,OAAOoF,EAAcpF,EAAOkD,GAE3B,GAhBb,SAAoBlD,GAChB,OAAOA,GAAoC,mBAApBA,EAAM0B,GAehBgE,CAAW1F,IAA2B,iBAAVA,EACjC,OAjEZ,SAA0BA,EAAOkD,GAC7B,IAAKlD,EACD,MAAM,IAAI7E,MAAM,2BAEpB,OAAO,IAAI+E,GAAW,SAAU/G,GAC5B,IACIiJ,EADAzL,EAAM,IAAI4F,EAiCd,OA/BA5F,EAAIwG,KAAI,WACAiF,GAA2C,mBAAtBA,EAAWG,QAChCH,EAAWG,YAGnB5L,EAAIwG,IAAI+F,EAAUG,UAAS,WACvBjB,EAAapC,EAAM0B,KACnB/K,EAAIwG,IAAI+F,EAAUG,UAAS,WACvB,IAAIlK,EAAWsC,OAAf,CAGA,IAAIP,EACAoH,EACJ,IACI,IAAIR,EAASM,EAAW/I,OACxB6B,EAAQ4G,EAAO5G,MACfoH,EAAOR,EAAOQ,KAElB,MAAOhH,GAEH,YADAnC,EAAWuC,MAAMJ,GAGjBgH,EACAnJ,EAAWwC,YAGXxC,EAAWE,KAAK6B,GAChBzC,KAAK4K,qBAIV1M,KA2BIgP,CAAiB3F,EAAOkD,GAGvC,MAAM,IAAIjB,WAAqB,OAAVjC,UAAyBA,GAASA,GAAS,sBAIpE,SAAS4F,GAAK5F,EAAOkD,GACjB,OAAKA,EAOMuB,GAAUzE,EAAOkD,GANpBlD,aAAiBE,EACVF,EAEJ,IAAIE,EAAW2B,EAAY7B,IAQ1C,SAAS6F,KAEL,IADA,IAAIC,EAAO,GACFzE,EAAK,EAAGA,EAAK1C,UAAU9C,OAAQwF,IACpCyE,EAAKzE,GAAM1C,UAAU0C,GAEzB,IAAI6B,EAAY4C,EAAKA,EAAKjK,OAAS,GACnC,OAAI+I,EAAY1B,IACZ4C,EAAKC,MACEX,EAAcU,EAAM5C,IAGpBmC,GAAUS,GAKzB,SAAS3J,GAAI6J,EAASC,GAClB,OAAO,SAAsB5N,GACzB,GAAuB,mBAAZ2N,EACP,MAAM,IAAI/D,UAAU,8DAExB,OAAO5J,EAAOgI,KAAK,IAAI6F,GAAYF,EAASC,KAGpD,IAAIC,GAA6B,WAC7B,SAASA,EAAYF,EAASC,GAC1BxN,KAAKuN,QAAUA,EACfvN,KAAKwN,QAAUA,EAKnB,OAHAC,EAAYzL,UAAUyB,KAAO,SAAU/C,EAAYd,GAC/C,OAAOA,EAAOsB,UAAU,IAAIwM,GAAchN,EAAYV,KAAKuN,QAASvN,KAAKwN,WAEtEC,EARqB,GAU5BC,GAA+B,SAAU/H,GAEzC,SAAS+H,EAAcvH,EAAaoH,EAASC,GACzC,IAAI3H,EAAQF,EAAOlC,KAAKzD,KAAMmG,IAAgBnG,KAI9C,OAHA6F,EAAM0H,QAAUA,EAChB1H,EAAM8H,MAAQ,EACd9H,EAAM2H,QAAUA,GAAW3H,EACpBA,EAaX,OAnBAhE,EAAU6L,EAAe/H,GAQzB+H,EAAc1L,UAAUqE,MAAQ,SAAU5D,GACtC,IAAI4G,EACJ,IACIA,EAASrJ,KAAKuN,QAAQ9J,KAAKzD,KAAKwN,QAAS/K,EAAOzC,KAAK2N,SAEzD,MAAO9K,GAEH,YADA7C,KAAKmG,YAAYlD,MAAMJ,GAG3B7C,KAAKmG,YAAYvF,KAAKyI,IAEnBqE,EApBuB,CAqBhChI,GAGF,SAASkI,GAASL,EAASM,EAAgBC,GAIvC,YAHmB,IAAfA,IACAA,EAAaC,OAAOC,mBAEM,mBAAnBH,EACA,SAAUjO,GAAU,OAAOA,EAAO8I,KAAKkF,IAAS,SAAUK,EAAGtK,GAAK,OAAOwJ,GAAKI,EAAQU,EAAGtK,IAAI+E,KAAKhF,IAAI,SAAUnC,EAAG2M,GAAM,OAAOL,EAAeI,EAAG1M,EAAGoC,EAAGuK,SAAaJ,MAE7I,iBAAnBD,IACZC,EAAaD,GAEV,SAAUjO,GAAU,OAAOA,EAAOgI,KAAK,IAAIuG,GAAiBZ,EAASO,MAEhF,IAAIK,GAAkC,WAClC,SAASA,EAAiBZ,EAASO,QACZ,IAAfA,IACAA,EAAaC,OAAOC,mBAExBhO,KAAKuN,QAAUA,EACfvN,KAAK8N,WAAaA,EAKtB,OAHAK,EAAiBnM,UAAUyB,KAAO,SAAUyE,EAAUtI,GAClD,OAAOA,EAAOsB,UAAU,IAAIkN,GAAmBlG,EAAUlI,KAAKuN,QAASvN,KAAK8N,cAEzEK,EAX0B,GAajCC,GAAoC,SAAUzI,GAE9C,SAASyI,EAAmBjI,EAAaoH,EAASO,QAC3B,IAAfA,IACAA,EAAaC,OAAOC,mBAExB,IAAInI,EAAQF,EAAOlC,KAAKzD,KAAMmG,IAAgBnG,KAO9C,OANA6F,EAAM0H,QAAUA,EAChB1H,EAAMiI,WAAaA,EACnBjI,EAAMwI,cAAe,EACrBxI,EAAMyI,OAAS,GACfzI,EAAMxF,OAAS,EACfwF,EAAMzB,MAAQ,EACPyB,EAoDX,OAhEAhE,EAAUuM,EAAoBzI,GAc9ByI,EAAmBpM,UAAUqE,MAAQ,SAAU5D,GACvCzC,KAAKK,OAASL,KAAK8N,WACnB9N,KAAKuO,SAAS9L,GAGdzC,KAAKsO,OAAO7J,KAAKhC,IAGzB2L,EAAmBpM,UAAUuM,SAAW,SAAU9L,GAC9C,IAAI4G,EACAjF,EAAQpE,KAAKoE,QACjB,IACIiF,EAASrJ,KAAKuN,QAAQ9K,EAAO2B,GAEjC,MAAOvB,GAEH,YADA7C,KAAKmG,YAAYlD,MAAMJ,GAG3B7C,KAAKK,SACLL,KAAKwO,UAAUnF,IAEnB+E,EAAmBpM,UAAUwM,UAAY,SAAUC,GAC/C,IAAIlE,EAAkB,IAAIR,EAAsB/J,MAC5CmG,EAAcnG,KAAKmG,YACvBA,EAAYzB,IAAI6F,GAChB,IAAImC,EAAoBpC,EAAemE,EAAKlE,GACxCmC,IAAsBnC,GACtBpE,EAAYzB,IAAIgI,IAGxB0B,EAAmBpM,UAAUuE,UAAY,WACrCvG,KAAKqO,cAAe,EACA,IAAhBrO,KAAKK,QAAuC,IAAvBL,KAAKsO,OAAOlL,QACjCpD,KAAKmG,YAAYjD,WAErBlD,KAAKiB,eAETmN,EAAmBpM,UAAUgI,WAAa,SAAUK,GAChDrK,KAAKmG,YAAYvF,KAAKyJ,IAE1B+D,EAAmBpM,UAAUkI,eAAiB,WAC1C,IAAIoE,EAAStO,KAAKsO,OAClBtO,KAAKK,SACDiO,EAAOlL,OAAS,EAChBpD,KAAKqG,MAAMiI,EAAOpC,SAEG,IAAhBlM,KAAKK,QAAgBL,KAAKqO,cAC/BrO,KAAKmG,YAAYjD,YAGlBkL,EAjE4B,CAkErCjE,GAGF,SAASuE,GAASZ,GAId,YAHmB,IAAfA,IACAA,EAAaC,OAAOC,mBAEjBJ,GAASxG,EAAU0G,GAI9B,SAASa,KACL,OAAOD,GAAS,GAIpB,SAASlK,KAEL,IADA,IAAIoK,EAAc,GACThG,EAAK,EAAGA,EAAK1C,UAAU9C,OAAQwF,IACpCgG,EAAYhG,GAAM1C,UAAU0C,GAEhC,OAAO+F,IAAAA,CAAYvB,GAAGhD,WAAM,EAAQwE,IAIxC,SAASC,GAAaC,EAASrE,GAI3B,YAHkB,IAAdA,IACAA,EAAYoB,GAET,SAAUjM,GAAU,OAAOA,EAAOgI,KAAK,IAAImH,GAAqBD,EAASrE,KAEpF,IAAIsE,GAAsC,WACtC,SAASA,EAAqBD,EAASrE,GACnCzK,KAAK8O,QAAUA,EACf9O,KAAKyK,UAAYA,EAKrB,OAHAsE,EAAqB/M,UAAUyB,KAAO,SAAU/C,EAAYd,GACxD,OAAOA,EAAOsB,UAAU,IAAI8N,GAAuBtO,EAAYV,KAAK8O,QAAS9O,KAAKyK,aAE/EsE,EAR8B,GAUrCC,GAAwC,SAAUrJ,GAElD,SAASqJ,EAAuB7I,EAAa2I,EAASrE,GAClD,IAAI5E,EAAQF,EAAOlC,KAAKzD,KAAMmG,IAAgBnG,KAM9C,OALA6F,EAAMiJ,QAAUA,EAChBjJ,EAAM4E,UAAYA,EAClB5E,EAAMoJ,sBAAwB,KAC9BpJ,EAAMqJ,UAAY,KAClBrJ,EAAMsJ,UAAW,EACVtJ,EA6BX,OArCAhE,EAAUmN,EAAwBrJ,GAUlCqJ,EAAuBhN,UAAUqE,MAAQ,SAAU5D,GAC/CzC,KAAKoP,gBACLpP,KAAKkP,UAAYzM,EACjBzC,KAAKmP,UAAW,EAChBnP,KAAK0E,IAAI1E,KAAKiP,sBAAwBjP,KAAKyK,UAAUG,SAASyE,GAAcrP,KAAK8O,QAAS9O,QAE9FgP,EAAuBhN,UAAUuE,UAAY,WACzCvG,KAAKsP,gBACLtP,KAAKmG,YAAYjD,YAErB8L,EAAuBhN,UAAUsN,cAAgB,WAE7C,GADAtP,KAAKoP,gBACDpP,KAAKmP,SAAU,CACf,IAAID,EAAYlP,KAAKkP,UACrBlP,KAAKkP,UAAY,KACjBlP,KAAKmP,UAAW,EAChBnP,KAAKmG,YAAYvF,KAAKsO,KAG9BF,EAAuBhN,UAAUoN,cAAgB,WAC7C,IAAIH,EAAwBjP,KAAKiP,sBACH,OAA1BA,IACAjP,KAAKmE,OAAO8K,GACZA,EAAsBhO,cACtBjB,KAAKiP,sBAAwB,OAG9BD,EAtCgC,CAuCzCtJ,GACF,SAAS2J,GAAa3O,GAClBA,EAAW4O,gBAIf,SAASC,GAAO9M,GACZ,OAAOA,aAAiBrE,OAASoR,OAAO/M,GAI5C,IAAIoC,GAAsB,IAAI4C,GAAW,SAAU/G,GAAc,OAAOA,EAAWwC,cACnF,SAASiC,GAAMsF,GACX,OAAOA,EAEX,SAAwBA,GACpB,OAAO,IAAIhD,GAAW,SAAU/G,GAAc,OAAO+J,EAAUG,UAAS,WAAc,OAAOlK,EAAWwC,iBAHrFuM,CAAehF,GAAa5F,GAOnD,SAAS6K,GAAWzM,EAAOwH,GACvB,OAIW,IAAIhD,EAJVgD,EAIqB,SAAU/J,GAAc,OAAO+J,EAAUG,SAAS+E,GAAU,EAAG,CAAE1M,MAAOA,EAAOvC,WAAYA,KAH3F,SAAUA,GAAc,OAAOA,EAAWuC,MAAMA,KAM9E,SAAS0M,GAASpR,GACd,IAAI0E,EAAQ1E,EAAG0E,MAAoB1E,EAAGmC,WAC3BuC,MAAMA,GAIrB,IAAI2M,GAA8B,WAC9B,SAASA,EAAaC,EAAMpN,EAAOQ,GAC/BjD,KAAK6P,KAAOA,EACZ7P,KAAKyC,MAAQA,EACbzC,KAAKiD,MAAQA,EACbjD,KAAKmP,SAAoB,MAATU,EAyDpB,OAvDAD,EAAa5N,UAAU8N,QAAU,SAAU5H,GACvC,OAAQlI,KAAK6P,MACT,IAAK,IACD,OAAO3H,EAAStH,MAAQsH,EAAStH,KAAKZ,KAAKyC,OAC/C,IAAK,IACD,OAAOyF,EAASjF,OAASiF,EAASjF,MAAMjD,KAAKiD,OACjD,IAAK,IACD,OAAOiF,EAAShF,UAAYgF,EAAShF,aAGjD0M,EAAa5N,UAAU+N,GAAK,SAAUnP,EAAMqC,EAAOC,GAE/C,OADWlD,KAAK6P,MAEZ,IAAK,IACD,OAAOjP,GAAQA,EAAKZ,KAAKyC,OAC7B,IAAK,IACD,OAAOQ,GAASA,EAAMjD,KAAKiD,OAC/B,IAAK,IACD,OAAOC,GAAYA,MAG/B0M,EAAa5N,UAAUgO,OAAS,SAAUjI,EAAgB9E,EAAOC,GAC7D,OAAI6E,GAAiD,mBAAxBA,EAAenH,KACjCZ,KAAK8P,QAAQ/H,GAGb/H,KAAK+P,GAAGhI,EAAgB9E,EAAOC,IAG9C0M,EAAa5N,UAAUiO,aAAe,WAElC,OADWjQ,KAAK6P,MAEZ,IAAK,IACD,OAAOzC,GAAGpN,KAAKyC,OACnB,IAAK,IACD,OAAOiN,GAAW1P,KAAKiD,OAC3B,IAAK,IACD,OAAOkC,KAEf,MAAM,IAAIzC,MAAM,uCAEpBkN,EAAaM,WAAa,SAAUzN,GAChC,YAAqB,IAAVA,EACA,IAAImN,EAAa,IAAKnN,GAE1BmN,EAAaO,4BAExBP,EAAaQ,YAAc,SAAUvN,GACjC,OAAO,IAAI+M,EAAa,SAAKrN,EAAWM,IAE5C+M,EAAaS,eAAiB,WAC1B,OAAOT,EAAaU,sBAExBV,EAAaU,qBAAuB,IAAIV,EAAa,KACrDA,EAAaO,2BAA6B,IAAIP,EAAa,SAAKrN,GACzDqN,EA9DsB,GAkEjC,SAAS9E,GAAMA,EAAOL,QACA,IAAdA,IACAA,EAAYoB,GAEhB,IACI0E,EADgBhB,GAAOzE,IACMA,EAAQL,EAAUmB,MAASpG,KAAKgL,IAAI1F,GACrE,OAAO,SAAUlL,GAAU,OAAOA,EAAOgI,KAAK,IAAI6I,GAAcF,EAAU9F,KAE9E,IAAIgG,GAA+B,WAC/B,SAASA,EAAc3F,EAAOL,GAC1BzK,KAAK8K,MAAQA,EACb9K,KAAKyK,UAAYA,EAKrB,OAHAgG,EAAczO,UAAUyB,KAAO,SAAU/C,EAAYd,GACjD,OAAOA,EAAOsB,UAAU,IAAIwP,GAAgBhQ,EAAYV,KAAK8K,MAAO9K,KAAKyK,aAEtEgG,EARuB,GAU9BC,GAAiC,SAAU/K,GAE3C,SAAS+K,EAAgBvK,EAAa2E,EAAOL,GACzC,IAAI5E,EAAQF,EAAOlC,KAAKzD,KAAMmG,IAAgBnG,KAM9C,OALA6F,EAAMiF,MAAQA,EACdjF,EAAM4E,UAAYA,EAClB5E,EAAM8K,MAAQ,GACd9K,EAAMxF,QAAS,EACfwF,EAAMyF,SAAU,EACTzF,EAkDX,OA1DAhE,EAAU6O,EAAiB/K,GAU3B+K,EAAgBf,SAAW,SAAU9E,GAKjC,IAJA,IAAIjL,EAASiL,EAAMjL,OACf+Q,EAAQ/Q,EAAO+Q,MACflG,EAAYI,EAAMJ,UAClBtE,EAAc0E,EAAM1E,YACjBwK,EAAMvN,OAAS,GAAMuN,EAAM,GAAGC,KAAOnG,EAAUmB,OAAU,GAC5D+E,EAAMzE,QAAQ2E,aAAaf,QAAQ3J,GAEvC,GAAIwK,EAAMvN,OAAS,EAAG,CAClB,IAAI0N,EAAUtL,KAAKuL,IAAI,EAAGJ,EAAM,GAAGC,KAAOnG,EAAUmB,OACpD5L,KAAK4K,SAASC,EAAOiG,QAGrB9Q,KAAKiB,cACLrB,EAAOS,QAAS,GAGxBqQ,EAAgB1O,UAAUgP,UAAY,SAAUvG,GAC5CzK,KAAKK,QAAS,EACIL,KAAKmG,YACXzB,IAAI+F,EAAUG,SAAS8F,EAAgBf,SAAU3P,KAAK8K,MAAO,CACrElL,OAAQI,KAAMmG,YAAanG,KAAKmG,YAAasE,UAAWA,MAGhEiG,EAAgB1O,UAAUiP,qBAAuB,SAAUJ,GACvD,IAAqB,IAAjB7Q,KAAKsL,QAAT,CAGA,IAAIb,EAAYzK,KAAKyK,UACjBtK,EAAU,IAAI+Q,GAAazG,EAAUmB,MAAQ5L,KAAK8K,MAAO+F,GAC7D7Q,KAAK2Q,MAAMlM,KAAKtE,IACI,IAAhBH,KAAKK,QACLL,KAAKgR,UAAUvG,KAGvBiG,EAAgB1O,UAAUqE,MAAQ,SAAU5D,GACxCzC,KAAKiR,qBAAqBrB,GAAaM,WAAWzN,KAEtDiO,EAAgB1O,UAAUsE,OAAS,SAAUzD,GACzC7C,KAAKsL,SAAU,EACftL,KAAK2Q,MAAQ,GACb3Q,KAAKmG,YAAYlD,MAAMJ,GACvB7C,KAAKiB,eAETyP,EAAgB1O,UAAUuE,UAAY,WAClCvG,KAAKiR,qBAAqBrB,GAAaS,kBACvCrQ,KAAKiB,eAEFyP,EA3DyB,CA4DlChL,GACEwL,GAA8B,WAK9B,OAJA,SAAsBN,EAAMC,GACxB7Q,KAAK4Q,KAAOA,EACZ5Q,KAAK6Q,aAAeA,GAHK,GAYjC,IAAIM,GAA8C,WAC9C,SAASA,EAA6BC,EAASC,GAC3CrR,KAAKoR,QAAUA,EACfpR,KAAKqR,YAAcA,EAKvB,OAHAF,EAA6BnP,UAAUyB,KAAO,SAAU/C,EAAYd,GAChE,OAAOA,EAAOsB,UAAU,IAAIoQ,GAA+B5Q,EAAYV,KAAKoR,QAASpR,KAAKqR,eAEvFF,EARsC,GAU7CG,GAAgD,SAAU3L,GAE1D,SAAS2L,EAA+BnL,EAAaiL,EAASC,GAC1D,IAAIxL,EAAQF,EAAOlC,KAAKzD,KAAMmG,IAAgBnG,KAM9C,OALA6F,EAAMwL,YAAcA,EACpBxL,EAAM0L,QAAS,EACQ,mBAAZH,IACPvL,EAAMuL,QAAUA,GAEbvL,EAgCX,OAxCAhE,EAAUyP,EAAgC3L,GAU1C2L,EAA+BtP,UAAUoP,QAAU,SAAUjP,EAAGqP,GAC5D,OAAOrP,IAAMqP,GAEjBF,EAA+BtP,UAAUqE,MAAQ,SAAU5D,GACvD,IAAIgP,EACJ,IACI,IAAIJ,EAAcrR,KAAKqR,YACvBI,EAAMJ,EAAcA,EAAY5O,GAASA,EAE7C,MAAOI,GACH,OAAO7C,KAAKmG,YAAYlD,MAAMJ,GAElC,IAAIwG,GAAS,EACb,GAAIrJ,KAAKuR,OACL,IAEIlI,GAAS+H,EADKpR,KAAKoR,SACFpR,KAAKyR,IAAKA,GAE/B,MAAO5O,GACH,OAAO7C,KAAKmG,YAAYlD,MAAMJ,QAIlC7C,KAAKuR,QAAS,EAEblI,IACDrJ,KAAKyR,IAAMA,EACXzR,KAAKmG,YAAYvF,KAAK6B,KAGvB6O,EAzCwC,CA0CjD5L,GAaEgM,GAV4C,WAC5C,SAASC,IAIL,OAHAjP,MAAMe,KAAKzD,MACXA,KAAKG,QAAU,wBACfH,KAAKhC,KAAO,0BACLgC,KAGX,OADA2R,EAA4B3P,UAA0B3D,OAAO4D,OAAOS,MAAMV,WACnE2P,EARqC,GAahD,SAASC,GAAOC,EAAWrE,GACvB,OAAO,SAAgC5N,GACnC,OAAOA,EAAOgI,KAAK,IAAIkK,GAAeD,EAAWrE,KAGzD,IAAIsE,GAAgC,WAChC,SAASA,EAAeD,EAAWrE,GAC/BxN,KAAK6R,UAAYA,EACjB7R,KAAKwN,QAAUA,EAKnB,OAHAsE,EAAe9P,UAAUyB,KAAO,SAAU/C,EAAYd,GAClD,OAAOA,EAAOsB,UAAU,IAAI6Q,GAAiBrR,EAAYV,KAAK6R,UAAW7R,KAAKwN,WAE3EsE,EARwB,GAU/BC,GAAkC,SAAUpM,GAE5C,SAASoM,EAAiB5L,EAAa0L,EAAWrE,GAC9C,IAAI3H,EAAQF,EAAOlC,KAAKzD,KAAMmG,IAAgBnG,KAI9C,OAHA6F,EAAMgM,UAAYA,EAClBhM,EAAM2H,QAAUA,EAChB3H,EAAM8H,MAAQ,EACP9H,EAeX,OArBAhE,EAAUkQ,EAAkBpM,GAQ5BoM,EAAiB/P,UAAUqE,MAAQ,SAAU5D,GACzC,IAAI4G,EACJ,IACIA,EAASrJ,KAAK6R,UAAUpO,KAAKzD,KAAKwN,QAAS/K,EAAOzC,KAAK2N,SAE3D,MAAO9K,GAEH,YADA7C,KAAKmG,YAAYlD,MAAMJ,GAGvBwG,GACArJ,KAAKmG,YAAYvF,KAAK6B,IAGvBsP,EAtB0B,CAuBnCrM,GAGF,SAASsM,GAAKrE,GACV,OAAO,SAAU/N,GACb,OAAc,IAAV+N,EACOxI,KAGAvF,EAAOgI,KAAK,IAAIqK,GAAatE,KAIhD,IAAIsE,GAA8B,WAC9B,SAASA,EAAaC,GAElB,GADAlS,KAAKkS,MAAQA,EACTlS,KAAKkS,MAAQ,EACb,MAAM,IAAIR,GAMlB,OAHAO,EAAajQ,UAAUyB,KAAO,SAAU/C,EAAYd,GAChD,OAAOA,EAAOsB,UAAU,IAAIiR,GAAezR,EAAYV,KAAKkS,SAEzDD,EAVsB,GAY7BE,GAAgC,SAAUxM,GAE1C,SAASwM,EAAehM,EAAa+L,GACjC,IAAIrM,EAAQF,EAAOlC,KAAKzD,KAAMmG,IAAgBnG,KAG9C,OAFA6F,EAAMqM,MAAQA,EACdrM,EAAM8H,MAAQ,EACP9H,EAaX,OAlBAhE,EAAUsQ,EAAgBxM,GAO1BwM,EAAenQ,UAAUqE,MAAQ,SAAU5D,GACvC,IAAIyP,EAAQlS,KAAKkS,MACbvE,IAAU3N,KAAK2N,MACfA,GAASuE,IACTlS,KAAKmG,YAAYvF,KAAK6B,GAClBkL,IAAUuE,IACVlS,KAAKmG,YAAYjD,WACjBlD,KAAKiB,iBAIVkR,EAnBwB,CAoBjCzM,GAGF,SAAS0M,GAAKzE,GACV,OAAO,SAAU/N,GAAU,OAAOA,EAAOgI,KAAK,IAAIyK,GAAa1E,KAEnE,IAAI0E,GAA8B,WAC9B,SAASA,EAAaH,GAClBlS,KAAKkS,MAAQA,EAKjB,OAHAG,EAAarQ,UAAUyB,KAAO,SAAU/C,EAAYd,GAChD,OAAOA,EAAOsB,UAAU,IAAIoR,GAAe5R,EAAYV,KAAKkS,SAEzDG,EAPsB,GAS7BC,GAAgC,SAAU3M,GAE1C,SAAS2M,EAAenM,EAAa+L,GACjC,IAAIrM,EAAQF,EAAOlC,KAAKzD,KAAMmG,IAAgBnG,KAG9C,OAFA6F,EAAMqM,MAAQA,EACdrM,EAAM8H,MAAQ,EACP9H,EAOX,OAZAhE,EAAUyQ,EAAgB3M,GAO1B2M,EAAetQ,UAAUqE,MAAQ,SAAUlE,KACjCnC,KAAK2N,MAAQ3N,KAAKkS,OACpBlS,KAAKmG,YAAYvF,KAAKuB,IAGvBmQ,EAbwB,CAcjC5M,GAGF,SAAS6M,KAEL,IADA,IAAIxJ,EAAQ,GACHH,EAAK,EAAGA,EAAK1C,UAAU9C,OAAQwF,IACpCG,EAAMH,GAAM1C,UAAU0C,GAE1B,IAAI6B,EAAY1B,EAAMA,EAAM3F,OAAS,GACrC,OAAI+I,EAAY1B,IACZ1B,EAAMuE,MACC,SAAU1N,GAAU,OAAO4E,GAAOuE,EAAOnJ,EAAQ6K,KAGjD,SAAU7K,GAAU,OAAO4E,GAAOuE,EAAOnJ,IAKxD,SAAS4S,GAAUjF,EAASM,GACxB,MAA8B,mBAAnBA,EACA,SAAUjO,GAAU,OAAOA,EAAO8I,KAAK8J,IAAU,SAAUvE,EAAGtK,GAAK,OAAOwJ,GAAKI,EAAQU,EAAGtK,IAAI+E,KAAKhF,IAAI,SAAUnC,EAAG2M,GAAM,OAAOL,EAAeI,EAAG1M,EAAGoC,EAAGuK,YAE7J,SAAUtO,GAAU,OAAOA,EAAOgI,KAAK,IAAI6K,GAAkBlF,KAExE,IAAIkF,GAAmC,WACnC,SAASA,EAAkBlF,GACvBvN,KAAKuN,QAAUA,EAKnB,OAHAkF,EAAkBzQ,UAAUyB,KAAO,SAAU/C,EAAYd,GACrD,OAAOA,EAAOsB,UAAU,IAAIwR,GAAoBhS,EAAYV,KAAKuN,WAE9DkF,EAP2B,GASlCC,GAAqC,SAAU/M,GAE/C,SAAS+M,EAAoBvM,EAAaoH,GACtC,IAAI1H,EAAQF,EAAOlC,KAAKzD,KAAMmG,IAAgBnG,KAG9C,OAFA6F,EAAM0H,QAAUA,EAChB1H,EAAMzB,MAAQ,EACPyB,EA8CX,OAnDAhE,EAAU6Q,EAAqB/M,GAO/B+M,EAAoB1Q,UAAUqE,MAAQ,SAAU5D,GAC5C,IAAI4G,EACAjF,EAAQpE,KAAKoE,QACjB,IACIiF,EAASrJ,KAAKuN,QAAQ9K,EAAO2B,GAEjC,MAAOnB,GAEH,YADAjD,KAAKmG,YAAYlD,MAAMA,GAG3BjD,KAAKwO,UAAUnF,IAEnBqJ,EAAoB1Q,UAAUwM,UAAY,SAAUnF,GAChD,IAAIqD,EAAoB1M,KAAK0M,kBACzBA,GACAA,EAAkBzL,cAEtB,IAAIsJ,EAAkB,IAAIR,EAAsB/J,MAC5CmG,EAAcnG,KAAKmG,YACvBA,EAAYzB,IAAI6F,GAChBvK,KAAK0M,kBAAoBpC,EAAejB,EAAQkB,GAC5CvK,KAAK0M,oBAAsBnC,GAC3BpE,EAAYzB,IAAI1E,KAAK0M,oBAG7BgG,EAAoB1Q,UAAUuE,UAAY,WACtC,IAAImG,EAAoB1M,KAAK0M,kBACxBA,IAAqBA,EAAkB1J,QACxC2C,EAAO3D,UAAUuE,UAAU9C,KAAKzD,MAEpCA,KAAKiB,eAETyR,EAAoB1Q,UAAUkC,aAAe,WACzClE,KAAK0M,uBAAoBnK,GAE7BmQ,EAAoB1Q,UAAUkI,eAAiB,WAC3ClK,KAAK0M,uBAAoBnK,EACrBvC,KAAKiG,WACLN,EAAO3D,UAAUuE,UAAU9C,KAAKzD,OAGxC0S,EAAoB1Q,UAAUgI,WAAa,SAAUK,GACjDrK,KAAKmG,YAAYvF,KAAKyJ,IAEnBqI,EApD6B,CAqDtCvI,GAGF,SAASwI,MAGT,SAASC,GAAI7K,EAAgB9E,EAAOC,GAChC,OAAO,SAA6BtD,GAChC,OAAOA,EAAOgI,KAAK,IAAIiL,GAAW9K,EAAgB9E,EAAOC,KAGjE,IAAI2P,GAA4B,WAC5B,SAASA,EAAW9K,EAAgB9E,EAAOC,GACvClD,KAAK+H,eAAiBA,EACtB/H,KAAKiD,MAAQA,EACbjD,KAAKkD,SAAWA,EAKpB,OAHA2P,EAAW7Q,UAAUyB,KAAO,SAAU/C,EAAYd,GAC9C,OAAOA,EAAOsB,UAAU,IAAI4R,GAAcpS,EAAYV,KAAK+H,eAAgB/H,KAAKiD,MAAOjD,KAAKkD,YAEzF2P,EAToB,GAW3BC,GAA+B,SAAUnN,GAEzC,SAASmN,EAAc3M,EAAaO,EAAgBzD,EAAOC,GACvD,IAAI2C,EAAQF,EAAOlC,KAAKzD,KAAMmG,IAAgBnG,KAgB9C,OAfA6F,EAAMkN,SAAWJ,GACjB9M,EAAMmN,UAAYL,GAClB9M,EAAMoN,aAAeN,GACrB9M,EAAMmN,UAAY/P,GAAS0P,GAC3B9M,EAAMoN,aAAe/P,GAAYyP,GAC7BzQ,EAAWwE,IACXb,EAAMgB,SAAWhB,EACjBA,EAAMkN,SAAWrM,GAEZA,IACLb,EAAMgB,SAAWH,EACjBb,EAAMkN,SAAWrM,EAAe9F,MAAQ+R,GACxC9M,EAAMmN,UAAYtM,EAAezD,OAAS0P,GAC1C9M,EAAMoN,aAAevM,EAAexD,UAAYyP,IAE7C9M,EAgCX,OAlDAhE,EAAUiR,EAAenN,GAoBzBmN,EAAc9Q,UAAUqE,MAAQ,SAAU5D,GACtC,IACIzC,KAAK+S,SAAStP,KAAKzD,KAAK6G,SAAUpE,GAEtC,MAAOI,GAEH,YADA7C,KAAKmG,YAAYlD,MAAMJ,GAG3B7C,KAAKmG,YAAYvF,KAAK6B,IAE1BqQ,EAAc9Q,UAAUsE,OAAS,SAAUzD,GACvC,IACI7C,KAAKgT,UAAUvP,KAAKzD,KAAK6G,SAAUhE,GAEvC,MAAOA,GAEH,YADA7C,KAAKmG,YAAYlD,MAAMJ,GAG3B7C,KAAKmG,YAAYlD,MAAMJ,IAE3BiQ,EAAc9Q,UAAUuE,UAAY,WAChC,IACIvG,KAAKiT,aAAaxP,KAAKzD,KAAK6G,UAEhC,MAAOhE,GAEH,YADA7C,KAAKmG,YAAYlD,MAAMJ,GAG3B,OAAO7C,KAAKmG,YAAYjD,YAErB4P,EAnDuB,CAoDhCpN,GAaEwN,GAViC,WACjC,SAASC,IAIL,OAHAzQ,MAAMe,KAAKzD,MACXA,KAAKG,QAAU,uBACfH,KAAKhC,KAAO,eACLgC,KAGX,OADAmT,EAAiBnR,UAA0B3D,OAAO4D,OAAOS,MAAMV,WACxDmR,EAR0B,GAuBrC,IAAIC,GAAqC,WACrC,SAASA,EAAoBC,EAASC,EAAiBC,EAAgB9I,GACnEzK,KAAKqT,QAAUA,EACfrT,KAAKsT,gBAAkBA,EACvBtT,KAAKuT,eAAiBA,EACtBvT,KAAKyK,UAAYA,EAKrB,OAHA2I,EAAoBpR,UAAUyB,KAAO,SAAU/C,EAAYd,GACvD,OAAOA,EAAOsB,UAAU,IAAIsS,GAAsB9S,EAAYV,KAAKsT,gBAAiBtT,KAAKqT,QAASrT,KAAKuT,eAAgBvT,KAAKyK,aAEzH2I,EAV6B,GAYpCI,GAAuC,SAAU7N,GAEjD,SAAS6N,EAAsBrN,EAAamN,EAAiBD,EAASE,EAAgB9I,GAClF,IAAI5E,EAAQF,EAAOlC,KAAKzD,KAAMmG,IAAgBnG,KAM9C,OALA6F,EAAMyN,gBAAkBA,EACxBzN,EAAMwN,QAAUA,EAChBxN,EAAM0N,eAAiBA,EACvB1N,EAAM4E,UAAYA,EAClB5E,EAAM4N,kBACC5N,EA2BX,OAnCAhE,EAAU2R,EAAuB7N,GAUjC6N,EAAsBE,gBAAkB,SAAUhT,GAC9C,IAAI6S,EAAiB7S,EAAW6S,eAChC7S,EAAW8F,yBACX9F,EAAWgE,IAAI4F,EAAeiJ,EAAgB,IAAIxJ,EAAsBrJ,MAE5E8S,EAAsBxR,UAAUyR,gBAAkB,WAC9C,IAAIxH,EAASjM,KAAKiM,OACdA,EACAjM,KAAKiM,OAASA,EAAOrB,SAAS5K,KAAMA,KAAKqT,SAGzCrT,KAAK0E,IAAI1E,KAAKiM,OAASjM,KAAKyK,UAAUG,SAAS4I,EAAsBE,gBAAiB1T,KAAKqT,QAASrT,QAG5GwT,EAAsBxR,UAAUqE,MAAQ,SAAU5D,GACzCzC,KAAKsT,iBACNtT,KAAKyT,kBAET9N,EAAO3D,UAAUqE,MAAM5C,KAAKzD,KAAMyC,IAEtC+Q,EAAsBxR,UAAUkC,aAAe,WAC3ClE,KAAKiM,YAAS1J,EACdvC,KAAKyK,UAAY,KACjBzK,KAAKuT,eAAiB,MAEnBC,EApC+B,CAqCxCrJ,GAGF,SAASwJ,GAAQC,EAAKnJ,GAIlB,YAHkB,IAAdA,IACAA,EAAYoB,GAhEpB,SAAqB+H,EAAKL,EAAgB9I,GAItC,YAHkB,IAAdA,IACAA,EAAYoB,GAET,SAAUjM,GACb,IAAI0T,EAAkB/D,GAAOqE,GACzBP,EAAUC,GAAoBM,EAAMnJ,EAAUmB,MAASpG,KAAKgL,IAAIoD,GACpE,OAAOhU,EAAOgI,KAAK,IAAIwL,GAAoBC,EAASC,EAAiBC,EAAgB9I,KA2DlFoJ,CAAYD,EAAKlE,GAAW,IAAIwD,IAAiBzI,GAI5D,IAAIqJ,IAA8B,EAClCjI,eAAekI,GAAkBC,EAAIC,GACjC,IAEI,MAAMC,QAAWtV,UAAUC,cAAcC,MAgBzC,MAfgB,SAAZmV,GAAsBC,EAAGC,YACnBD,EAAGC,KAAKC,SAAS,eAAeJ,EAAGhW,aAEzCkW,EAAG7T,OAGH6T,EAAG7T,OAAOR,YAAY,CAClBR,KAAM,mBACNgV,OAAQL,EAAGhW,KACXiW,QAAAA,IAIJlT,QAAQkC,MAAM,0EAItB,MAAOoB,GACEyP,KACD/S,QAAQC,MAAM,6CAA8CqD,GAC5DyP,IAA8B,IA4B1C,SAASQ,GAAYN,EAAIC,GACjBD,EAAGO,MAAMC,mBACTT,GAAkBC,EAAIC,GAGtBD,EAAGS,eAAe7T,KAAK,CAAEqT,QAAAA,IAIjC,MAAMS,GAA8B,oBAAXC,OAClBC,GAAWD,OAAOxH,KAAKyH,EAAQ,UAC/BA,IACC,MAAMC,EAAgBC,KAAKF,GACrBrQ,EAAMsQ,EAAczR,OACpB2R,EAAQ,IAAIC,WAAWzQ,GAC7B,IAAK,IAAIZ,EAAI,EAAGA,EAAIY,EAAKZ,IACrBoR,EAAMpR,GAAKkR,EAAcI,WAAWtR,GAExC,OAAOoR,GAETG,GAA8B,oBAAXP,OAClBpT,GAAM4T,YAAYC,OAAO7T,GACtBoT,OAAOxH,KAAK5L,EAAE+M,OAAQ/M,EAAE8T,WAAY9T,EAAE+T,YAAY1R,SAAS,UAC3D+Q,OAAOxH,KAAK5L,GAAGqC,SAAS,UAC3BrC,GAAMgU,KAAKC,OAAOC,aAAarL,MAAM,KAAM7I,IAElDsK,eAAe6J,IAAoBC,OAAEA,EAAMC,aAAEA,IACzC,MAAMxW,EAAOyW,KAAKC,UAAU,IACrBH,EAAOjS,KAAKqS,IAAY,CAAGA,QAAAA,EAASC,UAAU,SAC9CJ,EAAalS,KAAKqS,IAAY,CAAGA,QAAAA,EAASC,UAAU,OACzDC,MAAK,CAAChI,EAAG1M,IAAM0M,EAAE8H,QAAUxU,EAAEwU,SAAW,EAAI9H,EAAE8H,QAAUxU,EAAEwU,QAAU,EAAI,KACpEG,GAAY,IAAIC,aAAcC,OAAOhX,GACrCiX,QAAoBC,OAAOC,OAAOC,OAAO,QAASN,GAExD,OADehB,GAAUmB,GAI7B,SAASI,GAAkBzC,GACvB,OAAO3V,OAAOqY,QAAQ1C,EAAGO,MAAMoC,QAAU,IACpC/E,QAAO,EAAE,EAAIgF,cAAAA,MAAqBA,IAClClT,KAAI,EAAEmT,KAAS7C,EAAG8C,MAAMD,KAGjC,SAASE,GAAiBC,GACtB,MAAO,IAAIA,cAGf,SAASC,GAA0BC,GAC/B,IAAI3Y,EACJ,MAAMyY,EAAgE,QAAnDzY,EAAK,qBAAqB4Y,KAAKD,UAAmC,IAAP3Y,OAAgB,EAASA,EAAG,GAC1G,IAAKyY,EACD,MAAM,IAAItU,MAAM,uBAAuBwU,oBAC3C,OAAOF,EAGXnL,eAAeuL,GAAkBC,EAAgBrD,GAAIsD,MAAEA,EAAQ,GAAEC,MAAEA,EAAQC,EAAAA,GAAa,IAsBpF,aArB8BlV,QAAQmV,IAAIJ,EAAe3T,KAAImI,MAAOqL,IAChE,MAAMF,EAAYC,GAA0BC,EAAclZ,MACpD0Z,EAAeJ,EAAMN,GAC3B,IAAIW,EAAQD,EACNR,EAAcU,MAAM,OAAOC,MAAMH,GACjCR,EACFK,EAAQC,EAAAA,IACRG,EAAQA,EAAMJ,MAAMA,IAQxB,MAAO,CACHT,MAAOE,EACPc,WATeH,EAAMI,gBAaNnG,QAAO,EAAGkG,KAAAA,KAAWA,EAAK1U,OAAS,IAI9D,MAAM4U,GAAiB1B,OAAO2B,gBAM9B,SAASC,GAAa5O,EAAK6O,EAAS1V,GAChC,GAAK6G,QAAmB/G,IAAZ4V,MAER,aAAc9Z,UAAUA,OAAO+Z,SAAS9O,IAE5C,GAAuB,iBAAZ6O,GAAwB,WAAYA,EAAS,EAT5D,SAAgB5W,GACZ,IAAKA,EACD,MAAM,IAAImB,MAAM,oBAQhB2V,CAAwB,iBAAV5V,GAAsB,WAAYA,GAChD,IAAK,IAAIkB,EAAI,EAAG2U,EAAIH,EAAQ/U,OAAQO,EAAI2U,IAAK3U,EACzCuU,GAAa5O,EAAK6O,EAAQxU,GAAIlB,EAAMkB,QAGvC,CACD,IAAI4U,EAASJ,EAAQpT,QAAQ,KAC7B,IAAgB,IAAZwT,EAAe,CACf,IAAIC,EAAiBL,EAAQM,OAAO,EAAGF,GACnCG,EAAmBP,EAAQM,OAAOF,EAAS,GAC/C,GAAyB,KAArBG,OACcnW,IAAVE,EACIf,MAAMyB,QAAQmG,GACTkG,MAAMmJ,SAASH,KAChBlP,EAAIpE,OAAOyT,SAASH,GAAiB,UAGlClP,EAAIkP,GAIflP,EAAIkP,GAAkB/V,MACzB,CAED,IAAImW,EAAWtP,EAAIkP,GAEdI,IACDA,EAAWtP,EAAIkP,GAAkB,IACrCN,GAAaU,EAAUF,EAAkBjW,cAI/BF,IAAVE,EACIf,MAAMyB,QAAQmG,KAASkG,MAAMmJ,SAASR,IAEtC7O,EAAIpE,OAAOiT,EAAS,UAGb7O,EAAI6O,GAIf7O,EAAI6O,GAAW1V,GAI/B,MAAMoW,GAAiC,oBAATna,KAAwBqW,IAElD,MAAM+D,EAAMnE,OAAOoE,MAAMhE,GAEzB,OADAiD,GAAec,GACRA,EAAIlV,SAAS,WACnBmR,IAED,MAAM+D,EAAM,IAAI9D,WAAWD,GAE3B,OADAuB,OAAO2B,gBAAgBa,GAChBvD,KAAKC,OAAOC,aAAarL,MAAM,KAAM0O,KAchD,SAASE,GAAkBrZ,GACvB,MAAkB,iBAAPA,MAIP+B,MAAMyB,QAAQxD,IAAOA,EAAGsZ,MAAKxH,GAAOuH,GAAkBvH,MAAS9R,EAAGuZ,MAAMC,KAUhF,SAASA,GAAsBC,GAC3B,MAAuB,iBAATA,GAAqC,iBAATA,GAAqB1X,MAAMyB,QAAQiW,IAASA,EAAKF,MAAMC,IAMrG,SAASE,GAAeC,EAAQxC,EAAOyC,GACnC,MAAM1C,EAAMyC,EAAOxC,KAAWwC,EAAOxC,GAAS,IAC9C,OAAQyC,EAAGla,MACP,IAAK,SAEL,IAAK,SACDka,EAAGC,KAAK/Z,SAAQ,CAACgS,EAAKgI,KAClB5C,EAAIpF,GAAO,CACPpS,KAAM,MACNqa,IAAKH,EAAGI,OAAOF,OAGvB,MACJ,IAAK,SACL,IAAK,SACDF,EAAGC,KAAK/Z,SAAQ,CAACgS,EAAKgI,KAClB,MAAMG,EAAyB,WAAZL,EAAGla,KAChBka,EAAGM,YAAYJ,GACfF,EAAGK,WACHE,EAAQjD,EAAIpF,GAClB,GAAKqI,EAOD,OAAQA,EAAMza,MACV,IAAK,MAED,IAAK,MAAO0a,EAAUtX,KAAUpE,OAAOqY,QAAQkD,GAC3C1B,GAAa4B,EAAMJ,IAAKK,EAAUtX,GAEtC,MACJ,IAAK,MAED,MACJ,IAAK,MAEDpE,OAAO2b,OAAOF,EAAMG,IAAKL,QAlBjC/C,EAAIpF,GAAO,CACPpS,KAAM,MACN4a,IAAKL,MAqBjB,MAEJ,IAAK,SACDL,EAAGC,KAAK/Z,SAASgS,IACboF,EAAIpF,GAAO,CACPpS,KAAM,UAKtB,OAAOia,EAGX,SAASY,GAAgBZ,EAAQa,GAC7B,IAAK,MAAMrD,MAAEA,EAAKgB,KAAEA,KAAUqC,EAC1B,IAAK,MAAMC,KAAOtC,EACduB,GAAeC,EAAQxC,EAAOsD,GAiL1C,SAASC,GAAiBC,EAAiBC,GACvC,OAAO,IAAIjY,SAAQ,CAACkG,EAASC,KACzB,MAAM+R,EAAmB,IAClBD,EACHE,SAAWC,IACPJ,EAAgB1Z,UAAK2B,GACrBiG,EAAQkS,IAEZC,SAAU,KACNL,EAAgB1Z,UAAK2B,GACrBkG,EAAO,IAAIvL,EAAM0d,WAAW,qBAGpCN,EAAgB1Z,KAAK4Z,MAY7B,SAASK,GAAUP,EAAiBQ,KAAUC,GAC1C,OAAOV,GAAiBC,EAAiB,CACrCjb,KAAM,gBACNyb,MAAAA,EACAC,OAAAA,EACAC,OAAQ,KAGhBnP,eAAeoP,GAAeX,EAAiBQ,EAAOI,GAClD,IAAIC,EAAQD,GAAa,GACzB,MAAQC,IAAU,oCAAoCC,KAAKD,IACvDA,SAAed,GAAiBC,EAAiB,CAC7Cjb,KAAM,QACNyb,MAAAA,EACAC,OAAQI,EACF,CACE,CACI9b,KAAM,QACNgc,YAAa,gBACblb,QAAS,qCACTmb,cAAe,KAGrB,GACNN,OAAQ,CACJG,MAAO,CACH9b,KAAM,QACNkc,YAAa,0BAGrBJ,MAER,OAAOA,EAEXtP,eAAe2P,GAAalB,EAAiBa,EAAOM,GAChD,MAAMV,EAAS,CACX,CACI1b,KAAM,OACNgc,YAAa,WACblb,QAAS,+CACTmb,cAAe,CAAEH,MAAAA,KAGrBM,GACAV,EAAOtW,KAAKgX,GAEhB,MAAMC,IAAEA,SAAcrB,GAAiBC,EAAiB,CACpDjb,KAAM,MACNyb,MAAO,YACPC,OAAAA,EACAC,OAAQ,CACJU,IAAK,CACDrc,KAAM,MACNsc,MAAO,MACPJ,YAAa,qBAIzB,OAAOG,EA2BX7P,eAAe+P,GAAaC,EAAKlV,EAASmV,EAAYxB,EAAiByB,GACnE,OAAIpV,EAAQqV,aACRrV,EAAQsV,sBAAsBC,UAAY9d,KAAKwN,MACxCjF,EAEFA,EAAQwV,gBACXxV,EAAQyV,wBACNzV,EAAQyV,uBAAuBF,UAAY9d,KAAKwN,aACvCyQ,GAAmBR,EAAKlV,SAwC7CkF,eAAgClF,EAASmV,EAAYxB,EAAiByB,GAClE,MAAMO,WAAEA,EAAUC,UAAEA,SAAoBjG,OAAOC,OAAOiG,YAAY,CAC9Dxe,KAAM,oBACNye,cAAe,KACfC,eAAgB,IAAI1H,WAAW,CAAC,EAAM,EAAM,IAC5C2H,KAAM,CAAE3e,KAAM,aACf,EACH,CAAC,OAAQ,WACT2I,EAAQiW,wBAA0BN,EAClC,MACMO,EAuCV,SAAmBC,GACf,MAAMC,EAAa7H,GAAU4H,GAE7B,OAEJ,SAAqBE,GACjB,IAAIC,EAAc,+BAClB,KAAOD,EAAI5Z,OAAS,GAChB6Z,GAAeD,EAAIE,UAAU,EAAG,IAAM,KACtCF,EAAMA,EAAIE,UAAU,IAGxB,OADAD,GAA4B,2BACrBA,EAVeE,CAAYJ,GAzCbK,OADO9G,OAAOC,OAAO8G,UAAU,OAAQd,IAE5D5V,EAAQ4V,UAAYA,EACpB,IACI,MAAMe,QAAkBxB,EAAW,CAC/ByB,WAAYV,EACZd,MAAAA,IAEJ,GAAuB,WAAnBuB,EAAUje,KACV,MAAM,IAAIqD,MAAM,iDAAiD4a,EAAUje,QAmB/E,OAlBAsH,EAAQqV,YAAcsB,EAAUtB,YAChCrV,EAAQsV,sBAAwB,IAAI7d,KAAKkf,EAAUrB,uBACnDtV,EAAQwV,aAAemB,EAAUnB,aAC7BmB,EAAUlB,yBACVzV,EAAQyV,uBAAyB,IAAIhe,KAAKkf,EAAUlB,yBAExDzV,EAAQ5I,OAASuf,EAAUrf,OAAOC,IAClCyI,EAAQwU,MAAQmC,EAAUrf,OAAOkd,MACjCxU,EAAQ3I,KAAOsf,EAAUrf,OAAOD,KAChC2I,EAAQ1I,OAASqf,EAAUrf,OACvBqf,EAAUvC,QAAUuC,EAAUvC,OAAO3X,OAAS,SACxCiX,GAAiBC,EAAiB,CACpCjb,KAAM,gBACNyb,MAAO,uBACPE,OAAQ,GACRD,OAAQuC,EAAUvC,SAGnBpU,EAEX,MAAO1D,GAOH,YANM4X,GAAUP,EAAiB,wBAAyB,CACtDjb,KAAM,QACNgc,YAAa,gBACblb,QAAS,oDACTmb,cAAe,KAChBkC,OAAM,SACHva,GAnFOwa,CAAiB9W,EAASmV,EAAYxB,EAAiByB,GAG5ElQ,eAAewQ,GAAmBR,EAAK6B,GACnC,IAAKA,EAAMvB,aACP,MAAM,IAAIzZ,MAAM,oDACpB,IAAKgb,EAAMd,wBACP,MAAM,IAAIla,MAAM,+FACpB,MAAMib,EAAavf,KAAKwN,MAClBgS,EAAoB,oBAEpBxe,GADc,IAAI+W,aACCC,OAAOsH,EAAMvB,aAAewB,GAC/CE,QAAwBvH,OAAOC,OAAOuH,KAAKF,EAAmBF,EAAMd,wBAAyBxd,GAC7F2e,EAAY7I,GAAU2I,GACtBG,EAAe,CACjBC,WAAY,gBACZC,cAAeR,EAAMvB,aACrBgC,OAAQ,CAAC,aACTJ,UAAAA,EACAH,kBAAAA,EACAD,WAAAA,GAEEjD,QAAY0D,MAAM,GAAGvC,UAAa,CACpCwC,KAAMxI,KAAKC,UAAUkI,GACrBM,OAAQ,OACRC,QAAS,CAAEC,eAAgB,oBAC3BC,KAAM,SAEV,GAAmB,MAAf/D,EAAIgE,OACJ,MAAM,IAAIhc,MAAM,wBAAwBgY,EAAIgE,eAAe7C,WAC/D,MAAM8C,QAAiBjE,EAAIkE,OAK3B,OAJAlB,EAAM1B,YAAc2C,EAAS3C,YAC7B0B,EAAMzB,sBAAwB0C,EAAS1C,sBACjC,IAAI7d,KAAKugB,EAAS1C,4BAClB1Z,EACCmb,EAkEX,MAAQ9Z,SAAUib,IAAU,GAsB5B,MAAMC,GAAY,CACdC,QAnBJ,SAA2Btc,GACvB,MAAM+W,EAAOnb,OAAOmb,KAAK/W,GACzB,IAAIuc,EAAa,KACjB,IAAK,IAAIrb,EAAI,EAAG2U,EAAIkB,EAAKpW,OAAQO,EAAI2U,IAAK3U,EACnB,MAAf6V,EAAK7V,GAAG,KACRqb,EAAaA,GAAc,GAC3BA,EAAWva,KAAK+U,EAAK7V,KAG7B,IAAKqb,EACD,OAAOvc,EACX,MAAMwc,EAAQ,IAAKxc,GACnB,IAAK,MAAMyc,KAAKF,SACLC,EAAMC,GACbD,EAAM,IAAMC,GAAKzc,EAAMyc,GAE3B,OAAOD,IAKX,SAASE,MAAqBC,GAC1B,MAAMC,EAAWD,EAAeha,QAAO,CAACzD,EAAG2d,KAAM,IAAM3d,KAAM2d,KAAMF,EAAeha,QAAO,CAACzD,EAAG2d,KAAM,IAAMA,KAAM3d,KAAM,KAC/G4d,EAAW,IAAIC,QACrB,MAAO,CACH1J,UAAS,CAACrT,EAAOgd,EAAkBC,IAClB7J,KAAKC,UAAUrT,GAAO,SAAUgP,GACzC,MAAMkO,EAAU3f,KAAKyR,GACfmO,EA6ClB,SAAoBD,GAChB,MAAMtgB,SAAcsgB,EACpB,cAAeA,GACX,IAAK,SACL,IAAK,WAAY,CAEb,GAAgB,OAAZA,EACA,OAAO,KACX,MAAME,EAAQxhB,OAAOyhB,eAAeH,GACpC,IAAKE,EACD,OAAOf,GACX,IAAIc,EAAUL,EAASQ,IAAIF,GAC3B,QAAgBtd,IAAZqd,EACA,OAAOA,EACX,MAAMI,GA1FEtG,EA0F2BiG,EAzFxCd,GAAMpb,KAAKiW,GAAKuG,MAAM,GAAI,IA0FfnG,EAAQzb,OAAOqY,QAAQ2I,GAAUa,MAAK,EAAEC,EAAUP,MAAe,IAAIrhB,EAAIY,EAAI,OAAoK,QAA5JA,EAA+E,QAAzEZ,EAAKqhB,MAAAA,OAAyC,EAASA,EAAQxE,YAAyB,IAAP7c,OAAgB,EAASA,EAAGkF,KAAKmc,EAASD,EAASK,UAAiC,IAAP7gB,EAAgBA,EAAKghB,IAAaH,KAUjS,OATAJ,EAAU9F,MAAAA,OAAqC,EAASA,EAAM,GACzD8F,IACDA,EAAUle,MAAMyB,QAAQwc,GAClB,KACmB,mBAAZA,EACHN,EAASe,UAAY,KACrBtB,IAEdS,EAASc,IAAIR,EAAOD,GACbA,EAEX,QACI,OAAOP,EAAShgB,GAxGhC,IAAwBqa,EA+BQ4G,CAAWX,GAC3B,OAAOC,EACDA,EAAQb,QAAQY,EAASF,EAAkBJ,GAC3CM,IACPD,GAGP3f,MAAMwgB,EAAMd,GACR,IAAIvY,EAAS,KACTsZ,EAAqB,GACzB,OAAO3K,KAAK4K,MAAMF,GAAM,SAAU9O,EAAKhP,GAInC,MAAMpD,EAAOoD,MAAAA,OAAqC,EAASA,EAAMie,GACjE,GAAIrhB,EAAM,CACN,MAAMugB,EAAUP,EAAShgB,GACzBoD,EAAQmd,EACFA,EAAQe,OAAOle,EAAOgd,EAAkBJ,GACxC5c,EAEV,GAAIA,IAAUyE,EAAQ,CAElB,GAAIsZ,EAAmBpd,OAAS,EAAG,CAE/BX,EAAQ,IAAKA,GACb,IAAK,MAAMyc,KAAKsB,EACZ/d,EAAMyc,EAAEzG,OAAO,IAAMhW,EAAMyc,UACpBzc,EAAMyc,GAIrB,OADAsB,EAAqB,GACd/d,EASX,MAJe,MAAXgP,EAAI,IAAsB,OAARA,IAClBvK,EAASlH,KACTwgB,EAAmB/b,KAAKgN,IAErBhP,OAqCvB,MAAMme,GAAmB,CACrBC,KAAM,CACFzF,KAAM,CAAC0F,EAAMd,IAAgC,SAAhBA,EAC7BjB,QAAS,CAAC+B,EAAMC,KACZ,MAAMpd,EAAIod,EAAW3d,OAErB,OADA2d,EAAWtc,KAAKqc,GACT,CACHJ,GAAI,OACJM,SAAUF,EAAKzhB,KACfsE,EAAAA,IAGRgd,OAAQ,EAAGhd,EAAAA,EAAGqd,SAAAA,GAAYD,IAAe,IAAIF,KAAK,CAACE,EAAWpd,IAAK,CAAEtE,KAAM2hB,MAInF,IAAIC,GAAY,CACZC,OAAQ,CACJnC,QAAUoC,IACN,QAAQ,GACJ,KAAK3R,MAAM2R,GACP,MAAO,CAAET,GAAI,SAAUU,EAAG,OAC9B,KAAKD,IAAQ3J,EAAAA,EACT,MAAO,CAAEkJ,GAAI,SAAUU,EAAG,YAC9B,KAAKD,KAAS3J,EAAAA,EACV,MAAO,CAAEkJ,GAAI,SAAUU,EAAG,aAC9B,QACI,OAAOD,IAGnBR,OAAQ,EAAGS,EAAAA,KAAQrT,OAAOqT,KAIlC,MAAMC,GAAY,CACdC,OAAQ,CACJvC,QAAUY,IACC,CAAEe,GAAI,SAAUU,EAAG,GAAKzB,IAEnCgB,OAASrX,GAAQiY,OAAOjY,EAAI8X,KAIpC,IAAII,GAAU,CACVpjB,KAAM,CACF2gB,QAAU0C,IAAS,CACff,GAAI,OACJU,EAAG5R,MAAMiS,EAAKvF,WAAa,MAAQuF,EAAKC,gBAE5Cf,OAAQ,EAAGS,EAAAA,KAAQ,IAAIhjB,KAAW,QAANgjB,EAAcO,IAAMvjB,KAAKqiB,MAAMW,MAI/DQ,GAAS,CACTC,IAAK,CACD9C,QAAUsB,IAAQ,CACdK,GAAI,MACJU,EAAG1f,MAAMyL,KAAKkT,EAAI3J,aAEtBiK,OAAQ,EAAGS,EAAAA,KAAQ,IAAIS,IAAIT,KAI/BU,GAAS,CACTC,IAAK,CACDhD,QAAUrb,IAAQ,CACdgd,GAAI,MACJU,EAAG1f,MAAMyL,KAAKzJ,EAAIgT,aAEtBiK,OAAQ,EAAGS,EAAAA,KAAQ,IAAIW,IAAIX,KAInC,MAAMY,GAAgC,oBAAfC,WACjBA,WACgB,oBAATvjB,KACHA,KACkB,oBAAXwjB,OACHA,YACA3f,EAEd,IAAI4f,GAAkB,CAClB,YACA,aACA,oBACA,aACA,cACA,aACA,cACA,eACA,eACA,WACA,gBACA,kBACF/c,QAAO,CAACgd,EAAOjC,KAAa,IACvBiC,EACHriB,CAACogB,GAAW,CAMRpB,QAAS,CAAC9Q,EAAGoU,EAAGhD,KACG,CACXqB,GAAIP,EACJiB,EAAG/B,EAASlK,YAAY4J,QAAyB,IAAjB9Q,EAAEoH,YAAoBpH,EAAEqH,aAAerH,EAAEK,OAAOgH,WAC1ErH,EAAEK,OACFL,EAAEK,OAAO2R,MAAMhS,EAAEoH,WAAYpH,EAAEoH,WAAapH,EAAEqH,YAAa+M,EAAGhD,GAAU+B,IAItFT,OAAQ,EAAGS,EAAAA,GAAKiB,EAAGhD,KACf,MAAMiD,EAAaN,GAAQ7B,GAC3B,OAAQmC,GACJ,IAAIA,EAAWjD,EAASlK,YAAYwL,OAAO,CAAES,EAAAA,GAAKiB,EAAGhD,SAGjE,IAEJ,SAASkD,GAAahhB,GAClB,OAKJ,SAAkBqT,GAEd,IADA,IAAI4N,EAAU,GACL7e,EAAI,EAAGP,EAASwR,EAAOxR,OAAQO,EAAIP,EAAQO,IAChD6e,GAAWC,GAAa7N,EAAOjR,IAEnC,OAAO6e,EAVAE,CAASxN,GAAU3T,IAE9B,SAASohB,GAAaC,GAClB,OAAOlO,GASX,SAAkBmO,GAEd,GAAyB,iBAAdA,EACP,MAAM,IAAIngB,MAAM,0BAA4BmgB,GAGhD,IADA,IAAIjO,EAAS,GACJjR,EAAI,EAAGP,EAASyf,EAAUzf,OAAQO,EAAIP,EAAQO,IACnDiR,GAAUkO,GAAaD,EAAUlf,IAErC,OAAOiR,EAlBUmO,CAASH,IAoB9B,MAAME,GAAe,CACjBE,IAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACH/C,EAAG,IACHpU,EAAG,IACH1M,EAAG,IACH+d,EAAG,IACHhe,EAAG,IACH+C,EAAG,IACHghB,EAAG,IACHC,EAAG,IACHC,EAAG,IACH5hB,EAAG,IACH6hB,EAAG,IACHtG,EAAG,IACH5G,EAAG,IACHmN,EAAG,IACHC,EAAG,IACHC,EAAG,IACHhkB,EAAG,IACHikB,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACH5E,EAAG,IACH6E,EAAG,IACH9jB,EAAG,IACHqP,EAAG,IACH0U,EAAG,IACHC,IAAK,KAEH1D,GAAe,GACrB,IAAK,MAAMnD,KAAKjhB,OAAOmb,KAAKsJ,IACxBL,GAAaK,GAAaxD,IAAMA,EAGpC,IAAI8G,GAAiB,CACjBjR,YAAa,CACT4J,QAAUsH,IAAO,CACb3F,GAAI,cACJU,EAAGmB,GAAa8D,KAEpB1F,OAAQ,EAAGS,EAAAA,MACP,MAAMkF,EAAK3D,GAAavB,GACxB,OAAOkF,EAAGhY,OAAOgH,aAAegR,EAAGhR,WAC7BgR,EAAGhY,OACHgY,EAAGhY,OAAO2R,MAAMqG,EAAGjR,WAAYiR,EAAGjR,WAAaiR,EAAGhR,eAKpE,MAAMiR,GACFxmB,YAAY+Y,EAAKzZ,GACbW,KAAK8Y,IAAMA,EACX9Y,KAAKX,KAAOA,GAIpB,SAASmnB,GAAajlB,GAClB,MAAMgZ,EAAM,IAAIkM,eAIhB,GAHAlM,EAAImM,iBAAiB,sCACrBnM,EAAIoM,KAAK,MAAOC,IAAIC,gBAAgBtlB,IAAI,GACxCgZ,EAAIuM,OACe,MAAfvM,EAAImE,QAAiC,IAAfnE,EAAImE,OAC1B,MAAM,IAAIhc,MAAM,oBAAsB6X,EAAImE,QAE9C,OAAOnE,EAAIwM,aAGf,SAASC,GAAmBhK,GACxB,MAAMjU,EAAQ,IAAIiM,WAAWgI,EAAI5Z,QACjC,IAAK,IAAIO,EAAI,EAAGA,EAAIqZ,EAAI5Z,SAAUO,EAC9BoF,EAAMpF,GAAKqZ,EAAI/H,WAAWtR,GAE9B,OAAOoF,EAAMuF,OAsBjB,MAAM2Y,GAAU,IACThG,MACAI,MACAG,MACAI,MACAE,MACAK,MACAiE,MA1BO,CACVvF,KAAM,CACFzF,KAAM,CAAC0F,EAAMd,IAAgC,SAAhBA,GAA0Bc,aAAgByF,GACvExH,QAAU+B,IAAS,CACfJ,GAAI,OACJU,EACMlM,GADH4L,aAAgByF,GACHzF,EAAKhI,IACLkO,GAAmBR,GAAa1F,KAChDzhB,KAAMyhB,EAAKzhB,OAEfshB,OAAQ,EAAGthB,KAAAA,EAAM+hB,EAAAA,MACb,MAAMiF,EAAK3R,GAAU0M,GACrB,YAAuB7e,WAATse,KACR,IAAIA,KAAK,CAACwF,IACV,IAAIE,GAASF,EAAG/X,OAAQjP,OAkE1C,SAAS6nB,GAAepG,GACpB,OAAO,IAAIxe,SAAQ,CAACkG,EAASC,KACzB,MAAM0e,EAAS,IAAIC,WACnBD,EAAOE,QAAWnoB,GAAOuJ,EAAO,IAAI/F,MAAM,sBAC1CykB,EAAOG,QAAWpoB,GAAOuJ,EAAOvJ,EAAGoa,OAAOrW,OAC1CkkB,EAAOI,OAAUroB,GAAOsJ,EAAQtJ,EAAGoa,OAAOjQ,QAC1C8d,EAAOK,kBAAkB1G,MAYjC,IAAI2G,GAAe,CACfllB,UAAW,CACPwc,QAAS,OAET4B,OAAQ,SAmBhB,MAAM+G,GAAwC,iBAAdnG,OAAO,GACvC,MAAMoG,GACF5nB,YAAY0C,GACRzC,KAAKohB,EAAI3e,EAEb1C,WACI,OAAOC,KAAKohB,GAGpB,MAAMwG,GAAO,IACNH,MACCC,GACE,GACA,CACEpG,OAAQ,CACJlG,KAAO1B,GAAQA,aAAeiO,GAC9B5I,QAAU8I,IACC,CACHnH,GAAI,YACDmH,IAGXlH,OAAQ,EAAGS,EAAAA,KAAS,IAAIuG,GAAWvG,MAI7C0G,GAAO3I,GAAkB8H,GAASW,IAClCG,GAtHN,YAAkB3I,GACd,MAAMmB,EAAOpB,GAAkB8H,GAASrG,MAAqBxB,GAC7D,MAAO,CACHrf,SAAS0C,GACL,MAAOqe,EAAMlC,GAAQ5e,KAAK8V,UAAUrT,GAC9BulB,EAAS,IAAI7S,YAAY,GAE/B,OADA,IAAI8S,SAASD,GAAQE,UAAU,EAAGpH,EAAKqH,MAChC,IAAItH,KAAK,CAACmH,EAAQlH,EAAMlC,KAEnC7e,UAAU0C,GACN,MAAM2lB,EAAW,GACXxJ,EAAO2B,EAAKzK,UAAUrT,EAAO2lB,GAMnC,MAAO,CALM,IAAIvH,KAAKuH,EAAS1kB,KAAKnC,IAChC,MAAMymB,EAAS,IAAI7S,YAAY,GAE/B,OADA,IAAI8S,SAASD,GAAQE,UAAU,EAAG,eAAgB3mB,EAAIA,EAAE+T,WAAa/T,EAAE4mB,MAChE,IAAItH,KAAK,CAACmH,EAAQzmB,QAEfqd,IAElB7e,YAAY6e,EAAMyJ,GACd,IAAIC,EAAM,EACV,MAAMC,EAAe,GACfzP,QAAYoO,GAAemB,GAC3BG,EAAO,IAAIP,SAASnP,GAC1B,KAAOwP,EAAMxP,EAAIxD,YAAY,CACzB,MAAM/Q,EAAMikB,EAAKC,UAAUH,GAC3BA,GAAO,EACP,MAAMjC,EAAKvN,EAAImH,MAAMqI,EAAKA,EAAM/jB,GAChC+jB,GAAO/jB,EACPgkB,EAAa9jB,KAAK4hB,GAEtB,OAAO9F,EAAKE,MAAM7B,EAAM2J,IAE5BxoB,iBAAiB+gB,GACb,MAAMvc,EAAM,IAAI0jB,eAAef,GAAepG,EAAKb,MAAM,EAAG,KAAKwI,UAAU,GACrEJ,EAAUvH,EAAKb,MAAM,EAAG1b,EAAM,GAC9Bqa,QAKlB,SAAkBkC,GACd,OAAO,IAAIxe,SAAQ,CAACkG,EAASC,KACzB,MAAM0e,EAAS,IAAIC,WACnBD,EAAOE,QAAWnoB,GAAOuJ,EAAO,IAAI/F,MAAM,sBAC1CykB,EAAOG,QAAWpoB,GAAOuJ,EAAOvJ,EAAGoa,OAAOrW,OAC1CkkB,EAAOI,OAAUroB,GAAOsJ,EAAQtJ,EAAGoa,OAAOjQ,QAC1C8d,EAAOuB,WAAW5H,MAXK6H,CAAS7H,EAAKb,MAAM1b,EAAM,IAC7C,aAAavE,KAAKygB,MAAM7B,EAAMyJ,KAiF5BO,CAAMhB,IAEpB,MAAMiB,WAAkBnmB,MACpB3C,YAAY2a,EAAKva,GACbM,MAAMN,GAAW,GAAGua,EAAIgE,UAAUhE,EAAIoO,cACtC9oB,KAAK+oB,WAAarO,EAAIgE,OAE1B1gB,WACI,MAAO,aAKf6N,eAAemd,GAAeC,EAASC,EAAWC,EAAUnV,EAAIoV,EAAazS,EAAQ0S,GAIjF,MAAM9K,EAAU,CACZ+K,OAAQ,oEACR9K,eAAgB,oBAEdxC,QA/pBVnQ,eAA+BmI,GAC3B,IAAIzV,EAAIY,EACR,MAAMoqB,QAAoBvV,EAAGwV,kBACvBxN,YAAEA,EAAWC,sBAAEA,EAAqBE,aAAEA,EAAYC,uBAAEA,EAAsBne,OAAEA,GAAYsrB,EAC9F,IAAKvN,EACD,OAEJ,IADyI,QAAxHzd,EAAK0d,MAAAA,OAAqE,EAASA,EAAsBC,iBAA8B,IAAP3d,EAAgBA,EAAKiZ,EAAAA,GACxJpZ,KAAKwN,MACf,OAAOoQ,EAEX,IAAKG,EACD,MAAM,IAAIzZ,MAAM,yBAGpB,IADmJ,QAA3HvD,EAAKid,MAAAA,OAAuE,EAASA,EAAuBF,iBAA8B,IAAP/c,EAAgBA,EAAKqY,EAAAA,IAC1JpZ,KAAKwN,MACvB,MAAM,IAAIlJ,MAAM,6BAEpB,MAAM+mB,QAAuBpN,GAAmBrI,EAAGO,MAAMmV,QAAQN,YAAaG,GAK9E,aAJMvV,EAAG8C,MAAM,WAAW6S,OAAO1rB,EAAOC,IAAK,CACzC8d,YAAayN,EAAezN,YAC5BC,sBAAuBwN,EAAexN,wBAEnCwN,EAAezN,YAyoBI4N,CAAgB5V,GACtCgI,IACAuC,EAAQsL,cAAgB,UAAU7N,KAEtC,MAAM8N,EAAc,CAChB1I,EAAG,EACH2I,KAAMb,MAAAA,OAA6C,EAASA,EAAUc,WACtEX,eAAAA,EACA1S,OAAQA,GAAU,GAClBsT,SAAUf,EAAY,CAClBgB,eAAgBhB,EAAUgB,eAC1BvU,OAAQuT,EAAUvT,OAClBC,aAAcsT,EAAUtT,mBACxBrT,EACJ4mB,SAAAA,EAEAF,QAAAA,GAEJloB,QAAQC,MAAM,eAAgB8oB,GAC9B9V,EAAGmW,sBAAsBvpB,KAAK,CAC1BwpB,MAAO,YAEX,MAAM1P,QAAY0D,MAAM,GAAGgL,SAAoB,CAC3C9K,OAAQ,OACRC,QAAAA,EACAF,KAAMyJ,GAAKhS,UAAUgU,KAMzB,GAHA9V,EAAGmW,sBAAsBvpB,KAAK,CAC1BwpB,MAAO,aAEN1P,EAAI2P,GACL,MAAM,IAAIxB,GAAUnO,GAExB,OAAQA,EAAI6D,QAAQwB,IAAI,iBACpB,IAAK,sBACD,OAAOgI,GAAMuC,iBAAiB5P,EAAIoG,QACtC,IAAK,6BACL,QACA,IAAK,mBAAoB,CACrB,MAAMyJ,QAAa7P,EAAI6P,OAEvB,OADgBzC,GAAKrH,MAAM8J,KAyCvC1e,eAAe2e,GAAW1T,EAAO0C,EAAMK,GACnC,MAAM4Q,QAAa3T,EAAM4T,QAAQlR,GAC3BmR,EAAa,GACbC,EAAa,GACnBpR,EAAK/Z,SAAQ,CAACgS,EAAKgI,KACf,MAAMnQ,EAAMmhB,EAAKhR,GACjB,GAAInQ,EAAK,CACL,IAAK,MAAO6O,EAAS1V,KAAUpE,OAAOqY,QAAQmD,EAAYJ,IAAO,CAC7D,GAAItB,IAAYrB,EAAMH,OAAOkU,QAAQ1S,QACjC,MAAM,IAAIzV,MAAM,6BAEpBxF,EAAMgb,aAAa5O,EAAK6O,EAAS1V,GAErCkoB,EAAWlmB,KAAKgN,GAChBmZ,EAAWnmB,KAAK6E,aAGe,MAAhCwN,EAAMH,OAAOkU,QAAQ1S,QACtBrB,EAAMgU,QAAQF,EAAYD,GAC1B7T,EAAMgU,QAAQF,IAGxB,SAASG,GAAiBC,GACtB,GAAIA,MAAAA,OAAiD,EAASA,EAAYC,UACtE,MAAM,IAAI/tB,EAAM0d,WAAW,2BAOnC,IAAIsQ,GAAWtsB,UAAUusB,OAIzBtf,eAAeuf,GAAepX,EAAI2C,EAAQ0U,EAAiBC,SACjDtX,EAAGuX,UAAUT,QAAQzsB,OAAOmb,KAAK7C,GAClC/E,QAAQkF,GAAUH,EAAOG,GAAOF,gBAChClT,KAAKsT,IAEC,CACHA,UAAAA,EACAwU,WAHqCH,EAAgBrU,IAAc,GAGrB,EAC9CsU,UAAAA,OAKZ,SAASG,GAA2BC,EAAiBC,EAAgB,IACjE,IAAK,MAAM7U,MAAEA,EAAKgB,KAAEA,KAAU4T,EAAiB,CAC3C,MAAME,EAAU9T,EAAK1U,OAAS,EAAI0U,EAAKA,EAAK1U,OAAS,GAAGyoB,IAAM,KAC9DF,EAAc7U,GAAS8U,GAAWD,EAAc7U,IAAU,EAE9D,OAAO6U,EArBXjtB,KAAKO,iBAAiB,UAAU,IAAMisB,IAAW,IACjDxsB,KAAKO,iBAAiB,WAAW,IAAMisB,IAAW,IAwBlD,SAAS/W,GAAKH,EAAI0V,EAAS/S,EAAQmV,GAC/B,OAAOC,GACF3hB,MAAMpK,KAAMkG,WACZnH,MAAK,MACA+sB,MAAAA,OAAiD,EAASA,EAAYE,oBACxEhY,EAAGmW,sBAAsBvpB,KAAK,CAC1BwpB,MAAO,eAId5M,OAAM3R,MAAO5I,IACV6oB,MAAAA,OAAiD,EAASA,EAAYE,mBAC/D1pB,QAAQmG,OAAOxF,IAC1BlC,QAAQC,MAAM,mBAAoB,CAC9BkqB,SAAAA,GACAY,YAAAA,EACA7oB,MAAAA,IAEAioB,KACCY,MAAAA,OAAiD,EAASA,EAAYG,+BACR,eAA9DhpB,MAAAA,OAAqC,EAASA,EAAMjF,OACrD,QAAQod,KAAKnY,MAAAA,OAAqC,EAASA,EAAM9C,UACjE6T,EAAGmW,sBAAsBvpB,KAAK,CAC1BwpB,MAAO,QACPnnB,MAAAA,UAGE,IAAIX,SAASkG,GAAY1F,WAAW0F,EAAS,aACtC2L,GAAKH,EAAI0V,EAAS/S,EAAQ,IAChCmV,EACHG,8BAA8B,YAKhCjY,EAAGkY,WAAWvC,OAAO,YAAa,CACpCwC,UAAW,IAAI/tB,KACf6E,MAAO,GAAKA,IAEhB+Q,EAAGmW,sBAAsBvpB,KAAK,CAC1BwpB,MAAOc,GAAW,QAAU,UAC5BjoB,MAAAA,IAEGX,QAAQmG,OAAOxF,OAG9B4I,eAAekgB,GAAM/X,EAAI0V,EAAS/S,GAAQyV,cAAEA,EAAapB,YAAEA,EAAWgB,kBAAEA,EAAiB/X,QAAEA,GAAY,CACnGmY,eAAe,IAEf,IAAI7tB,EAIJ,GAHKytB,GACDjrB,QAAQC,MAAM,eAAgB,CAAEorB,cAAAA,EAAenY,QAAAA,MAEjB,QAA3B1V,EAAKyV,EAAGO,MAAMmV,eAA4B,IAAPnrB,OAAgB,EAASA,EAAG6qB,aAClE,MAAM,IAAI1mB,MAAM,6EACpB,MAAM0mB,YAAEA,GAAgBM,EAClBH,QAAoBvV,EAAGwV,iBACvB6C,EAAe9C,EAAY+C,WAAa7V,GAAkBzC,GAAM,GAChEqD,EAAiBgV,EAAa3oB,KAAKmT,GAAQ7C,EAAG8C,MAAMC,GAAiBF,EAAI7Y,SAOzEuuB,QAA2BvY,EAAGwY,wBAC9BC,GAAmBL,GAAiB7C,EAAY+C,WAz8B1D,SAA4BtY,EAAIkV,GAC5B,MAAMwD,GAAgBxD,MAAAA,OAA6C,EAASA,EAAUwD,eAAiB,GAGvG,OAFuBjW,GAAkBzC,GACFpC,QAAQiF,IAAS6V,EAAaC,SAAS9V,EAAI7Y,QAu8B5E4uB,CAAmB5Y,EAAIuY,GACvB,GACNxB,GAAiBC,GACjB,MAAM6B,EAAYJ,EAAgBrpB,OAAS,EAC3C,GAAIypB,EAAW,CACX,GAAIb,EACA,OAAO,EACXjrB,QAAQC,MAAM,gCACRgT,EAAG8Y,YAAY,KAAML,GAAiB5gB,MAAOkhB,IAE/CA,EAAGC,SAASC,uBAAwB,EAEpCF,EAAGC,SAASE,sBAAuB,QA3K/CrhB,eAA+CshB,EAAiB5D,EAAa6D,GACzE,MAAMC,EAAgB,IAAIxL,IAAIuL,GAAuB,IACrD,IAAK,MAAMtW,KAASqW,EACG,YAAfrW,EAAM9Y,WAEA8Y,EAAMwW,eAAeC,QAAQC,IAC1BH,EAAcI,IAAID,EAAOzX,UAAYyX,EAAOzvB,SAAWD,EAAkBC,SAC1EyvB,EAAOzvB,OAASwrB,EAAYxrB,WAIhB,UAAf+Y,EAAM9Y,OACS,WAAf8Y,EAAM9Y,WAEL8Y,EAAMwW,eAAeC,QAAQG,KAC1BL,EAAcI,IAAIC,EAAM3X,UAAa2X,EAAMC,QAASD,EAAMC,QAAU7vB,EAAkBC,SACvF2vB,EAAMC,MAAQpE,EAAYxrB,iBAM5B+Y,EAAMwW,eAAeC,QAAQjkB,IAC1BA,EAAIyM,SAAYsX,EAAcI,IAAInkB,EAAIyM,WAClCzM,EAAIqkB,OAASrkB,EAAIqkB,QAAU7vB,EAAkBC,SAC9CuL,EAAIqkB,MAAQpE,EAAYxrB,QACvBuL,EAAIyM,SAAWzM,EAAIyM,UAAYjY,EAAkBC,SAClDuL,EAAIyM,QAAUwT,EAAYxrB,aAiJhC6vB,CAAgCnB,EAAiBlD,EAAagD,MAAAA,OAA+D,EAASA,EAAmB5W,WAEnKoV,GAAiBC,GAKrB,MAAOU,EAAiBxC,EAAWC,SAAkBnV,EAAG8Y,YAAY,IAAK9Y,EAAG6Z,QAAQhiB,UAChF,MAAMqd,QAAkBlV,EAAGwY,wBACrBrD,QAAiBnV,EAAGuX,UAAUxT,UACpC,IAAI+V,QAAsB1W,GAAkBC,GAE5C,GADA0T,GAAiBC,GACb6B,EAAW,CACX,MAAMkB,QA1gClBliB,eAAoC4gB,EAAiBlD,EAAa5S,EAAQyW,GACtE,GAAI7D,EAAY+C,YACRG,EAAgBrpB,OAAS,EAAG,CAC5B,MAAMiqB,EAAgB,IAAIxL,IAAIuL,GAAuB,IA6BrD,aA5BsB9qB,QAAQmV,IAAIgV,EAAgB/oB,KAAImI,MAAOiL,IACzD,MAAMkX,WAAEA,GAAelX,EAAMmX,KAAKtX,OAAOuX,WACzC,IAAKF,EACD,MAAO,CAAElX,MAAOA,EAAM9Y,KAAM8Z,KAAM,IACtC,MAAMqW,EAAwBxX,EAAOG,EAAM9Y,MACrC2Z,GAASwW,MAAAA,OAAqE,EAASA,EAAsBC,mBAC7GtX,EAAMlF,QAAQhI,IAAUyjB,EAAcI,IAAI7jB,EAAKmM,SAAW,KAAOiD,GAAkBgV,EAAWpkB,MAC9FkN,EAAMlF,QAAQhI,IAAS,OAACyjB,EAAcI,IAAI7jB,EAAKmM,SAAW,MA/M3DpW,EA+M8EquB,EAAWpkB,KA/MrFykB,EA+M4FF,MAAAA,OAAqE,EAASA,EAAsBE,WA9MlL,iBAAP1uB,GAAmBA,EAAGL,WAAW+uB,IADjE,IAAqB1uB,EAAI0uB,KAgNHC,QAAwB3W,EAAMI,UACpC,GAAIuW,EAAgBlrB,OAAS,EAAG,CAC5B,MAAMgX,EAAM,CACR/a,KAAM,SACNsa,OAAQ2U,EACR9U,KAAM8U,EAAgB5qB,IAAIsqB,GAC1BjwB,OAAQwrB,EAAYxrB,QAExB,MAAO,CACH+Y,MAAOA,EAAM9Y,KACb8Z,KAAM,CAACsC,IAIX,MAAO,CACHtD,MAAOA,EAAM9Y,KACb8Z,KAAM,SAIHlG,QAAO2H,GAAMA,EAAGzB,KAAK1U,OAAS,IAGrD,MAAO,GAu+BoCmrB,CAAqB9B,EAAiBlD,EAAa5S,EAAQ4V,MAAAA,OAA+D,EAASA,EAAmB5W,QAGzL,OAFAoV,GAAiBC,GACjB8C,EAAgBA,EAActpB,OAAOupB,GAC9B,CAACD,EAAe5E,EAAWC,GAEtC,MAAO,CAAC2E,EAAe5E,EAAWC,MAEhCqF,EAAe9C,EAAgBzS,MAAMoH,GAAQA,EAAIvI,KAAKmB,MAAMmB,GAAQA,EAAIZ,KAAKpW,OAAS,MAC5F,GAAI4oB,EAEA,OADAjrB,QAAQC,MAAM,kBAAmBwtB,GAC1BA,EAEX,GAAgB,SAAZva,IAAuBua,EAEvB,OAAO,EAEX,MAAMnD,EAAkBI,GAA2BC,EAAiBxC,MAAAA,OAA6C,EAASA,EAAUmC,iBAC9HhC,GAAkBH,MAAAA,OAA6C,EAASA,EAAUG,iBAAmBxQ,GAAe,IAI1HkS,GAAiBC,GACjB,MAAMtQ,QAAYsO,GAAe0C,EAAiBxC,EAAWC,EAAUnV,EAAIoV,EAAazS,EAAQ0S,GAChGtoB,QAAQC,MAAM,gBAAiB0Z,GAqG/B,aAjGmB1G,EAAG8Y,YAAY,KAAM9Y,EAAG6Z,QAAQhiB,MAAOkhB,IAEtDA,EAAGC,SAASC,uBAAwB,EAEpCF,EAAGC,SAASE,sBAAuB,EAGnC,IAAK,MAAMlW,KAAa3Y,OAAOmb,KAAK7C,GAC5B+D,EAAI/D,OAAOK,KAEXL,EAAOK,GAAa0D,EAAI/D,OAAOK,UAGjChD,EAAGkY,WAAWuC,IAAI9X,EAAQ,UAEhC,MAAM+X,QAA2BtX,GAAkBC,EAAgBrD,EAAI,CACnEsD,MAAO+T,IAMX,IAAK,MAAMsD,KAAYtX,EAAgB,CACnC,MAAML,EAAYC,GAA0B0X,EAAS3wB,MACrD,GAAK0wB,EAAmBzV,MAAM2V,GAAOA,EAAG9X,QAAUE,GAAa4X,EAAG9W,KAAK1U,OAAS,KAU3E,GAAIioB,EAAgBsD,EAAS3wB,MAAO,CACrC,MAAM6wB,EAAYxD,EAAgBsD,EAAS3wB,OAAS,QAE9CsE,QAAQmV,IAAI,CACdkX,EAAS/W,MAAM,OAAOkX,aAAaD,GAAWE,SAC9C/a,EAAGuX,UACE3T,MAAM,OACNoX,QAAQ,CAAChY,GAAYQ,EAAAA,GAAW,CAACR,EAAW6X,EAAY,IAAI,GAAM,GAClEI,UACAC,OAAO,GACPH,uBAfHzsB,QAAQmV,IAAI,CACdkX,EAASQ,QACTnb,EAAGuX,UAAU3T,MAAM,CAAEZ,UAAAA,IAAa+X,WAmB9CtD,GAA2BiD,EAAoBrD,SASzCD,GAAepX,EAAI2C,EAAQ0U,EAAiB3Q,EAAIwP,gBACtD,MAAMhB,QAAkBlV,EAAGwY,8BA4CnC3gB,eAA8CmI,EAAI0G,EAAK0U,GACnD,MAAMC,EAAgB,GAChBC,EAAmBF,EACnBA,EAAUzZ,OAAOnR,OAAO4qB,EAAUxZ,cAClC,GACA2Z,EAAkB,IAAI1N,IAAI,IAAInH,EAAI/E,UAAW+E,EAAI9E,eACvD,IAAK,MAAMG,KAAWuZ,EACbC,EAAgB9B,IAAI1X,IACrBsZ,EAAc5qB,KAAKsR,GAE3B,GAAIsZ,EAAcjsB,OAAS,EAAG,CAC1B,MAAMosB,EAAkB,IAAI3N,IAAIwN,GAC1BxB,EAASpX,GAAkBzC,GACjC,IAAK,MAAM8C,KAAS+W,EACZ/W,EAAMH,OAAO8Y,QAAQxW,MAAMQ,GAAwB,YAAhBA,EAAItB,SACtCzW,MAAMyB,QAAQsW,EAAItB,UAA+B,YAAnBsB,EAAItB,QAAQ,WAErCrB,EAAMc,MAAM,WAAW8X,MAAML,GAAeN,eAI5CjY,EACDlF,QAAQtI,MAAWA,MAAAA,OAAiC,EAASA,EAAIyM,UAAYyZ,EAAgB/B,IAAInkB,EAAIyM,WACrGgZ,UA/DPY,CAA+B3b,EAAI0G,EAAKwO,GAI9C,MAAM0G,EAAe1G,GAAa,CAC9BwD,aAAc,GACdrB,gBAAiB,GACjB1V,OAAQ,GACRC,aAAc,GACdyT,eAAAA,GAEJuG,EAAalD,aAAeL,EACvB3oB,KAAKmT,GAAQA,EAAI7Y,OACjBwG,OAAOioB,EAAgB/oB,KAAKmT,GAAQA,EAAI7Y,QAC7C4xB,EAAavE,gBAAkBA,EAC/BuE,EAAa5F,WAAatP,EAAImV,KAC9BD,EAAaE,iBAAkB,EAC/BF,EAAaja,OAAS+E,EAAI/E,OAC1Bia,EAAaha,aAAe8E,EAAI9E,aAChCga,EAAa1F,eAAiBxP,EAAIwP,eAClC0F,EAAazD,UAAY,IAAI/tB,YACtBwxB,EAAa3sB,MACpB,MAAM8sB,EAAkBC,GAA6CtV,EAAIuO,QAASyF,GASlF,aALMuB,GAAmBF,EAAiB/b,GAI1CA,EAAGkY,WAAWuC,IAAImB,EAAc,aACK,IAA9BlB,EAAmBtrB,WAM9BrC,QAAQC,MAAM,YAAa,CAAEorB,cAAAA,KACtB,IAJHrrB,QAAQC,MAAM,4CACD+qB,GAAM/X,EAAI0V,EAAS/S,EAAQ,CAAEyV,cAAAA,EAAepB,YAAAA,KAiCjEnf,eAAeokB,GAAmBhH,EAASjV,GACvCjT,QAAQC,MAAM,0BAA2BioB,EAAS/rB,EAAMgzB,oBACxD,IAAK,MAAQpZ,MAAOE,EAASc,KAAEA,KAAUmR,EAAS,CAC9C,MAAMnS,EAAQ9C,EAAG8C,MAAME,GACvB,IAAKF,EACD,SACJ,MAAMoX,WAAEA,GAAepX,EAAMmX,KAAKtX,OAClC,IAAK,MAAMyD,KAAOtC,EACd,OAAQsC,EAAI/a,MACR,IAAK,SACG6uB,EAAWiC,eACLrZ,EAAMsZ,QAAQhW,EAAIT,OAAQS,EAAIZ,OAGpCY,EAAIZ,KAAK/Z,SAAQ,CAACgS,EAAK9N,KACnBzG,EAAMgb,aAAakC,EAAIT,OAAOhW,GAAIuqB,EAAW/V,QAAS1G,YAEpDqF,EAAMsZ,QAAQhW,EAAIT,SAE5B,MACJ,IAAK,SACGuU,EAAWiC,eACLrZ,EAAMgU,QAAQ1Q,EAAIT,OAAQS,EAAIZ,OAGpCY,EAAIZ,KAAK/Z,SAAQ,CAACgS,EAAK9N,KACnBzG,EAAMgb,aAAakC,EAAIT,OAAOhW,GAAIuqB,EAAW/V,QAAS1G,YAEpDqF,EAAMgU,QAAQ1Q,EAAIT,SAE5B,MACJ,IAAK,SACuB,IAApBS,EAAIZ,KAAKpW,aACH0T,EAAM6S,OAAOvP,EAAIZ,KAAK,GAAIY,EAAIR,kBAG9B9C,EAAMc,MAAM,OAAO8X,MAAMtV,EAAIZ,MAAM+T,OAAOnT,EAAIR,YAExD,MACJ,IAAK,eACK4Q,GAAW1T,EAAOsD,EAAIZ,KAAMY,EAAIP,aACtC,MACJ,IAAK,eACK/C,EAAMuZ,WAAWjW,EAAIZ,QAM/C,SAASwW,GAA6CM,EAAe5B,GACjE,MAAMzF,EAAU,GAChB/O,GAAgB+O,EAASqH,GACzB,MAAMC,EAAmB,GAGzB,OAFArW,GAAgBqW,EAAkB7B,GA71CtC,SAAyBpV,EACzBkX,GAEI,IAAIjyB,EAAIY,EAAIsxB,EACZ,IAAK,MAAO3Z,EAAO4Z,KAAgBryB,OAAOqY,QAAQ8Z,GAC9C,IAAK,MAAO/e,EAAK2I,KAAQ/b,OAAOqY,QAAQga,GACpC,OAAQtW,EAAI/a,MACR,IAAK,MACD,CACI,MAAMsxB,EAAqC,QAAxBpyB,EAAK+a,EAAOxC,UAA2B,IAAPvY,OAAgB,EAASA,EAAGkT,GAC/E,GAAIkf,EACA,OAAQA,EAAUtxB,MACd,IAAK,aACMia,EAAOxC,GAAOrF,GACrB,MACJ,IAAK,MAGD,MACJ,IAAK,aACM6H,EAAOxC,GAAOrF,IAKrC,MACJ,IAAK,MACwB,QAAxBtS,EAAKma,EAAOxC,UAA2B,IAAP3X,UAA8BA,EAAGsS,GAClE,MACJ,IAAK,MAAO,CACR,MAAMkf,EAAqC,QAAxBF,EAAKnX,EAAOxC,UAA2B,IAAP2Z,OAAgB,EAASA,EAAGhf,GAC/E,GAAIkf,EACA,OAAQA,EAAUtxB,MACd,IAAK,MAED,IAAK,MAAO0a,EAAUtX,KAAUpE,OAAOqY,QAAQ0D,EAAIH,KAC/C/B,GAAayY,EAAUjX,IAAKK,EAAUtX,GAE1C,MACJ,IAAK,MAED,MACJ,IAAK,MAED,IAAK,MAAMsX,KAAY1b,OAAOmb,KAAKY,EAAIH,YAC5B0W,EAAU1W,IAAIF,GAKrC,QA4yChB6W,CAAgB3H,EAASsH,GA/xC7B,SAA0BM,GAEtB,MAAMC,EAAOjY,GAAe,IAEtBnV,EAAM,GACZ,IAAK,MAAOoT,EAAOqD,KAAQ9b,OAAOqY,QAAQma,GACtC,IAAK,MAAOpf,EAAK8H,KAAOlb,OAAOqY,QAAQyD,GAAM,CACzC,MAAM4W,EAAWrtB,EAAIoT,KAAWpT,EAAIoT,GAAS,KACjCia,EAASxX,EAAGla,QAAU0xB,EAASxX,EAAGla,MAAQ,KAClDoF,KAAKpG,OAAO2b,OAAO,CAAEvI,IAAAA,GAAO8H,IAIxC,MAAMlQ,EAAS,GACf,IAAK,MAAOyN,EAAOqD,KAAQ9b,OAAOqY,QAAQhT,GAAM,CAC5C,MAAMstB,EAAc,CAChBla,MAAAA,EACAgB,KAAM,IAEV,IAAK,MAAOmZ,EAAQnZ,KAASzZ,OAAOqY,QAAQyD,GACxC,OAAQ8W,GACJ,IAAK,MAAO,CACR,MAAM1X,EAAK,CACPla,KAAM,SACNma,KAAM1B,EAAKpU,KAAI0W,GAAOA,EAAI3I,MAC1BkI,OAAQ7B,EAAKpU,KAAI0W,GAAOA,EAAIV,MAC5BoX,KAAAA,GAEJE,EAAYlZ,KAAKrT,KAAK8U,GACtB,MAEJ,IAAK,MAAO,CACR,MAAMA,EAAK,CACPla,KAAM,SACNma,KAAM1B,EAAKpU,KAAI0W,GAAOA,EAAI3I,MAC1BoI,YAAa/B,EAAKpU,KAAI0W,GAAOA,EAAIH,MACjC6W,KAAAA,GAEJE,EAAYlZ,KAAKrT,KAAK8U,GACtB,MAEJ,IAAK,MAAO,CACR,MAAMA,EAAK,CACPla,KAAM,SACNma,KAAM1B,EAAKpU,KAAI0W,GAAOA,EAAI3I,MAC1Bqf,KAAAA,GAEJE,EAAYlZ,KAAKrT,KAAK8U,GACtB,OAIZlQ,EAAO5E,KAAKusB,GAEhB,OAAO3nB,EA0uCA6nB,CAAiBjI,GAG5B,SAASkI,GAA2Bnd,GAChC,MAAMrD,EAAQ,GACRygB,EAAe,IAAI/zB,GAAgB,GACnCg0B,EAAQ,IAAIh0B,EAAgB,MAClC,IAAIi0B,GAAY,EACZC,EAAc,EACdC,EAAgB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAGpzB,KAAKwN,OAkLrD,OAjLAylB,EAAMnwB,WAAU2K,UACZ,IAAIylB,GAEA3gB,EAAMvN,OAAS,EAAG,CAClBkuB,GAAY,EACZE,EAActlB,QACdslB,EAAc/sB,KAAKrG,KAAKwN,OACxBwlB,EAAaxwB,MAAK,GAClB,UA4BRiL,iBACI,IAAItN,EAAIY,EAAIsxB,EACZ,KAAO9f,EAAMvN,OAAS,GAAG,CACrB,MAAMquB,EAAM9gB,EAAMzE,QAClB,IACInL,QAAQC,MAAM,iBAAkBywB,SAI1Bzd,EAAGO,MAAM2U,UACVxgB,KAAKkJ,IAAO,EAAGwY,MAAAA,KAAsB,YAAVA,GAAiC,UAAVA,IAAoBpY,GAAK,IAC3EnJ,YACL9H,QAAQC,MAAM,iBAAkBywB,GAChC,MAAMlF,EAAqBvY,EAAGO,MAAMgY,mBAAmB9pB,MAEvD,IAAKgvB,EACD,SACJ,OAAQA,EAAIpyB,MACR,IAAK,gBACD0B,QAAQC,MAAM,4DACd,MAAM0wB,EAAO1d,EAAGO,MAAMgV,YAAY9mB,MAE5BgnB,QAAuBpN,GAAmBrI,EAAGO,MAAMmV,QAAQN,YAAasI,SAExE1d,EAAG8C,MAAM,WAAW6S,OAAO+H,EAAK3zB,OAAQ,CAC1Cie,YAAayN,EAAezN,YAC5BC,sBAAuBwN,EAAexN,wBAK1C,MACJ,IAAK,eACkH,QAA5G1d,EAAKguB,MAAAA,OAA+D,EAASA,EAAmB5W,cAA2B,IAAPpX,OAAgB,EAASA,EAAGouB,SAAS8E,EAAI/D,SAChKpZ,GAAYN,EAAI,QAEpB,MACJ,IAAK,iBACgH,QAA5G7U,EAAKotB,MAAAA,OAA+D,EAASA,EAAmB5W,cAA2B,IAAPxW,OAAgB,EAASA,EAAGwtB,SAAS8E,EAAI/D,SAC9JpZ,GAAYN,EAAI,QAEpB,MACJ,IAAK,iBACDM,GAAYN,EAAI,QAChB,MACJ,IAAK,UAED,GADAjT,QAAQC,MAAM,WAC0E,WAA/C,QAAnCyvB,EAAKzc,EAAGO,MAAM2U,UAAUzmB,aAA0B,IAAPguB,OAAgB,EAASA,EAAGrG,OAAoB,CAC7F9V,GAAYN,EAAI,QAChB,YAEEA,EAAG8Y,YAAY,KAAM9Y,EAAG2d,GAAG9D,QAAQhiB,MAAOkhB,IAE5CA,EAAGC,SAASC,uBAAwB,EAEpCF,EAAGC,SAASE,sBAAuB,EACnC,MAAOvW,EAAQuS,EAAWK,SAAqBjnB,QAAQmV,IAAI,CACvDzD,EAAG4d,YACH5d,EAAGwY,wBACHxY,EAAGwV,mBAGP,GADAzoB,QAAQC,MAAM,qCACTkoB,IAAcvS,IAAW4S,EAM1B,YALAxoB,QAAQC,MAAM,4BAA6B,CACvCkoB,UAAAA,EACAvS,OAAAA,EACA4S,YAAAA,IAKR,GAAIkI,EAAII,UAAY3I,EAAUgB,eAkB1B,OAjBAnpB,QAAQC,MAAM,YAAYywB,EAAII,0DAA0D3I,EAAUgB,wBAQvE,iBAAhBuH,EAAII,SAC0B,iBAA7B3I,EAAUgB,gBACsB,iBAA7BhB,EAAUgB,gBAKrB5V,GAAYN,EAAI,SAKxB,MAAM8d,QAAwB50B,EAAMmW,QAEpCqC,GAAoBwT,IAEpB,GADAnoB,QAAQC,MAAM,kBAAmB8wB,GAC7BA,IAAoBL,EAAIM,aAKxB,OAJAhxB,QAAQC,MAAM,wBAAyBywB,EAAIM,mBAC3Czd,GAAYN,EAAI,QAMpB,IAAI8Z,EAAgB,GACpB,GAAIvE,EAAY+C,WAAY,CACxB,MAAMjV,EAAiBZ,GAAkBzC,GAAItQ,KAAKmT,GAAQ7C,EAAG8C,MAAMC,GAAiBF,EAAI7Y,SACxF8vB,QAAsB1W,GAAkBC,GACxCtW,QAAQC,MAAM,4BAA6B8sB,GAE/C,GAAI2D,EAAIxI,QAAQ7lB,OAAS,EAAG,CACxB,MAAM2sB,EAAkBC,GAA6CyB,EAAIxI,QAAS6E,GAIlF/sB,QAAQC,MAAM,mCAAoC+uB,SAC5CE,GAAmBF,EAAiB/b,GAK9CkV,EAAUmC,gBAAkBI,GAA2BqC,EAAe5E,EAAUmC,iBAChFnC,EAAUgB,eAAiBuH,EAAIO,OAE/BjxB,QAAQC,MAAM,oBAAqBkoB,EAAUmC,uBACvCD,GAAepX,EAAI2C,EAAQuS,EAAUmC,gBAAiBoG,EAAIO,QAIhEjxB,QAAQC,MAAM,qBAAsBkoB,SAC9BlV,EAAGkY,WAAWuC,IAAIvF,EAAW,gBAEvCnoB,QAAQC,MAAM,wCAI1B,MAAOiC,GACHlC,QAAQkC,MAAM,qBAAsBA,KApK9BgvB,GAEV,QACQT,EAAcA,EAAcpuB,OAAS,GAAKouB,EAAc,GAAK,MAEzDpzB,KAAKwN,MAAQ2lB,EAAc,KAE3BxwB,QAAQsH,KAAK,8CACbkpB,EAAcnzB,KAAKwN,MAAQ,UACrB,IAAItJ,SAAQkG,GAAW1F,WAAW0F,EAAS,SAIjDzH,QAAQsH,KAAK,8CACbkpB,EAAcnzB,KAAKwN,MAAQ,UACrB,IAAItJ,SAAQkG,GAAW1F,WAAW0F,EAAS,SAGzD8oB,GAAY,EACZF,EAAaxwB,MAAK,QAqJvB,CACHsxB,QAlJJ,SAAiBT,GACb9gB,EAAMlM,KAAKgtB,GACXJ,EAAMzwB,KAAK,OAiJXwwB,aAAAA,GAIR,MAAMe,GAAO,IAAI3S,QACX4S,GAAqB,CACvBzc,OAAQ,WACR0c,QAAS,MACTC,MAAO,iBACPC,MAAO,GACPrG,WAAY,GACZX,UAAW,wBACXiH,QAAS,yBAEb,IAAIC,GAAiB,EACrB,SAASC,GAAaf,GACd,QAASA,IACTA,EAAKA,EAAQ,KACjB,IAAI3d,EAAKme,GAAKpS,IAAI4R,EAAGpd,OACrB,IAAKP,EAAI,CACL,MAAMS,EAAiB,IAAInX,EAC3B,IAAI6sB,EAAwB,IAAI7pB,EAAyB,oBAAoBqxB,EAAG3zB,QAChFyW,EAAmB,KAAMge,GACzB,IAAI3C,GAAkB,EACtB9b,EAAK,CACDhW,WACI,OAAO2zB,EAAG3zB,MAEd20B,MAAK,IACMhB,EAAGgB,QAEd7F,YAAa6E,EAAG7E,YAAYlmB,KAAK+qB,GACjC7a,MAAO6a,EAAG7a,MAAMlQ,KAAK+qB,GACrB9D,aACI,OAAO8D,EAAG9D,QAEdtZ,MAAOod,EAAGpd,MACVge,YACI,OAAOZ,EAAG7a,MAAM,UAEpBoV,iBACI,OAAOyF,EAAG7a,MAAM,eAEpByU,gBACI,OAAOoG,EAAG7a,MAAM,cAEpB0b,cACI,OAAOb,EAAG7a,MAAM,YAEpBnB,aACI,OAAOgc,EAAGhc,QAEd0c,cACI,OAAOV,EAAGU,SAEdC,YACI,OAAOX,EAAGW,OAEdxC,sBACI,OAAOA,GAEXrb,eAAAA,EACA0V,4BACI,OAAOA,GAEXwH,GAAAA,GAEJ,MAAMiB,EAAgB,CAClBpJ,eAAc,IACHxV,EAAGwe,QACLza,UACAhZ,MAAM8zB,GAAWA,EAAO3S,MAAM5H,GAAMA,EAAEgU,cAAexuB,IAE9D0uB,sBAAqB,IACVxY,EAAGkY,WAAWnM,IAAI,aAE7B6R,UAAS,IACE5d,EAAGkY,WAAWnM,IAAI,UAE7B+S,WAAU,IACC9e,EAAGkY,WAAWnM,IAAI,WAE7BhgB,mBAAmB0C,GACfqtB,EAAkBrtB,GAEtB1C,cACIoqB,EAAwB,IAAI7pB,EAAyB,oBAAoBqxB,EAAG3zB,UAGpFK,OAAO2b,OAAOhG,EAAI4e,GAClB5e,EAAG+e,gBAAkB5B,GAA2Bnd,GAChDme,GAAK9R,IAAIsR,EAAGpd,MAAOP,GAEvB,OAAOA,EAIX,MAAMgf,GAAK,IAAIxT,QACf,MAAMyT,GACFlzB,YAAYiU,EAAIkf,GACZF,GAAG3S,IAAIrgB,KAAMgU,GACb3V,OAAO2b,OAAOha,KAAMkzB,GAExBnzB,YAAYiU,EAAIjW,GACZ,OAAOiW,EACF8C,MAAM,WACNiJ,IAAIhiB,GACJgB,MAAMm0B,GAAc,IAAID,GAAqBjf,EAAIkf,GAAa,CAC/Dn1B,OAAAA,EACAE,OAAQ,CACJC,IAAKH,GAETI,UAAW,IAAIC,KAAK,OAG5B2B,aACeizB,GAAGjT,IAAI/f,MACf8W,MAAM,WAAW2X,IAAIzuB,OA8JhC6L,eAAe6R,GAAM1J,EAAI+H,GAErB,UAD0B/H,EAAGwV,kBACb8C,WAAY,CACxB,GAAIvQ,EAAO,CACP,GAAIA,EAAMZ,OAASnH,EAAGO,MAAMgV,YAAY9mB,MAAM0Y,QAAUY,EAAMZ,MAC1D,MAAM,IAAIzY,MAAM,oCAEpB,GAAIqZ,EAAMhe,QAAUiW,EAAGO,MAAM4e,gBAAkBpX,EAAMhe,OACjD,MAAM,IAAI2E,MAAM,oCAIxB,OAEJ,MAAMiE,EAAU,IAAIssB,GAAqBjf,EAAI,CACzC/V,OAAQ,GACRE,UAAW,IAAIC,KAAK,WAElBwd,GAAa5H,EAAGO,MAAMmV,QAAQN,YAAaziB,EAASqN,EAAGO,MAAMmV,QAAQ0J,aA5K/E,SAA+Bpf,GAC3B,MAAMsG,gBAAEA,GAAoBtG,EAAGO,MAC/B,OAAO1I,gBAA+B0R,WAAEA,EAAUxB,MAAEA,IAChD,IAAIxd,EACJ,IAAIyf,EACJ,MAAMnC,EAAkC,QAA3Btd,EAAKyV,EAAGO,MAAMmV,eAA4B,IAAPnrB,OAAgB,EAASA,EAAG6qB,YAC5E,IAAKvN,EACD,MAAM,IAAInZ,MAAM,0BAGhBsb,EAFqE,UAApEjC,MAAAA,OAAqC,EAASA,EAAMkC,YAEtC,CACXoV,gBAFoBpY,GAAeX,EAAiB,2BAA4ByB,MAAAA,OAAqC,EAASA,EAAMZ,SAAWY,MAAAA,OAAqC,EAASA,EAAMhe,SAGnMkgB,WAAY,OACZE,OAAQ,CAAC,aACTZ,WAAAA,GAKW,CACXpC,YAFgBF,GAAeX,EAAiB,sBAAuByB,MAAAA,OAAqC,EAASA,EAAMZ,OAG3H8C,WAAY,MACZE,OAAQ,CAAC,aACTZ,WAAAA,GAGR,MAAM+V,QAAalV,MAAM,GAAGvC,UAAa,CACrCwC,KAAMxI,KAAKC,UAAUkI,GACrBM,OAAQ,OACRC,QAAS,CAAEC,eAAgB,mBAAoBC,KAAM,UAEzD,GAAoB,MAAhB6U,EAAK5U,OAAgB,CACrB,MAAM6U,QAAeD,EAAK/I,OAO1B,YANM1P,GAAUP,EAAiB,uBAAwB,CACrDjb,KAAM,QACNgc,YAAa,gBACblb,QAASozB,EACTjY,cAAe,KAChBkC,OAAM,SACH,IAAIqL,GAAUyK,EAAMC,GAE9B,MAAM5U,QAAiB2U,EAAK1U,OAC5B,GAAsB,WAAlBD,EAAStf,KAET,OAAOsf,EAEN,GAAgC,QAA5BX,EAAaC,WAAsB,CACxC,GAAsB,aAAlBU,EAAStf,KACT,MAAM,IAAIqD,MAAM,4BAA4BmZ,WAChD,MAAMH,QAAYF,GAAalB,EAAiB0D,EAAa7C,OAC7D6C,EAAatC,IAAMA,GAAO,GAC1BsC,EAAawV,OAAS7U,EAAS6U,OAC/B,IAAIC,QAAarV,MAAM,GAAGvC,UAAa,CACnCwC,KAAMxI,KAAKC,UAAUkI,GACrBM,OAAQ,OACRC,QAAS,CAAEC,eAAgB,oBAC3BC,KAAM,SAEV,KAAuB,MAAhBgV,EAAK/U,QAAgB,CACxB,MAAMgV,QAAkBD,EAAKlJ,OAC7BvM,EAAatC,UAAYF,GAAalB,EAAiB0D,EAAa7C,MAAO,CACvE9b,KAAM,QACNgc,YAAa,cACblb,QAASuzB,EACTpY,cAAe,KAEnBmY,QAAarV,MAAM,GAAGvC,UAAa,CAC/BwC,KAAMxI,KAAKC,UAAUkI,GACrBM,OAAQ,OACRC,QAAS,CAAEC,eAAgB,oBAC3BC,KAAM,SAGd,GAAoB,MAAhBgV,EAAK/U,OAAgB,CACrB,MAAM6U,QAAeE,EAAKlJ,OAO1B,YANM1P,GAAUP,EAAiB,4BAA6B,CAC1Djb,KAAM,QACNgc,YAAa,gBACblb,QAASozB,EACTjY,cAAe,KAChBkC,OAAM,SACH,IAAIqL,GAAU4K,EAAMF,GAG9B,aADwBE,EAAK7U,OAI7B,MAAM,IAAIlc,MAAM,4BAA4BmZ,YAqFsC8X,CAAsB3f,GAAKA,EAAGO,MAAM+F,gBAAiByB,SACzIpV,EAAQitB,aAtElB/nB,eAA8BmI,EAAI0d,GAC9B,GAAIA,EAAK3zB,SAAWiW,EAAGO,MAAM4e,cACzB,OACJ,MAAMX,EAAUxe,EAAG8C,MAAM,iBACnB9C,EAAG8Y,YAAY,KAAM0F,GAAS3mB,MAAOkhB,IACvC,MAAM8G,QAAuBrB,EAAQza,gBAC/BzV,QAAQmV,IAAIoc,EAAejiB,QAAO8L,GAASA,EAAM3f,SAAW2zB,EAAK3zB,QAAU2f,EAAM4O,aAAY5oB,KAAIga,IACnGA,EAAM4O,YAAa,EACZkG,EAAQ/D,IAAI/Q,OAEvBgU,EAAKpF,YAAa,EAClBoF,EAAKvzB,UAAY,IAAIC,WACfszB,EAAKkC,OACX7yB,QAAQC,MAAM,iBAAkB0wB,EAAKvW,gBAEnC,IAAI7Y,SAAQkG,IACd,GAAIwL,EAAGO,MAAM4e,gBAAkBzB,EAAK3zB,OAChCyK,EAAQ,UAEP,CACD,MAAM5D,EAAeoP,EAAGO,MAAMgV,YAAYroB,WAAUqoB,IAC5CA,EAAYxrB,SAAW2zB,EAAK3zB,SAC5B6G,EAAa3D,cACbuH,EAAQ,cAgDlBsrB,CAAe9f,EAAIrN,GAGzB2N,GAAYN,EAAI,QAIpB,MAAM+f,GAAsC,oBAAnBC,eAEnBC,GAAgC,oBAAdr1B,WACpB,WAAWwc,KAAKxc,UAAUs1B,aACzB,wBAAwB9Y,KAAKxc,UAAUs1B,WACtCC,GAAgBF,GAEd,GAAGzvB,OAAO5F,UAAUs1B,UAAUE,MAAM,kBAAkB,GACxDzS,IAOA0S,GAAkCJ,IAAYE,IAAiB,KACjEJ,GAiBJ,MAAMO,GAAoC,oBAAT51B,MAAwB,YAAaA,OAASA,KAAKC,SAEpF,SAAS41B,KACL,MAAM,IAAIr3B,EAAMs3B,YAAY,iEAGhC,MAAM5wB,SAAEA,IAAa,GACrB,SAASoc,GAAY2F,GACjB,OAAO/hB,GAASH,KAAKkiB,GAAG1F,MAAM,GAAI,GAEtC,SAASwU,GAAiBvG,EAAY3T,GAClC,IAAIhc,EACJ,MAAiB,WAAbgc,EAAIlb,KACGkb,EAAIf,MACa,QAAnBjb,EAAKgc,EAAIf,YAAyB,IAAPjb,OAAgB,EAASA,EAAG0hB,UAAY1F,EAAIZ,OAAOjW,IAAIwqB,EAAWF,YAO1G,MAAM0G,GAAa,2CAsCnB,IAAI9jB,GAAO,EAuCX,SAAS+jB,GAA6B3gB,GAClC,MAAO,CACHrR,MAAO,SACP3E,KAAM,yBACN42B,MAAO,EACP3yB,OAASgsB,IACE,IACAA,EACHnX,MAAQE,IACJ,MAAMF,EAAQmX,EAAKnX,MAAME,GACzB,SAAS6d,EAAuBta,EAAK8T,GACjC,IAAIyG,EAAc,KAClB,MAAMtb,EAAOib,GAAiB3d,EAAMH,OAAOuX,WAAY3T,GAuBvD,OAtBAf,EAAK/Z,SAAQ,CAACgS,EAAKgI,KACf,QAAYlX,IAARkP,EAAmB,CAEnB,MAAMsjB,EAAcxa,EAAIZ,OAAOF,GAAK1D,SAAW/B,EAAGO,MAAM4e,cAClD6B,EAAWD,EAAYtc,OAAOsc,EAAY3xB,OAAS,GACzDoW,EAAKC,GA7CrC,SAAqBwb,EAAQD,GACzB,MAAM/mB,EAAI,IAAI+G,WAAW,IACnBkgB,EAAW,IAAIlgB,WAAW/G,EAAEK,OAAQ,EAAG,GACvC1C,EAAMxN,KAAKwN,MACbgF,IAAQhF,IAONgF,GAGFA,GAAOhF,EAEXspB,EAAS,GAAKtkB,GAAO,cACrBskB,EAAS,GAAKtkB,GAAO,WACrBskB,EAAS,GAAKtkB,GAAO,SACrBskB,EAAS,GAAKtkB,GAAO,MACrBskB,EAAS,GAAKtkB,GAAO,IACrBskB,EAAS,GAAKtkB,GACd,MAAMukB,EAAa,IAAIngB,WAAW/G,EAAEK,OAAQ,GAG5C,OAFAgI,OAAO2B,gBAAgBkd,GAEhBF,EAAS1S,GADL,IAAIvN,WAAW/G,EAAEK,UACQ0mB,GAAY,IAoBRxY,CAAY6R,EAAU2G,GAC7Ble,EAAMH,OAAOuX,WAAWiC,WACpB2E,IACDA,EAAcva,EAAIZ,OAAOsG,SAC7B6U,EAAYrb,GAAOvc,EAAMk4B,UAAUN,EAAYrb,IAC/Cvc,EAAMgb,aAAa4c,EAAYrb,GAAM3C,EAAMH,OAAOuX,WAAW/V,QAC7DqB,EAAKC,UAGR,GAAmB,iBAARhI,IACXA,EAAInS,WAAW+uB,GAEhB,MAAM,IAAInxB,EAAMm4B,gBAAgB,WAAW5jB,8BAAgCuF,8DACbqX,mMAI/DvX,EAAMwe,OAAO,IACb/a,EACHf,KAAAA,EACAG,OAAQmb,GAAeva,EAAIZ,SAGnC,MAAO,IACA7C,EACHwe,OAAS/a,IACL,IAAIhc,EAAIY,EAER,GAAIob,EAAIgb,MAAMtI,sBAEV,OAAOnW,EAAMwe,OAAO/a,GAExB,GAAiB,QAAbA,EAAIlb,MAA+B,QAAbkb,EAAIlb,KAAgB,CAC1C,MAAMm2B,EAA8C,QAA1Bj3B,EAAKyV,EAAGO,MAAMoC,cAA2B,IAAPpY,OAAgB,EAASA,EAAGyY,GACxF,GAAMwe,MAAAA,OAA2D,EAASA,EAAiBpH,kBAYtF,CACD,IAAiC,QAA3BjvB,EAAK6U,EAAGO,MAAMmV,eAA4B,IAAPvqB,OAAgB,EAASA,EAAGiqB,eAAiBpV,EAAG8b,gBAAiB,CAEtG,MAAMtW,EAAOib,GAAiB3d,EAAMH,OAAOuX,WAAY3T,GAEvD,OAAOzD,EAAM2e,QAAQ,CAAEjc,KAAAA,EAAM+b,MAAOhb,EAAIgb,MAAOG,MAAO,cAAe32B,MAAK42B,IACtE,GAAIA,EAAQvyB,OAASoW,EAAKpW,OAKtB,MAAM,IAAIV,MAAM,+EAEpB,OAAOoU,EAAMwe,OAAO/a,MAG5B,OAAOsa,EAAuBta,EAAKib,EAAiBnH,UA3BpD,GAAImH,MAAAA,OAA2D,EAASA,EAAiB5e,cAAe,CAEvF6d,GAAiB3d,EAAMH,OAAOuX,WAAY3T,GAClD9a,SAAQ,CAACgS,EAAKgI,KACf,IAAKT,GAAkBvH,GAAM,CACzB,MAAMpS,EAAOqC,MAAMyB,QAAQsO,GAAOA,EAAI/N,IAAIsc,IAAanc,KAAK,KAAOmc,GAAYvO,GAC/E,MAAM,IAAIvU,EAAMm4B,gBAAgB,4BAA4Bh2B,eAAkB2X,4GAwBlG,OAAOF,EAAMwe,OAAO/a,SAgDhD,SAASqb,GAAa7gB,GAClB,MAAM+D,EAAM,IAAI9D,WAAWD,GAE3B,OADAuB,OAAO2B,gBAAgBa,GAChBvD,KAAKC,OAAOC,aAAarL,MAAM,KAAM0O,IAchD,IAAI+c,GAAY,EAahB,SAASC,GAAS7uB,EAAI8uB,GAClB,OAAO,SAAoBxb,GACvB,MAAMyb,QAAEA,EAAOC,QAAEA,GAAa1b,EAAIgb,MAAMQ,KAAUxb,EAAIgb,MAAMQ,GAAQ,CAAEE,QAAS,GAAID,QAAS,KACtFE,EAAaD,EAAQ7yB,OACrBqG,GAAWysB,EAAa,EACxBD,EAAQC,EAAa,GAAGn3B,MAAK,IAAMkI,EAAGsT,KAAM,IAAMtT,EAAGsT,KACrDtT,EAAGsT,IAAM4b,SAAQ,IAAMH,EAAQ9wB,OAAO8wB,EAAQjxB,QAAQ0E,MAE5D,OADAusB,EAAQvxB,KAAKgF,GACNA,GAGf,SAAS2sB,GAAUnvB,EAAI8uB,GACnB,OAAO,SAAqBxb,GACxB,MAAMyb,QAAEA,EAAOC,QAAEA,GAAa1b,EAAIgb,MAAMQ,KAAUxb,EAAIgb,MAAMQ,GAAQ,CAAEE,QAAS,GAAID,QAAS,KAC5F,IAAIvsB,GAAWwsB,EAAQ7yB,OAAS,EAC1B6yB,EAAQA,EAAQ7yB,OAAS,GAAGrE,MAAK,IAAMkI,EAAGsT,KAAM,IAAMtT,EAAGsT,KACzDyb,EAAQ5yB,OAAS,GAxCXizB,EAyCSL,EAxClB,IAAI1zB,SAAQkG,IACiB,IAA5B6tB,EAAiBjzB,QACjBoF,EAAQ,IACZ,IAAI8tB,EAAYD,EAAiBjzB,OACjC,MAAMuyB,EAAU,IAAIj0B,MAAM40B,GAC1BD,EAAiB52B,SAAQ,CAACkC,EAAGgC,IAAMrB,QAAQkG,QAAQ7G,GAAG5C,MAAK0D,GAASkzB,EAAQhyB,GAAK,CAAE+a,OAAQ,YAAajc,MAAAA,KAAS8zB,GAAUZ,EAAQhyB,GAAK,CAAE+a,OAAQ,WAAY6X,OAAAA,KACzJx3B,MAAK,MAAQu3B,GAAa9tB,EAAQmtB,WAkCT52B,MAAK,IAAMkI,EAAGsT,KAClCtT,EAAGsT,IAAM4b,SAAQ,IAAMF,EAAQ/pB,UA1CjD,IAAoBmqB,EA4CZ,OADAJ,EAAQxxB,KAAKgF,GACNA,GAIf,MAAM+sB,GAA0B,IAAIn5B,EAAgB,IAAIwkB,KAUxD,SAAS4U,IAAiCC,sBAAEA,EAAqB1iB,GAAEA,IAC/D,MAAO,CACHrR,MAAO,SACP3E,KAAM,6BACN42B,MAAO,EACP3yB,OAASgsB,IACL,MAAM0I,EAAiB1I,EAAKtX,OAAOkX,OAAOjc,QAAQmU,IAAO,MAAM3K,KAAK2K,EAAE/nB,QACtE,IAAI44B,EACJ,IACIA,EAAc,IAAI7U,IAAI4U,EAAejzB,KAAKmT,GAAQ,CAC9CA,EAAI7Y,KACJiwB,EAAKnX,MAAM,IAAID,EAAI7Y,sBAG3B,MAAOO,GACHg2B,KAEJ,MAAO,IACAtG,EACHnB,YAAa,CAACe,EAAQpP,KAClB,IAAIsO,EACJ,GAAa,cAATtO,EAAsB,CACtB,MAAMpH,EAAiBwW,EAClBjc,QAAQiF,IAAU,IAAItY,EAAIY,EAAI,OAAsF,QAA9EA,EAAgC,QAA1BZ,EAAKyV,EAAGO,MAAMoC,cAA2B,IAAPpY,OAAgB,EAASA,EAAGsY,UAAyB,IAAP1X,OAAgB,EAASA,EAAGyX,iBACxJlT,KAAKmT,GAAQE,GAAiBF,KACnCkW,EAAKkB,EAAKnB,YAAY,IAAIe,KAAWxW,GAAiBoH,QAGtDsO,EAAKkB,EAAKnB,YAAYe,EAAQpP,GAElC,GAAa,cAATA,EAAsB,CAEtBsO,EAAG+D,KAAO8E,GAAa,IAGvB7I,EAAGxD,YAAcmN,EAAsBj0B,MACvC+zB,GAAwB/zB,MAAMiC,IAAIqoB,GAClCyJ,GAAwB51B,KAAK41B,GAAwB/zB,OACrD,MAAMo0B,EAAoB,KACtB9J,EAAG3sB,oBAAoB,WAAY02B,GACnC/J,EAAG3sB,oBAAoB,QAASy2B,GAChC9J,EAAG3sB,oBAAoB,QAASy2B,GAChCL,GAAwB/zB,MAAMssB,OAAOhC,GACrCyJ,GAAwB51B,KAAK41B,GAAwB/zB,QAEnDq0B,EAAa,KACf,IAAIv4B,EACAwuB,EAAGgK,iBAA+C,QAA3Bx4B,EAAKyV,EAAGO,MAAMmV,eAA4B,IAAPnrB,OAAgB,EAASA,EAAG6qB,eAClFpV,EAAGO,MAAMC,oBACTzT,QAAQC,MAAM,0BACd+S,GAAkBC,EAAI,SAGtBA,EAAGS,eAAe7T,KAAK,CAAEqT,QAAS,UAG1C4iB,KAEJ9J,EAAG9tB,iBAAiB,WAAY63B,GAChC/J,EAAG9tB,iBAAiB,QAAS43B,GAC7B9J,EAAG9tB,iBAAiB,QAAS43B,GAEjC,OAAO9J,GAEXjW,MAAQE,IACJ,MAAMF,EAAQmX,EAAKnX,MAAME,GACzB,GAAI,MAAMoE,KAAKpE,GACX,OAAIA,EAAUggB,SAAS,cAKZ,IACAlgB,EACHwe,OAAS/a,IACY,QAAbA,EAAIlb,MAA+B,QAAbkb,EAAIlb,OAC1Bkb,EAAIgb,MAAMwB,gBAAiB,GAExBjgB,EAAMwe,OAAO/a,KAIT,YAAdvD,EACE,IACAF,EACHwe,OAAS/a,IACLxZ,QAAQC,MAAM,yBAA0BuZ,GACjCzD,EACFwe,OAAO/a,GACPxb,MAAM2b,IACP3Z,QAAQC,MAAM,oBACduZ,EAAIgb,MAAMwB,gBAAiB,EAC3Bh2B,QAAQC,MAAM,mBACP0Z,KAEN8C,OAAO3a,IACR9B,QAAQC,MAAM,0BAA2B6B,GAClCP,QAAQmG,OAAO5F,QAM3BiU,EAGf,MAAMH,OAAEA,GAAWG,EACbmgB,EAAYL,EAAY7W,IAAI/I,GAClC,OA1JpB,SAAsBF,GAClB,MAAMif,EAAO,WAAaF,GAC1B,MAAO,IACA/e,EACHnJ,MAAOmoB,GAAShf,EAAMnJ,MAAOooB,GAC7BhW,IAAK+V,GAAShf,EAAMiJ,IAAKgW,GACzBN,QAASK,GAAShf,EAAM2e,QAASM,GACjCmB,WAAYpB,GAAShf,EAAMogB,WAAYnB,GACvCpe,MAAOme,GAAShf,EAAMa,MAAOoe,GAC7BT,OAAQc,GAAUtf,EAAMwe,OAAQS,IAiJboB,CAAa,IACbrgB,EACHwe,OAAS/a,IACL,IAAIhc,EACJ,MAAMg3B,EAAQhb,EAAIgb,MAClB,OAAKA,EAAMzE,KAEPyE,EAAMtI,sBACCnW,EAAMwe,OAAO/a,IACW,QAA5Bhc,EAAKg3B,EAAMhM,mBAAgC,IAAPhrB,OAAgB,EAASA,EAAG+tB,YAKnD,gBAAb/R,EAAIlb,KACLyX,EAEGa,MAAM,CACPA,MAAO,CAAEyf,MAAO7c,EAAI6c,MAAOhzB,MAAOuS,EAAOuX,YACzCqH,MAAOhb,EAAIgb,MACX5b,QAAQ,IAGP5a,MAAM2b,GACA2c,EAAa,CAChBh4B,KAAM,SACNma,KAAMkB,EAAIrR,OACVksB,MAAOhb,EAAIgb,MACX+B,SAAU,CAAElzB,MAAO,KAAMgzB,MAAO7c,EAAI6c,WAG1CC,EAAa9c,GAnBRzD,EAAMwe,OAAO/a,GANbzD,EAAMwe,OAAO/a,MA4BhC,SAAS8c,EAAa9c,GAClB,MAAMgb,EAAQhb,EAAIgb,MAClBA,EAAMwB,gBAAiB,EACvB,MAAMjG,KAAEA,EAAMvH,aAAaxrB,OAAEA,IAAaw3B,GACpCl2B,KAAEA,GAASkb,EACjB,OAAOzD,EAAMwe,OAAO/a,GAAKxb,MAAM2b,IAC3B,MAAQ6c,YAAaC,EAAWC,SAAEA,GAAa/c,EAC/C,IAAIlB,EAAgB,WAATna,EAAoBkb,EAAIf,KAAOkB,EAAIib,QAC1Chc,EAAS,WAAYY,EAAMA,EAAIZ,OAAS,GACxCE,EAAc,gBAAiBU,EAAMA,EAAIV,YAAc,GACvD2d,IACAhe,EAAOA,EAAK5H,QAAO,CAACyQ,EAAG5I,KAASge,EAAShe,KACzCE,EAASA,EAAO/H,QAAO,CAACyQ,EAAG5I,KAASge,EAAShe,KAC7CI,EAAcA,EAAYjI,QAAO,CAACyQ,EAAG5I,KAASge,EAAShe,MAE3D,MAAMie,EAAKt5B,KAAKwN,MACVwO,EAAmB,WAAbG,EAAIlb,KACV,CACEA,KAAM,SACNq4B,GAAAA,EACAle,KAAAA,EACA8d,SAAU/c,EAAI+c,SACdxG,KAAAA,EACA/yB,OAAAA,GAEW,QAAbwc,EAAIlb,KACA,CACEA,KAAM,SACNq4B,GAAAA,EACAle,KAAAA,EACAsX,KAAAA,EACA/yB,OAAAA,EACA4b,OAAAA,GAEFY,EAAI+c,UAAY/c,EAAIX,WAChB,CAEEva,KAAM,SACNq4B,GAAAA,EACAle,KAAAA,EACA8d,SAAU/c,EAAI+c,SACd1d,WAAYW,EAAIX,WAChBkX,KAAAA,EACA/yB,OAAAA,GAEFwc,EAAIV,YACA,CAEExa,KAAM,SACNq4B,GAAAA,EACAle,KAAAA,EACAK,YAAAA,EACAiX,KAAAA,EACA/yB,OAAAA,GAEF,CACEsB,KAAM,SACNq4B,GAAAA,EACAle,KAAAA,EACAG,OAAAA,EACAmX,KAAAA,EACA/yB,OAAAA,GAEpB,OAAOyb,EAAKpW,OAAS,GAAM,aAAcmX,GAAOA,EAAI+c,SAC9CL,EACG3B,OAAO,CAAEj2B,KAAM,MAAOk2B,MAAAA,EAAO5b,OAAQ,CAACS,KACtCrb,MAAK,IAAM2b,IACdA,UASlC,SAASid,GAAwBC,EAAUC,GACvC,OAAO,SAAUC,EAAQC,GACrB,MAAMC,EAAc,IACb5F,MACA0F,GAEDG,EAAcJ,EAAMtjB,MAAMoC,SAAWkhB,EAAMtjB,MAAMoC,OAAS,IAC1DuhB,EAAc,IAAIrW,IACxBxjB,OAAOmb,KAAKwe,GAAav4B,SAAQuX,IAC7B,MAAMmhB,EAAYH,EAAYhhB,GACxBwe,EAAmByC,EAAYjhB,KAAeihB,EAAYjhB,GAAa,IAC5D,MAAbmhB,GACI,MAAM/c,KAAK+c,KACXH,EAAYhhB,GAAaghB,EAAYhhB,GAAWyB,OAAO,GACvD+c,EAAiBpH,mBAAoB,EACrCoH,EAAiBnH,SArfrC,SAA6BrX,EAAWkhB,GACpC,IAAIE,EAAKphB,EAAU,GAAGqhB,oBACtB,IAAK,IAAI10B,EAAI,EAAG2U,EAAItB,EAAU5T,OAAQO,EAAI2U,GAAK8f,EAAGh1B,OAAS,IAAKO,GACxD+wB,GAAWtZ,KAAKpE,EAAUrT,MANjBirB,EAMoC5X,EAAUrT,KALlD,KAAOirB,GAAM,OAMlBwJ,GAAMphB,EAAUrT,GAAG20B,eAE3B,IATJ,IAAqB1J,EANO2J,EAAMC,EAevBN,EAAYzK,IAAI2K,IAAK,CACxB,GAAI,MAAMhd,KAAKgd,GAAK,CAEhB,GADAA,EAAKA,EAAG3f,OAAO,EAAG2f,EAAGh1B,OAAS,IAAMg1B,EAAGA,EAAGh1B,OAAS,GAAK,KACpDg1B,EAAGh1B,OAAS,GAGZ,SAFAg1B,EAAKA,EAAG3f,OAAO,EAAG,QAIrB,GAAI2f,EAAGh1B,OAAS,EAAG,CACpBg1B,GAAU,IACV,SAEJ,IAAIK,EAAS,EACTC,EAAaN,EACjB,KAAOF,EAAYzK,IAAIiL,IAAeD,EAAS,GA7B3BF,EA8BgBH,EAAhCM,GA7BQ,GADcF,EA8BcC,GA7BxBF,EAAK,GAAGI,cAAgBJ,EAAK,GAAGD,gBACxC,EAAPE,EAAWD,EAAK,GAAGI,cAAgBJ,EAAK,GAAGD,gBACpC,EAAPE,EAAWD,EAAK,GAAGI,cAAgBJ,EAAK,GAAGD,iBA4BtCG,EAEN,GAAIA,EAAS,EACTL,EAAKM,MACJ,CACD,IAAIE,EAAYR,EAAGnjB,WAAW,GAAK,EAAK,IACxCmjB,EAAKA,EAAG3f,OAAO,EAAG,GAAKjD,OAAOC,aAAamjB,IAInD,OAAOR,EAqdqCS,CAAoB7hB,EAAWkhB,GAC3DA,EAAYxzB,IAAI8wB,EAAiBnH,WAEhC,MAAMjT,KAAKpE,KACZghB,EAAY,IAAIhhB,eAAyB,QACzCwe,EAAiB5e,eAAgB,GAEjC4e,EAAiBsD,UACjBtD,EAAiBsD,SAAU,KAI/BtD,EAAiBsD,SAAU,EAC3BtD,EAAiB5e,eAAgB,EACjCohB,EAAY,IAAIhhB,eAAyB,SAIjD,OADW4gB,EAASn0B,KAAKzD,KAAMg4B,EAAaD,IAKpD,MAGMgB,GAAOnD,GAAa,IAI1B/pB,eAAemtB,GAAkBhlB,EAAIilB,EAASC,EAAeC,GAAKC,eAAEA,GAAmB,IAKnF,MAAMC,EAAYrlB,EAAG8C,MAAMoiB,GA+C3B,SA9CArtB,eAAeytB,IAyBX,SAxByBtlB,EAAG8Y,YAAY,MAAOoM,GAAertB,UAC1D,MAAM0tB,QAAoBF,EAAUtZ,IAAIkZ,GACxC,OAAKM,EASIA,EAAYC,UAAUtd,UAC3B9d,KAAKwN,MApBO,MAqBZ7K,QAAQsH,KAAK,UAAU4wB,gCAAuC,wBAAyBM,EAAYE,QAAS,KAAM,uBAAwBF,EAAYC,UAAW,KAAM,gCAEjKH,EAAU5K,IAAI,CAChBiL,OAAQX,GACRU,QAAS,IAAIr7B,KACbo7B,UAAW,IAAIp7B,MAChB66B,IACI,UAhBDI,EAAU30B,IAAI,CAChBg1B,OAAQX,GACRU,QAAS,IAAIr7B,KACbo7B,UAAW,IAAIp7B,MAChB66B,IACI,MAgBX,OAAO,EAEX,GAAIG,EACA,IACI,MAAMO,EAAoBp8B,EAAOJ,GAAU,IAAMk8B,EAAUtZ,IAAIkZ,MAAWvwB,KAAKiL,GArCnE,KAqCiG/B,IAAQunB,IAASA,KAE9H,aADMQ,EAAkB9wB,aACjB,EAEX,MAAOhG,GACH,GAAiB,iBAAbA,EAAI7E,KACJ,MAAM6E,EAKV,aAAay2B,IAGrB,OAAO,EAEDA,GAAc,CAMpB,MAAME,EAAYvuB,aAAY,KAC1BouB,EAAU1P,OAAOsP,GAAUE,GAAQA,EAAIO,SAAWX,KAASI,EAAIK,UAAY,IAAIp7B,UA7D7D,KA+DtB,IACI,aAAa+6B,IAEjB,QAEIhuB,cAAcquB,SAERxlB,EAAG8Y,YAAY,MAAOoM,GAAertB,UACvC,MAAM0tB,QAAoBF,EAAUtZ,IAAIkZ,GACpCM,GAAeA,EAAYG,SAAWX,IACtCM,EAAUtK,OAAOkK,QAqBrC,MAGMW,GAAe,IAAIv8B,GAAgB,GASnCw8B,GAAqB,IAAIx8B,GAAgB,GA1tG/C,IAA8B+T,GAASC,GA2tGvCuoB,GACKlxB,KAAK8J,IAAWsnB,GAAaA,EAC5Br8B,GAAK,GACLA,GAAK,GAAOiL,KAAKoC,GAfI,SA9sGhB,SAAUlL,GAAU,OAAOA,EAAOgI,KAAK,IAAIuJ,GAA6BC,GAASC,QA8tGvFnQ,UAAU24B,IAKf,MAAME,GAA+C,oBAAbp7B,SAClCnB,EAAUmB,SAAU,oBACpBlB,EAAK,IAELu8B,GAAwBD,GAAyBrxB,KAAKkJ,IAAO,IAAmC,WAA7BjT,SAASs7B,mBAE5EC,GAAyBH,GAAyBrxB,KAAKkJ,IAAO,IAAmC,YAA7BjT,SAASs7B,mBAE7EE,GAAsC,oBAAXC,OAC3B18B,EAAMw8B,GAAwB18B,EAAU48B,OAAQ,aAAc58B,EAAU48B,OAAQ,WAAY58B,EAAU48B,OAAQ,SAAU58B,EAAU48B,OAAQ,cAC1I38B,EAAK,IACa,oBAAbkB,UAQPjB,EAAMD,GAAK,GACXu8B,GACAG,IACKzxB,KAELhF,IAAI,IAAmC,YAA7B/E,SAASs7B,kBAEnBrnB,IAAKknB,IACGF,GAAan3B,QAAUq3B,GAEvBF,GAAah5B,KAAKk5B,MAK1BtnB,IAAWsnB,GAAaA,EAClBr8B,EAAK,GAAGiL,KAAKoC,GAAMuvB,MAA+CznB,IAAI,IAAMgnB,GAAah5B,MAAK,MAC9FnD,EAAK,MACNyD,WAAU,SAGnB,MAAMo5B,WAA0B53B,MAC5B3C,cACIU,SAASyF,WACTlG,KAAKhC,KAAO,qBAOpB,MAAMu8B,WAAqBn9B,EACvB2C,YAAYqpB,EAAayC,EAAKkG,EAAc1I,EAAgBmR,EAAiBC,EAAiBC,EAAOC,GACjGl6B,OAAOC,GAAe,IAAIk6B,GAAaxR,EAAayC,EAAKkG,EAAc1I,EAAgBqR,EAAOC,EAAiBj6B,EAAY85B,EAAiBC,MAGpJ,IAAII,GAAU,EACd,MAAMD,WAAqBj9B,EACvBoC,YAAYqpB,EAAayC,EAAKkG,EAAc1I,EAAgBqR,EAAOC,EAAiBj6B,EAAY85B,EAAiBC,GAC7Gh6B,OAAM,IAAMT,KAAK2E,aACjB3E,KAAKL,KAAOk7B,GACZ95B,QAAQC,MAAM,2BAA4BhB,KAAKL,GAAI+6B,EAAQ,aAAe,gBAC1E16B,KAAKopB,YAAcA,EACnBppB,KAAK6rB,IAAMA,EACX7rB,KAAK+xB,aAAeA,EACpB/xB,KAAKqpB,eAAiBA,EACtBrpB,KAAK06B,MAAQA,EACb16B,KAAK26B,gBAAkBA,EACvB36B,KAAKU,WAAaA,EAClBV,KAAK86B,iBAAmB,IAAI18B,KAC5B4B,KAAKw6B,gBAAkBA,EACvBx6B,KAAK+6B,4BAA8B,KACnC/6B,KAAKy6B,gBAAkBA,EACvBz6B,KAAKg7B,UAETj7B,WACIgB,QAAQC,MAAM,gCAAiChB,KAAKL,IACpDK,KAAKi7B,aAETl7B,aAMI,GALAC,KAAKy6B,gBAAgB75B,KAAK,gBACtBZ,KAAKk7B,SACL/vB,cAAcnL,KAAKk7B,QACnBl7B,KAAKk7B,OAAS,MAEdl7B,KAAKm7B,GACL,IACIn7B,KAAKm7B,GAAGxI,QAEZ,MAAOp0B,IAEXyB,KAAKm7B,GAAK,KACNn7B,KAAK+6B,8BACL/6B,KAAK+6B,4BAA4B95B,cACjCjB,KAAK+6B,4BAA8B,MAG3Ch7B,YACIC,KAAKi7B,aACLj7B,KAAKg7B,UAETj7B,gBAGI,GAFAC,KAAKy6B,gBAAgB75B,KAAK,cAC1BZ,KAAKo7B,mBAAqB,IAAIh9B,KAC1B4B,KAAKq7B,YAAcr7B,KAAKq7B,WAAa,IAAIj9B,KAKzC,YAJA2C,QAAQC,MAAM,+BAAgC,CAC1CrB,GAAIK,KAAKL,GACT07B,WAAYr7B,KAAKq7B,aAIzB,GAAIr7B,KAAKm7B,GACL,MAAM,IAAIz4B,MAAM,sDAEpB,IAAK1C,KAAKopB,YACN,MAAM,IAAI1mB,MAAM,yCACpB,GAAI1C,KAAKgD,OACL,OAEJ,GAAIhD,KAAK26B,iBAAmB36B,KAAK26B,gBAAkB,IAAIv8B,KAEnD,YADA4B,KAAKU,WAAWuC,MAAM,IAAIq3B,IAG9Bt6B,KAAKk7B,OAASjwB,aAAYY,UACtB,GAAI7L,KAAKgD,OAGL,OAFAjC,QAAQC,MAAM,eAAgBhB,KAAKL,GAAI,gBACvCK,KAAK2E,WAGT,GAAI3E,KAAKm7B,GACL,IACIn7B,KAAKm7B,GAAGrU,KAAKjR,KAAKC,UAAU,CAAEzW,KAAM,UACpCyD,YAAW,KAEP,GADA/B,QAAQC,MAAM,oBAAqBhB,KAAKL,GAAIK,KAAKk7B,OAAS,QAAU,QAC/Dl7B,KAAKk7B,OAEV,OAAIl7B,KAAKgD,QACLjC,QAAQC,MAAM,oBAAqBhB,KAAKL,GAAI,+BAC5CK,KAAK2E,iBAGL3E,KAAKo7B,mBACL,IAAIh9B,KAAKA,KAAKwN,MA9Fd,MAgGA7K,QAAQC,MAAM,8BACdD,QAAQC,MAAM,uBACdhB,KAAKs7B,aAGLv6B,QAAQC,MAAM,kCArGd,KAyGZ,MAAOzC,GACHwC,QAAQC,MAAM,qBAAsBhB,KAAKL,GAAI,gBAC7CK,KAAKs7B,iBAITv6B,QAAQC,MAAM,SAAUhB,KAAKL,GAAI,gBACjCK,KAAKs7B,cA/GQ,KAmHrB,MAAMC,EAAQ,IAAI3U,IAAI5mB,KAAKopB,aAC3BmS,EAAMC,SAA8B,UAAnBD,EAAMC,SAAuB,KAAO,MACrD,MAAMC,EAAe,IAAIC,gBACzB,GAAI17B,KAAKU,WAAWsC,OAChB,OACJy4B,EAAapb,IAAI,IAAK,KACtBob,EAAapb,IAAI,MAAOrgB,KAAK6rB,KAC7B4P,EAAapb,IAAI,aAAcrgB,KAAK+xB,cACpC0J,EAAapb,IAAI,WAAYrgB,KAAKqpB,gBAC9BrpB,KAAK06B,OACLe,EAAapb,IAAI,QAASrgB,KAAK06B,OAGnC35B,QAAQC,MAAM,gCACd,MAAMm6B,EAAMn7B,KAAKm7B,GAAK,IAAIQ,UAAU,GAAGJ,aAAiBE,KAExDN,EAAGS,QAAWvK,IACLrxB,KAAKk7B,SAEVn6B,QAAQC,MAAM,iCAAkChB,KAAKL,IACrDK,KAAKs7B,cAETH,EAAGU,UAAaxK,IACZ,GAAKrxB,KAAKk7B,OAAV,CAEAn6B,QAAQC,MAAM,kCAAmCqwB,EAAMjyB,MACvDY,KAAKo7B,mBAAqB,IAAIh9B,KAC9B,IACI,MAAMqzB,EAAM3J,GAAKrH,MAAM4Q,EAAMjyB,MAC7B,GAAiB,UAAbqyB,EAAIpyB,KACJ,MAAM,IAAIqD,MAAM,mCAAmC+uB,EAAIxuB,SAE1C,QAAbwuB,EAAIpyB,OACJW,KAAK6rB,IAAM4F,EAAI5F,KAEF,SAAb4F,EAAIpyB,MACJW,KAAKU,WAAWE,KAAK6wB,GAG7B,MAAOptB,GACHrE,KAAKU,WAAWuC,MAAMoB,MAG9B,UACU,IAAI/B,SAAQ,CAACkG,EAASC,KACxB0yB,EAAGW,OAAUzK,IACTtwB,QAAQC,MAAM,gCACdwH,EAAQ,OAEZ2yB,EAAG7T,QAAW+J,IACV,MAAMpuB,EAAQouB,EAAMpuB,OAAS,IAAIP,MAAM,mBACvC1C,KAAKi7B,aACLj7B,KAAKU,WAAWuC,MAAMA,GACtBjD,KAAKy6B,gBAAgB75B,KAAK,SAC1B6H,EAAOxF,OAGfjD,KAAK+6B,4BAA8B/6B,KAAKw6B,gBAAgBt5B,WAAUuwB,IAC9D,IAAIlzB,EACCyB,KAAKgD,SACW,UAAbyuB,EAAIpyB,MAAmD,cAA/BW,KAAKy6B,gBAAgBh4B,OAC7CzC,KAAKy6B,gBAAgB75B,KAAK,aAEX,QAAlBrC,EAAKyB,KAAKm7B,UAAuB,IAAP58B,GAAyBA,EAAGuoB,KAAKgB,GAAKhS,UAAU2b,QAIvF,MAAOxuB,GACHjD,KAAKq7B,WAAa,IAAIj9B,KAAKA,KAAKwN,MAtLf,OA8L7BC,eAAekwB,GAAsC94B,GAHrD,IAAiB+4B,EAIbj7B,QAAQkC,MAAM,6EAA8EA,SAJ/E+4B,EAMC,IALP,IAAI15B,SAASkG,GAAY1F,WAAW0F,EAASwzB,MAOpDj7B,QAAQC,MAAM,6CACRm5B,GAAkBzxB,KAAKsJ,GAAK,IAAInJ,YACtC9H,QAAQC,MAAM,0BAuDlB6K,eAAeowB,GAAajoB,GACxB,IAAIzV,EACJ,UAAoC,QAA3BA,EAAKyV,EAAGO,MAAMmV,eAA4B,IAAPnrB,OAAgB,EAASA,EAAG6qB,eAAgBpV,EAAGO,MAAMoC,eACrFxC,GAAKH,EAAIA,EAAGO,MAAMmV,QAAS1V,EAAGO,MAAMoC,OAAQ,CAAEqV,mBAAmB,IAIjF,MAAMkQ,GAAe,IAAI1c,QACzB,SAAS2c,GAAenoB,EAAIooB,EAAcnE,EAAavO,GACnD,MAAM2S,EAAUH,GAAanc,IAAI/L,GACjC,GAAIqoB,EAAS,CACT,GAAIA,EAAQC,MAAgF,UAAvE5S,MAAAA,OAAyC,EAASA,EAAQzV,SAE3E,OADAlT,QAAQC,MAAM,yDACPq7B,EAAQ5yB,QAEd,CASD,IAAI8yB,GAAoB,EACxB,MAAM33B,EAAeoP,EAAGO,MAAM2U,UAAUhoB,WAAWgoB,IACvB,YAApBA,EAAUkB,QACVmS,GAAoB,MAM5B,OAAQF,EAAQ5yB,QAGX1K,MAAK,KACN6F,EAAa3D,iBAEZuc,OAAOva,IACR2B,EAAa3D,cACNqB,QAAQmG,OAAOxF,MAErBlE,MAAK,KACN,IAAKw9B,EAGD,OAAOJ,GAAenoB,EAAIooB,EAAcnE,EAAavO,OAKrE,MAAMjgB,EAGNoC,iBACI,IACQmI,EAAGO,MAAMC,mBACL8f,UACMngB,GAAKH,EAAIooB,EAAcnE,EAAavO,SAMxCsP,GAAkBhlB,EA30DZ,oBA20DqC,SAAS,IAAMG,GAAKH,EAAIooB,EAAcnE,EAAavO,KAExGwS,GAAanN,OAAO/a,GACpBjT,QAAQC,MAAM,aAElB,MAAOiC,GAGH,MAFAi5B,GAAanN,OAAO/a,GACpBjT,QAAQkC,MAAM,gCAAiCA,GACzCA,GArBEu5B,GAEhB,OADAN,GAAa7b,IAAIrM,EAAI,CAAEvK,QAAAA,EAAS6yB,KAA8E,UAAvE5S,MAAAA,OAAyC,EAASA,EAAQzV,WAC1FxK,EA4BX,SAASgzB,GAAgBzoB,EAAIooB,EAAcnE,GACvC,IAAIyE,EAA6B,KAG7B1R,EAAc,CAAEC,WAAW,GAC/B,SAAS0R,EAAa1oB,EAAS2oB,EAAW,GAGtC95B,YAAW,KACPq5B,GAAenoB,EAAIooB,EAAcnE,EAAa,CAC1CjN,YAAAA,EACAiB,8BAA8B,EAC9BhY,QAAAA,IACDuJ,OAAOnZ,IACNtD,QAAQkC,MAAM,4BAA6BoB,GACvC2mB,EAAYC,UACZ4R,IAEKD,EAAW,GAIhB95B,YAAW,IAAM65B,EAAa1oB,EAAS2oB,EAAW,IA7gBtD,IA6gB0D,CAAC,EAAG,EAAG,IAAIA,SAG1E,GAEP,MAcMC,EAAO,KACT97B,QAAQC,MAAM,4BACdgqB,EAAYC,WAAY,EACpByR,GACAA,EAA2Bz7B,eAEnC,MAAO,CACH67B,MArBU,KAGV/7B,QAAQC,MAAM,2BAA4BgT,EAAGS,eAAmB,IAChEioB,EAA6B1oB,EAAGS,eAAevT,WAAU,EAAG+S,QAAAA,MACxD,IACI0oB,EAAa1oB,GAAW,QAE5B,MAAOpR,GACH9B,QAAQkC,MAAM,eAAgBJ,QAatCg6B,KAAAA,GAIR,SAASE,GAAwBpmB,EAAQ+S,GACrC,GAAI/S,GAAU+S,GACNA,EAAQsT,eACR,IAAK,MAAMhmB,KAAa0S,EAAQsT,eACxBrmB,EAAOK,KACPL,EAAOK,GAAWJ,eAAgB,GAuBtD,IAAI8O,GAAEuX,GAAIC,GAAIC,GAAIC,GAAI,GAAGC,GAAI,GAAGC,GAAI,oEAAoE,SAASC,GAAI7X,EAAEpN,GAAG,IAAI,IAAI0N,KAAK1N,EAAEoN,EAAEM,GAAG1N,EAAE0N,GAAG,OAAON,EAAE,SAAS8X,GAAI9X,GAAG,IAAIpN,EAAEoN,EAAE+X,WAAWnlB,GAAGA,EAAEolB,YAAYhY,GAAI,SAASiY,GAAIjY,EAAEpN,EAAE0N,GAAG,IAAIriB,EAAEoiB,EAAEJ,EAAEE,EAAE3f,UAAUmf,EAAE,GAAG,IAAIM,KAAKrN,EAAE,OAAOqN,EAAEhiB,EAAE2U,EAAEqN,GAAG,OAAOA,EAAEI,EAAEzN,EAAEqN,GAAGN,EAAEM,GAAGrN,EAAEqN,GAAG,GAAGzf,UAAU9C,OAAO,EAAE,IAAI4iB,EAAE,CAACA,GAAGL,EAAE,EAAEA,EAAEzf,UAAU9C,OAAOuiB,IAAIK,EAAEvhB,KAAKohB,EAAEF,IAAI,GAAG,MAAMK,IAAIX,EAAEuY,SAAS5X,GAAG,mBAAmBN,GAAG,MAAMA,EAAEmY,aAAa,IAAIlY,KAAKD,EAAEmY,kBAAa,IAASxY,EAAEM,KAAKN,EAAEM,GAAGD,EAAEmY,aAAalY,IAAI,OAAOmY,GAAIpY,EAAEL,EAAE1hB,EAAEoiB,EAAE,MAAM,SAAS+X,GAAIxlB,EAAE0N,EAAEriB,EAAEoiB,EAAEJ,GAAG,IAAIE,EAAE,CAACxmB,KAAKiZ,EAAEylB,MAAM/X,EAAEvU,IAAI9N,EAAEq6B,IAAIjY,EAAEkY,IAAI,KAAKn8B,GAAG,KAAKo8B,IAAI,EAAEC,IAAI,KAAKC,SAAI,EAAOC,IAAI,KAAKC,IAAI,KAAKv8B,iBAAY,EAAOw8B,IAAI,MAAM5Y,IAAID,GAAE6Y,IAAI5Y,GAAG,OAAO,MAAMD,GAAE8Y,OAAO9Y,GAAE8Y,MAAM3Y,GAAGA,EAAE,SAASrU,GAAEkU,GAAG,OAAOA,EAAEkY,SAAS,SAASa,GAAI/Y,EAAEpN,GAAGtY,KAAK+9B,MAAMrY,EAAE1lB,KAAK2G,QAAQ2R,EAAG,SAASomB,GAAIhZ,EAAEpN,GAAG,GAAG,MAAMA,EAAE,OAAOoN,EAAE5jB,GAAG48B,GAAIhZ,EAAE5jB,GAAG4jB,EAAE5jB,GAAGm8B,IAAIl5B,QAAQ2gB,GAAG,GAAG,KAAK,IAAI,IAAIM,EAAE1N,EAAEoN,EAAEuY,IAAI76B,OAAOkV,IAAI,GAAG,OAAO0N,EAAEN,EAAEuY,IAAI3lB,KAAK,MAAM0N,EAAEmY,IAAI,OAAOnY,EAAEmY,IAAI,MAAO,mBAAmBzY,EAAErmB,KAAKq/B,GAAIhZ,GAAG,KAAK,SAASrD,GAAEqD,GAAG,IAAIpN,EAAE0N,EAAE,GAAG,OAAON,EAAEA,EAAE5jB,KAAK,MAAM4jB,EAAE2Y,IAAI,CAAC,IAAI3Y,EAAEyY,IAAIzY,EAAE2Y,IAAIM,KAAK,KAAKrmB,EAAE,EAAEA,EAAEoN,EAAEuY,IAAI76B,OAAOkV,IAAI,GAAG,OAAO0N,EAAEN,EAAEuY,IAAI3lB,KAAK,MAAM0N,EAAEmY,IAAI,CAACzY,EAAEyY,IAAIzY,EAAE2Y,IAAIM,KAAK3Y,EAAEmY,IAAI,MAAM,OAAO9b,GAAEqD,IAAI,SAASkZ,GAAItmB,KAAKA,EAAE8lB,MAAM9lB,EAAE8lB,KAAI,IAAKnB,GAAIx4B,KAAK6T,KAAKumB,GAAIC,OAAO3B,KAAMzX,GAAEqZ,sBAAsB5B,GAAIzX,GAAEqZ,oBAAoB7B,IAAK2B,IAAM,SAASA,KAAM,IAAI,IAAInZ,EAAEmZ,GAAIC,IAAI7B,GAAI75B,QAAQsiB,EAAEuX,GAAIhnB,MAAK,SAASyP,EAAEpN,GAAG,OAAOoN,EAAE6Y,IAAIL,IAAI5lB,EAAEimB,IAAIL,OAAMjB,GAAI,GAAGvX,EAAEzM,MAAK,SAASyM,GAAG,IAAIpN,EAAE0N,EAAEriB,EAAEoiB,EAAEJ,EAAEE,EAAEH,EAAE0Y,MAAMzY,GAAGI,GAAGzN,EAAEoN,GAAG6Y,KAAKJ,KAAKtY,EAAEvN,EAAE0mB,OAAOhZ,EAAE,IAAIriB,EAAE45B,GAAI,GAAGxX,IAAIwY,IAAIxY,EAAEwY,IAAI,EAAEpa,GAAE0B,EAAEE,EAAEpiB,EAAE2U,EAAE2mB,SAAI,IAASpZ,EAAEqZ,gBAAgB,MAAMnZ,EAAEuY,IAAI,CAAC3Y,GAAG,KAAKK,EAAE,MAAML,EAAE+Y,GAAI3Y,GAAGJ,EAAEI,EAAEuY,KAAKxZ,GAAEkB,EAAED,GAAGA,EAAEoY,KAAKxY,GAAGtD,GAAE0D,QAAS,SAASoZ,GAAIzZ,EAAEpN,EAAE0N,EAAEriB,EAAEoiB,EAAEJ,EAAEthB,EAAEib,EAAEwG,EAAE7X,GAAG,IAAIsX,EAAE5jB,EAAE0gB,EAAEnD,EAAE3d,EAAEkkB,EAAEQ,EAAEtC,EAAEhgB,GAAGA,EAAEs6B,KAAKZ,GAAI3Y,EAAEf,EAAEvgB,OAAO,IAAI4iB,EAAEiY,IAAI,GAAG1Y,EAAE,EAAEA,EAAEjN,EAAElV,OAAOmiB,IAAI,GAAG,OAAOrG,EAAE8G,EAAEiY,IAAI1Y,GAAG,OAAOrG,EAAE5G,EAAEiN,KAAK,kBAAkBrG,EAAE,KAAK,iBAAiBA,GAAG,iBAAiBA,GAAG,iBAAiBA,EAAE4e,GAAI,KAAK5e,EAAE,KAAK,KAAKA,GAAGxd,MAAMyB,QAAQ+b,GAAG4e,GAAItsB,GAAE,CAACosB,SAAS1e,GAAG,KAAK,KAAK,MAAMA,EAAEgf,IAAI,EAAEJ,GAAI5e,EAAE7f,KAAK6f,EAAE6e,MAAM7e,EAAEzN,IAAI,KAAKyN,EAAEqf,KAAKrf,GAAG,CAAC,GAAGA,EAAEpd,GAAGkkB,EAAE9G,EAAEgf,IAAIlY,EAAEkY,IAAI,EAAE,QAAQ7b,EAAEsB,EAAE4B,KAAKlD,GAAGnD,EAAEzN,KAAK4Q,EAAE5Q,KAAKyN,EAAE7f,OAAOgjB,EAAEhjB,KAAKskB,EAAE4B,QAAG,OAAY,IAAI5jB,EAAE,EAAEA,EAAE+iB,EAAE/iB,IAAI,CAAC,IAAI0gB,EAAEsB,EAAEhiB,KAAKud,EAAEzN,KAAK4Q,EAAE5Q,KAAKyN,EAAE7f,OAAOgjB,EAAEhjB,KAAK,CAACskB,EAAEhiB,QAAG,EAAO,MAAM0gB,EAAE,KAAM8B,GAAEuB,EAAExG,EAAEmD,EAAEA,GAAG+a,GAAIrX,EAAEJ,EAAEthB,EAAEib,EAAEwG,EAAE7X,GAAG1M,EAAE2d,EAAEif,KAAKx8B,EAAEud,EAAE8e,MAAM3b,EAAE2b,KAAKr8B,IAAIskB,IAAIA,EAAE,IAAI5D,EAAE2b,KAAK/X,EAAExhB,KAAK4d,EAAE2b,IAAI,KAAK9e,GAAG+G,EAAExhB,KAAK9C,EAAEud,EAAEmf,KAAK98B,EAAE2d,IAAI,MAAM3d,GAAG,MAAMkkB,IAAIA,EAAElkB,GAAG,mBAAmB2d,EAAE7f,MAAM,MAAM6f,EAAE+e,KAAK/e,EAAE+e,MAAM5b,EAAE4b,IAAI/e,EAAEkf,IAAItY,EAAEsZ,GAAIlgB,EAAE4G,EAAEJ,GAAGI,EAAEuZ,GAAI3Z,EAAExG,EAAEmD,EAAEsB,EAAEpiB,EAAEukB,GAAG7X,GAAG,WAAW+X,EAAE3mB,KAAK,mBAAmB2mB,EAAE3mB,OAAO2mB,EAAEoY,IAAItY,GAAGJ,EAAEjjB,MAAM,IAAIqjB,GAAGzD,EAAE8b,KAAKrY,GAAGA,EAAE2X,YAAY/X,IAAII,EAAE4Y,GAAIrc,IAAK,IAAI2D,EAAEmY,IAAI1Y,EAAEF,EAAEb,EAAEa,KAAK,MAAM5B,EAAE4B,KAAK,mBAAmBS,EAAE3mB,MAAM,MAAMskB,EAAE4B,GAAG4Y,KAAKxa,EAAE4B,GAAG4Y,KAAKnY,EAAEoY,MAAMpY,EAAEoY,IAAIM,GAAI/6B,EAAE4hB,EAAE,IAAIjB,GAAEX,EAAE4B,GAAG5B,EAAE4B,KAAK,GAAGU,EAAE,IAAIV,EAAE,EAAEA,EAAEU,EAAE7iB,OAAOmiB,IAAIW,GAAED,EAAEV,GAAGU,IAAIV,GAAGU,IAAIV,IAAK,SAAS6Z,GAAI1Z,EAAEpN,EAAE0N,GAAG,IAAIriB,EAAEoiB,EAAE,IAAIpiB,EAAE,EAAEA,EAAE+hB,EAAEuY,IAAI76B,OAAOO,KAAKoiB,EAAEL,EAAEuY,IAAIt6B,MAAMoiB,EAAEjkB,GAAG4jB,EAAEpN,EAAE,mBAAmByN,EAAE1mB,KAAK+/B,GAAIrZ,EAAEzN,EAAE0N,GAAGqZ,GAAIrZ,EAAED,EAAEA,EAAEL,EAAEuY,IAAIlY,EAAEoY,IAAI7lB,IAAI,OAAOA,EAAE,SAAS+mB,GAAI3Z,EAAEpN,EAAE0N,EAAEriB,EAAEoiB,EAAEJ,GAAG,IAAIE,EAAER,EAAEhhB,EAAE,QAAG,IAASiU,EAAE8lB,IAAIvY,EAAEvN,EAAE8lB,IAAI9lB,EAAE8lB,SAAI,OAAY,GAAG,MAAMpY,GAAGD,GAAGJ,GAAG,MAAMI,EAAE0X,WAAW/X,EAAE,GAAG,MAAMC,GAAGA,EAAE8X,aAAa/X,EAAEA,EAAE4Z,YAAYvZ,GAAGF,EAAE,SAAU,CAAC,IAAIR,EAAEM,EAAEthB,EAAE,GAAGghB,EAAEA,EAAEka,cAAcl7B,EAAEV,EAAEP,OAAOiB,GAAG,EAAE,GAAGghB,GAAGU,EAAE,MAAML,EAAEA,EAAE8Z,aAAazZ,EAAEJ,GAAGE,EAAEF,EAAG,YAAO,IAASE,EAAEA,EAAEE,EAAEwZ,YAAwO,SAAS7a,GAAEgB,EAAEpN,EAAE0N,GAAG,MAAM1N,EAAE,GAAGoN,EAAE+Z,YAAYnnB,EAAE0N,GAAGN,EAAEpN,GAAG,MAAM0N,EAAE,GAAG,iBAAiBA,GAAGsX,GAAIliB,KAAK9C,GAAG0N,EAAEA,EAAE,KAAM,SAASnC,GAAE6B,EAAEpN,EAAE0N,EAAEriB,EAAEoiB,GAAG,IAAIJ,EAAED,EAAE,GAAG,UAAUpN,EAAE,GAAG,iBAAiB0N,EAAEN,EAAEga,MAAMC,QAAQ3Z,MAAO,CAAC,GAAG,iBAAiBriB,IAAI+hB,EAAEga,MAAMC,QAAQh8B,EAAE,IAAIA,EAAE,IAAI2U,KAAK3U,EAAEqiB,GAAG1N,KAAK0N,GAAGtB,GAAEgB,EAAEga,MAAMpnB,EAAE,IAAI,GAAG0N,EAAE,IAAI1N,KAAK0N,EAAEriB,GAAGqiB,EAAE1N,KAAK3U,EAAE2U,IAAIoM,GAAEgB,EAAEga,MAAMpnB,EAAE0N,EAAE1N,SAAU,GAAG,MAAMA,EAAE,IAAI,MAAMA,EAAE,GAAGqN,EAAErN,KAAKA,EAAEA,EAAEyG,QAAQ,WAAW,KAAKzG,EAAEA,EAAEggB,gBAAgB5S,EAAEpN,EAAEggB,cAAcrY,MAAM,GAAG3H,EAAE2H,MAAM,GAAGyF,EAAEpN,IAAIoN,EAAEpN,EAAE,IAAIoN,EAAEpN,EAAEA,EAAEqN,GAAGK,EAAEA,EAAEriB,GAAG+hB,EAAEzmB,iBAAiBqZ,EAAEqN,EAAEzB,GAAE0b,GAAEja,GAAGD,EAAEtlB,oBAAoBkY,EAAEqN,EAAEzB,GAAE0b,GAAEja,QAAQ,GAAG,4BAA4BrN,EAAE,CAAC,GAAGyN,EAAEzN,EAAEA,EAAEyG,QAAQ,aAAa,KAAKA,QAAQ,SAAS,UAAU,GAAG,SAASzG,GAAG,SAASA,GAAG,SAASA,GAAG,aAAaA,GAAG,aAAaA,GAAGA,KAAKoN,EAAE,IAAIA,EAAEpN,GAAG,MAAM0N,EAAE,GAAGA,EAAE,MAAMN,EAAE,MAAMA,IAAI,mBAAmBM,IAAI,MAAMA,KAAI,IAAKA,GAAG,MAAM1N,EAAE,IAAI,MAAMA,EAAE,IAAIoN,EAAEma,aAAavnB,EAAE0N,GAAGN,EAAEoa,gBAAgBxnB,KAAM,SAASsnB,GAAEtnB,GAAGtY,KAAKsY,EAAEA,EAAEjZ,MAAK,GAAIqmB,GAAE2L,MAAM3L,GAAE2L,MAAM/Y,GAAGA,GAAI,SAAS4L,GAAE5L,GAAGtY,KAAKsY,EAAEA,EAAEjZ,MAAK,GAAIqmB,GAAE2L,MAAM3L,GAAE2L,MAAM/Y,GAAGA,GAAI,SAAS6L,GAAE7L,EAAE0N,EAAEriB,EAAEoiB,EAAEJ,EAAEE,EAAER,EAAEhhB,EAAEyhB,GAAG,IAAI7X,EAAEmT,EAAEmE,EAAEjkB,EAAE+gB,EAAEnD,EAAE3d,EAAE+jB,EAAEW,EAAE9jB,EAAEwhB,EAAEe,EAAEsB,EAAE3mB,KAAK,QAAG,IAAS2mB,EAAEjkB,YAAY,OAAO,KAAK,MAAM4B,EAAE26B,MAAMxY,EAAEniB,EAAE26B,IAAIj6B,EAAE2hB,EAAEmY,IAAIx6B,EAAEw6B,IAAInY,EAAEsY,IAAI,KAAKzY,EAAE,CAACxhB,KAAK4J,EAAEyX,GAAEwY,MAAMjwB,EAAE+X,GAAG,IAAIN,EAAE,GAAG,mBAAmBhB,EAAE,CAAC,GAAGY,EAAEU,EAAE+X,MAAM9X,GAAGhY,EAAEyW,EAAEqb,cAAcha,EAAE9X,EAAEowB,KAAKl8B,EAAE8L,EAAEgY,EAAEA,EAAE8X,MAAMt7B,MAAMwL,EAAEnM,GAAGikB,EAAEpiB,EAAE06B,IAAI98B,GAAG6f,EAAE4E,EAAEqY,IAAI16B,EAAE06B,KAAKv8B,GAAGsf,EAAE4e,KAAK,cAActb,GAAGA,EAAE1iB,UAAUi+B,OAAOja,EAAEqY,IAAIjd,EAAE,IAAIsD,EAAEY,EAAEnjB,IAAI6jB,EAAEqY,IAAIjd,EAAE,IAAIqd,GAAInZ,EAAEnjB,GAAGif,EAAErf,YAAY2iB,EAAEtD,EAAE6e,OAAO1b,IAAG0B,GAAGA,EAAE/nB,IAAIkjB,GAAGA,EAAE2c,MAAMzY,EAAElE,EAAEvW,QAAQuW,EAAEvW,MAAM,IAAIuW,EAAEza,QAAQxE,EAAEif,EAAE6d,IAAIlZ,EAAER,EAAEnE,EAAEgd,KAAI,EAAGhd,EAAEkd,IAAI,IAAI,MAAMld,EAAE8e,MAAM9e,EAAE8e,IAAI9e,EAAEvW,OAAO,MAAM6Z,EAAEyb,2BAA2B/e,EAAE8e,KAAK9e,EAAEvW,QAAQuW,EAAE8e,IAAI3C,GAAI,GAAGnc,EAAE8e,MAAM3C,GAAInc,EAAE8e,IAAIxb,EAAEyb,yBAAyB7a,EAAElE,EAAE8e,OAAO5+B,EAAE8f,EAAE2c,MAAM1b,EAAEjB,EAAEvW,MAAM0a,EAAE,MAAMb,EAAEyb,0BAA0B,MAAM/e,EAAEgf,oBAAoBhf,EAAEgf,qBAAqB,MAAMhf,EAAEif,mBAAmBjf,EAAEkd,IAAI75B,KAAK2c,EAAEif,uBAAwB,CAAC,GAAG,MAAM3b,EAAEyb,0BAA0B7a,IAAIhkB,GAAG,MAAM8f,EAAEkf,2BAA2Blf,EAAEkf,0BAA0Bhb,EAAEnjB,IAAIif,EAAE+c,KAAK,MAAM/c,EAAEmf,wBAAuB,IAAKnf,EAAEmf,sBAAsBjb,EAAElE,EAAE8e,IAAI/9B,IAAI6jB,EAAEuY,MAAM56B,EAAE46B,IAAI,CAACnd,EAAE2c,MAAMzY,EAAElE,EAAEvW,MAAMuW,EAAE8e,IAAIla,EAAEuY,MAAM56B,EAAE46B,MAAMnd,EAAEgd,KAAI,GAAIhd,EAAEmd,IAAIvY,EAAEA,EAAEmY,IAAIx6B,EAAEw6B,IAAInY,EAAEiY,IAAIt6B,EAAEs6B,IAAIjY,EAAEiY,IAAIx+B,SAAQ,SAASimB,GAAGA,IAAIA,EAAE5jB,GAAGkkB,MAAM5E,EAAEkd,IAAIl7B,QAAQiiB,EAAE5gB,KAAK2c,GAAG,MAAMsE,EAAE,MAAMtE,EAAEof,qBAAqBpf,EAAEof,oBAAoBlb,EAAElE,EAAE8e,IAAI/9B,GAAG,MAAMif,EAAEqf,oBAAoBrf,EAAEkd,IAAI75B,MAAK,WAAW2c,EAAEqf,mBAAmBn/B,EAAE+gB,EAAEnD,MAAOkC,EAAEza,QAAQxE,EAAEif,EAAE2c,MAAMzY,EAAElE,EAAEvW,MAAMuW,EAAE8e,KAAKjyB,EAAEyX,GAAEoZ,MAAM7wB,EAAE+X,GAAG5E,EAAEgd,KAAI,EAAGhd,EAAEmd,IAAIvY,EAAE5E,EAAE4d,IAAI1mB,EAAErK,EAAEmT,EAAE6e,OAAO7e,EAAE2c,MAAM3c,EAAEvW,MAAMuW,EAAEza,SAASya,EAAEvW,MAAMuW,EAAE8e,IAAI,MAAM9e,EAAEsf,kBAAkB3a,EAAEwX,GAAIA,GAAI,GAAGxX,GAAG3E,EAAEsf,oBAAoBnb,GAAG,MAAMnE,EAAEuf,0BAA0BzhB,EAAEkC,EAAEuf,wBAAwBr/B,EAAE+gB,IAAIsB,EAAE,MAAM1V,GAAGA,EAAE5O,OAAOmS,IAAG,MAAMvD,EAAEwD,IAAIxD,EAAE8vB,MAAMH,SAAS3vB,EAAEkxB,GAAI7mB,EAAE5W,MAAMyB,QAAQwgB,GAAGA,EAAE,CAACA,GAAGqC,EAAEriB,EAAEoiB,EAAEJ,EAAEE,EAAER,EAAEhhB,EAAEyhB,GAAG1E,EAAEud,KAAK3Y,EAAEmY,IAAInY,EAAEsY,IAAI,KAAKld,EAAEkd,IAAIl7B,QAAQiiB,EAAE5gB,KAAK2c,GAAG7f,IAAI6f,EAAE4e,IAAI5e,EAAEtf,GAAG,MAAMsf,EAAE+c,KAAI,OAAS,MAAMtY,GAAGG,EAAEuY,MAAM56B,EAAE46B,KAAKvY,EAAEiY,IAAIt6B,EAAEs6B,IAAIjY,EAAEmY,IAAIx6B,EAAEw6B,KAAKnY,EAAEmY,IAAIyC,GAAIj9B,EAAEw6B,IAAInY,EAAEriB,EAAEoiB,EAAEJ,EAAEE,EAAER,EAAES,IAAI7X,EAAEyX,GAAEmb,SAAS5yB,EAAE+X,GAAI,MAAM1N,GAAG0N,EAAEuY,IAAI,MAAMzY,GAAG,MAAMD,KAAKG,EAAEmY,IAAI95B,EAAE2hB,EAAEsY,MAAMxY,EAAED,EAAEA,EAAE9gB,QAAQV,IAAI,MAAMqhB,GAAEyY,IAAI7lB,EAAE0N,EAAEriB,IAAK,SAASmhB,GAAExM,EAAE0N,GAAGN,GAAE2Y,KAAK3Y,GAAE2Y,IAAIrY,EAAE1N,GAAGA,EAAEW,MAAK,SAAS+M,GAAG,IAAI1N,EAAE0N,EAAEsY,IAAItY,EAAEsY,IAAI,GAAGhmB,EAAEW,MAAK,SAASyM,GAAGA,EAAEjiB,KAAKuiB,MAAO,MAAM1N,GAAGoN,GAAEyY,IAAI7lB,EAAE0N,EAAEuY,SAAU,SAASqC,GAAIlb,EAAEpN,EAAE0N,EAAEriB,EAAEoiB,EAAEJ,EAAEthB,EAAEib,GAAG,IAAIrR,EAAEmT,EAAEmE,EAAE/T,EAAE7P,EAAEqkB,EAAE+X,MAAMz8B,EAAEgX,EAAEylB,MAAM1b,EAAE/J,EAAEjZ,KAAK6f,EAAE,EAAE,GAAG,QAAQmD,IAAI0D,GAAE,GAAI,MAAMJ,EAAE,KAAKzG,EAAEyG,EAAEviB,OAAO8b,IAAI,IAAIjR,EAAE0X,EAAEzG,MAAMjR,IAAIyX,IAAIrD,EAAEpU,EAAE6yB,WAAWze,EAAE,GAAGpU,EAAE8yB,WAAW,CAACrb,EAAEzX,EAAE0X,EAAEzG,GAAG,KAAK,MAAM,GAAG,MAAMwG,EAAE,CAAC,GAAG,OAAOrD,EAAE,OAAO1jB,SAASqiC,eAAe1/B,GAAGokB,EAAEK,EAAEpnB,SAASsiC,gBAAgB,6BAA6B5e,GAAG1jB,SAASuiC,cAAc7e,EAAE/gB,EAAE6/B,IAAI7/B,GAAGqkB,EAAE,KAAKrG,GAAE,EAAI,GAAG,OAAO+C,EAAE1gB,IAAIL,GAAGge,GAAGoG,EAAEtmB,OAAOkC,IAAIokB,EAAEtmB,KAAKkC,OAAQ,CAAC,GAAGqkB,EAAEA,GAAG0X,GAAIpd,MAAMxc,KAAKiiB,EAAE0b,YAAYhgB,GAAGzf,EAAEqkB,EAAE+X,OAAOX,IAAKiE,wBAAwB9b,EAAEjkB,EAAE+/B,yBAAyB/hB,EAAE,CAAC,GAAG,MAAMqG,EAAE,IAAIhkB,EAAE,GAAG6P,EAAE,EAAEA,EAAEkU,EAAE4b,WAAWl+B,OAAOoO,IAAI7P,EAAE+jB,EAAE4b,WAAW9vB,GAAGxT,MAAM0nB,EAAE4b,WAAW9vB,GAAG/O,OAAO8iB,GAAGnE,KAAKmE,IAAInE,GAAGmE,EAAEgc,QAAQngB,EAAEmgB,QAAQhc,EAAEgc,SAAS7b,EAAE8b,aAAa9b,EAAE8b,UAAUjc,GAAGA,EAAEgc,QAAQ,KAAM,GAA37H,SAAW7b,EAAEpN,EAAE0N,EAAEriB,EAAEoiB,GAAG,IAAIJ,EAAE,IAAIA,KAAKK,EAAE,aAAaL,GAAG,QAAQA,GAAGA,KAAKrN,GAAGuL,GAAE6B,EAAEC,EAAE,KAAKK,EAAEL,GAAGhiB,GAAG,IAAIgiB,KAAKrN,EAAEyN,GAAG,mBAAmBzN,EAAEqN,IAAI,aAAaA,GAAG,QAAQA,GAAG,UAAUA,GAAG,YAAYA,GAAGK,EAAEL,KAAKrN,EAAEqN,IAAI9B,GAAE6B,EAAEC,EAAErN,EAAEqN,GAAGK,EAAEL,GAAGhiB,GAAsuHggB,CAAE+B,EAAEpkB,EAAEK,EAAEokB,EAAEzG,GAAGiG,EAAEjN,EAAE2lB,IAAI,QAAQ,GAAG/e,EAAE5G,EAAEylB,MAAMH,SAASuB,GAAIzZ,EAAEhkB,MAAMyB,QAAQ+b,GAAGA,EAAE,CAACA,GAAG5G,EAAE0N,EAAEriB,EAAEoiB,GAAG,kBAAkB1D,EAAEsD,EAAEthB,EAAEqhB,EAAE+b,WAAWniB,GAAG,MAAMqG,EAAE,IAAIzG,EAAEyG,EAAEviB,OAAO8b,KAAK,MAAMyG,EAAEzG,IAAIse,GAAI7X,EAAEzG,IAAII,IAAI,UAAUhe,QAAG,KAAU4d,EAAE5d,EAAEmB,SAASyc,IAAIwG,EAAEjjB,OAAO,aAAa4f,IAAInD,IAAI2E,GAAE6B,EAAE,QAAQxG,EAAEvd,EAAEc,OAAM,GAAI,YAAYnB,QAAG,KAAU4d,EAAE5d,EAAEogC,UAAUxiB,IAAIwG,EAAEgc,SAAS7d,GAAE6B,EAAE,UAAUxG,EAAEvd,EAAE+/B,SAAQ,IAAM,OAAOhc,EAAE,SAASQ,GAAE5N,EAAE0N,EAAEriB,GAAG,IAAI,mBAAmB2U,EAAEA,EAAE0N,GAAG1N,EAAEqpB,QAAQ3b,EAAG,MAAM1N,GAAGoN,GAAEyY,IAAI7lB,EAAE3U,IAAK,SAAS2gB,GAAEhM,EAAE0N,EAAEriB,GAAG,IAAIoiB,EAAEJ,EAAEE,EAAE,GAAGH,GAAEkc,SAASlc,GAAEkc,QAAQtpB,IAAIyN,EAAEzN,EAAE0lB,OAAOjY,EAAE4b,SAAS5b,EAAE4b,UAAUrpB,EAAE6lB,KAAKjY,GAAEH,EAAE,KAAKC,IAAIriB,GAAG,mBAAmB2U,EAAEjZ,OAAOsE,EAAE,OAAOgiB,EAAErN,EAAE6lB,MAAM7lB,EAAE6lB,IAAI7lB,EAAE8lB,SAAI,EAAO,OAAOrY,EAAEzN,EAAE+lB,KAAK,CAAC,GAAGtY,EAAE8b,qBAAqB,IAAI9b,EAAE8b,uBAAwB,MAAMvpB,GAAGoN,GAAEyY,IAAI7lB,EAAE0N,GAAID,EAAE4Y,KAAK5Y,EAAEiZ,IAAI,KAAM,GAAGjZ,EAAEzN,EAAE2lB,IAAI,IAAIpY,EAAE,EAAEA,EAAEE,EAAE3iB,OAAOyiB,IAAIE,EAAEF,IAAIvB,GAAEyB,EAAEF,GAAGG,EAAEriB,GAAG,MAAMgiB,GAAG6X,GAAI7X,GAAI,SAASpB,GAAEmB,EAAEpN,EAAE0N,GAAG,OAAOhmB,KAAK+B,YAAY2jB,EAAEM,GAAyRN,GAAE,CAACyY,IAAI,SAASzY,EAAEpN,GAAG,IAAI,IAAI0N,EAAEriB,EAAEoiB,EAAEzN,EAAEA,EAAExW,IAAI,IAAIkkB,EAAE1N,EAAE+lB,OAAOrY,EAAElkB,GAAG,IAAI,IAAI6B,EAAEqiB,EAAEjkB,cAAc,MAAM4B,EAAEm+B,2BAA2B9b,EAAE+b,SAASp+B,EAAEm+B,yBAAyBpc,IAAIK,EAAEC,EAAEoY,KAAK,MAAMpY,EAAEgc,oBAAoBhc,EAAEgc,kBAAkBtc,GAAGK,EAAEC,EAAEoY,KAAKrY,EAAE,OAAOC,EAAEga,IAAIha,EAAE,MAAM1N,GAAGoN,EAAEpN,EAAG,MAAMoN,GAAG6Y,IAAI,GAAGE,GAAIz8B,UAAU+/B,SAAS,SAASrc,EAAEpN,GAAG,IAAI0N,EAAEA,EAAE,MAAMhmB,KAAKkgC,KAAKlgC,KAAKkgC,MAAMlgC,KAAK6K,MAAM7K,KAAKkgC,IAAIlgC,KAAKkgC,IAAI3C,GAAI,GAAGv9B,KAAK6K,OAAO,mBAAmB6a,IAAIA,EAAEA,EAAE6X,GAAI,GAAGvX,GAAGhmB,KAAK+9B,QAAQrY,GAAG6X,GAAIvX,EAAEN,GAAG,MAAMA,GAAG1lB,KAAKu+B,MAAMjmB,GAAGtY,KAAKs+B,IAAI75B,KAAK6T,GAAGsmB,GAAI5+B,QAASy+B,GAAIz8B,UAAUigC,YAAY,SAASvc,GAAG1lB,KAAKu+B,MAAMv+B,KAAKm+B,KAAI,EAAGzY,GAAG1lB,KAAKs+B,IAAI75B,KAAKihB,GAAGkZ,GAAI5+B,QAASy+B,GAAIz8B,UAAUi+B,OAAOzuB,GAAEyrB,GAAI,GAAGC,GAAI,mBAAmB56B,QAAQA,QAAQN,UAAUjD,KAAK6H,KAAKtE,QAAQkG,WAAW1F,WAAW+7B,GAAIC,IAAI,EAEr3R,MAAMoD,GAAS,CACXx/B,MAAO,CACHy/B,MAAO,OAEXC,MAAO,CACHn/B,MAAO,CACHk/B,MAAO,OAEXE,QAAS,CACLF,MAAO,UAEXG,KAAM,CACFH,MAAO,UAGfI,OAAQ,CACJC,SAAU,QACVC,IAAK,EACLC,KAAM,EACNC,QAAS,GACTC,gBAAiB,OACjBC,MAAO,QACPC,OAAQ,QACRC,OAAQ,IACRC,qBAAsB,YACtBC,eAAgB,aAEpBC,YAAa,CACTV,SAAU,QACVC,IAAK,EACLC,KAAM,EACNG,MAAO,QACPC,OAAQ,QACRC,OAAQ,IACRI,WAAY,SACZC,QAAS,OACTC,eAAgB,UAEpBC,YAAa,CACTd,SAAU,WACVL,MAAO,OACPS,gBAAiB,OACjBW,QAAS,OACTC,aAAc,MACdC,SAAU,MACVC,UAAW,MACXC,UAAW,OACXC,OAAQ,oBACRC,aAAc,MACdC,UAAW,qBACXjB,MAAO,QAEXkB,MAAO,CACHjB,OAAQ,OACRD,MAAO,OACPmB,YAAa,QACbC,QAAS,OACTC,SAAU,OACVX,QAAS,QAIjB,SAASY,IAAOvG,SAAEA,IACd,OAAQD,GAAI,MAAO,KACfA,GAAI,MAAO,CAAE+B,MAAOwC,GAAOK,SAC3B5E,GAAI,MAAO,CAAE+B,MAAOwC,GAAOgB,aACvBvF,GAAI,MAAO,CAAE+B,MAAOwC,GAAOoB,aAAe1F,KAGtD,IAAI7X,GAAEC,GAAEH,GAAEF,GAAE,EAAEhiB,GAAE,GAAG2b,GAAEoG,GAAEwY,IAAI7Y,GAAEK,GAAEoZ,IAAIz6B,GAAEqhB,GAAEmb,OAAO5yB,GAAEyX,GAAE2Y,IAAIjd,GAAEsE,GAAEkc,QAAQ,SAASnc,GAAEM,EAAEF,GAAGH,GAAE4Y,KAAK5Y,GAAE4Y,IAAItY,GAAED,EAAEJ,IAAGE,GAAGF,GAAE,EAAE,IAAIhiB,EAAEqiB,GAAEoe,MAAMpe,GAAEoe,IAAI,CAACtiC,GAAG,GAAGw8B,IAAI,KAAK,OAAOvY,GAAGpiB,EAAE7B,GAAGsB,QAAQO,EAAE7B,GAAG2C,KAAK,IAAId,EAAE7B,GAAGikB,GAAG,SAASzN,GAAEoN,GAAG,OAAOC,GAAE,EAAS,SAAWD,EAAEG,EAAEF,GAAG,IAAIhiB,EAAE8hB,GAAEM,KAAI,GAAG,OAAOpiB,EAAEoiB,EAAEL,EAAE/hB,EAAE06B,MAAM16B,EAAE7B,GAAG,CAAC6jB,EAAEA,EAAEE,GAAGI,QAAE,EAAOJ,GAAG,SAASH,GAAG,IAAIK,EAAEpiB,EAAEoiB,EAAEpiB,EAAE7B,GAAG,GAAG4jB,GAAG/hB,EAAE7B,GAAG,KAAKikB,IAAIpiB,EAAE7B,GAAG,CAACikB,EAAEpiB,EAAE7B,GAAG,IAAI6B,EAAE06B,IAAI0D,SAAS,OAAQp+B,EAAE06B,IAAIrY,IAAGriB,EAAE7B,GAAxLH,CAAEskB,GAAEP,GAA0Q,SAASI,GAAEJ,GAAG,OAAOC,GAAE,EAAuC,SAAWD,EAAEM,GAAG,IAAIH,EAAEJ,GAAEM,KAAI,GAAG,OAAO7G,GAAE2G,EAAEue,IAAIpe,KAAKH,EAAE/jB,GAAG4jB,IAAIG,EAAEue,IAAIpe,EAAEH,EAAEyY,IAAI5Y,GAAGG,EAAE/jB,GAApHR,EAAE,WAAW,MAAO,CAACqgC,QAAQjc,KAAI,IAAsF,SAASvjB,KAAIwB,GAAElE,SAAQ,SAASsmB,GAAG,GAAGA,EAAEiZ,IAAI,IAAIjZ,EAAEqe,IAAI9F,IAAI7+B,QAAQ6lB,IAAGS,EAAEqe,IAAI9F,IAAI7+B,QAAQ+lB,IAAGO,EAAEqe,IAAI9F,IAAI,GAAI,MAAMtY,GAAGD,EAAEqe,IAAI9F,IAAI,GAAG5Y,GAAEyY,IAAInY,EAAED,EAAEwY,SAAS56B,GAAE,GAAI+hB,GAAEwY,IAAI,SAASxY,GAAGM,GAAE,KAAK1G,IAAGA,GAAEoG,IAAKA,GAAEoZ,IAAI,SAASpZ,GAAGL,IAAGA,GAAEK,GAAGK,GAAE,EAAE,IAAIF,GAAGG,GAAEN,EAAE2Y,KAAK+F,IAAIve,IAAIA,EAAEyY,IAAI7+B,QAAQ6lB,IAAGO,EAAEyY,IAAI7+B,QAAQ+lB,IAAGK,EAAEyY,IAAI,KAAM5Y,GAAEmb,OAAO,SAAS9a,GAAG1hB,IAAGA,GAAE0hB,GAAG,IAAIJ,EAAEI,EAAEsY,IAAI1Y,GAAGA,EAAEye,KAAKze,EAAEye,IAAI9F,IAAIl7B,SAAS,IAAIO,GAAEc,KAAKkhB,IAAIE,KAAIH,GAAE2e,yBAAyBxe,GAAEH,GAAE2e,wBAAwB,SAAS3e,GAAG,IAAIK,EAAEC,EAAE,WAAWse,aAAaze,GAAGtkB,IAAGgjC,qBAAqBxe,GAAGjjB,WAAW4iB,IAAKG,EAAE/iB,WAAWkjB,EAAE,KAAKzkB,KAAIwkB,EAAEse,sBAAsBre,MAAO7jB,KAAI6jB,QAAE,GAASN,GAAE2Y,IAAI,SAAStY,EAAEC,GAAGA,EAAE/M,MAAK,SAAS8M,GAAG,IAAIA,EAAEuY,IAAI7+B,QAAQ6lB,IAAGS,EAAEuY,IAAIvY,EAAEuY,IAAI1sB,QAAO,SAAS8T,GAAG,OAAQA,EAAE5jB,IAAI0jB,GAAEE,MAAM,MAAMG,GAAGG,EAAE/M,MAAK,SAASyM,GAAGA,EAAE4Y,MAAM5Y,EAAE4Y,IAAI,OAAOtY,EAAE,GAAGN,GAAEyY,IAAItY,EAAEE,EAAEwY,SAAStwB,IAAGA,GAAE8X,EAAEC,IAAKN,GAAEkc,QAAQ,SAAS7b,GAAG3E,IAAGA,GAAE2E,GAAG,IAAIC,EAAED,EAAEsY,IAAI,GAAGrY,GAAGA,EAAEoe,IAAI,IAAIpe,EAAEoe,IAAItiC,GAAGrC,QAAQ6lB,IAAI,MAAMS,GAAGL,GAAEyY,IAAIpY,EAAEC,EAAEuY,OAAQ,IAAIh9B,GAAE,mBAAmB8iC,sBAAsB,SAAS/e,GAAEI,GAAG,IAAIK,EAAEC,GAAE,mBAAmBN,EAAE2Y,KAAK3Y,EAAE2Y,MAAMrY,GAAED,EAAG,SAASP,GAAEE,GAAG,IAAIK,EAAEC,GAAEN,EAAE2Y,IAAI3Y,EAAE5jB,KAAKkkB,GAAED,EAAG,SAAS7G,GAAEwG,EAAEK,GAAG,OAAQL,GAAGA,EAAEtiB,SAAS2iB,EAAE3iB,QAAQ2iB,EAAE9M,MAAK,SAAS8M,EAAEC,GAAG,OAAOD,IAAIL,EAAEM,MAAK,SAASC,GAAEP,EAAEK,GAAG,MAAO,mBAAmBA,EAAEA,EAAEL,GAAGK,EAM/wD,SAASye,IAAY1pB,MAAEA,EAAKC,OAAEA,EAAMC,OAAEA,EAAML,SAAEA,EAAQF,SAAEA,IACpD,MAAOgqB,EAAQC,GAAapsB,GAAE,IACxBqsB,EAAgB7e,KAEtB,OAV8Y,SAAWD,EAAEF,GAAG,IAAIhiB,EAAE8hB,GAAEM,KAAI,IAAIL,GAAEwa,KAAKhhB,GAAEvb,EAAEygC,IAAIze,KAAKhiB,EAAE7B,GAAG+jB,EAAEliB,EAAEygC,IAAIze,EAAEK,GAAEsY,IAAI75B,KAAKd,IAS5d4hB,EAAE,KAAQ,IAAIhnB,EAAI,OAAwC,QAAhCA,EAAKomC,EAAchD,eAA4B,IAAPpjC,OAAgB,EAASA,EAAGqmC,UAAY,IAClGjH,GAAIwG,GAAQ,KAChBxG,GAAInsB,GAAG,KACHmsB,GAAI,KAAM,CAAE+B,MAAOwC,GAAO2C,cAAgB/pB,GAC1CC,EAAOrX,KAAK+X,GAAWkiB,GAAI,IAAK,CAAE+B,MAAOwC,GAAOE,MAAM3mB,EAAMpc,OAXxE,UAAqBc,QAAEA,EAAOkb,YAAEA,EAAWC,cAAEA,IACzC,OAAOnb,EAAQ4e,QAAQ,aAAa2G,GAAKpK,EAAcoK,EAAEjN,OAAO,EAAGiN,EAAEtiB,OAAS,MAUD0hC,CAAYrpB,MACjFkiB,GAAI,OAAQ,CAAEljB,SAAUvb,IAChBA,EAAG6lC,iBACHtqB,EAASgqB,KACRpmC,OAAOqY,QAAQsE,GAAQtX,KAAI,EAAEshC,GAAa3lC,KAAAA,EAAMsc,MAAAA,EAAOJ,YAAAA,IAAgB9B,IAASkkB,GAAI,QAAS,CAAE+B,MAAOwC,GAAO+C,OAClHtpB,EAAQ,GAAGA,MAAY,GACvBgiB,GAAI,QAAS,CAAEK,IAAa,IAARvkB,EAAYkrB,OAAgBpiC,EAAWlD,KAAMA,EAAMrB,KAAMgnC,EAAWE,aAAc,KAAMxF,MAAOwC,GAAO6B,MAAOoB,WAAW,EAAM5pB,YAAaA,EAAa9Y,MAAOgiC,EAAOO,IAAc,GAAII,QAAUlmC,IAAS,IAAIX,EAAI,OAAOmmC,EAAU,IAAKD,EAAQ1kC,CAACilC,GAAYK,GAAiBhmC,EAA2B,QAApBd,EAAKW,EAAGoa,cAA2B,IAAP/a,OAAgB,EAASA,EAAU,iBACjXo/B,GAAI,MAAO,CAAE+B,MAAOwC,GAAOoD,YACvB3H,GAAI,SAAU,CAAEt+B,KAAM,SAAUqgC,MAAOwC,GAAOqD,OAAQC,QAAS,IAAM/qB,EAASgqB,IAAW,UACzF9G,GAAI,SAAU,CAAE+B,MAAOwC,GAAOqD,OAAQC,QAAS7qB,GAAY,YAEvE,SAAS0qB,GAAiBhmC,EAAMoD,GAC5B,OAAQpD,GACJ,IAAK,QAAS,OAAOoD,EAAM61B,cAC3B,IAAK,MAAO,OAAO71B,EAAMk2B,cACzB,QAAS,OAAOl2B,GAIxB,MAAMgjC,WAAiBhH,GACnB1+B,YAAYg+B,GACRt9B,MAAMs9B,GACN/9B,KAAKkI,SAAYoS,GAAoBta,KAAK+hC,SAAS,CAAEznB,gBAAAA,IACrDta,KAAK6K,MAAQ,CAAEyP,qBAAiB/X,GAEpCxC,oBACIC,KAAK4E,aAAerH,EAAOyC,KAAK+9B,MAAM/pB,GAAGO,MAAM+F,iBAAiBpZ,UAAUlB,KAAKkI,UAEnFnI,uBACQC,KAAK4E,eACL5E,KAAK4E,aAAa3D,qBACXjB,KAAK4E,cAGpB7E,OAAOg+B,GAAOzjB,gBAAEA,IACZ,OAAKA,EAGEqjB,GAAI6G,GAAanmC,OAAO2b,OAAO,GAAIM,IAF/B,MAKnB,SAASorB,GAAgB1xB,GACrB,MAAM2xB,EAAKhnC,SAASuiC,cAAc,OAClCviC,SAAS0f,KAAKihB,YAAYqG,GA/H+1P,SAAWrtB,EAAE0N,EAAEriB,GAAG,IAAIoiB,EAAEJ,EAAEthB,EAAEqhB,GAAE5jB,IAAI4jB,GAAE5jB,GAAGwW,EAAE0N,GAAGL,GAAGI,EAAE,mBAAmBpiB,GAAG,KAAKA,GAAGA,EAAEs6B,KAAKjY,EAAEiY,IAAI55B,EAAE,GAAG8f,GAAE6B,EAAE1N,IAAIyN,GAAGpiB,GAAGqiB,GAAGiY,IAAIN,GAAInsB,GAAE,KAAK,CAAC8G,IAAIqN,GAAGyX,GAAIA,QAAI,IAASpX,EAAEkZ,iBAAiBnZ,GAAGpiB,EAAE,CAACA,GAAGgiB,EAAE,KAAKK,EAAEyb,WAAWpE,GAAIpd,MAAMxc,KAAKuiB,EAAEob,YAAY,KAAK/8B,GAAG0hB,GAAGpiB,EAAEA,EAAEgiB,EAAEA,EAAEwY,IAAInY,EAAEyb,WAAW1b,GAAGjB,GAAEzgB,EAAEiU,GAgI3oQkM,CAAEmZ,GAAI8H,GAAU,CAAEzxB,GAAIA,EAAG4xB,MAAQD,GACjC,IAAI3iC,GAAS,EACb,MAAO,CACHjD,cACI4lC,EAAGxhC,SACHnB,GAAS,GAEbA,aACI,OAAOA,IA2EnB,SAAS6iC,GAAWhO,GAChB,MAAMiO,EAAcjO,EAAM75B,KAIpB+nC,EAAqB,IAAI1oC,EAAgBS,GACzCkH,EAAgB,GAEtB,IAAIghC,EAAkB,KACtBnO,EAAMoO,GAAG,SAASp6B,MAAOgsB,IACrB,UAgGJhsB,eAAyBgsB,GACrB,IAAIt5B,EAAIY,EAAIsxB,EAAIyV,EAAIC,EAAIC,EACxBpjC,GAAS,EACT,MAAMgR,EAAK0e,GAAamF,GAEnBvD,MACiC,QAA3B/1B,EAAKyV,EAAGO,MAAMmV,eAA4B,IAAPnrB,OAAgB,EAASA,EAAG8nC,iBAClErhC,EAAcP,KAAKihC,GAAgB7N,IAEvC7yB,EAAcP,KApL1B,SAA0BuP,GACtB,IAAIsyB,EAActyB,EAAGO,MAAMkmB,gBAAgBh4B,MAC3C,MAAM8jC,EAAsBvyB,EAAGO,MAAMkmB,gBAAgB/xB,KAAK8J,IAAWkM,IACjE,MAAM8nB,EAAaF,EACnBA,EAAc5nB,EACd,MAAM0Z,EAAK36B,EAAKihB,GAChB,OAAQA,GAKJ,IAAK,eACD,OAAOkb,GAAan3B,MAAQ21B,EAAG1vB,KAAKmG,GAAa,MAAQupB,EAG7D,IAAK,aACD,MAAsB,gBAAfoO,GAA+C,UAAfA,EACjCpO,EACAA,EAAG1vB,KAAKmG,GAAa,MAC/B,QACI,OAAOupB,OAGnB,OAAOv6B,EAAc,CACjB0oC,EACAvyB,EAAGmW,sBAAsBzhB,KAAK6J,GAAU,CAAE6X,MAAO,aACjDyP,KACDnxB,KAAKhF,IAAI,EAAEgb,EAAQwK,EAAW0Q,MAC7B,IAAIxP,MAAEA,EAAKnnB,MAAEA,EAAKwjC,SAAEA,GAAavd,EAC7Bwd,EAAiBhoB,EAgCrB,MA/Bc,UAAV0L,IAIAsc,EAAiB,SAEN,gBAAXhoB,IAGc,YAAV0L,GAAiC,YAAVA,IACvBsc,EAAiB,eAKH,UAFA1yB,EAAGO,MAAM2U,UAAUzmB,MAAM2nB,OAEO,YAApBlB,EAAUkB,OAA2C,YAApBlB,EAAUkB,QAEzEsc,EAAiB,cAKhB9M,IACD8M,EAAiB,gBAEJ,CACbtc,MAAAA,EACAnnB,MAAAA,EACAwjC,SAAAA,EACA/nB,OAAQwM,GAAWwb,EAAiB,eAyHjBC,CAAiB3yB,GAAI9S,UAAU22B,EAAMtjB,MAAM2U,aAI7DlV,EAAG6Z,OAAO3U,OAAOpC,GAAUA,EAAMmX,QAClCsG,KAEJ,MAAMqS,EAAkB,kBAAmBhoC,gBAC/BA,UAAUC,cAAcgoC,mBAC9B,GACA/W,QAAwB9b,EAAG8Y,YAAY,KAAM9Y,EAAGkY,YAAYrgB,UAC9D,IAAItN,EAAIY,EACR,MAAMuqB,QAAEA,EAAO/S,OAAEA,GAAW3C,EAAGO,OACxBuyB,EAAkBC,EAAiBxa,SAA4BjqB,QAAQmV,IAAI,CAC9EzD,EAAG8e,aACH9e,EAAG4d,YACH5d,EAAGwY,0BAqCP,GAnCK9C,EAKKod,GACNjxB,KAAKC,UAAUgxB,KAAsBjxB,KAAKC,UAAU4T,UAE9C1V,EAAGkY,WAAWuC,IAAI/E,EAAS,WALjC1V,EAAGO,MAAMmV,QAAUod,GAAoB,MAOV,QAA3BvoC,EAAKyV,EAAGO,MAAMmV,eAA4B,IAAPnrB,OAAgB,EAASA,EAAGyoC,sBACjE,kBAAmBpoC,WACnBgoC,EAAgBxjC,OAAS,IACxBixB,IAIDtzB,QAAQC,MAAM,2CACdgT,EAAGO,MAAMC,oBAAqB,KAMG,QAA3BrV,EAAK6U,EAAGO,MAAMmV,eAA4B,IAAPvqB,OAAgB,EAASA,EAAG6nC,uBAAyB1S,IAC1FvzB,QAAQC,MAAM,+CAA2E,IAA3B4lC,EAAgBxjC,OACxE,6BACA,kBAAmBxE,WAAay1B,GAC5B,4FACA,uCAEdrgB,EAAGO,MAAMC,oBAAqB,GAElCuoB,GAAwBpmB,EAAQ3C,EAAGO,MAAMmV,SACzCqT,GAAwBgK,EAAiB/yB,EAAGO,MAAMmV,SAC7C/S,GAKA,IAAKowB,GACNlxB,KAAKC,UAAUixB,KAAqBlxB,KAAKC,UAAUa,GAAS,CAE5D,MAAMswB,EAAqBF,GAAmB,GAC9C,IAAK,MAAOjwB,EAAOowB,KAAc7oC,OAAOqY,QAAQC,GAAS,CACrD,MAAMwwB,EAAeF,EAAmBnwB,GACnCqwB,GAIDA,EAAavwB,cAAgBswB,EAAUtwB,cACvCswB,EAAUpO,QAAUqO,EAAarO,QACjCqO,EAAa/Y,kBAAoB8Y,EAAU9Y,mBAL3C6Y,EAAmBnwB,GAAS,IAAKowB,SAQnClzB,EAAGkY,WAAWuC,IAAIwY,EAAoB,UAG5C5oC,OAAO2b,OAAOrD,EAAQswB,SApBtBjzB,EAAGO,MAAMoC,OAASowB,GAAmB,KAsBzC,OAAOxa,MAAAA,OAA+D,EAASA,EAAmBuD,mBAElGA,GACA9b,EAAGozB,oBAAmB,IAvalC,SAAsBpzB,GAClB,IAAIzV,EAAIY,EACR,IAAK,MAAM2X,KAAS9C,EAAG6Z,OACnB,GAA0F,QAArF1uB,EAAgC,QAA1BZ,EAAKyV,EAAGO,MAAMoC,cAA2B,IAAPpY,OAAgB,EAASA,EAAGuY,EAAM9Y,aAA0B,IAAPmB,OAAgB,EAASA,EAAGyX,cAAe,CACzI,GAAIE,EAAMH,OAAOkU,QAAQwc,KACrB,MAAM,IAAInqC,EAAMs3B,YAAY,SAAS1d,EAAM9Y,qFACK6X,KAAKC,UAAUgB,EAAM9Y,sCAEzE,IAAK8Y,EAAMH,OAAOkU,QAAQ1S,QACtB,MAAM,IAAIjb,EAAMs3B,YAAY,SAAS1d,EAAM9Y,qFACK6X,KAAKC,UAAUgB,EAAM9Y,wCA+Z7EspC,CAAatzB,IACoB,QAA3B7U,EAAK6U,EAAGO,MAAMmV,eAA4B,IAAPvqB,OAAgB,EAASA,EAAGiqB,eAAiB0G,UA94B9FjkB,eAAkCmI,EAAIooB,EAAcnE,GAChDl3B,QAAQC,MAAM,iCACRg4B,GAAkBhlB,EAAI,cAAe,SAASnI,UAGhD,MAAMqd,QAAkBlV,EAAGwY,yBACrBtD,MAAAA,OAA6C,EAASA,EAAU4G,wBAC5D3b,GAAKH,EAAIooB,EAAcnE,EAAa,CAAE7L,eAAe,MAEhE,CAAEgN,gBAAgB,IAErBr4B,QAAQC,MAAM,qBAo4BAumC,CAAmBvzB,EAAIA,EAAGO,MAAMmV,QAAS1V,EAAGO,MAAMoC,QACxD3C,EAAGozB,oBAAmB,IAG1BI,IACKlT,KACDtvB,EAAcP,KAAKtH,GAAU,IAAM6W,EAAGwV,mBAAkBtoB,UAAU6kC,IAElE/gC,EAAcP,KAAKtH,GAAU,IAAM6W,EAAGwY,0BAAyBtrB,UAAU8S,EAAGO,MAAMgY,2BAK5E1uB,EAAc,CAChBkoC,EAAmBr9B,KAAK0J,GAAK,GAAIJ,GAAK,IACtCgC,EAAGO,MAAMgY,mBAAmB7jB,KAAK0J,GAAK,GAAIJ,GAAK,MAChDnJ,cAGyB,QAA3B4nB,EAAKzc,EAAGO,MAAMmV,eAA4B,IAAP+G,OAAgB,EAASA,EAAGgX,oBAC1D/pB,GAAM1J,GAEZgyB,GACAA,EAAgBnJ,OACpBmJ,EAAkB,KAClBwB,IACIxzB,EAAGO,MAAMC,qBAAmD,QAA3B0xB,EAAKlyB,EAAGO,MAAMmV,eAA4B,IAAPwc,OAAgB,EAASA,EAAG9c,cAChGrV,GAAkBC,EAAI,QAAQwJ,OAAM,SA/pHhD3R,eAAyCmI,GACrC,IAAIzV,EACJ,IAGI,MAAMmpC,aAAEA,SAAuB9oC,UAAUC,cAAcC,MACvD,GAAI4oC,EACA,UACUA,EAAatzB,SAAS,eAAeJ,EAAGhW,OAAoC,QAA3BO,EAAKyV,EAAGO,MAAMmV,eAA4B,IAAPnrB,OAAgB,EAASA,EAAGmpC,cACtH3mC,QAAQC,MAAM,+DAA+DgT,EAAGhW,QAEpF,MAAOqG,GACHtD,QAAQC,MAAM,sGAAuGqD,QAIzHtD,QAAQC,MAAM,4CAGtB,MAAOqD,GACHtD,QAAQC,MAAM,oDAAoDgT,EAAGhW,OAAQqG,IA4oHzEsjC,CAA0B3zB,GAAIwJ,OAAM,WAEF,QAA3B2oB,EAAKnyB,EAAGO,MAAMmV,eAA4B,IAAPyc,OAAgB,EAASA,EAAG/c,cACtEpV,EAAGO,MAAMoC,SACR2d,KAED0R,EAAkBvJ,GAAgBzoB,EAAIA,EAAGO,MAAMmV,QAAS1V,EAAGO,MAAMoC,QACjEqvB,EAAgBlJ,QAChBxoB,GAAYN,EAAI,SAGpBwzB,IACKlT,IACDtvB,EAAcP,KAAKjH,EAAUkB,KAAM,UAAUwC,WAAU,KACnDH,QAAQC,MAAM,WACdgT,EAAGmW,sBAAsBvpB,KAAK,CAC1BwpB,MAAO,gBAEX9V,GAAYN,EAAI,WAChBxW,EAAUkB,KAAM,WAAWwC,WAAU,KACrCH,QAAQC,MAAM,YACdgT,EAAGmW,sBAAsBvpB,KAAK,CAC1BwpB,MAAO,gBAKG,oBAAXgQ,SACN9F,KAC4B,QAA3B8R,EAAKpyB,EAAGO,MAAMmV,eAA4B,IAAP0c,OAAgB,EAASA,EAAGhd,cACjEpkB,EAAcP,KA7qB1B,SAA0BuP,GACtB,IAAIzV,EACJ,KAAkC,QAA3BA,EAAKyV,EAAGO,MAAMmV,eAA4B,IAAPnrB,OAAgB,EAASA,EAAG6qB,aAClE,MAAM,IAAI1mB,MAAM,2CAEpB,MAAM83B,EAAkBxmB,EAAG+e,gBAAgB3B,aAAa1oB,KAAKkJ,IAAQg2B,GAAYA,IACjFp1B,IAAU,IAAMwB,EAAGwY,0BACnB5a,IAAQsX,GAAcA,GAAaA,EAAUgB,iBAC7CxmB,IAAKwlB,IAAc,CAEf7pB,KAAM,QACNwsB,IAAK3C,EAAUgB,oBA8BnB,OA5BA,SAAS2d,IACL,OAAO7zB,EAAGO,MAAMgY,mBAAmB7jB,KAAKkJ,IAAOsX,GAAaA,MAAAA,OAA6C,EAASA,EAAUgB,iBAC5HlY,GAAK,GACLQ,IAAW0W,GAAclV,EAAGO,MAAMgV,YAAY7gB,KAAKhF,IAAIwvB,GAAa,CAACA,EAAWhK,QAAe1W,IAAU,EAAE0gB,EAAWhK,KAAe2Q,GAAmBnxB,KAAKhF,IAAKo2B,GAAa,CAACA,EAAW5G,EAAY,KAAMhK,QAAe1W,IAAU3G,OAAQqnB,EAAWhK,KAAe,CAACgK,QAAiBxd,GAAoBwT,MAAc1W,IAAU,EAAE0gB,EAAWnB,KAInVmB,EACM,IAAIqH,GAAavmB,EAAGO,MAAMmV,QAAQN,YAAapV,EAAGO,MAAMgY,mBAAmB9pB,MAAMynB,eAAgB6H,EAAc/d,EAAGO,MAAMgY,mBAAmB9pB,MAAM4mB,eAAgBmR,EAAiBxmB,EAAGO,MAAMkmB,gBAAiBvH,EAAUlX,YAAakX,EAAUjX,uBAC7O1e,EAAO,MAAM6O,GAAYnJ,GACwC,uBAA9DA,MAAAA,OAAqC,EAASA,EAAMjF,OACrD+C,QAAQC,MAAM,4DACPvD,GAAK,GAAMiL,KAAK8J,IAAU3G,UAE7B,MAAM6lB,QAAa1d,EAAGwV,iBAChBC,QAAuBpN,GAAmBrI,EAAGO,MAAMmV,QAAQN,YAAasI,SAExE1d,EAAG8C,MAAM,WAAW6S,OAAO+H,EAAK3zB,OAAQ,CAC1Cie,YAAayN,EAAezN,YAC5BC,sBAAuBwN,EAAexN,2BAE1CzJ,IAAU,IAAMq1B,QAGbjqC,EAAaqF,KAExBmJ,GAAYnJ,GAAU1F,EAAOw+B,GAAsC94B,IAAQyF,KAAK8J,IAAU,IAAMq1B,UAEjGA,GAAmB3mC,WAAWuwB,IAC7BA,IACA1wB,QAAQC,MAAM,iBAAkBywB,GAChCzd,EAAG+e,gBAAgBb,QAAQT,OAE/BxuB,IACAlC,QAAQkC,MAAM,qCAAsCA,MACrD,KACClC,QAAQkC,MAAM,2CA4nBS6kC,CAAiB9zB,IAvP9B+zB,CAAUlQ,GAEpB,MAAO50B,GACHlC,QAAQkC,MAAMA,OAGnB,GAGH,IAAID,GAAS,EACb,SAASwkC,IACL,GAAIxkC,EACA,MAAM,IAAI9F,EAAM8qC,oBAzpC5B,IAA4Ch0B,GA3M5C,SAAoBA,EAAIi0B,GACpBj0B,EAAGiyB,GAAGtT,MAAMzxB,UAAU+mC,GACtB,MAAMC,EAAYl0B,EAAG2e,MACrB3e,EAAG2e,MAAQ,WACPuV,EAAUzkC,KAAKzD,MACfioC,KAi2CJE,CAAWtQ,GAAO,KACd7yB,EAAcvF,SAASmF,GAAiBA,EAAa3D,gBACrD+B,GAAS,EACTgjC,GAAmBA,EAAgBnJ,OACnCmJ,EAAkB,KAClBD,EAAmBnlC,KAAK9C,MAE5B+5B,EAAMtjB,MAAQ,CACV6zB,QAAS,gBACT1e,QAAS,KACT/S,OAAQ,KACR0xB,YAAa,KACblV,oBACI,OAAO4S,EAAmBtjC,MAAM1E,QAAUD,EAAkBC,QAEhEwrB,YAAawc,EACb7c,UAAW,IAAI7rB,EAAgB,CAC3B+sB,MAAO,UACP1L,OAAQ,gBAEZ6N,mBAAoB,IAAIlvB,OAAgBkF,GACxC+X,gBAAiB,IAAIjd,OAAgBkF,GACrCk4B,gBAAiB,IAAIp9B,EAAgB,eACrC0C,YAAYuoC,GACR,MAAMt0B,EAAK0e,GAAamF,SAClB7jB,EAAGO,MAAMJ,aACTuJ,GAAM1J,EAAIs0B,IAEpBvoC,UAAU2pB,GACNmO,EAAMtjB,MAAMmV,QAAUA,EAClBA,EAAQN,cAERyO,EAAM75B,KAAO,GAAG8nC,KA5mGhC,SAA4ByC,GACxB,MAAM1sB,EAAM,IAAI+K,IAAI2hB,GACpB,MAAwB,MAAjB1sB,EAAI2sB,SACL3sB,EAAI4sB,SAASC,MAAM,KAAK,GACxB7sB,EAAI2sB,SAASE,MAAM,KAAK,GAwmGaC,CAAmBjf,EAAQN,eAC1DsJ,GAAamF,GAAO+Q,eAExB7L,GAAwBlF,EAAMtjB,MAAMoC,OAAQkhB,EAAMtjB,MAAMmV,UAE5D3pB,YAAW8oC,KAAEA,EAAI50B,QAAEA,GAAY,CAAE40B,MAAM,EAAM50B,QAAS,cACrC1R,IAATsmC,IACAA,GAAO,GACX,MAAM70B,EAAK0e,GAAamF,GACxB,GAAgB,SAAZ5jB,EAAoB,CACpB,MAAMiV,EAAYlV,EAAGO,MAAMgY,mBAAmB9pB,MAE9C,GADA6R,GAAYN,EAAIC,GACZ40B,EAAM,CACN,MAAMjZ,QAAqB5b,EAAGO,MAAMgY,mBAC/B7jB,KAAKkJ,IAAQge,GAAyG,OAAvFA,MAAAA,OAAmD,EAASA,EAAazD,cACvGjD,GAAa0G,EAAazD,UAAYjD,EAAUiD,aAAana,GAAK,IACnEnJ,YACL,GAAI+mB,MAAAA,OAAmD,EAASA,EAAa3sB,MACzE,MAAM,IAAIP,MAAM,eAAiBktB,EAAa3sB,aAIrD,SAAUg5B,GAAajoB,GAAK,CAC7B,MAAMkV,EAAYlV,EAAGO,MAAMgY,mBAAmB9pB,MAC9C6R,GAAYN,EAAIC,GACZ40B,IACA9nC,QAAQC,MAAM,4DACRzD,EAAOJ,GAAU0O,UACnB,MAAMi9B,QAAmB7M,GAAajoB,GAChC4b,QAAqB5b,EAAGwY,wBAC9B,IAAKoD,MAAAA,OAAmD,EAASA,EAAazD,cAAgBjD,MAAAA,OAA6C,EAASA,EAAUiD,aACzJyD,MAAAA,OAAmD,EAASA,EAAa3sB,OAC1E,MAAM,IAAIP,MAAM,eAAiBktB,EAAa3sB,OAClD,OAAO6lC,MAENpgC,KAAKkJ,IAAQm3B,IAAcA,IAAW/2B,GAAK,IAC3CnJ,YACL9H,QAAQC,MAAM,gFAK9B62B,EAAMmR,QAAQhnC,UAA4B,iBAAI9E,EAAM+rC,SAASpR,EAAMmR,QAAQhnC,UAA4B,kBAAI41B,GAAaD,GAAwBC,EAAUC,KAC1JA,EAAMqR,IAAIzS,GAAiC,CACvCC,sBAAuBmB,EAAMtjB,MAAMgV,YACnCvV,GAAI0e,GAAamF,MAErBA,EAAMqR,KA1uCkCl1B,EA0uCK0e,GAAamF,GAzuCnD,CACHl1B,MAAO,SACP3E,KAAM,+BACN42B,MAAO,EACP3yB,OAASgsB,IACE,IACAA,EACHnX,MAAQE,IACJ,MAAMF,EAAQmX,EAAKnX,MAAME,GACzB,MAAO,IACAF,EACHwe,OAAS/a,IACL,IAAIhc,EAAIY,EAAIsxB,EACZ,MAAM8E,EAAQhb,EAAIgb,MAClB,IAA0F,QAApFp2B,EAAgC,QAA1BZ,EAAKyV,EAAGO,MAAMoC,cAA2B,IAAPpY,OAAgB,EAASA,EAAGyY,UAA+B,IAAP7X,OAAgB,EAASA,EAAGyX,iBAC5F,QAA5B6Z,EAAK8E,EAAMhM,mBAAgC,IAAPkH,OAAgB,EAASA,EAAGnE,cACjD,QAAb/R,EAAIlb,MAA+B,QAAbkb,EAAIlb,MAG1B,IAAK,MAAMiK,KAAOiR,EAAIZ,OACZ,UAAWrQ,IACbA,EAAIqkB,MAAQ4H,EAAMhM,YAAYxrB,QAE5B,YAAauL,IACfA,EAAIyM,QAAUwf,EAAMhM,YAAYxrB,QAKhD,OAAO+Y,EAAMwe,OAAO/a,WA6sC5Csd,EAAMqR,IAAIvU,GAA6BjC,GAAamF,KA6JxDgO,GAAWuC,QAAU,gBACrBlrC,EAAMisC,MAAQtD,GAGd,MAAMuD,GAAa,IAAIrnB,IACvB,SAASsnB,GAAiBC,GACtB,OAAOA,EAAIhqC,WAAW,iBAAmBgqC,EAAIZ,MAAM,KAAK,GAE5D,MAAMa,GAAkB,IAAIxnB,IAC5B,SAASynB,GAAOn1B,EAAQJ,GAMpB,IAAIxK,EAAU8/B,GAAgBxpB,IAAI1L,EAAS,IAAMJ,GAajD,OAZKxK,IACDA,EAYJoC,eAAuBwI,EAAQJ,GAC3B,IAAI1V,EACJ,IAAIyV,EAAKo1B,GAAWrpB,IAAI1L,GACxB,IAAKL,EAAI,CACLjT,QAAQC,MAAM,kDAAmDqT,GACjE,MAAMwjB,EAAQ,IAAI36B,EAAMmX,EAAQ,CAAEo1B,OAAQ,CAAC5D,MAC3C7xB,EAAK0e,GAAamF,GAClBA,EAAMoO,GAAG,gBAAiByD,SACpB11B,EAAG2d,GAAGhL,OACPyiB,GAAWrpB,IAAI1L,IAEhB+0B,GAAW/oB,IAAIhM,EAAQL,GAG/B,KAAkC,QAA3BzV,EAAKyV,EAAGO,MAAMmV,eAA4B,IAAPnrB,OAAgB,EAASA,EAAG6qB,aAElE,YADAroB,QAAQkC,MAAM,0CAGlB,IAAK+Q,EAAGO,MAAMoC,OAEV,YADA5V,QAAQkC,MAAM,oCAGlB,SAASymC,IAQL,OAPA11B,EAAG2d,GAAGsU,GAAG0D,cAAc1oC,YAAYyoC,GAC/BN,GAAWrpB,IAAI/L,EAAGhW,QAAUgW,GAE5Bo1B,GAAWra,OAAO/a,EAAGhW,MAEzB+C,QAAQC,MAAM,8CAA8CqT,KAC5DL,EAAG2d,GAAGgB,SACC,EAEX,IACI5xB,QAAQC,MAAM,iCACRm7B,GAAenoB,EAAIA,EAAGO,MAAMmV,QAAS1V,EAAGO,MAAMoC,OAAQ,CACxDsV,8BAA8B,EAC9BhY,QAAAA,IAEJlT,QAAQC,MAAM,gCAElB,MAAOqD,GAKH,GAJAtD,QAAQkC,MAAM,uBAAwBoB,GAGtCqlC,IACIrlC,EAAErG,OAASd,EAAM0sC,SAASC,eAE1B,MAAMxlC,GA3DJylC,CAAQz1B,EAAQJ,GACrBlV,MAAK,KAENwqC,GAAgBxa,OAAO1a,EAAS,IAAMJ,MAErCuJ,OAAOva,IACRsmC,GAAgBxa,OAAO1a,EAAS,IAAMJ,GAC/B3R,QAAQmG,OAAOxF,MAE1BsmC,GAAgBlpB,IAAIhM,EAAS,IAAMJ,EAASxK,IAEzCA,EAsDN4qB,KACD31B,KAAKO,iBAAiB,QAASoyB,IAC3BtwB,QAAQC,MAAM,kBAAmBqwB,EAAMiY,KACvC,MAAMj1B,EAASg1B,GAAiBhY,EAAMiY,KAClCj1B,GACAgd,EAAM0Y,UAAUP,GAAOn1B,EAAQ,YAGvC3V,KAAKO,iBAAiB,gBAAiBoyB,IACnCtwB,QAAQC,MAAM,0BAA2BqwB,EAAMiY,KAC/C,MAAMj1B,EAASg1B,GAAiBhY,EAAMiY,KAClCj1B,GACAgd,EAAM0Y,UAAUP,GAAOn1B,EAAQ,YAGvC3V,KAAKO,iBAAiB,WAAYoyB,IAE9B,GADAtwB,QAAQC,MAAM,qBAAsBqwB,EAAMjyB,MAClB,qBAApBiyB,EAAMjyB,KAAKC,KAA6B,CACxC,MAAMgV,OAAEA,GAAWgd,EAAMjyB,KAGnBu9B,EAAe,CAACxb,EAAM,IACjBqoB,GAAOn1B,EAAQgd,EAAMjyB,KAAK6U,SAAW,QAAQuJ,OAAM3R,MAAOxH,IAC7D,GAAY,IAAR8c,EACA,MAAM9c,EAc9B,IAAe23B,QAAAA,EAbiB,IAcrB,IAAI15B,SAASkG,GAAY1F,WAAW0F,EAASwzB,MAbpCW,EAAaxb,EAAM,MAGvB,cAAekQ,EACfA,EAAM0Y,UAAUpN,IAAenf,OAAMva,GAASlC,QAAQkC,MAAMA,MAG5D05B,IAAenf,OAAMva,GAASlC,QAAQkC,MAAMA"}