@linktr.ee/messaging-react 1.26.1 → 1.27.0

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 (58) hide show
  1. package/dist/Creator-B6M8dB0U.js +87 -0
  2. package/dist/Creator-B6M8dB0U.js.map +1 -0
  3. package/dist/MediaPlayer-DsjlYGGH.js +539 -0
  4. package/dist/MediaPlayer-DsjlYGGH.js.map +1 -0
  5. package/dist/Preview-DqAv16NS.js +87 -0
  6. package/dist/Preview-DqAv16NS.js.map +1 -0
  7. package/dist/Visitor-CpmFZRGO.js +175 -0
  8. package/dist/Visitor-CpmFZRGO.js.map +1 -0
  9. package/dist/dash.all.min-Duv4lvGS.js +18858 -0
  10. package/dist/dash.all.min-Duv4lvGS.js.map +1 -0
  11. package/dist/hls-Bogc7CBn.js +21710 -0
  12. package/dist/hls-Bogc7CBn.js.map +1 -0
  13. package/dist/index-Da-xN4Yq.js +16142 -0
  14. package/dist/index-Da-xN4Yq.js.map +1 -0
  15. package/dist/index-Dj9rqWcU.js +69 -0
  16. package/dist/index-Dj9rqWcU.js.map +1 -0
  17. package/dist/index.d.ts +73 -10
  18. package/dist/index.js +979 -934
  19. package/dist/index.js.map +1 -1
  20. package/dist/mixin-B6jYfIcp.js +808 -0
  21. package/dist/mixin-B6jYfIcp.js.map +1 -0
  22. package/dist/react-BxlQMOfz.js +419 -0
  23. package/dist/react-BxlQMOfz.js.map +1 -0
  24. package/dist/react-COAP-MIW.js +377 -0
  25. package/dist/react-COAP-MIW.js.map +1 -0
  26. package/dist/react-Cn4WlMcl.js +3108 -0
  27. package/dist/react-Cn4WlMcl.js.map +1 -0
  28. package/dist/react-CwTJArKY.js +459 -0
  29. package/dist/react-CwTJArKY.js.map +1 -0
  30. package/dist/react-DkfS_atT.js +373 -0
  31. package/dist/react-DkfS_atT.js.map +1 -0
  32. package/dist/react-Pea5fum1.js +286 -0
  33. package/dist/react-Pea5fum1.js.map +1 -0
  34. package/dist/react-RiBbsUDd.js +534 -0
  35. package/dist/react-RiBbsUDd.js.map +1 -0
  36. package/dist/react-dS1WBxxz.js +238 -0
  37. package/dist/react-dS1WBxxz.js.map +1 -0
  38. package/package.json +2 -1
  39. package/src/components/ChannelView.tsx +12 -2
  40. package/src/components/CustomMessage/CustomMessage.stories.tsx +173 -41
  41. package/src/components/CustomMessage/MessageTag.tsx +5 -0
  42. package/src/components/CustomMessage/index.tsx +43 -4
  43. package/src/components/LockedAttachment/LockedAttachment.stories.tsx +249 -0
  44. package/src/components/LockedAttachment/components/Creator.tsx +171 -0
  45. package/src/components/LockedAttachment/components/MediaPlayer.tsx +299 -0
  46. package/src/components/LockedAttachment/components/Visitor.tsx +293 -0
  47. package/src/components/LockedAttachment/index.tsx +39 -0
  48. package/src/components/LockedAttachment/types.ts +18 -0
  49. package/src/components/LockedAttachment/utils/icons.ts +52 -0
  50. package/src/components/LockedAttachment/utils/mimeType.test.ts +97 -0
  51. package/src/components/LockedAttachment/utils/mimeType.ts +35 -0
  52. package/src/components/ParticipantPicker/index.tsx +8 -1
  53. package/src/hooks/useParticipants.ts +3 -2
  54. package/src/index.ts +4 -0
  55. package/src/stories/decorators/storyUser.tsx +37 -0
  56. package/src/stream-custom-data.ts +9 -3
  57. package/src/types.ts +21 -1
  58. package/src/utils/isDevBuild.ts +10 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Da-xN4Yq.js","sources":["../../../node_modules/mux-embed/dist/mux.mjs","../../../node_modules/@mux/playback-core/dist/index.mjs","../../../node_modules/@mux/mux-video/dist/base.mjs","../../../node_modules/castable-video/castable-utils.js","../../../node_modules/castable-video/castable-remote-playback.js","../../../node_modules/castable-video/castable-mixin.js","../../../node_modules/@mux/mux-video/dist/index.mjs","../../../node_modules/media-chrome/dist/constants.js","../../../node_modules/media-chrome/dist/utils/utils.js","../../../node_modules/media-chrome/dist/lang/en.js","../../../node_modules/media-chrome/dist/utils/i18n.js","../../../node_modules/media-chrome/dist/utils/time.js","../../../node_modules/media-chrome/dist/utils/server-safe-globals.js","../../../node_modules/media-chrome/dist/utils/resize-observer.js","../../../node_modules/media-chrome/dist/utils/element-utils.js","../../../node_modules/media-chrome/dist/media-gesture-receiver.js","../../../node_modules/media-chrome/dist/media-container.js","../../../node_modules/media-chrome/dist/utils/attribute-token-list.js","../../../node_modules/media-chrome/dist/utils/captions.js","../../../node_modules/media-chrome/dist/utils/fullscreen-api.js","../../../node_modules/media-chrome/dist/utils/platform-tests.js","../../../node_modules/media-chrome/dist/media-store/util.js","../../../node_modules/media-chrome/dist/media-store/state-mediator.js","../../../node_modules/media-chrome/dist/media-store/request-map.js","../../../node_modules/media-chrome/dist/media-store/media-store.js","../../../node_modules/media-chrome/dist/media-controller.js","../../../node_modules/media-chrome/dist/media-tooltip.js","../../../node_modules/media-chrome/dist/media-chrome-button.js","../../../node_modules/media-chrome/dist/media-airplay-button.js","../../../node_modules/media-chrome/dist/media-captions-button.js","../../../node_modules/media-chrome/dist/media-cast-button.js","../../../node_modules/media-chrome/dist/media-chrome-dialog.js","../../../node_modules/media-chrome/dist/media-chrome-range.js","../../../node_modules/media-chrome/dist/media-control-bar.js","../../../node_modules/media-chrome/dist/media-text-display.js","../../../node_modules/media-chrome/dist/media-duration-display.js","../../../node_modules/media-chrome/dist/labels/labels.js","../../../node_modules/media-chrome/dist/media-error-dialog.js","../../../node_modules/media-chrome/dist/media-keyboard-shortcuts-dialog.js","../../../node_modules/media-chrome/dist/media-fullscreen-button.js","../../../node_modules/media-chrome/dist/media-live-button.js","../../../node_modules/media-chrome/dist/media-loading-indicator.js","../../../node_modules/media-chrome/dist/media-mute-button.js","../../../node_modules/media-chrome/dist/media-pip-button.js","../../../node_modules/media-chrome/dist/media-playback-rate-button.js","../../../node_modules/media-chrome/dist/media-play-button.js","../../../node_modules/media-chrome/dist/media-poster-image.js","../../../node_modules/media-chrome/dist/media-preview-chapter-display.js","../../../node_modules/media-chrome/dist/media-preview-thumbnail.js","../../../node_modules/media-chrome/dist/media-preview-time-display.js","../../../node_modules/media-chrome/dist/media-seek-backward-button.js","../../../node_modules/media-chrome/dist/media-seek-forward-button.js","../../../node_modules/media-chrome/dist/media-time-display.js","../../../node_modules/media-chrome/dist/utils/range-animation.js","../../../node_modules/media-chrome/dist/media-time-range.js","../../../node_modules/media-chrome/dist/media-volume-range.js","../../../node_modules/media-chrome/dist/media-loop-button.js","../../../node_modules/media-chrome/dist/utils/template-parts.js","../../../node_modules/media-chrome/dist/utils/template-processor.js","../../../node_modules/media-chrome/dist/media-theme-element.js","../../../node_modules/media-chrome/dist/utils/anchor-utils.js","../../../node_modules/media-chrome/dist/utils/events.js","../../../node_modules/media-chrome/dist/menu/media-chrome-menu.js","../../../node_modules/media-chrome/dist/menu/media-chrome-menu-item.js","../../../node_modules/media-chrome/dist/menu/media-settings-menu.js","../../../node_modules/media-chrome/dist/menu/media-settings-menu-item.js","../../../node_modules/media-chrome/dist/menu/media-chrome-menu-button.js","../../../node_modules/media-chrome/dist/menu/media-settings-menu-button.js","../../../node_modules/media-chrome/dist/menu/media-audio-track-menu.js","../../../node_modules/media-chrome/dist/menu/media-audio-track-menu-button.js","../../../node_modules/media-chrome/dist/menu/media-captions-menu.js","../../../node_modules/media-chrome/dist/menu/media-captions-menu-button.js","../../../node_modules/media-chrome/dist/menu/media-playback-rate-menu.js","../../../node_modules/media-chrome/dist/menu/media-playback-rate-menu-button.js","../../../node_modules/media-chrome/dist/menu/media-rendition-menu.js","../../../node_modules/media-chrome/dist/menu/media-rendition-menu-button.js","../../../node_modules/media-chrome/dist/menu/media-context-menu.js","../../../node_modules/media-chrome/dist/menu/media-context-menu-item.js","../../../node_modules/@mux/mux-player/dist/base.mjs","../../../node_modules/@mux/mux-player/dist/index.mjs","../../../node_modules/@mux/mux-player-react/dist/index.mjs"],"sourcesContent":["var ea=Object.create;var _t=Object.defineProperty;var ta=Object.getOwnPropertyDescriptor;var ra=Object.getOwnPropertyNames;var aa=Object.getPrototypeOf,ia=Object.prototype.hasOwnProperty;var ft=function(r,e){return function(){return r&&(e=r(r=0)),e}};var B=function(r,e){return function(){return e||r((e={exports:{}}).exports,e),e.exports}};var na=function(r,e,t,i){if(e&&typeof e==\"object\"||typeof e==\"function\")for(var a=ra(e),n=0,o=a.length,s;n<o;n++)s=a[n],!ia.call(r,s)&&s!==t&&_t(r,s,{get:function(u){return e[u]}.bind(null,s),enumerable:!(i=ta(e,s))||i.enumerable});return r};var G=function(r,e,t){return t=r!=null?ea(aa(r)):{},na(e||!r||!r.__esModule?_t(t,\"default\",{value:r,enumerable:!0}):t,r)};var Q=B(function(Zi,ht){var xe;typeof window!=\"undefined\"?xe=window:typeof global!=\"undefined\"?xe=global:typeof self!=\"undefined\"?xe=self:xe={};ht.exports=xe});function U(r,e){return e!=null&&typeof Symbol!=\"undefined\"&&e[Symbol.hasInstance]?!!e[Symbol.hasInstance](r):U(r,e)}var te=ft(function(){te()});function Ne(r){\"@swc/helpers - typeof\";return r&&typeof Symbol!=\"undefined\"&&r.constructor===Symbol?\"symbol\":typeof r}var Qe=ft(function(){});var Ye=B(function(qs,cr){var dr=Array.prototype.slice;cr.exports=Na;function Na(r,e){for((\"length\"in r)||(r=[r]),r=dr.call(r);r.length;){var t=r.shift(),i=e(t);if(i)return i;t.childNodes&&t.childNodes.length&&(r=dr.call(t.childNodes).concat(r))}}});var fr=B(function(Ps,_r){te();_r.exports=ve;function ve(r,e){if(!U(this,ve))return new ve(r,e);this.data=r,this.nodeValue=r,this.length=r.length,this.ownerDocument=e||null}ve.prototype.nodeType=8;ve.prototype.nodeName=\"#comment\";ve.prototype.toString=function(){return\"[object Comment]\"}});var mr=B(function(Ls,pr){te();pr.exports=ae;function ae(r,e){if(!U(this,ae))return new ae(r);this.data=r||\"\",this.length=this.data.length,this.ownerDocument=e||null}ae.prototype.type=\"DOMTextNode\";ae.prototype.nodeType=3;ae.prototype.nodeName=\"#text\";ae.prototype.toString=function(){return this.data};ae.prototype.replaceData=function(e,t,i){var a=this.data,n=a.substring(0,e),o=a.substring(e+t,a.length);this.data=n+i+o,this.length=this.data.length}});var Xe=B(function(Is,vr){vr.exports=Ca;function Ca(r){var e=this,t=r.type;r.target||(r.target=e),e.listeners||(e.listeners={});var i=e.listeners[t];if(i)return i.forEach(function(a){r.currentTarget=e,typeof a==\"function\"?a(r):a.handleEvent(r)});e.parentNode&&e.parentNode.dispatchEvent(r)}});var $e=B(function(Ns,hr){hr.exports=Ma;function Ma(r,e){var t=this;t.listeners||(t.listeners={}),t.listeners[r]||(t.listeners[r]=[]),t.listeners[r].indexOf(e)===-1&&t.listeners[r].push(e)}});var Ze=B(function(Cs,yr){yr.exports=Ha;function Ha(r,e){var t=this;if(t.listeners&&t.listeners[r]){var i=t.listeners[r],a=i.indexOf(e);a!==-1&&i.splice(a,1)}}});var Tr=B(function(Hs,wr){Qe();wr.exports=gr;var Ba=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];function gr(r){switch(r.nodeType){case 3:return et(r.data);case 8:return\"<!--\"+r.data+\"-->\";default:return Ua(r)}}function Ua(r){var e=[],t=r.tagName;return r.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&(t=t.toLowerCase()),e.push(\"<\"+t+Wa(r)+ja(r)),Ba.indexOf(t)>-1?e.push(\" />\"):(e.push(\">\"),r.childNodes.length?e.push.apply(e,r.childNodes.map(gr)):r.textContent||r.innerText?e.push(et(r.textContent||r.innerText)):r.innerHTML&&e.push(r.innerHTML),e.push(\"</\"+t+\">\")),e.join(\"\")}function Fa(r,e){var t=Ne(r[e]);return e===\"style\"&&Object.keys(r.style).length>0?!0:r.hasOwnProperty(e)&&(t===\"string\"||t===\"boolean\"||t===\"number\")&&e!==\"nodeName\"&&e!==\"className\"&&e!==\"tagName\"&&e!==\"textContent\"&&e!==\"innerText\"&&e!==\"namespaceURI\"&&e!==\"innerHTML\"}function Va(r){if(typeof r==\"string\")return r;var e=\"\";return Object.keys(r).forEach(function(t){var i=r[t];t=t.replace(/[A-Z]/g,function(a){return\"-\"+a.toLowerCase()}),e+=t+\":\"+i+\";\"}),e}function ja(r){var e=r.dataset,t=[];for(var i in e)t.push({name:\"data-\"+i,value:e[i]});return t.length?br(t):\"\"}function br(r){var e=[];return r.forEach(function(t){var i=t.name,a=t.value;i===\"style\"&&(a=Va(a)),e.push(i+'=\"'+Ga(a)+'\"')}),e.length?\" \"+e.join(\" \"):\"\"}function Wa(r){var e=[];for(var t in r)Fa(r,t)&&e.push({name:t,value:r[t]});for(var i in r._attributes)for(var a in r._attributes[i]){var n=r._attributes[i][a],o=(n.prefix?n.prefix+\":\":\"\")+a;e.push({name:o,value:n.value})}return r.className&&e.push({name:\"class\",value:r.className}),e.length?br(e):\"\"}function et(r){var e=\"\";return typeof r==\"string\"?e=r:r&&(e=r.toString()),e.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")}function Ga(r){return et(r).replace(/\"/g,\"&quot;\")}});var rt=B(function(Us,Er){te();var tt=Ye(),Ja=Xe(),Qa=$e(),za=Ze(),Ka=Tr(),kr=\"http://www.w3.org/1999/xhtml\";Er.exports=I;function I(r,e,t){if(!U(this,I))return new I(r);var i=t===void 0?kr:t||null;this.tagName=i===kr?String(r).toUpperCase():r,this.nodeName=this.tagName,this.className=\"\",this.dataset={},this.childNodes=[],this.parentNode=null,this.style={},this.ownerDocument=e||null,this.namespaceURI=i,this._attributes={},this.tagName===\"INPUT\"&&(this.type=\"text\")}I.prototype.type=\"DOMElement\";I.prototype.nodeType=1;I.prototype.appendChild=function(e){return e.parentNode&&e.parentNode.removeChild(e),this.childNodes.push(e),e.parentNode=this,e};I.prototype.replaceChild=function(e,t){e.parentNode&&e.parentNode.removeChild(e);var i=this.childNodes.indexOf(t);return t.parentNode=null,this.childNodes[i]=e,e.parentNode=this,t};I.prototype.removeChild=function(e){var t=this.childNodes.indexOf(e);return this.childNodes.splice(t,1),e.parentNode=null,e};I.prototype.insertBefore=function(e,t){e.parentNode&&e.parentNode.removeChild(e);var i=t==null?-1:this.childNodes.indexOf(t);return i>-1?this.childNodes.splice(i,0,e):this.childNodes.push(e),e.parentNode=this,e};I.prototype.setAttributeNS=function(e,t,i){var a=null,n=t,o=t.indexOf(\":\");if(o>-1&&(a=t.substr(0,o),n=t.substr(o+1)),this.tagName===\"INPUT\"&&t===\"type\")this.type=i;else{var s=this._attributes[e]||(this._attributes[e]={});s[n]={value:i,prefix:a}}};I.prototype.getAttributeNS=function(e,t){var i=this._attributes[e],a=i&&i[t]&&i[t].value;return this.tagName===\"INPUT\"&&t===\"type\"?this.type:typeof a!=\"string\"?null:a};I.prototype.removeAttributeNS=function(e,t){var i=this._attributes[e];i&&delete i[t]};I.prototype.hasAttributeNS=function(e,t){var i=this._attributes[e];return!!i&&t in i};I.prototype.setAttribute=function(e,t){return this.setAttributeNS(null,e,t)};I.prototype.getAttribute=function(e){return this.getAttributeNS(null,e)};I.prototype.removeAttribute=function(e){return this.removeAttributeNS(null,e)};I.prototype.hasAttribute=function(e){return this.hasAttributeNS(null,e)};I.prototype.removeEventListener=za;I.prototype.addEventListener=Qa;I.prototype.dispatchEvent=Ja;I.prototype.focus=function(){};I.prototype.toString=function(){return Ka(this)};I.prototype.getElementsByClassName=function(e){var t=e.split(\" \"),i=[];return tt(this,function(a){if(a.nodeType===1){var n=a.className||\"\",o=n.split(\" \");t.every(function(s){return o.indexOf(s)!==-1})&&i.push(a)}}),i};I.prototype.getElementsByTagName=function(e){e=e.toLowerCase();var t=[];return tt(this.childNodes,function(i){i.nodeType===1&&(e===\"*\"||i.tagName.toLowerCase()===e)&&t.push(i)}),t};I.prototype.contains=function(e){return tt(this,function(t){return e===t})||!1}});var Sr=B(function(Vs,xr){te();var at=rt();xr.exports=K;function K(r){if(!U(this,K))return new K;this.childNodes=[],this.parentNode=null,this.ownerDocument=r||null}K.prototype.type=\"DocumentFragment\";K.prototype.nodeType=11;K.prototype.nodeName=\"#document-fragment\";K.prototype.appendChild=at.prototype.appendChild;K.prototype.replaceChild=at.prototype.replaceChild;K.prototype.removeChild=at.prototype.removeChild;K.prototype.toString=function(){return this.childNodes.map(function(e){return String(e)}).join(\"\")}});var Dr=B(function(js,Rr){Rr.exports=it;function it(r){}it.prototype.initEvent=function(e,t,i){this.type=e,this.bubbles=t,this.cancelable=i};it.prototype.preventDefault=function(){}});var Ar=B(function(Gs,qr){te();var Ya=Ye(),Xa=fr(),$a=mr(),De=rt(),Za=Sr(),ei=Dr(),ti=Xe(),ri=$e(),ai=Ze();qr.exports=Ue;function Ue(){if(!U(this,Ue))return new Ue;this.head=this.createElement(\"head\"),this.body=this.createElement(\"body\"),this.documentElement=this.createElement(\"html\"),this.documentElement.appendChild(this.head),this.documentElement.appendChild(this.body),this.childNodes=[this.documentElement],this.nodeType=9}var j=Ue.prototype;j.createTextNode=function(e){return new $a(e,this)};j.createElementNS=function(e,t){var i=e===null?null:String(e);return new De(t,this,i)};j.createElement=function(e){return new De(e,this)};j.createDocumentFragment=function(){return new Za(this)};j.createEvent=function(e){return new ei(e)};j.createComment=function(e){return new Xa(e,this)};j.getElementById=function(e){e=String(e);var t=Ya(this.childNodes,function(i){if(String(i.id)===e)return i});return t||null};j.getElementsByClassName=De.prototype.getElementsByClassName;j.getElementsByTagName=De.prototype.getElementsByTagName;j.contains=De.prototype.contains;j.removeEventListener=ai;j.addEventListener=ri;j.dispatchEvent=ti});var Or=B(function(Js,Pr){var ii=Ar();Pr.exports=new ii});var nt=B(function(Qs,Ir){var Lr=typeof global!=\"undefined\"?global:typeof window!=\"undefined\"?window:{},ni=Or(),qe;typeof document!=\"undefined\"?qe=document:(qe=Lr[\"__GLOBAL_DOCUMENT_CACHE@4\"],qe||(qe=Lr[\"__GLOBAL_DOCUMENT_CACHE@4\"]=ni));Ir.exports=qe});function pt(r){if(Array.isArray(r))return r}function mt(r,e){var t=r==null?null:typeof Symbol!=\"undefined\"&&r[Symbol.iterator]||r[\"@@iterator\"];if(t!=null){var i=[],a=!0,n=!1,o,s;try{for(t=t.call(r);!(a=(o=t.next()).done)&&(i.push(o.value),!(e&&i.length===e));a=!0);}catch(u){n=!0,s=u}finally{try{!a&&t.return!=null&&t.return()}finally{if(n)throw s}}return i}}function vt(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function Ee(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,i=new Array(e);t<e;t++)i[t]=r[t];return i}function Pe(r,e){if(r){if(typeof r==\"string\")return Ee(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t===\"Object\"&&r.constructor&&(t=r.constructor.name),t===\"Map\"||t===\"Set\")return Array.from(t);if(t===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Ee(r,e)}}function H(r,e){return pt(r)||mt(r,e)||Pe(r,e)||vt()}var be=G(Q());var Je=G(Q());var yt=G(Q()),oa={now:function(){var r=yt.default.performance,e=r&&r.timing,t=e&&e.navigationStart,i=typeof t==\"number\"&&typeof r.now==\"function\"?t+r.now():Date.now();return Math.round(i)}},P=oa;var ee=function(){var e,t,i;if(typeof((e=Je.default.crypto)===null||e===void 0?void 0:e.getRandomValues)==\"function\"){i=new Uint8Array(32),Je.default.crypto.getRandomValues(i);for(var a=0;a<32;a++)i[a]=i[a]%16}else{i=[];for(var n=0;n<32;n++)i[n]=Math.random()*16|0}var o=0;t=\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,function(f){var h=f===\"x\"?i[o]:i[o]&3|8;return o++,h.toString(16)});var s=P.now(),u=s==null?void 0:s.toString(16).substring(3);return u?t.substring(0,28)+u:t},Oe=function(){return(\"000000\"+(Math.random()*Math.pow(36,6)<<0).toString(36)).slice(-6)};var J=function(e){if(e&&typeof e.nodeName!=\"undefined\")return e.muxId||(e.muxId=Oe()),e.muxId;var t;try{t=document.querySelector(e)}catch(i){}return t&&!t.muxId&&(t.muxId=e),(t==null?void 0:t.muxId)||e},se=function(e){var t;e&&typeof e.nodeName!=\"undefined\"?(t=e,e=J(t)):t=document.querySelector(e);var i=t&&t.nodeName?t.nodeName.toLowerCase():\"\";return[t,e,i]};function gt(r){if(Array.isArray(r))return Ee(r)}function bt(r){if(typeof Symbol!=\"undefined\"&&r[Symbol.iterator]!=null||r[\"@@iterator\"]!=null)return Array.from(r)}function wt(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function V(r){return gt(r)||bt(r)||Pe(r)||wt()}var Y={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},Tt=function(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:3,t,i,a,n,o,s=r?[console,r]:[console],u=(t=console.trace).bind.apply(t,V(s)),f=(i=console.info).bind.apply(i,V(s)),h=(a=console.debug).bind.apply(a,V(s)),E=(n=console.warn).bind.apply(n,V(s)),y=(o=console.error).bind.apply(o,V(s)),c=e;return{trace:function(){for(var w=arguments.length,x=new Array(w),v=0;v<w;v++)x[v]=arguments[v];if(!(c>Y.TRACE))return u.apply(void 0,V(x))},debug:function(){for(var w=arguments.length,x=new Array(w),v=0;v<w;v++)x[v]=arguments[v];if(!(c>Y.DEBUG))return h.apply(void 0,V(x))},info:function(){for(var w=arguments.length,x=new Array(w),v=0;v<w;v++)x[v]=arguments[v];if(!(c>Y.INFO))return f.apply(void 0,V(x))},warn:function(){for(var w=arguments.length,x=new Array(w),v=0;v<w;v++)x[v]=arguments[v];if(!(c>Y.WARN))return E.apply(void 0,V(x))},error:function(){for(var w=arguments.length,x=new Array(w),v=0;v<w;v++)x[v]=arguments[v];if(!(c>Y.ERROR))return y.apply(void 0,V(x))},get level(){return c},set level(p){p!==this.level&&(c=p!=null?p:e)}}};var q=Tt(\"[mux]\");var Le=G(Q());function ce(){var r=Le.default.doNotTrack||Le.default.navigator&&Le.default.navigator.doNotTrack;return r===\"1\"}function b(r){if(r===void 0)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return r}te();function S(r,e){if(!U(r,e))throw new TypeError(\"Cannot call a class as a function\")}function kt(r,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(r,i.key,i)}}function N(r,e,t){return e&&kt(r.prototype,e),t&&kt(r,t),r}function l(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function X(r){return X=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},X(r)}function Et(r,e){for(;!Object.prototype.hasOwnProperty.call(r,e)&&(r=X(r),r!==null););return r}function Se(r,e,t){return typeof Reflect!=\"undefined\"&&Reflect.get?Se=Reflect.get:Se=function(a,n,o){var s=Et(a,n);if(s){var u=Object.getOwnPropertyDescriptor(s,n);return u.get?u.get.call(o||a):u.value}},Se(r,e,t||r)}function Ie(r,e){return Ie=Object.setPrototypeOf||function(i,a){return i.__proto__=a,i},Ie(r,e)}function xt(r,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function\");r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&Ie(r,e)}function St(r,e){if(r==null)return{};var t={},i=Object.keys(r),a,n;for(n=0;n<i.length;n++)a=i[n],!(e.indexOf(a)>=0)&&(t[a]=r[a]);return t}function Rt(r,e){if(r==null)return{};var t=St(r,e),i,a;if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);for(a=0;a<n.length;a++)i=n[a],!(e.indexOf(i)>=0)&&Object.prototype.propertyIsEnumerable.call(r,i)&&(t[i]=r[i])}return t}function Dt(){if(typeof Reflect==\"undefined\"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==\"function\")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(r){return!1}}Qe();function qt(r,e){return e&&(Ne(e)===\"object\"||typeof e==\"function\")?e:b(r)}function At(r){var e=Dt();return function(){var i=X(r),a;if(e){var n=X(this).constructor;a=Reflect.construct(i,arguments,n)}else a=i.apply(this,arguments);return qt(this,a)}}var F=function(r){return re(r)[0]};var re=function(r){if(typeof r!=\"string\"||r===\"\")return[\"localhost\"];var e=/^(([^:\\/?#]+):)?(\\/\\/([^\\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,t=r.match(e)||[],i=t[4],a;return i&&(a=(i.match(/[^\\.]+\\.[^\\.]+$/)||[])[0]),[i,a]};var Ce=G(Q()),sa={exists:function(){var r=Ce.default.performance,e=r&&r.timing;return e!==void 0},domContentLoadedEventEnd:function(){var r=Ce.default.performance,e=r&&r.timing;return e&&e.domContentLoadedEventEnd},navigationStart:function(){var r=Ce.default.performance,e=r&&r.timing;return e&&e.navigationStart}},_e=sa;function O(r,e,t){t=t===void 0?1:t,r[e]=r[e]||0,r[e]+=t}function ue(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{},i=Object.keys(t);typeof Object.getOwnPropertySymbols==\"function\"&&(i=i.concat(Object.getOwnPropertySymbols(t).filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable}))),i.forEach(function(a){l(r,a,t[a])})}return r}function ua(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,i)}return t}function fe(r,e){return e=e!=null?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(e)):ua(Object(e)).forEach(function(t){Object.defineProperty(r,t,Object.getOwnPropertyDescriptor(e,t))}),r}var la=[\"x-cdn\",\"content-type\"],Pt=[\"x-request-id\",\"cf-ray\",\"x-amz-cf-id\",\"x-akamai-request-id\"],da=la.concat(Pt);function pe(r){r=r||\"\";var e={},t=r.trim().split(/[\\r\\n]+/);return t.forEach(function(i){if(i){var a=i.split(\": \"),n=a.shift();n&&(da.indexOf(n.toLowerCase())>=0||n.toLowerCase().indexOf(\"x-litix-\")===0)&&(e[n]=a.join(\": \"))}}),e}function le(r){if(r){var e=Pt.find(function(t){return r[t]!==void 0});return e?r[e]:void 0}}var ca=function(r){var e={};for(var t in r){var i=r[t],a=i[\"DATA-ID\"].search(\"io.litix.data.\");if(a!==-1){var n=i[\"DATA-ID\"].replace(\"io.litix.data.\",\"\");e[n]=i.VALUE}}return e},Me=ca;var He=function(r){if(!r)return{};var e=_e.navigationStart(),t=r.loading,i=t?t.start:r.trequest,a=t?t.first:r.tfirst,n=t?t.end:r.tload;return{bytesLoaded:r.total,requestStart:Math.round(e+i),responseStart:Math.round(e+a),responseEnd:Math.round(e+n)}},Re=function(r){if(!(!r||typeof r.getAllResponseHeaders!=\"function\"))return pe(r.getAllResponseHeaders())},Ot=function(r,e,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=arguments.length>4?arguments[4]:void 0,n=r.log,o=r.utils.secondsToMs,s=function(v){var m=parseInt(a.version),_;return m===1&&v.programDateTime!==null&&(_=v.programDateTime),m===0&&v.pdt!==null&&(_=v.pdt),_};if(!_e.exists()){n.warn(\"performance timing not supported. Not tracking HLS.js.\");return}var u=function(v,m){return r.emit(e,v,m)},f=function(v,m){var _=m.levels,d=m.audioTracks,g=m.url,T=m.stats,k=m.networkDetails,D=m.sessionData,L={},C={};_.forEach(function(W,oe){L[oe]={width:W.width,height:W.height,bitrate:W.bitrate,attrs:W.attrs}}),d.forEach(function(W,oe){C[oe]={name:W.name,language:W.lang,bitrate:W.bitrate}});var A=He(T),R=A.bytesLoaded,Z=A.requestStart,we=A.responseStart,Te=A.responseEnd;u(\"requestcompleted\",fe(ue({},Me(D)),{request_event_type:v,request_bytes_loaded:R,request_start:Z,request_response_start:we,request_response_end:Te,request_type:\"manifest\",request_hostname:F(g),request_response_headers:Re(k),request_rendition_lists:{media:L,audio:C,video:{}}}))};t.on(a.Events.MANIFEST_LOADED,f);var h=function(v,m){var _=m.details,d=m.level,g=m.networkDetails,T=m.stats,k=He(T),D=k.bytesLoaded,L=k.requestStart,C=k.responseStart,A=k.responseEnd,R=_.fragments[_.fragments.length-1],Z=s(R)+o(R.duration);u(\"requestcompleted\",{request_event_type:v,request_bytes_loaded:D,request_start:L,request_response_start:C,request_response_end:A,request_current_level:d,request_type:\"manifest\",request_hostname:F(_.url),request_response_headers:Re(g),video_holdback:_.holdBack&&o(_.holdBack),video_part_holdback:_.partHoldBack&&o(_.partHoldBack),video_part_target_duration:_.partTarget&&o(_.partTarget),video_target_duration:_.targetduration&&o(_.targetduration),video_source_is_live:_.live,player_manifest_newest_program_time:isNaN(Z)?void 0:Z})};t.on(a.Events.LEVEL_LOADED,h);var E=function(v,m){var _=m.details,d=m.networkDetails,g=m.stats,T=He(g),k=T.bytesLoaded,D=T.requestStart,L=T.responseStart,C=T.responseEnd;u(\"requestcompleted\",{request_event_type:v,request_bytes_loaded:k,request_start:D,request_response_start:L,request_response_end:C,request_type:\"manifest\",request_hostname:F(_.url),request_response_headers:Re(d)})};t.on(a.Events.AUDIO_TRACK_LOADED,E);var y=function(v,m){var _=m.stats,d=m.networkDetails,g=m.frag;_=_||g.stats;var T=He(_),k=T.bytesLoaded,D=T.requestStart,L=T.responseStart,C=T.responseEnd,A=d?Re(d):void 0,R={request_event_type:v,request_bytes_loaded:k,request_start:D,request_response_start:L,request_response_end:C,request_hostname:d?F(d.responseURL):void 0,request_id:A?le(A):void 0,request_response_headers:A,request_media_duration:g.duration,request_url:d==null?void 0:d.responseURL};g.type===\"main\"?(R.request_type=\"media\",R.request_current_level=g.level,R.request_video_width=(t.levels[g.level]||{}).width,R.request_video_height=(t.levels[g.level]||{}).height,R.request_labeled_bitrate=(t.levels[g.level]||{}).bitrate):R.request_type=g.type,u(\"requestcompleted\",R)};t.on(a.Events.FRAG_LOADED,y);var c=function(v,m){var _=m.frag,d=_.start,g=s(_),T={currentFragmentPDT:g,currentFragmentStart:o(d)};u(\"fragmentchange\",T)};t.on(a.Events.FRAG_CHANGED,c);var p=function(v,m){var _=m.type,d=m.details,g=m.response,T=m.fatal,k=m.frag,D=m.networkDetails,L=(k==null?void 0:k.url)||m.url||\"\",C=D?Re(D):void 0;if((d===a.ErrorDetails.MANIFEST_LOAD_ERROR||d===a.ErrorDetails.MANIFEST_LOAD_TIMEOUT||d===a.ErrorDetails.FRAG_LOAD_ERROR||d===a.ErrorDetails.FRAG_LOAD_TIMEOUT||d===a.ErrorDetails.LEVEL_LOAD_ERROR||d===a.ErrorDetails.LEVEL_LOAD_TIMEOUT||d===a.ErrorDetails.AUDIO_TRACK_LOAD_ERROR||d===a.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT||d===a.ErrorDetails.SUBTITLE_LOAD_ERROR||d===a.ErrorDetails.SUBTITLE_LOAD_TIMEOUT||d===a.ErrorDetails.KEY_LOAD_ERROR||d===a.ErrorDetails.KEY_LOAD_TIMEOUT)&&u(\"requestfailed\",{request_error:d,request_url:L,request_hostname:F(L),request_id:C?le(C):void 0,request_type:d===a.ErrorDetails.FRAG_LOAD_ERROR||d===a.ErrorDetails.FRAG_LOAD_TIMEOUT?\"media\":d===a.ErrorDetails.AUDIO_TRACK_LOAD_ERROR||d===a.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT?\"audio\":d===a.ErrorDetails.SUBTITLE_LOAD_ERROR||d===a.ErrorDetails.SUBTITLE_LOAD_TIMEOUT?\"subtitle\":d===a.ErrorDetails.KEY_LOAD_ERROR||d===a.ErrorDetails.KEY_LOAD_TIMEOUT?\"encryption\":\"manifest\",request_error_code:g==null?void 0:g.code,request_error_text:g==null?void 0:g.text}),T){var A,R=\"\".concat(L?\"url: \".concat(L,\"\\n\"):\"\")+\"\".concat(g&&(g.code||g.text)?\"response: \".concat(g.code,\", \").concat(g.text,\"\\n\"):\"\")+\"\".concat(m.reason?\"failure reason: \".concat(m.reason,\"\\n\"):\"\")+\"\".concat(m.level?\"level: \".concat(m.level,\"\\n\"):\"\")+\"\".concat(m.parent?\"parent stream controller: \".concat(m.parent,\"\\n\"):\"\")+\"\".concat(m.buffer?\"buffer length: \".concat(m.buffer,\"\\n\"):\"\")+\"\".concat(m.error?\"error: \".concat(m.error,\"\\n\"):\"\")+\"\".concat(m.event?\"event: \".concat(m.event,\"\\n\"):\"\")+\"\".concat(m.err?\"error message: \".concat((A=m.err)===null||A===void 0?void 0:A.message,\"\\n\"):\"\");u(\"error\",{player_error_code:_,player_error_message:d,player_error_context:R})}};t.on(a.Events.ERROR,p);var w=function(v,m){var _=m.frag,d=_&&_._url||\"\";u(\"requestcanceled\",{request_event_type:v,request_url:d,request_type:\"media\",request_hostname:F(d)})};t.on(a.Events.FRAG_LOAD_EMERGENCY_ABORTED,w);var x=function(v,m){var _=m.level,d=t.levels[_];if(d&&d.attrs&&d.attrs.BANDWIDTH){var g=d.attrs.BANDWIDTH,T,k=parseFloat(d.attrs[\"FRAME-RATE\"]);isNaN(k)||(T=k),g?u(\"renditionchange\",{video_source_fps:T,video_source_bitrate:g,video_source_width:d.width,video_source_height:d.height,video_source_rendition_name:d.name,video_source_codec:d==null?void 0:d.videoCodec}):n.warn(\"missing BANDWIDTH from HLS manifest parsed by HLS.js\")}};t.on(a.Events.LEVEL_SWITCHED,x),t._stopMuxMonitor=function(){t.off(a.Events.MANIFEST_LOADED,f),t.off(a.Events.LEVEL_LOADED,h),t.off(a.Events.AUDIO_TRACK_LOADED,E),t.off(a.Events.FRAG_LOADED,y),t.off(a.Events.FRAG_CHANGED,c),t.off(a.Events.ERROR,p),t.off(a.Events.FRAG_LOAD_EMERGENCY_ABORTED,w),t.off(a.Events.LEVEL_SWITCHED,x),t.off(a.Events.DESTROYING,t._stopMuxMonitor),delete t._stopMuxMonitor},t.on(a.Events.DESTROYING,t._stopMuxMonitor)},Lt=function(r){r&&typeof r._stopMuxMonitor==\"function\"&&r._stopMuxMonitor()};var It=function(r,e){if(!r||!r.requestEndDate)return{};var t=F(r.url),i=r.url,a=r.bytesLoaded,n=new Date(r.requestStartDate).getTime(),o=new Date(r.firstByteDate).getTime(),s=new Date(r.requestEndDate).getTime(),u=isNaN(r.duration)?0:r.duration,f=typeof e.getMetricsFor==\"function\"?e.getMetricsFor(r.mediaType).HttpList:e.getDashMetrics().getHttpRequests(r.mediaType),h;f.length>0&&(h=pe(f[f.length-1]._responseHeaders||\"\"));var E=h?le(h):void 0;return{requestStart:n,requestResponseStart:o,requestResponseEnd:s,requestBytesLoaded:a,requestResponseHeaders:h,requestMediaDuration:u,requestHostname:t,requestUrl:i,requestId:E}},_a=function(r,e){if(typeof e.getCurrentRepresentationForType==\"function\"){var t=e.getCurrentRepresentationForType(r);return t?{currentLevel:t.absoluteIndex,renditionWidth:t.width||null,renditionHeight:t.height||null,renditionBitrate:t.bandwidth}:{}}var i=e.getQualityFor(r),a=e.getCurrentTrackFor(r).bitrateList;return a?{currentLevel:i,renditionWidth:a[i].width||null,renditionHeight:a[i].height||null,renditionBitrate:a[i].bandwidth}:{}},fa=function(r){var e;return(e=r.match(/.*codecs\\*?=\"(.*)\"/))===null||e===void 0?void 0:e[1]},pa=function(e){try{var t,i,a=(i=e.getVersion)===null||i===void 0||(t=i.call(e))===null||t===void 0?void 0:t.split(\".\").map(function(n){return parseInt(n)})[0];return a}catch(n){return!1}},Nt=function(r,e,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=r.log;if(!t||!t.on){a.warn(\"Invalid dash.js player reference. Monitoring blocked.\");return}var n=pa(t),o=function(_,d){return r.emit(e,_,d)},s=function(_){var d=_.type,g=_.data,T=(g||{}).url;o(\"requestcompleted\",{request_event_type:d,request_start:0,request_response_start:0,request_response_end:0,request_bytes_loaded:-1,request_type:\"manifest\",request_hostname:F(T),request_url:T})};t.on(\"manifestLoaded\",s);var u={},f=function(_){if(typeof _.getRequests!=\"function\")return null;var d=_.getRequests({state:\"executed\"});return d.length===0?null:d[d.length-1]},h=function(_){var d=_.type,g=_.fragmentModel,T=_.chunk,k=f(g);E({type:d,request:k,chunk:T})},E=function(_){var d=_.type,g=_.chunk,T=_.request,k=(g||{}).mediaInfo,D=k||{},L=D.type,C=D.bitrateList;C=C||[];var A={};C.forEach(function(ke,z){A[z]={},A[z].width=ke.width,A[z].height=ke.height,A[z].bitrate=ke.bandwidth,A[z].attrs={}}),L===\"video\"?u.video=A:L===\"audio\"?u.audio=A:u.media=A;var R=It(T,t),Z=R.requestStart,we=R.requestResponseStart,Te=R.requestResponseEnd,W=R.requestResponseHeaders,oe=R.requestMediaDuration,je=R.requestHostname,We=R.requestUrl,Ge=R.requestId;o(\"requestcompleted\",{request_event_type:d,request_start:Z,request_response_start:we,request_response_end:Te,request_bytes_loaded:-1,request_type:L+\"_init\",request_response_headers:W,request_hostname:je,request_id:Ge,request_url:We,request_media_duration:oe,request_rendition_lists:u})};n>=4?t.on(\"initFragmentLoaded\",E):t.on(\"initFragmentLoaded\",h);var y=function(_){var d=_.type,g=_.fragmentModel,T=_.chunk,k=f(g);c({type:d,request:k,chunk:T})},c=function(_){var d=_.type,g=_.chunk,T=_.request,k=g||{},D=k.mediaInfo,L=k.start,C=D||{},A=C.type,R=It(T,t),Z=R.requestStart,we=R.requestResponseStart,Te=R.requestResponseEnd,W=R.requestBytesLoaded,oe=R.requestResponseHeaders,je=R.requestMediaDuration,We=R.requestHostname,Ge=R.requestUrl,ke=R.requestId,z=_a(A,t),Yr=z.currentLevel,Xr=z.renditionWidth,$r=z.renditionHeight,Zr=z.renditionBitrate;o(\"requestcompleted\",{request_event_type:d,request_start:Z,request_response_start:we,request_response_end:Te,request_bytes_loaded:W,request_type:A,request_response_headers:oe,request_hostname:We,request_id:ke,request_url:Ge,request_media_start_time:L,request_media_duration:je,request_current_level:Yr,request_labeled_bitrate:Zr,request_video_width:Xr,request_video_height:$r})};n>=4?t.on(\"mediaFragmentLoaded\",c):t.on(\"mediaFragmentLoaded\",y);var p={video:void 0,audio:void 0,totalBitrate:void 0},w=function(){if(p.video&&typeof p.video.bitrate==\"number\"){if(!(p.video.width&&p.video.height)){a.warn(\"have bitrate info for video but missing width/height\");return}var _=p.video.bitrate;if(p.audio&&typeof p.audio.bitrate==\"number\"&&(_+=p.audio.bitrate),_!==p.totalBitrate)return p.totalBitrate=_,{video_source_bitrate:_,video_source_height:p.video.height,video_source_width:p.video.width,video_source_codec:fa(p.video.codec)}}},x=function(_,d,g){var T=_.mediaType;if(T===\"audio\"||T===\"video\"){var k;if(typeof t.getRepresentationsByType==\"function\")if(_.newRepresentation)k={bitrate:_.newRepresentation.bandwidth,width:_.newRepresentation.width,height:_.newRepresentation.height,qualityIndex:_.newRepresentation.absoluteIndex};else{var D=t.getRepresentationsByType(T);if(D&&typeof _.newQuality==\"number\"){var L=D.find(function(A){return A.absoluteIndex===_.newQuality||A.index===_.newQuality});L&&(k={bitrate:L.bandwidth,width:L.width,height:L.height,qualityIndex:_.newQuality})}}else{if(typeof _.newQuality!=\"number\"){a.warn(\"missing evt.newQuality in qualityChangeRendered event\",_);return}k=t.getBitrateInfoListFor(T).find(function(A){var R=A.qualityIndex;return R===_.newQuality})}if(!(k&&typeof k.bitrate==\"number\")){a.warn(\"missing bitrate info for \".concat(T));return}p[T]=fe(ue({},k),{codec:t.getCurrentTrackFor(T).codec});var C=w();C&&o(\"renditionchange\",C)}};t.on(\"qualityChangeRendered\",x);var v=function(_){var d=_.request,g=_.mediaType;d=d||{},o(\"requestcanceled\",{request_event_type:d.type+\"_\"+d.action,request_url:d.url,request_type:g,request_hostname:F(d.url)})};t.on(\"fragmentLoadingAbandoned\",v);var m=function(_){var d=_.error,g,T,k=(d==null||(g=d.data)===null||g===void 0?void 0:g.request)||{},D=(d==null||(T=d.data)===null||T===void 0?void 0:T.response)||{};(d==null?void 0:d.code)===27&&o(\"requestfailed\",{request_error:k.type+\"_\"+k.action,request_url:k.url,request_hostname:F(k.url),request_type:k.mediaType,request_error_code:D.status,request_error_text:D.statusText});var L=\"\".concat(k!=null&&k.url?\"url: \".concat(k.url,\"\\n\"):\"\")+\"\".concat(D!=null&&D.status||D!=null&&D.statusText?\"response: \".concat(D==null?void 0:D.status,\", \").concat(D==null?void 0:D.statusText,\"\\n\"):\"\");o(\"error\",{player_error_code:d==null?void 0:d.code,player_error_message:d==null?void 0:d.message,player_error_context:L})};t.on(\"error\",m),t._stopMuxMonitor=function(){t.off(\"manifestLoaded\",s),t.off(\"initFragmentLoaded\",E),t.off(\"mediaFragmentLoaded\",c),t.off(\"qualityChangeRendered\",x),t.off(\"error\",m),t.off(\"fragmentLoadingAbandoned\",v),delete t._stopMuxMonitor}},Ct=function(r){r&&typeof r._stopMuxMonitor==\"function\"&&r._stopMuxMonitor()};var Mt=0,ma=function(){\"use strict\";function r(){S(this,r),l(this,\"_listeners\",void 0)}return N(r,[{key:\"on\",value:function(t,i,a){return i._eventEmitterGuid=i._eventEmitterGuid||++Mt,this._listeners=this._listeners||{},this._listeners[t]=this._listeners[t]||[],a&&(i=i.bind(a)),this._listeners[t].push(i),i}},{key:\"off\",value:function(t,i){var a=this._listeners&&this._listeners[t];a&&a.forEach(function(n,o){n._eventEmitterGuid===i._eventEmitterGuid&&a.splice(o,1)})}},{key:\"one\",value:function(t,i,a){var n=this;i._eventEmitterGuid=i._eventEmitterGuid||++Mt;var o=function(){n.off(t,o),i.apply(a||this,arguments)};o._eventEmitterGuid=i._eventEmitterGuid,this.on(t,o)}},{key:\"emit\",value:function(t,i){var a=this;if(this._listeners){i=i||{};var n=this._listeners[\"before\"+t]||[],o=this._listeners[\"before*\"]||[],s=this._listeners[t]||[],u=this._listeners[\"after\"+t]||[],f=function(h,E){h=h.slice(),h.forEach(function(y){y.call(a,{type:t},E)})};f(n,i),f(o,i),f(s,i),f(u,i)}}}]),r}(),Ht=ma;var Be=G(Q()),va=function(){\"use strict\";function r(e){var t=this;S(this,r),l(this,\"_playbackHeartbeatInterval\",void 0),l(this,\"_playheadShouldBeProgressing\",void 0),l(this,\"pm\",void 0),this.pm=e,this._playbackHeartbeatInterval=null,this._playheadShouldBeProgressing=!1,e.on(\"playing\",function(){t._playheadShouldBeProgressing=!0}),e.on(\"play\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"playing\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"adbreakstart\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"adplay\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"adplaying\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"devicewake\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"viewstart\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"rebufferstart\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"pause\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"ended\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"viewend\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"error\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"aderror\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"adpause\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"adended\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"adbreakend\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"seeked\",function(){e.data.player_is_paused?t._stopPlaybackHeartbeatInterval():t._startPlaybackHeartbeatInterval()}),e.on(\"timeupdate\",function(){t._playbackHeartbeatInterval!==null&&e.emit(\"playbackheartbeat\")}),e.on(\"devicesleep\",function(i,a){t._playbackHeartbeatInterval!==null&&(Be.default.clearInterval(t._playbackHeartbeatInterval),e.emit(\"playbackheartbeatend\",{viewer_time:a.viewer_time}),t._playbackHeartbeatInterval=null)})}return N(r,[{key:\"_startPlaybackHeartbeatInterval\",value:function(){var t=this;this._playbackHeartbeatInterval===null&&(this.pm.emit(\"playbackheartbeat\"),this._playbackHeartbeatInterval=Be.default.setInterval(function(){t.pm.emit(\"playbackheartbeat\")},this.pm.playbackHeartbeatTime))}},{key:\"_stopPlaybackHeartbeatInterval\",value:function(){this._playheadShouldBeProgressing=!1,this._playbackHeartbeatInterval!==null&&(Be.default.clearInterval(this._playbackHeartbeatInterval),this.pm.emit(\"playbackheartbeatend\"),this._playbackHeartbeatInterval=null)}}]),r}(),Bt=va;var ha=function r(e){\"use strict\";var t=this;S(this,r),l(this,\"viewErrored\",void 0),e.on(\"viewinit\",function(){t.viewErrored=!1}),e.on(\"error\",function(i,a){try{var n=e.errorTranslator({player_error_code:a.player_error_code,player_error_message:a.player_error_message,player_error_context:a.player_error_context,player_error_severity:a.player_error_severity,player_error_business_exception:a.player_error_business_exception});n&&(e.data.player_error_code=n.player_error_code||a.player_error_code,e.data.player_error_message=n.player_error_message||a.player_error_message,e.data.player_error_context=n.player_error_context||a.player_error_context,e.data.player_error_severity=n.player_error_severity||a.player_error_severity,e.data.player_error_business_exception=n.player_error_business_exception||a.player_error_business_exception,t.viewErrored=!0)}catch(o){e.mux.log.warn(\"Exception in error translator callback.\",o),t.viewErrored=!0}}),e.on(\"aftererror\",function(){var i,a,n,o,s;(i=e.data)===null||i===void 0||delete i.player_error_code,(a=e.data)===null||a===void 0||delete a.player_error_message,(n=e.data)===null||n===void 0||delete n.player_error_context,(o=e.data)===null||o===void 0||delete o.player_error_severity,(s=e.data)===null||s===void 0||delete s.player_error_business_exception})},Ut=ha;var ya=function(){\"use strict\";function r(e){S(this,r),l(this,\"_watchTimeTrackerLastCheckedTime\",void 0),l(this,\"pm\",void 0),this.pm=e,this._watchTimeTrackerLastCheckedTime=null,e.on(\"playbackheartbeat\",this._updateWatchTime.bind(this)),e.on(\"playbackheartbeatend\",this._clearWatchTimeState.bind(this))}return N(r,[{key:\"_updateWatchTime\",value:function(t,i){var a=i.viewer_time;this._watchTimeTrackerLastCheckedTime===null&&(this._watchTimeTrackerLastCheckedTime=a),O(this.pm.data,\"view_watch_time\",a-this._watchTimeTrackerLastCheckedTime),this._watchTimeTrackerLastCheckedTime=a}},{key:\"_clearWatchTimeState\",value:function(t,i){this._updateWatchTime(t,i),this._watchTimeTrackerLastCheckedTime=null}}]),r}(),Ft=ya;var ga=function(){\"use strict\";function r(e){var t=this;S(this,r),l(this,\"_playbackTimeTrackerLastPlayheadPosition\",void 0),l(this,\"_lastTime\",void 0),l(this,\"_isAdPlaying\",void 0),l(this,\"_callbackUpdatePlaybackTime\",void 0),l(this,\"pm\",void 0),this.pm=e,this._playbackTimeTrackerLastPlayheadPosition=-1,this._lastTime=P.now(),this._isAdPlaying=!1,this._callbackUpdatePlaybackTime=null,e.on(\"viewinit\",function(){t.pm.data.view_playing_time_ms_cumulative=0});var i=this._startPlaybackTimeTracking.bind(this);e.on(\"playing\",i),e.on(\"adplaying\",i);var a=function(){t.pm.data.player_is_paused||i()};e.on(\"seeked\",a),e.on(\"rebufferend\",a);var n=this._stopPlaybackTimeTracking.bind(this);e.on(\"playbackheartbeatend\",n),e.on(\"seeking\",n),e.on(\"rebufferstart\",n),e.on(\"adplaying\",function(){t._isAdPlaying=!0}),e.on(\"adended\",function(){t._isAdPlaying=!1}),e.on(\"adpause\",function(){t._isAdPlaying=!1}),e.on(\"adbreakstart\",function(){t._isAdPlaying=!1}),e.on(\"adbreakend\",function(){t._isAdPlaying=!1}),e.on(\"adplay\",function(){t._isAdPlaying=!1}),e.on(\"viewinit\",function(){t._playbackTimeTrackerLastPlayheadPosition=-1,t._lastTime=P.now(),t._isAdPlaying=!1,t._callbackUpdatePlaybackTime=null})}return N(r,[{key:\"_startPlaybackTimeTracking\",value:function(){this._callbackUpdatePlaybackTime===null&&(this._callbackUpdatePlaybackTime=this._updatePlaybackTime.bind(this),this._playbackTimeTrackerLastPlayheadPosition=this.pm.data.player_playhead_time,this._lastTime=P.now(),this.pm.on(\"playbackheartbeat\",this._callbackUpdatePlaybackTime))}},{key:\"_stopPlaybackTimeTracking\",value:function(){this._callbackUpdatePlaybackTime&&(this._updatePlaybackTime(),this.pm.off(\"playbackheartbeat\",this._callbackUpdatePlaybackTime),this._callbackUpdatePlaybackTime=null,this._playbackTimeTrackerLastPlayheadPosition=-1)}},{key:\"_updatePlaybackTime\",value:function(){var t=this.pm.data.player_playhead_time||0,i=P.now(),a=i-this._lastTime,n=-1;this._playbackTimeTrackerLastPlayheadPosition>=0&&t>this._playbackTimeTrackerLastPlayheadPosition?n=t-this._playbackTimeTrackerLastPlayheadPosition:this._isAdPlaying&&(n=a),n>0&&n<=1e3&&O(this.pm.data,\"view_content_playback_time\",n),this._callbackUpdatePlaybackTime!==null&&a>0&&a<=1e3&&(this._isAdPlaying&&O(this.pm.data,\"ad_playing_time_ms_cumulative\",a),O(this.pm.data,\"view_playing_time_ms_cumulative\",a)),this._playbackTimeTrackerLastPlayheadPosition=t,this._lastTime=i}}]),r}(),Vt=ga;var ba=function(){\"use strict\";function r(e){S(this,r),l(this,\"pm\",void 0),this.pm=e;var t=this._updatePlayheadTime.bind(this);e.on(\"playbackheartbeat\",t),e.on(\"playbackheartbeatend\",t),e.on(\"timeupdate\",t),e.on(\"destroy\",function(){e.off(\"timeupdate\",t)})}return N(r,[{key:\"_updateMaxPlayheadPosition\",value:function(){this.pm.data.view_max_playhead_position=typeof this.pm.data.view_max_playhead_position==\"undefined\"?this.pm.data.player_playhead_time:Math.max(this.pm.data.view_max_playhead_position,this.pm.data.player_playhead_time)}},{key:\"_updatePlayheadTime\",value:function(t,i){var a=this,n=function(){a.pm.currentFragmentPDT&&a.pm.currentFragmentStart&&(a.pm.data.player_program_time=a.pm.currentFragmentPDT+a.pm.data.player_playhead_time-a.pm.currentFragmentStart)};if(i&&i.player_playhead_time)this.pm.data.player_playhead_time=i.player_playhead_time,n(),this._updateMaxPlayheadPosition();else if(this.pm.getPlayheadTime){var o=this.pm.getPlayheadTime();typeof o!=\"undefined\"&&(this.pm.data.player_playhead_time=o,n(),this._updateMaxPlayheadPosition())}}}]),r}(),jt=ba;var Wt=5*60*1e3,wa=function r(e){\"use strict\";if(S(this,r),!e.disableRebufferTracking){var t,i=function(n,o){a(o),t=void 0},a=function(n){if(t){var o=n.viewer_time-t;O(e.data,\"view_rebuffer_duration\",o),t=n.viewer_time,e.data.view_rebuffer_duration>Wt&&(e.emit(\"viewend\"),e.send(\"viewend\"),e.mux.log.warn(\"Ending view after rebuffering for longer than \".concat(Wt,\"ms, future events will be ignored unless a programchange or videochange occurs.\")))}e.data.view_watch_time>=0&&e.data.view_rebuffer_count>0&&(e.data.view_rebuffer_frequency=e.data.view_rebuffer_count/e.data.view_watch_time,e.data.view_rebuffer_percentage=e.data.view_rebuffer_duration/e.data.view_watch_time)};e.on(\"playbackheartbeat\",function(n,o){return a(o)}),e.on(\"rebufferstart\",function(n,o){t||(O(e.data,\"view_rebuffer_count\",1),t=o.viewer_time,e.one(\"rebufferend\",i))}),e.on(\"viewinit\",function(){t=void 0,e.off(\"rebufferend\",i)})}},Gt=wa;var Ta=function(){\"use strict\";function r(e){var t=this;S(this,r),l(this,\"_lastCheckedTime\",void 0),l(this,\"_lastPlayheadTime\",void 0),l(this,\"_lastPlayheadTimeUpdatedTime\",void 0),l(this,\"_rebuffering\",void 0),l(this,\"pm\",void 0),this.pm=e,!(e.disableRebufferTracking||e.disablePlayheadRebufferTracking)&&(this._lastCheckedTime=null,this._lastPlayheadTime=null,this._lastPlayheadTimeUpdatedTime=null,e.on(\"playbackheartbeat\",this._checkIfRebuffering.bind(this)),e.on(\"playbackheartbeatend\",this._cleanupRebufferTracker.bind(this)),e.on(\"seeking\",function(){t._cleanupRebufferTracker(null,{viewer_time:P.now()})}))}return N(r,[{key:\"_checkIfRebuffering\",value:function(t,i){if(this.pm.seekingTracker.isSeeking||this.pm.adTracker.isAdBreak||!this.pm.playbackHeartbeat._playheadShouldBeProgressing){this._cleanupRebufferTracker(t,i);return}if(this._lastCheckedTime===null){this._prepareRebufferTrackerState(i.viewer_time);return}if(this._lastPlayheadTime!==this.pm.data.player_playhead_time){this._cleanupRebufferTracker(t,i,!0);return}var a=i.viewer_time-this._lastPlayheadTimeUpdatedTime;typeof this.pm.sustainedRebufferThreshold==\"number\"&&a>=this.pm.sustainedRebufferThreshold&&(this._rebuffering||(this._rebuffering=!0,this.pm.emit(\"rebufferstart\",{viewer_time:this._lastPlayheadTimeUpdatedTime}))),this._lastCheckedTime=i.viewer_time}},{key:\"_clearRebufferTrackerState\",value:function(){this._lastCheckedTime=null,this._lastPlayheadTime=null,this._lastPlayheadTimeUpdatedTime=null}},{key:\"_prepareRebufferTrackerState\",value:function(t){this._lastCheckedTime=t,this._lastPlayheadTime=this.pm.data.player_playhead_time,this._lastPlayheadTimeUpdatedTime=t}},{key:\"_cleanupRebufferTracker\",value:function(t,i){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(this._rebuffering)this._rebuffering=!1,this.pm.emit(\"rebufferend\",{viewer_time:i.viewer_time});else{if(this._lastCheckedTime===null)return;var n=this.pm.data.player_playhead_time-this._lastPlayheadTime,o=i.viewer_time-this._lastPlayheadTimeUpdatedTime;typeof this.pm.minimumRebufferDuration==\"number\"&&n>0&&o-n>this.pm.minimumRebufferDuration&&(this._lastCheckedTime=null,this.pm.emit(\"rebufferstart\",{viewer_time:this._lastPlayheadTimeUpdatedTime}),this.pm.emit(\"rebufferend\",{viewer_time:this._lastPlayheadTimeUpdatedTime+o-n}))}a?this._prepareRebufferTrackerState(i.viewer_time):this._clearRebufferTrackerState()}}]),r}(),Jt=Ta;var ka=function(){\"use strict\";function r(e){var t=this;S(this,r),l(this,\"pm\",void 0),this.pm=e,e.on(\"viewinit\",function(){var i=e.data,a=i.view_id;if(!i.view_program_changed){var n=function(o,s){var u=s.viewer_time;o.type===\"playing\"&&typeof e.data.view_time_to_first_frame==\"undefined\"?t.calculateTimeToFirstFrame(u||P.now(),a):o.type===\"adplaying\"&&(typeof e.data.view_time_to_first_frame==\"undefined\"||t._inPrerollPosition())&&t.calculateTimeToFirstFrame(u||P.now(),a)};e.one(\"playing\",n),e.one(\"adplaying\",n),e.one(\"viewend\",function(){e.off(\"playing\",n),e.off(\"adplaying\",n)})}})}return N(r,[{key:\"_inPrerollPosition\",value:function(){return typeof this.pm.data.view_content_playback_time==\"undefined\"||this.pm.data.view_content_playback_time<=1e3}},{key:\"calculateTimeToFirstFrame\",value:function(t,i){i===this.pm.data.view_id&&(this.pm.watchTimeTracker._updateWatchTime(null,{viewer_time:t}),this.pm.data.view_time_to_first_frame=this.pm.data.view_watch_time,(this.pm.data.player_autoplay_on||this.pm.data.video_is_autoplay)&&this.pm.pageLoadInitTime&&(this.pm.data.view_aggregate_startup_time=this.pm.data.view_start+this.pm.data.view_watch_time-this.pm.pageLoadInitTime))}}]),r}(),Qt=ka;var Ea=function r(e){\"use strict\";var t=this;S(this,r),l(this,\"_lastPlayerHeight\",void 0),l(this,\"_lastPlayerWidth\",void 0),l(this,\"_lastPlayheadPosition\",void 0),l(this,\"_lastSourceHeight\",void 0),l(this,\"_lastSourceWidth\",void 0),e.on(\"viewinit\",function(){t._lastPlayheadPosition=-1});var i=[\"pause\",\"rebufferstart\",\"seeking\",\"error\",\"adbreakstart\",\"hb\",\"renditionchange\",\"orientationchange\",\"viewend\",\"playbackmodechange\"],a=[\"playing\",\"hb\",\"renditionchange\",\"orientationchange\",\"playbackmodechange\"];i.forEach(function(n){e.on(n,function(){if(t._lastPlayheadPosition>=0&&e.data.player_playhead_time>=0&&t._lastPlayerWidth>=0&&t._lastSourceWidth>0&&t._lastPlayerHeight>=0&&t._lastSourceHeight>0){var o=e.data.player_playhead_time-t._lastPlayheadPosition;if(o<0){t._lastPlayheadPosition=-1;return}var s=Math.min(t._lastPlayerWidth/t._lastSourceWidth,t._lastPlayerHeight/t._lastSourceHeight),u=Math.max(0,s-1),f=Math.max(0,1-s);e.data.view_max_upscale_percentage=Math.max(e.data.view_max_upscale_percentage||0,u),e.data.view_max_downscale_percentage=Math.max(e.data.view_max_downscale_percentage||0,f),O(e.data,\"view_total_content_playback_time\",o),O(e.data,\"view_total_upscaling\",u*o),O(e.data,\"view_total_downscaling\",f*o)}t._lastPlayheadPosition=-1})}),a.forEach(function(n){e.on(n,function(){t._lastPlayheadPosition=e.data.player_playhead_time,t._lastPlayerWidth=e.data.player_width,t._lastPlayerHeight=e.data.player_height,t._lastSourceWidth=e.data.video_source_width,t._lastSourceHeight=e.data.video_source_height})})},zt=Ea;var xa=2e3,Sa=function r(e){\"use strict\";var t=this;S(this,r),l(this,\"isSeeking\",void 0),this.isSeeking=!1;var i=-1,a=function(){var n=P.now(),o=(e.data.viewer_time||n)-(i||n);O(e.data,\"view_seek_duration\",o),e.data.view_max_seek_time=Math.max(e.data.view_max_seek_time||0,o),t.isSeeking=!1,i=-1};e.on(\"seeking\",function(n,o){if(Object.assign(e.data,o),t.isSeeking&&o.viewer_time-i<=xa){i=o.viewer_time;return}t.isSeeking&&a(),t.isSeeking=!0,i=o.viewer_time,O(e.data,\"view_seek_count\",1),e.send(\"seeking\")}),e.on(\"seeked\",function(){a()}),e.on(\"viewend\",function(){t.isSeeking&&(a(),e.send(\"seeked\")),t.isSeeking=!1,i=-1})},Kt=Sa;var Yt=function(e,t){e.push(t),e.sort(function(i,a){return i.viewer_time-a.viewer_time})},Ra=[\"adbreakstart\",\"adrequest\",\"adresponse\",\"adplay\",\"adplaying\",\"adpause\",\"adended\",\"adbreakend\",\"aderror\",\"adclicked\",\"adskipped\"],Da=function(){\"use strict\";function r(e){var t=this;S(this,r),l(this,\"_adHasPlayed\",void 0),l(this,\"_adRequests\",void 0),l(this,\"_adResponses\",void 0),l(this,\"_currentAdRequestNumber\",void 0),l(this,\"_currentAdResponseNumber\",void 0),l(this,\"_prerollPlayTime\",void 0),l(this,\"_wouldBeNewAdPlay\",void 0),l(this,\"isAdBreak\",void 0),l(this,\"pm\",void 0),this.pm=e,e.on(\"viewinit\",function(){t.isAdBreak=!1,t._currentAdRequestNumber=0,t._currentAdResponseNumber=0,t._adRequests=[],t._adResponses=[],t._adHasPlayed=!1,t._wouldBeNewAdPlay=!0,t._prerollPlayTime=void 0}),Ra.forEach(function(a){return e.on(a,t._updateAdData.bind(t))});var i=function(){t.isAdBreak=!1};e.on(\"adbreakstart\",function(){t.isAdBreak=!0}),e.on(\"play\",i),e.on(\"playing\",i),e.on(\"viewend\",i),e.on(\"adrequest\",function(a,n){n=Object.assign({ad_request_id:\"generatedAdRequestId\"+t._currentAdRequestNumber++},n),Yt(t._adRequests,n),O(e.data,\"view_ad_request_count\"),t.inPrerollPosition()&&(e.data.view_preroll_requested=!0,t._adHasPlayed||O(e.data,\"view_preroll_request_count\"))}),e.on(\"adresponse\",function(a,n){n=Object.assign({ad_request_id:\"generatedAdRequestId\"+t._currentAdResponseNumber++},n),Yt(t._adResponses,n);var o=t.findAdRequest(n.ad_request_id);o&&O(e.data,\"view_ad_request_time\",Math.max(0,n.viewer_time-o.viewer_time))}),e.on(\"adplay\",function(a,n){t._adHasPlayed=!0,t._wouldBeNewAdPlay&&(t._wouldBeNewAdPlay=!1,O(e.data,\"view_ad_played_count\")),t.inPrerollPosition()&&!e.data.view_preroll_played&&(e.data.view_preroll_played=!0,t._adRequests.length>0&&(e.data.view_preroll_request_time=Math.max(0,n.viewer_time-t._adRequests[0].viewer_time)),e.data.view_start&&(e.data.view_startup_preroll_request_time=Math.max(0,n.viewer_time-e.data.view_start)),t._prerollPlayTime=n.viewer_time)}),e.on(\"adplaying\",function(a,n){t.inPrerollPosition()&&typeof e.data.view_preroll_load_time==\"undefined\"&&typeof t._prerollPlayTime!=\"undefined\"&&(e.data.view_preroll_load_time=n.viewer_time-t._prerollPlayTime,e.data.view_startup_preroll_load_time=n.viewer_time-t._prerollPlayTime)}),e.on(\"adclicked\",function(a,n){t._wouldBeNewAdPlay||O(e.data,\"view_ad_clicked_count\")}),e.on(\"adskipped\",function(a,n){t._wouldBeNewAdPlay||O(e.data,\"view_ad_skipped_count\")}),e.on(\"adended\",function(){t._wouldBeNewAdPlay=!0}),e.on(\"aderror\",function(){t._wouldBeNewAdPlay=!0})}return N(r,[{key:\"inPrerollPosition\",value:function(){return typeof this.pm.data.view_content_playback_time==\"undefined\"||this.pm.data.view_content_playback_time<=1e3}},{key:\"findAdRequest\",value:function(t){for(var i=0;i<this._adRequests.length;i++)if(this._adRequests[i].ad_request_id===t)return this._adRequests[i]}},{key:\"_updateAdData\",value:function(t,i){if(this.inPrerollPosition()){if(!this.pm.data.view_preroll_ad_tag_hostname&&i.ad_tag_url){var a=H(re(i.ad_tag_url),2),n=a[0],o=a[1];this.pm.data.view_preroll_ad_tag_domain=o,this.pm.data.view_preroll_ad_tag_hostname=n}if(!this.pm.data.view_preroll_ad_asset_hostname&&i.ad_asset_url){var s=H(re(i.ad_asset_url),2),u=s[0],f=s[1];this.pm.data.view_preroll_ad_asset_domain=f,this.pm.data.view_preroll_ad_asset_hostname=u}this.pm.data.ad_type=\"preroll\"}this.pm.data.ad_asset_url=i==null?void 0:i.ad_asset_url,this.pm.data.ad_tag_url=i==null?void 0:i.ad_tag_url,this.pm.data.ad_creative_id=i==null?void 0:i.ad_creative_id,this.pm.data.ad_id=i==null?void 0:i.ad_id,this.pm.data.ad_universal_id=i==null?void 0:i.ad_universal_id,i!=null&&i.ad_type&&(this.pm.data.ad_type=i==null?void 0:i.ad_type)}}]),r}(),Xt=Da;var qa=function r(e){\"use strict\";var t=this;S(this,r),l(this,\"lastWallClockTime\",void 0);var i=function(){t.lastWallClockTime=P.now(),e.on(\"before*\",a)},a=function(n){var o=P.now(),s=t.lastWallClockTime;t.lastWallClockTime=o,o-s>3e4&&(e.emit(\"devicesleep\",{viewer_time:s}),Object.assign(e.data,{viewer_time:s}),e.send(\"devicesleep\"),e.emit(\"devicewake\",{viewer_time:o}),Object.assign(e.data,{viewer_time:o}),e.send(\"devicewake\"))};e.one(\"playbackheartbeat\",i),e.on(\"playbackheartbeatend\",function(){e.off(\"before*\",a),e.one(\"playbackheartbeat\",i)})},$t=qa;var Fe=G(Q());var ze=function(r){return r()}(function(){var r=function(){for(var i=0,a={};i<arguments.length;i++){var n=arguments[i];for(var o in n)a[o]=n[o]}return a};function e(t){function i(a,n,o){var s;if(typeof document!=\"undefined\"){if(arguments.length>1){if(o=r({path:\"/\"},i.defaults,o),typeof o.expires==\"number\"){var u=new Date;u.setMilliseconds(u.getMilliseconds()+o.expires*864e5),o.expires=u}try{s=JSON.stringify(n),/^[\\{\\[]/.test(s)&&(n=s)}catch(w){}return t.write?n=t.write(n,a):n=encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),a=encodeURIComponent(String(a)),a=a.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),a=a.replace(/[\\(\\)]/g,escape),document.cookie=[a,\"=\",n,o.expires?\"; expires=\"+o.expires.toUTCString():\"\",o.path?\"; path=\"+o.path:\"\",o.domain?\"; domain=\"+o.domain:\"\",o.secure?\"; secure\":\"\"].join(\"\")}a||(s={});for(var f=document.cookie?document.cookie.split(\"; \"):[],h=/(%[0-9A-Z]{2})+/g,E=0;E<f.length;E++){var y=f[E].split(\"=\"),c=y.slice(1).join(\"=\");c.charAt(0)==='\"'&&(c=c.slice(1,-1));try{var p=y[0].replace(h,decodeURIComponent);if(c=t.read?t.read(c,p):t(c,p)||c.replace(h,decodeURIComponent),this.json)try{c=JSON.parse(c)}catch(w){}if(a===p){s=c;break}a||(s[p]=c)}catch(w){}}return s}}return i.set=i,i.get=function(a){return i.call(i,a)},i.getJSON=function(){return i.apply({json:!0},[].slice.call(arguments))},i.defaults={},i.remove=function(a,n){i(a,\"\",r(n,{expires:-1}))},i.withConverter=e,i}return e(function(){})});var Zt=\"muxData\",Aa=function(r){return Object.entries(r).map(function(e){var t=H(e,2),i=t[0],a=t[1];return\"\".concat(i,\"=\").concat(a)}).join(\"&\")},Pa=function(r){return r.split(\"&\").reduce(function(e,t){var i=H(t.split(\"=\"),2),a=i[0],n=i[1],o=+n,s=n&&o==n?o:n;return e[a]=s,e},{})},er=function(){var e;try{e=Pa(ze.get(Zt)||\"\")}catch(t){e={}}return e},tr=function(e){try{ze.set(Zt,Aa(e),{expires:365})}catch(t){}},rr=function(){var e=er();return e.mux_viewer_id=e.mux_viewer_id||ee(),e.msn=e.msn||Math.random(),tr(e),{mux_viewer_id:e.mux_viewer_id,mux_sample_number:e.msn}},ar=function(){var e=er(),t=P.now();return e.session_start&&(e.sst=e.session_start,delete e.session_start),e.session_id&&(e.sid=e.session_id,delete e.session_id),e.session_expires&&(e.sex=e.session_expires,delete e.session_expires),(!e.sex||e.sex<t)&&(e.sid=ee(),e.sst=t),e.sex=t+25*60*1e3,tr(e),{session_id:e.sid,session_start:e.sst,session_expires:e.sex}};function Ke(r,e){var t=e.beaconCollectionDomain,i=e.beaconDomain;if(t)return\"https://\"+t;r=r||\"inferred\";var a=i||\"litix.io\";return r.match(/^[a-z0-9]+$/)?\"https://\"+r+\".\"+a:\"https://img.litix.io/a.gif\"}var ir=G(Q()),nr=function(){var e;switch(or()){case\"cellular\":e=\"cellular\";break;case\"ethernet\":e=\"wired\";break;case\"wifi\":e=\"wifi\";break;case void 0:break;default:e=\"other\"}return e},or=function(){var e=ir.default.navigator,t=e&&(e.connection||e.mozConnection||e.webkitConnection);return t&&t.type};nr.getConnectionFromAPI=or;var sr=nr;var Oa={a:\"env\",b:\"beacon\",c:\"custom\",d:\"ad\",e:\"event\",f:\"experiment\",i:\"internal\",m:\"mux\",n:\"response\",p:\"player\",q:\"request\",r:\"retry\",s:\"session\",t:\"timestamp\",u:\"viewer\",v:\"video\",w:\"page\",x:\"view\",y:\"sub\"},La=lr(Oa),Ia={ad:\"ad\",af:\"affiliate\",ag:\"aggregate\",ap:\"api\",al:\"application\",ao:\"audio\",ar:\"architecture\",as:\"asset\",au:\"autoplay\",av:\"average\",bi:\"bitrate\",bn:\"brand\",br:\"break\",bw:\"browser\",by:\"bytes\",bz:\"business\",ca:\"cached\",cb:\"cancel\",cc:\"codec\",cd:\"code\",cg:\"category\",ch:\"changed\",ci:\"client\",ck:\"clicked\",cl:\"canceled\",cm:\"cmcd\",cn:\"config\",co:\"count\",ce:\"counter\",cp:\"complete\",cq:\"creator\",cr:\"creative\",cs:\"captions\",ct:\"content\",cu:\"current\",cv:\"cumulative\",cx:\"connection\",cz:\"context\",da:\"data\",dg:\"downscaling\",dm:\"domain\",dn:\"cdn\",do:\"downscale\",dr:\"drm\",dp:\"dropped\",du:\"duration\",dv:\"device\",dy:\"dynamic\",eb:\"enabled\",ec:\"encoding\",ed:\"edge\",en:\"end\",eg:\"engine\",em:\"embed\",er:\"error\",ep:\"experiments\",es:\"errorcode\",et:\"errortext\",ee:\"event\",ev:\"events\",ex:\"expires\",ez:\"exception\",fa:\"failed\",fi:\"first\",fm:\"family\",ft:\"format\",fp:\"fps\",fq:\"frequency\",fr:\"frame\",fs:\"fullscreen\",ha:\"has\",hb:\"holdback\",he:\"headers\",ho:\"host\",hn:\"hostname\",ht:\"height\",id:\"id\",ii:\"init\",in:\"instance\",ip:\"ip\",is:\"is\",ke:\"key\",la:\"language\",lb:\"labeled\",le:\"level\",li:\"live\",ld:\"loaded\",lo:\"load\",ls:\"lists\",lt:\"latency\",ma:\"max\",md:\"media\",me:\"message\",mf:\"manifest\",mi:\"mime\",ml:\"midroll\",mm:\"min\",mn:\"manufacturer\",mo:\"model\",mp:\"mode\",ms:\"ms\",mx:\"mux\",ne:\"newest\",nm:\"name\",no:\"number\",on:\"on\",or:\"origin\",os:\"os\",pa:\"paused\",pb:\"playback\",pd:\"producer\",pe:\"percentage\",pf:\"played\",pg:\"program\",ph:\"playhead\",pi:\"plugin\",pl:\"preroll\",pn:\"playing\",po:\"poster\",pp:\"pip\",pr:\"preload\",ps:\"position\",pt:\"part\",pv:\"previous\",py:\"property\",px:\"pop\",pz:\"plan\",ra:\"rate\",rd:\"requested\",re:\"rebuffer\",rf:\"rendition\",rg:\"range\",rm:\"remote\",ro:\"ratio\",rp:\"response\",rq:\"request\",rs:\"requests\",sa:\"sample\",sd:\"skipped\",se:\"session\",sh:\"shift\",sk:\"seek\",sm:\"stream\",so:\"source\",sq:\"sequence\",sr:\"series\",ss:\"status\",st:\"start\",su:\"startup\",sv:\"server\",sw:\"software\",sy:\"severity\",ta:\"tag\",tc:\"tech\",te:\"text\",tg:\"target\",th:\"throughput\",ti:\"time\",tl:\"total\",to:\"to\",tt:\"title\",ty:\"type\",ug:\"upscaling\",un:\"universal\",up:\"upscale\",ur:\"url\",us:\"user\",va:\"variant\",vd:\"viewed\",vi:\"video\",ve:\"version\",vw:\"view\",vr:\"viewer\",wd:\"width\",wa:\"watch\",wt:\"waiting\"},ur=lr(Ia);function lr(r){var e={};for(var t in r)r.hasOwnProperty(t)&&(e[r[t]]=t);return e}function me(r){var e={},t={};return Object.keys(r).forEach(function(i){var a=!1;if(r.hasOwnProperty(i)&&r[i]!==void 0){var n=i.split(\"_\"),o=n[0],s=La[o];s||(q.info(\"Data key word `\"+n[0]+\"` not expected in \"+i),s=o+\"_\"),n.splice(1).forEach(function(u){u===\"url\"&&(a=!0),ur[u]?s+=ur[u]:Number.isInteger(Number(u))?s+=u:(q.info(\"Data key word `\"+u+\"` not expected in \"+i),s+=\"_\"+u+\"_\")}),a?t[s]=r[i]:e[s]=r[i]}}),Object.assign(e,t)}var ie=G(Q()),Nr=G(nt());var oi={maxBeaconSize:300,maxQueueLength:3600,baseTimeBetweenBeacons:1e4,maxPayloadKBSize:500},si=56*1024,ui=[\"hb\",\"requestcompleted\",\"requestfailed\",\"requestcanceled\"],li=\"https://img.litix.io\",$=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this._beaconUrl=e||li,this._eventQueue=[],this._postInFlight=!1,this._resendAfterPost=!1,this._failureCount=0,this._sendTimeout=!1,this._options=Object.assign({},oi,t)};$.prototype.queueEvent=function(r,e){var t=Object.assign({},e);return this._eventQueue.length<=this._options.maxQueueLength||r===\"eventrateexceeded\"?(this._eventQueue.push(t),this._sendTimeout||this._startBeaconSending(),this._eventQueue.length<=this._options.maxQueueLength):!1};$.prototype.flushEvents=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(r&&this._eventQueue.length===1){this._eventQueue.pop();return}this._eventQueue.length&&this._sendBeaconQueue(),this._startBeaconSending()};$.prototype.destroy=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;this.destroyed=!0,r?this._clearBeaconQueue():this.flushEvents(),ie.default.clearTimeout(this._sendTimeout)};$.prototype._clearBeaconQueue=function(){var r=this._eventQueue.length>this._options.maxBeaconSize?this._eventQueue.length-this._options.maxBeaconSize:0,e=this._eventQueue.slice(r);r>0&&Object.assign(e[e.length-1],me({mux_view_message:\"event queue truncated\"}));var t=this._createPayload(e);Cr(this._beaconUrl,t,!0,function(){})};$.prototype._sendBeaconQueue=function(){var r=this;if(this._postInFlight){this._resendAfterPost=!0;return}var e=this._eventQueue.slice(0,this._options.maxBeaconSize);this._eventQueue=this._eventQueue.slice(this._options.maxBeaconSize),this._postInFlight=!0;var t=this._createPayload(e),i=P.now();Cr(this._beaconUrl,t,!1,function(a,n){n?(r._eventQueue=e.concat(r._eventQueue),r._failureCount+=1,q.info(\"Error sending beacon: \"+n)):r._failureCount=0,r._roundTripTime=P.now()-i,r._postInFlight=!1,r._resendAfterPost&&(r._resendAfterPost=!1,r._eventQueue.length>0&&r._sendBeaconQueue())})};$.prototype._getNextBeaconTime=function(){if(!this._failureCount)return this._options.baseTimeBetweenBeacons;var r=Math.pow(2,this._failureCount-1);return r=r*Math.random(),(1+r)*this._options.baseTimeBetweenBeacons};$.prototype._startBeaconSending=function(){var r=this;ie.default.clearTimeout(this._sendTimeout),!this.destroyed&&(this._sendTimeout=ie.default.setTimeout(function(){r._eventQueue.length&&r._sendBeaconQueue(),r._startBeaconSending()},this._getNextBeaconTime()))};$.prototype._createPayload=function(r){var e=this,t={transmission_timestamp:Math.round(P.now())};this._roundTripTime&&(t.rtt_ms=Math.round(this._roundTripTime));var i,a,n,o=function(){i=JSON.stringify({metadata:t,events:a||r}),n=i.length/1024},s=function(){return n<=e._options.maxPayloadKBSize};return o(),s()||(q.info(\"Payload size is too big (\"+n+\" kb). Removing unnecessary events.\"),a=r.filter(function(u){return ui.indexOf(u.e)===-1}),o()),s()||(q.info(\"Payload size still too big (\"+n+\" kb). Cropping fields..\"),a.forEach(function(u){for(var f in u){var h=u[f],E=50*1024;typeof h==\"string\"&&h.length>E&&(u[f]=h.substring(0,E))}}),o()),i};var di=typeof Nr.default.exitPictureInPicture==\"function\"?function(r){return r.length<=si}:function(r){return!1},Cr=function(r,e,t,i){if(t&&navigator&&navigator.sendBeacon&&navigator.sendBeacon(r,e)){i();return}if(ie.default.fetch){ie.default.fetch(r,{method:\"POST\",body:e,headers:{\"Content-Type\":\"text/plain\"},keepalive:di(e)}).then(function(n){return i(null,n.ok?null:\"Error\")}).catch(function(n){return i(null,n)});return}if(ie.default.XMLHttpRequest){var a=new ie.default.XMLHttpRequest;a.onreadystatechange=function(){if(a.readyState===4)return i(null,a.status!==200?\"error\":void 0)},a.open(\"POST\",r),a.setRequestHeader(\"Content-Type\",\"text/plain\"),a.send(e);return}i()},Mr=$;var ci=[\"env_key\",\"view_id\",\"view_sequence_number\",\"player_sequence_number\",\"beacon_domain\",\"player_playhead_time\",\"viewer_time\",\"mux_api_version\",\"event\",\"video_id\",\"player_instance_id\",\"player_error_code\",\"player_error_message\",\"player_error_context\",\"player_error_severity\",\"player_error_business_exception\",\"view_playing_time_ms_cumulative\",\"ad_playing_time_ms_cumulative\"],_i=[\"adplay\",\"adplaying\",\"adpause\",\"adfirstquartile\",\"admidpoint\",\"adthirdquartile\",\"adended\",\"adresponse\",\"adrequest\"],fi=[\"ad_id\",\"ad_creative_id\",\"ad_universal_id\"],pi=[\"viewstart\",\"error\",\"ended\",\"viewend\"],mi=10*60*1e3,Hr=function(){\"use strict\";function r(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};S(this,r);var a,n,o,s,u,f,h,E,y,c,p,w;l(this,\"mux\",void 0),l(this,\"envKey\",void 0),l(this,\"options\",void 0),l(this,\"eventQueue\",void 0),l(this,\"sampleRate\",void 0),l(this,\"disableCookies\",void 0),l(this,\"respectDoNotTrack\",void 0),l(this,\"previousBeaconData\",void 0),l(this,\"lastEventTime\",void 0),l(this,\"rateLimited\",void 0),l(this,\"pageLevelData\",void 0),l(this,\"viewerData\",void 0),this.mux=e,this.envKey=t,this.options=i,this.previousBeaconData=null,this.lastEventTime=0,this.rateLimited=!1,this.eventQueue=new Mr(Ke(this.envKey,this.options));var x;this.sampleRate=(x=this.options.sampleRate)!==null&&x!==void 0?x:1;var v;this.disableCookies=(v=this.options.disableCookies)!==null&&v!==void 0?v:!1;var m;this.respectDoNotTrack=(m=this.options.respectDoNotTrack)!==null&&m!==void 0?m:!1,this.previousBeaconData=null,this.lastEventTime=0,this.rateLimited=!1,this.pageLevelData={mux_api_version:this.mux.API_VERSION,mux_embed:this.mux.NAME,mux_embed_version:this.mux.VERSION,viewer_application_name:(a=this.options.platform)===null||a===void 0?void 0:a.name,viewer_application_version:(n=this.options.platform)===null||n===void 0?void 0:n.version,viewer_application_engine:(o=this.options.platform)===null||o===void 0?void 0:o.layout,viewer_device_name:(s=this.options.platform)===null||s===void 0?void 0:s.product,viewer_device_category:\"\",viewer_device_manufacturer:(u=this.options.platform)===null||u===void 0?void 0:u.manufacturer,viewer_os_family:(h=this.options.platform)===null||h===void 0||(f=h.os)===null||f===void 0?void 0:f.family,viewer_os_architecture:(y=this.options.platform)===null||y===void 0||(E=y.os)===null||E===void 0?void 0:E.architecture,viewer_os_version:(p=this.options.platform)===null||p===void 0||(c=p.os)===null||c===void 0?void 0:c.version,viewer_connection_type:sr(),page_url:Fe.default===null||Fe.default===void 0||(w=Fe.default.location)===null||w===void 0?void 0:w.href},this.viewerData=this.disableCookies?{}:rr()}return N(r,[{key:\"send\",value:function(t,i){if(!(!t||!(i!=null&&i.view_id))){if(this.respectDoNotTrack&&ce())return q.info(\"Not sending `\"+t+\"` because Do Not Track is enabled\");if(!i||typeof i!=\"object\")return q.error(\"A data object was expected in send() but was not provided\");var a=this.disableCookies?{}:ar(),n=fe(ue({},this.pageLevelData,i,a,this.viewerData),{event:t,env_key:this.envKey});n.user_id&&(n.viewer_user_id=n.user_id,delete n.user_id);var o,s=((o=n.mux_sample_number)!==null&&o!==void 0?o:0)>=this.sampleRate,u=this._deduplicateBeaconData(t,n),f=me(u);if(this.lastEventTime=this.mux.utils.now(),s)return q.info(\"Not sending event due to sample rate restriction\",t,n,f);if(this.envKey||q.info(\"Missing environment key (envKey) - beacons will be dropped if the video source is not a valid mux video URL\",t,n,f),!this.rateLimited)if(q.info(\"Sending event\",t,n,f),this.rateLimited=!this.eventQueue.queueEvent(t,f),this.mux.WINDOW_UNLOADING&&t===\"viewend\")this.eventQueue.destroy(!0);else{if(this.mux.WINDOW_HIDDEN&&t===\"hb\")this.eventQueue.flushEvents(!0);else if(pi.indexOf(t)>=0){if(t===\"error\"&&i.player_error_severity===\"warning\")return;this.eventQueue.flushEvents()}if(this.rateLimited)return n.event=\"eventrateexceeded\",f=me(n),this.eventQueue.queueEvent(n.event,f),q.error(\"Beaconing disabled due to rate limit.\")}}}},{key:\"destroy\",value:function(){this.eventQueue.destroy(!1)}},{key:\"_deduplicateBeaconData\",value:function(t,i){var a=this,n={},o=i.view_id;if(o===\"-1\"||t===\"viewstart\"||t===\"viewend\"||!this.previousBeaconData||this.mux.utils.now()-this.lastEventTime>=mi)n=ue({},i),o&&(this.previousBeaconData=n),o&&t===\"viewend\"&&(this.previousBeaconData=null);else{var s=t.indexOf(\"request\")===0;Object.entries(i).forEach(function(u){var f=H(u,2),h=f[0],E=f[1];a.previousBeaconData&&(E!==a.previousBeaconData[h]||ci.indexOf(h)>-1||a.objectHasChanged(s,h,E,a.previousBeaconData[h])||a.eventRequiresKey(t,h))&&(n[h]=E,a.previousBeaconData[h]=E)})}return n}},{key:\"objectHasChanged\",value:function(t,i,a,n){return!t||i.indexOf(\"request_\")!==0?!1:i===\"request_response_headers\"||typeof a!=\"object\"||typeof n!=\"object\"?!0:Object.keys(a||{}).length!==Object.keys(n||{}).length}},{key:\"eventRequiresKey\",value:function(t,i){return!!(t===\"renditionchange\"&&i.indexOf(\"video_source_\")===0||fi.includes(i)&&_i.includes(t)||t===\"playbackmodechange\"&&i.indexOf(\"player_playback_mode\")===0)}}]),r}();var vi=function r(e){\"use strict\";S(this,r);var t=0,i=0,a=0,n=0,o=0,s=0,u=0,f=function(y,c){var p=c.request_start,w=c.request_response_start,x=c.request_response_end,v=c.request_bytes_loaded;n++;var m,_;if(w?(m=w-(p!=null?p:0),_=(x!=null?x:0)-w):_=(x!=null?x:0)-(p!=null?p:0),_>0&&v&&v>0){var d=v/_*8e3;o++,i+=v,a+=_,e.data.view_min_request_throughput=Math.min(e.data.view_min_request_throughput||1/0,d),e.data.view_average_request_throughput=i/a*8e3,e.data.view_request_count=n,m>0&&(t+=m,e.data.view_max_request_latency=Math.max(e.data.view_max_request_latency||0,m),e.data.view_average_request_latency=t/o)}},h=function(y,c){n++,s++,e.data.view_request_count=n,e.data.view_request_failed_count=s},E=function(y,c){n++,u++,e.data.view_request_count=n,e.data.view_request_canceled_count=u};e.on(\"requestcompleted\",f),e.on(\"requestfailed\",h),e.on(\"requestcanceled\",E)},Br=vi;var hi=60*60*1e3,yi=function r(e){\"use strict\";var t=this;S(this,r),l(this,\"_lastEventTime\",void 0),e.on(\"before*\",function(i,a){var n=a.viewer_time,o=P.now(),s=t._lastEventTime;if(t._lastEventTime=o,s&&o-s>hi){var u=Object.keys(e.data).reduce(function(h,E){return E.indexOf(\"video_\")===0?Object.assign(h,l({},E,e.data[E])):h},{});e.mux.log.info(\"Received event after at least an hour inactivity, creating a new view\");var f=e.playbackHeartbeat._playheadShouldBeProgressing;e._resetView(Object.assign({viewer_time:n},u)),e.playbackHeartbeat._playheadShouldBeProgressing=f,e.playbackHeartbeat._playheadShouldBeProgressing&&i.type!==\"play\"&&i.type!==\"adbreakstart\"&&(e.emit(\"play\",{viewer_time:n}),i.type!==\"playing\"&&e.emit(\"playing\",{viewer_time:n}))}})},Ur=yi;var gi=function r(e){\"use strict\";S(this,r);var t=function(u){var f=bi(u),h=wi(u);if(f!=null&&!Fr(f,n)&&o<=h){n=f,o=h;var E={video_cdn:f};e.emit(\"cdnchange\",E)}},i=null,a=null,n=null,o=0;e.on(\"viewinit\",function(){i=null,a=null,n=null,o=0}),e.on(\"beforecdnchange\",function(s,u){var f=u==null?void 0:u.video_cdn;f&&(typeof u.video_previous_cdn==\"undefined\"||u.video_previous_cdn===null)&&(Fr(f,a)?u.video_previous_cdn=i!=null?i:void 0:(u.video_previous_cdn=a!=null?a:void 0,i=a,a=f))}),e.on(\"requestcompleted\",function(s,u){t(u)})};function Fr(r,e){return(r==null?void 0:r.toLowerCase())===(e==null?void 0:e.toLowerCase())}function bi(r){var e;return r!=null&&r.request_type&&(r.request_type===\"media\"||r.request_type===\"video\")&&(!((e=r.request_response_headers)===null||e===void 0)&&e[\"x-cdn\"])?r.request_response_headers[\"x-cdn\"]:r!=null&&r.video_cdn?r.video_cdn:null}function wi(r){return r!=null&&r.request_start?r.request_start:r!=null&&r.viewer_time?r.viewer_time:Date.now()}var Vr=gi;var Ti=function(r){try{return JSON.parse(r),!0}catch(e){return!1}},ki=function r(e){\"use strict\";var t=this;S(this,r),l(this,\"_emittingAutomaticEvent\",!1),l(this,\"_hasInitialized\",!1),l(this,\"_currentMode\",\"standard\"),e.on(\"viewstart\",function(){t._hasInitialized||(t._hasInitialized=!0,t._currentMode=e.data.player_playback_mode||\"standard\",t._emittingAutomaticEvent=!0,e.emit(\"playbackmodechange\",{player_playback_mode:t._currentMode,player_playback_mode_data:\"{}\"}),t._emittingAutomaticEvent=!1)}),e.on(\"viewend\",function(){t._hasInitialized=!1}),e.on(\"playbackmodechange\",function(i,a){t._emittingAutomaticEvent||(a.player_playback_mode_data?Ti(a.player_playback_mode_data)||(e.mux.log.warn(\"Invalid JSON string for player_playback_mode_data\"),a.player_playback_mode_data=\"{}\"):a.player_playback_mode_data=\"{}\",e.data.player_playback_mode_data=a.player_playback_mode_data,e.data.player_playback_mode=a.player_playback_mode,t._currentMode=a.player_playback_mode)})},jr=ki;var Ei=function(){\"use strict\";function r(e){S(this,r),l(this,\"pm\",void 0),l(this,\"_currentRangeStart\",void 0),l(this,\"_lastPlayheadTime\",void 0),this.pm=e,this._currentRangeStart=null,this._lastPlayheadTime=null,e.on(\"playbackheartbeat\",this._updatePlaybackRange.bind(this)),e.on(\"playbackheartbeatend\",this._endPlaybackRange.bind(this))}return N(r,[{key:\"_updateLastRangeEnd\",value:function(){var t=this.pm.data.video_playback_ranges;if(t&&t.length>0){var i=this.pm.data.player_playhead_time||0;t[t.length-1][1]=i}}},{key:\"_updatePlaybackRange\",value:function(){var t,i=this.pm.data.player_playhead_time||0;if(!(!this.pm.disableAdPlaybackRangeFiltering&&(!((t=this.pm.adTracker)===null||t===void 0)&&t.isAdBreak)&&this._lastPlayheadTime!==null&&i<this._lastPlayheadTime)){if(this._lastPlayheadTime!==null&&this._currentRangeStart!==null){var a=Math.abs(i-this._lastPlayheadTime);if(a>1e3){var n=this.pm.data.video_playback_ranges;n&&n.length>0&&(n[n.length-1][1]=this._lastPlayheadTime),this._currentRangeStart=null}}if(this._currentRangeStart===null){var o=this.pm.data.video_playback_ranges||[];o.length>0&&o[o.length-1][1]===i?this._currentRangeStart=o[o.length-1][0]:(this._currentRangeStart=i,o.push([i,i])),this.pm.data.video_playback_ranges=o}else this._updateLastRangeEnd();this._lastPlayheadTime=i}}},{key:\"_endPlaybackRange\",value:function(){this._currentRangeStart!==null&&(this._updateLastRangeEnd(),this._currentRangeStart=null,this._lastPlayheadTime=null)}}]),r}(),Wr=Ei;var xi=[\"viewstart\",\"ended\",\"loadstart\",\"pause\",\"play\",\"playing\",\"ratechange\",\"waiting\",\"adplay\",\"adpause\",\"adended\",\"aderror\",\"adplaying\",\"adrequest\",\"adresponse\",\"adbreakstart\",\"adbreakend\",\"adfirstquartile\",\"admidpoint\",\"adthirdquartile\",\"rebufferstart\",\"rebufferend\",\"seeked\",\"error\",\"hb\",\"requestcompleted\",\"requestfailed\",\"requestcanceled\",\"renditionchange\",\"cdnchange\",\"playbackmodechange\"],Si=new Set([\"requestcompleted\",\"requestfailed\",\"requestcanceled\"]),Ri=function(r){\"use strict\";xt(t,r);var e=At(t);function t(i,a,n){S(this,t);var o;o=e.call(this),l(b(o),\"pageLoadEndTime\",void 0),l(b(o),\"pageLoadInitTime\",void 0),l(b(o),\"_destroyed\",void 0),l(b(o),\"_heartBeatTimeout\",void 0),l(b(o),\"adTracker\",void 0),l(b(o),\"dashjs\",void 0),l(b(o),\"data\",void 0),l(b(o),\"disablePlayheadRebufferTracking\",void 0),l(b(o),\"disableRebufferTracking\",void 0),l(b(o),\"disableAdPlaybackRangeFiltering\",void 0),l(b(o),\"errorTracker\",void 0),l(b(o),\"errorTranslator\",void 0),l(b(o),\"emitTranslator\",void 0),l(b(o),\"getAdData\",void 0),l(b(o),\"getPlayheadTime\",void 0),l(b(o),\"getStateData\",void 0),l(b(o),\"stateDataTranslator\",void 0),l(b(o),\"hlsjs\",void 0),l(b(o),\"id\",void 0),l(b(o),\"longResumeTracker\",void 0),l(b(o),\"minimumRebufferDuration\",void 0),l(b(o),\"mux\",void 0),l(b(o),\"playbackEventDispatcher\",void 0),l(b(o),\"playbackHeartbeat\",void 0),l(b(o),\"playbackHeartbeatTime\",void 0),l(b(o),\"playheadTime\",void 0),l(b(o),\"seekingTracker\",void 0),l(b(o),\"sustainedRebufferThreshold\",void 0),l(b(o),\"watchTimeTracker\",void 0),l(b(o),\"currentFragmentPDT\",void 0),l(b(o),\"currentFragmentStart\",void 0),o.pageLoadInitTime=_e.navigationStart(),o.pageLoadEndTime=_e.domContentLoadedEventEnd();var s={debug:!1,minimumRebufferDuration:250,sustainedRebufferThreshold:1e3,playbackHeartbeatTime:25,beaconDomain:\"litix.io\",sampleRate:1,disableCookies:!1,respectDoNotTrack:!1,disableRebufferTracking:!1,disablePlayheadRebufferTracking:!1,disableAdPlaybackRangeFiltering:!1,errorTranslator:function(y){return y},emitTranslator:function(){for(var y=arguments.length,c=new Array(y),p=0;p<y;p++)c[p]=arguments[p];return c},stateDataTranslator:function(y){return y}};o.mux=i,o.id=a,n!=null&&n.beaconDomain&&o.mux.log.warn(\"The `beaconDomain` setting has been deprecated in favor of `beaconCollectionDomain`. Please change your integration to use `beaconCollectionDomain` instead of `beaconDomain`.\"),n=Object.assign(s,n),n.data=n.data||{},n.data.property_key&&(n.data.env_key=n.data.property_key,delete n.data.property_key),q.level=n.debug?Y.DEBUG:Y.WARN,o.getPlayheadTime=n.getPlayheadTime,o.getStateData=n.getStateData||function(){return{}},o.getAdData=n.getAdData||function(){},o.minimumRebufferDuration=n.minimumRebufferDuration,o.sustainedRebufferThreshold=n.sustainedRebufferThreshold,o.playbackHeartbeatTime=n.playbackHeartbeatTime,o.disableRebufferTracking=n.disableRebufferTracking,o.disableRebufferTracking&&o.mux.log.warn(\"Disabling rebuffer tracking. This should only be used in specific circumstances as a last resort when your player is known to unreliably track rebuffering.\"),o.disablePlayheadRebufferTracking=n.disablePlayheadRebufferTracking,o.disableAdPlaybackRangeFiltering=n.disableAdPlaybackRangeFiltering,o.errorTranslator=n.errorTranslator,o.emitTranslator=n.emitTranslator,o.stateDataTranslator=n.stateDataTranslator,o.playbackEventDispatcher=new Hr(i,n.data.env_key,n),o.data={player_instance_id:ee(),mux_sample_rate:n.sampleRate,beacon_domain:n.beaconCollectionDomain||n.beaconDomain},o.data.view_sequence_number=1,o.data.player_sequence_number=1;var u=function(){typeof this.data.view_start==\"undefined\"&&(this.data.view_start=this.mux.utils.now(),this.emit(\"viewstart\"),this.emit(\"renditionchange\"))}.bind(b(o));if(o.on(\"viewinit\",function(y,c){this._resetVideoData(),this._resetViewData(),this._resetErrorData(),this._updateStateData(),Object.assign(this.data,c),this._initializeViewData(),this.one(\"play\",u),this.one(\"adbreakstart\",u)}),o.on(\"videochange\",function(y,c){this._resetView(c)}),o.on(\"programchange\",function(y,c){this.data.player_is_paused&&this.mux.log.warn(\"The `programchange` event is intended to be used when the content changes mid playback without the video source changing, however the video is not currently playing. If the video source is changing please use the videochange event otherwise you will lose startup time information.\"),this._resetView(Object.assign(c,{view_program_changed:!0})),u(),this.emit(\"play\"),this.emit(\"playing\")}),o.on(\"fragmentchange\",function(y,c){this.currentFragmentPDT=c.currentFragmentPDT,this.currentFragmentStart=c.currentFragmentStart}),o.on(\"destroy\",o.destroy),typeof window!=\"undefined\"&&typeof window.addEventListener==\"function\"&&typeof window.removeEventListener==\"function\"){var f=function(){var y=typeof o.data.view_start!=\"undefined\";o.mux.WINDOW_HIDDEN=document.visibilityState===\"hidden\",y&&o.mux.WINDOW_HIDDEN&&(o.data.player_is_paused||o.emit(\"hb\"))};window.addEventListener(\"visibilitychange\",f,!1);var h=function(y){y.persisted||o.destroy()};window.addEventListener(\"pagehide\",h,!1),o.on(\"destroy\",function(){window.removeEventListener(\"visibilitychange\",f),window.removeEventListener(\"pagehide\",h)})}o.on(\"playerready\",function(y,c){Object.assign(this.data,c)}),xi.forEach(function(y){o.on(y,function(c,p){y.indexOf(\"ad\")!==0&&this._updateStateData(),Object.assign(this.data,p),this._sanitizeData()}),o.on(\"after\"+y,function(){(y!==\"error\"||this.errorTracker.viewErrored)&&this.send(y)})}),o.on(\"viewend\",function(y,c){Object.assign(o.data,c)});var E=function(c){var p=this.mux.utils.now();this.data.player_init_time&&(this.data.player_startup_time=p-this.data.player_init_time),this.pageLoadInitTime=this.data.page_load_init_time||this.pageLoadInitTime,this.pageLoadEndTime=this.data.page_load_end_time||this.pageLoadEndTime,!this.mux.PLAYER_TRACKED&&this.pageLoadInitTime&&(this.mux.PLAYER_TRACKED=!0,(this.data.player_init_time||this.pageLoadEndTime)&&(this.data.page_load_time=Math.min(this.data.player_init_time||1/0,this.pageLoadEndTime||1/0)-this.pageLoadInitTime)),this.send(\"playerready\"),delete this.data.player_startup_time,delete this.data.page_load_time};return o.one(\"playerready\",E),o.longResumeTracker=new Ur(b(o)),o.errorTracker=new Ut(b(o)),new $t(b(o)),o.seekingTracker=new Kt(b(o)),o.playheadTime=new jt(b(o)),o.playbackHeartbeat=new Bt(b(o)),new zt(b(o)),o.watchTimeTracker=new Ft(b(o)),new Vt(b(o)),new Wr(b(o)),o.adTracker=new Xt(b(o)),new Jt(b(o)),new Gt(b(o)),new Qt(b(o)),new Br(b(o)),new Vr(b(o)),new jr(b(o)),n.hlsjs&&o.addHLSJS(n),n.dashjs&&o.addDashJS(n),o.emit(\"viewinit\",n.data),o}return N(t,[{key:\"emit\",value:function(a,n){var o,s=Object.assign({viewer_time:this.mux.utils.now()},n),u=[a,s];if(this.emitTranslator)try{u=this.emitTranslator(a,s)}catch(f){this.mux.log.warn(\"Exception in emit translator callback.\",f)}u!=null&&u.length&&(o=Se(X(t.prototype),\"emit\",this)).call.apply(o,[this].concat(V(u)))}},{key:\"destroy\",value:function(){this._destroyed||(this._destroyed=!0,typeof this.data.view_start!=\"undefined\"&&(this.emit(\"viewend\"),this.send(\"viewend\")),this.playbackEventDispatcher.destroy(),this.removeHLSJS(),this.removeDashJS(),window.clearTimeout(this._heartBeatTimeout))}},{key:\"send\",value:function(a){if(this.data.view_id){var n=Object.assign({},this.data),o=[\"player_program_time\",\"player_manifest_newest_program_time\",\"player_live_edge_program_time\",\"player_program_time\",\"video_holdback\",\"video_part_holdback\",\"video_target_duration\",\"video_part_target_duration\"];if(n.video_source_is_live===void 0&&(n.player_source_duration===1/0||n.video_source_duration===1/0?n.video_source_is_live=!0:(n.player_source_duration>0||n.video_source_duration>0)&&(n.video_source_is_live=!1)),n.video_source_is_live||o.forEach(function(h){n[h]=void 0}),n.video_source_url=n.video_source_url||n.player_source_url,n.video_source_url){var s=H(re(n.video_source_url),2),u=s[0],f=s[1];n.video_source_domain=f,n.video_source_hostname=u}delete n.ad_request_id,n.video_playback_ranges&&(n.video_playback_range=JSON.stringify(n.video_playback_ranges.filter(function(h){return h[0]!==h[1]}).map(function(h){return\"\".concat(h[0],\":\").concat(h[1])})),delete n.video_playback_ranges),this.playbackEventDispatcher.send(a,n),this.data.view_sequence_number++,this.data.player_sequence_number++,Si.has(a)||this._restartHeartBeat(),a===\"viewend\"&&delete this.data.view_id}}},{key:\"_resetView\",value:function(a){this.emit(\"viewend\"),this.send(\"viewend\"),this.emit(\"viewinit\",a)}},{key:\"_updateStateData\",value:function(){var a,n=this.getStateData();if(typeof this.stateDataTranslator==\"function\")try{n=this.stateDataTranslator(n)}catch(u){this.mux.log.warn(\"Exception in stateDataTranslator translator callback.\",u)}if(!((a=this.data)===null||a===void 0)&&a.video_cdn&&(n!=null&&n.video_cdn)){var o=n.video_cdn,s=Rt(n,[\"video_cdn\"]);n=s}Object.assign(this.data,n),this.playheadTime._updatePlayheadTime(),this._sanitizeData()}},{key:\"_sanitizeData\",value:function(){var a=this,n=[\"player_width\",\"player_height\",\"video_source_width\",\"video_source_height\",\"player_playhead_time\",\"video_source_bitrate\"];n.forEach(function(s){var u=parseInt(a.data[s],10);a.data[s]=isNaN(u)?void 0:u});var o=[\"player_source_url\",\"video_source_url\"];o.forEach(function(s){if(a.data[s]){var u=a.data[s].toLowerCase();(u.indexOf(\"data:\")===0||u.indexOf(\"blob:\")===0)&&(a.data[s]=\"MSE style URL\")}})}},{key:\"_resetVideoData\",value:function(){var a=this;Object.keys(this.data).forEach(function(n){n.indexOf(\"video_\")===0&&delete a.data[n]})}},{key:\"_resetViewData\",value:function(){var a=this;Object.keys(this.data).forEach(function(n){n.indexOf(\"view_\")===0&&delete a.data[n]}),this.data.view_sequence_number=1}},{key:\"_resetErrorData\",value:function(){delete this.data.player_error_code,delete this.data.player_error_message,delete this.data.player_error_context,delete this.data.player_error_severity,delete this.data.player_error_business_exception}},{key:\"_initializeViewData\",value:function(){var a=this,n=this.data.view_id=ee(),o=function(){n===a.data.view_id&&O(a.data,\"player_view_count\",1)};this.data.player_is_paused?this.one(\"play\",o):o()}},{key:\"_restartHeartBeat\",value:function(){var a=this;window.clearTimeout(this._heartBeatTimeout),this._heartBeatTimeout=window.setTimeout(function(){a.data.player_is_paused||a.emit(\"hb\")},1e4)}},{key:\"addHLSJS\",value:function(a){if(!a.hlsjs){this.mux.log.warn(\"You must pass a valid hlsjs instance in order to track it.\");return}if(this.hlsjs){this.mux.log.warn(\"An instance of HLS.js is already being monitored for this player.\");return}this.hlsjs=a.hlsjs,Ot(this.mux,this.id,a.hlsjs,{},a.Hls||window.Hls)}},{key:\"removeHLSJS\",value:function(){this.hlsjs&&(Lt(this.hlsjs),this.hlsjs=void 0)}},{key:\"addDashJS\",value:function(a){if(!a.dashjs){this.mux.log.warn(\"You must pass a valid dashjs instance in order to track it.\");return}if(this.dashjs){this.mux.log.warn(\"An instance of Dash.js is already being monitored for this player.\");return}this.dashjs=a.dashjs,Nt(this.mux,this.id,a.dashjs)}},{key:\"removeDashJS\",value:function(){this.dashjs&&(Ct(this.dashjs),this.dashjs=void 0)}}]),t}(Ht),Gr=Ri;var he=G(nt());function Ae(){return he.default&&!!(he.default.fullscreenElement||he.default.webkitFullscreenElement||he.default.mozFullScreenElement||he.default.msFullscreenElement)}var Di=[\"loadstart\",\"pause\",\"play\",\"playing\",\"seeking\",\"seeked\",\"timeupdate\",\"ratechange\",\"stalled\",\"waiting\",\"error\",\"ended\"],qi={1:\"MEDIA_ERR_ABORTED\",2:\"MEDIA_ERR_NETWORK\",3:\"MEDIA_ERR_DECODE\",4:\"MEDIA_ERR_SRC_NOT_SUPPORTED\"};function ot(r,e,t){var i=H(se(e),3),a=i[0],n=i[1],o=i[2],s=r.log,u=r.utils.getComputedStyle,f=r.utils.secondsToMs,h={automaticErrorTracking:!0};if(a){if(o!==\"video\"&&o!==\"audio\")return s.error(\"The element of `\"+n+\"` was not a media element.\")}else return s.error(\"No element was found with the `\"+n+\"` query selector.\");a.mux&&(a.mux.destroy(),delete a.mux,s.warn(\"Already monitoring this video element, replacing existing event listeners\"));var E={getPlayheadTime:function(){return f(a.currentTime)},getStateData:function(){var p,w,x,v=((p=(w=this).getPlayheadTime)===null||p===void 0?void 0:p.call(w))||f(a.currentTime),m=this.hlsjs&&this.hlsjs.url,_=this.dashjs&&typeof this.dashjs.getSource==\"function\"&&this.dashjs.getSource(),d={player_is_paused:a.paused,player_width:parseInt(u(a,\"width\")),player_height:parseInt(u(a,\"height\")),player_autoplay_on:a.autoplay,player_preload_on:a.preload,player_language_code:a.lang,player_is_fullscreen:Ae(),video_poster_url:a.poster,video_source_url:m||_||a.currentSrc,video_source_duration:f(a.duration),video_source_height:a.videoHeight,video_source_width:a.videoWidth,view_dropped_frame_count:a==null||(x=a.getVideoPlaybackQuality)===null||x===void 0?void 0:x.call(a).droppedVideoFrames};if(a.getStartDate&&v>0){var g=a.getStartDate();if(g&&typeof g.getTime==\"function\"&&g.getTime()){var T=g.getTime();if(d.player_program_time=T+v,a.seekable.length>0){var k=T+a.seekable.end(a.seekable.length-1);d.player_live_edge_program_time=k}}}return d}};t=Object.assign(h,t,E),t.data=Object.assign({player_software:\"HTML5 Video Element\",player_mux_plugin_name:\"VideoElementMonitor\",player_mux_plugin_version:r.VERSION},t.data),a.mux=a.mux||{},a.mux.deleted=!1,a.mux.emit=function(c,p){r.emit(n,c,p)},a.mux.updateData=function(c){a.mux.emit(\"hb\",c)};var y=function(){s.error(\"The monitor for this video element has already been destroyed.\")};a.mux.destroy=function(){Object.keys(a.mux.listeners).forEach(function(c){a.removeEventListener(c,a.mux.listeners[c],!1)}),delete a.mux.listeners,a.mux.fullscreenChangeListener&&(document.removeEventListener(\"fullscreenchange\",a.mux.fullscreenChangeListener,!1),delete a.mux.fullscreenChangeListener),a.mux.destroy=y,a.mux.swapElement=y,a.mux.emit=y,a.mux.addHLSJS=y,a.mux.addDashJS=y,a.mux.removeHLSJS=y,a.mux.removeDashJS=y,a.mux.updateData=y,a.mux.setEmitTranslator=y,a.mux.setStateDataTranslator=y,a.mux.setGetPlayheadTime=y,a.mux.deleted=!0,r.emit(n,\"destroy\")},a.mux.swapElement=function(c){var p=H(se(c),3),w=p[0],x=p[1],v=p[2];if(w){if(v!==\"video\"&&v!==\"audio\")return r.log.error(\"The element of `\"+x+\"` was not a media element.\")}else return r.log.error(\"No element was found with the `\"+x+\"` query selector.\");w.muxId=a.muxId,delete a.muxId,w.mux=w.mux||{},w.mux.listeners=Object.assign({},a.mux.listeners),delete a.mux.listeners,Object.keys(w.mux.listeners).forEach(function(m){a.removeEventListener(m,w.mux.listeners[m],!1),w.addEventListener(m,w.mux.listeners[m],!1)}),w.mux.fullscreenChangeListener=a.mux.fullscreenChangeListener,delete a.mux.fullscreenChangeListener,w.mux.swapElement=a.mux.swapElement,w.mux.destroy=a.mux.destroy,delete a.mux,a=w},a.mux.addHLSJS=function(c){r.addHLSJS(n,c)},a.mux.addDashJS=function(c){r.addDashJS(n,c)},a.mux.removeHLSJS=function(){r.removeHLSJS(n)},a.mux.removeDashJS=function(){r.removeDashJS(n)},a.mux.setEmitTranslator=function(c){r.setEmitTranslator(n,c)},a.mux.setStateDataTranslator=function(c){r.setStateDataTranslator(n,c)},a.mux.setGetPlayheadTime=function(c){c||(c=t.getPlayheadTime),r.setGetPlayheadTime(n,c)},r.init(n,t),r.emit(n,\"playerready\"),a.paused||(r.emit(n,\"play\"),a.readyState>2&&r.emit(n,\"playing\")),a.mux.listeners={},Di.forEach(function(c){c===\"error\"&&!t.automaticErrorTracking||(a.mux.listeners[c]=function(){var p={};if(c===\"error\"){if(!a.error||a.error.code===1)return;p.player_error_code=a.error.code,p.player_error_message=qi[a.error.code]||a.error.message}r.emit(n,c,p)},a.addEventListener(c,a.mux.listeners[c],!1))}),a.mux.listeners.enterpictureinpicture=function(){r.emit(n,\"playbackmodechange\",{player_playback_mode:\"pip\",player_playback_mode_data:\"{}\"})},a.mux.listeners.leavepictureinpicture=function(){var c=Ae()?\"fullscreen\":\"standard\";r.emit(n,\"playbackmodechange\",{player_playback_mode:c,player_playback_mode_data:\"{}\"})},a.addEventListener(\"enterpictureinpicture\",a.mux.listeners.enterpictureinpicture,!1),a.addEventListener(\"leavepictureinpicture\",a.mux.listeners.leavepictureinpicture,!1),a.mux.fullscreenChangeListener=function(){var c=Ae(),p=document.fullscreenElement;if(c&&(p===a||p!=null&&p.contains(a)))r.emit(n,\"playbackmodechange\",{player_playback_mode:\"fullscreen\",player_playback_mode_data:\"{}\"});else if(!c){var w=document.pictureInPictureElement===a,x=w?\"pip\":\"standard\";r.emit(n,\"playbackmodechange\",{player_playback_mode:x,player_playback_mode_data:\"{}\"})}},document.addEventListener(\"fullscreenchange\",a.mux.fullscreenChangeListener,!1)}function st(r,e,t,i){var a=i;if(r&&typeof r[e]==\"function\")try{a=r[e].apply(r,t)}catch(n){q.info(\"safeCall error\",n)}return a}var ge=G(Q()),ye;ge.default&&ge.default.WeakMap&&(ye=new WeakMap);function ut(r,e){if(!r||!e||!ge.default||typeof ge.default.getComputedStyle!=\"function\")return\"\";var t;return ye&&ye.has(r)&&(t=ye.get(r)),t||(t=ge.default.getComputedStyle(r,null),ye&&ye.set(r,t)),t.getPropertyValue(e)}function lt(r){return Math.floor(r*1e3)}var de={TARGET_DURATION:\"#EXT-X-TARGETDURATION\",PART_INF:\"#EXT-X-PART-INF\",SERVER_CONTROL:\"#EXT-X-SERVER-CONTROL\",INF:\"#EXTINF\",PROGRAM_DATE_TIME:\"#EXT-X-PROGRAM-DATE-TIME\",VERSION:\"#EXT-X-VERSION\",SESSION_DATA:\"#EXT-X-SESSION-DATA\"},Ve=function(e){return this.buffer=\"\",this.manifest={segments:[],serverControl:{},sessionData:{}},this.currentUri={},this.process(e),this.manifest};Ve.prototype.process=function(r){var e;for(this.buffer+=r,e=this.buffer.indexOf(\"\\n\");e>-1;e=this.buffer.indexOf(\"\\n\"))this.processLine(this.buffer.substring(0,e)),this.buffer=this.buffer.substring(e+1)};Ve.prototype.processLine=function(r){var e=r.indexOf(\":\"),t=Li(r,e),i=t[0],a=t.length===2?ct(t[1]):void 0;if(i[0]!==\"#\")this.currentUri.uri=i,this.manifest.segments.push(this.currentUri),this.manifest.targetDuration&&!(\"duration\"in this.currentUri)&&(this.currentUri.duration=this.manifest.targetDuration),this.currentUri={};else switch(i){case de.TARGET_DURATION:{if(!isFinite(a)||a<0)return;this.manifest.targetDuration=a,this.setHoldBack();break}case de.PART_INF:{dt(this.manifest,t),this.manifest.partInf.partTarget&&(this.manifest.partTargetDuration=this.manifest.partInf.partTarget),this.setHoldBack();break}case de.SERVER_CONTROL:{dt(this.manifest,t),this.setHoldBack();break}case de.INF:{a===0?this.currentUri.duration=.01:a>0&&(this.currentUri.duration=a);break}case de.PROGRAM_DATE_TIME:{var n=a,o=new Date(n);this.manifest.dateTimeString||(this.manifest.dateTimeString=n,this.manifest.dateTimeObject=o),this.currentUri.dateTimeString=n,this.currentUri.dateTimeObject=o;break}case de.VERSION:{dt(this.manifest,t);break}case de.SESSION_DATA:{var s=Ii(t[1]),u=Me(s);Object.assign(this.manifest.sessionData,u)}}};Ve.prototype.setHoldBack=function(){var r=this.manifest,e=r.serverControl,t=r.targetDuration,i=r.partTargetDuration;if(e){var a=\"holdBack\",n=\"partHoldBack\",o=t&&t*3,s=i&&i*2;t&&!e.hasOwnProperty(a)&&(e[a]=o),o&&e[a]<o&&(e[a]=o),i&&!e.hasOwnProperty(n)&&(e[n]=i*3),i&&e[n]<s&&(e[n]=s)}};var dt=function(r,e){var t=Jr(e[0].replace(\"#EXT-X-\",\"\")),i;Oi(e[1])?(i={},i=Object.assign(Pi(e[1]),i)):i=ct(e[1]),r[t]=i},Jr=function(r){return r.toLowerCase().replace(/-(\\w)/g,function(e){return e[1].toUpperCase()})},ct=function(r){if(r.toLowerCase()===\"yes\"||r.toLowerCase()===\"no\")return r.toLowerCase()===\"yes\";var e=r.indexOf(\":\")!==-1?r:parseFloat(r);return isNaN(e)?r:e},Ai=function(r){var e={},t=r.split(\"=\");if(t.length>1){var i=Jr(t[0]);e[i]=ct(t[1])}return e},Pi=function(r){for(var e=r.split(\",\"),t={},i=0;e.length>i;i++){var a=e[i],n=Ai(a);t=Object.assign(n,t)}return t},Oi=function(r){return r.indexOf(\"=\")>-1},Li=function(r,e){return e===-1?[r]:[r.substring(0,e),r.substring(e+1)]},Ii=function(r){var e={};if(r){var t=r.search(\",\"),i=r.slice(0,t),a=r.slice(t+1),n=[i,a];return n.forEach(function(o,s){for(var u=o.replace(/['\"]+/g,\"\").split(\"=\"),f=0;f<u.length;f++)u[f]===\"DATA-ID\"&&(e[\"DATA-ID\"]=u[1-f]),u[f]===\"VALUE\"&&(e.VALUE=u[1-f])}),{data:e}}},Qr=Ve;var Ni={safeCall:st,safeIncrement:O,getComputedStyle:ut,secondsToMs:lt,assign:Object.assign,headersStringToObject:pe,cdnHeadersToRequestId:le,extractHostnameAndDomain:re,extractHostname:F,manifestParser:Qr,generateShortID:Oe,generateUUID:ee,now:P.now,findMediaElement:se},zr=Ni;var Ci={PLAYER_READY:\"playerready\",VIEW_INIT:\"viewinit\",VIDEO_CHANGE:\"videochange\",PLAY:\"play\",PAUSE:\"pause\",PLAYING:\"playing\",TIME_UPDATE:\"timeupdate\",SEEKING:\"seeking\",SEEKED:\"seeked\",REBUFFER_START:\"rebufferstart\",REBUFFER_END:\"rebufferend\",ERROR:\"error\",ENDED:\"ended\",RENDITION_CHANGE:\"renditionchange\",ORIENTATION_CHANGE:\"orientationchange\",PLAYBACK_MODE_CHANGE:\"playbackmodechange\",AD_REQUEST:\"adrequest\",AD_RESPONSE:\"adresponse\",AD_BREAK_START:\"adbreakstart\",AD_PLAY:\"adplay\",AD_PLAYING:\"adplaying\",AD_PAUSE:\"adpause\",AD_FIRST_QUARTILE:\"adfirstquartile\",AD_MID_POINT:\"admidpoint\",AD_THIRD_QUARTILE:\"adthirdquartile\",AD_ENDED:\"adended\",AD_BREAK_END:\"adbreakend\",AD_ERROR:\"aderror\",REQUEST_COMPLETED:\"requestcompleted\",REQUEST_FAILED:\"requestfailed\",REQUEST_CANCELLED:\"requestcanceled\",HEARTBEAT:\"hb\",DESTROY:\"destroy\"},Kr=Ci;var Mi=\"mux-embed\",Hi=\"5.17.10\",Bi=\"2.1\",M={},ne=function(e){var t=arguments;typeof e==\"string\"?ne.hasOwnProperty(e)?be.default.setTimeout(function(){t=Array.prototype.splice.call(t,1),ne[e].apply(null,t)},0):q.warn(\"`\"+e+\"` is an unknown task\"):typeof e==\"function\"?be.default.setTimeout(function(){e(ne)},0):q.warn(\"`\"+e+\"` is invalid.\")},Ui={loaded:P.now(),NAME:Mi,VERSION:Hi,API_VERSION:Bi,PLAYER_TRACKED:!1,monitor:function(e,t){return ot(ne,e,t)},destroyMonitor:function(e){var t=H(se(e),1),i=t[0];i&&i.mux&&typeof i.mux.destroy==\"function\"?i.mux.destroy():q.error(\"A video element monitor for `\"+e+\"` has not been initialized via `mux.monitor`.\")},addHLSJS:function(e,t){var i=J(e);M[i]?M[i].addHLSJS(t):q.error(\"A monitor for `\"+i+\"` has not been initialized.\")},addDashJS:function(e,t){var i=J(e);M[i]?M[i].addDashJS(t):q.error(\"A monitor for `\"+i+\"` has not been initialized.\")},removeHLSJS:function(e){var t=J(e);M[t]?M[t].removeHLSJS():q.error(\"A monitor for `\"+t+\"` has not been initialized.\")},removeDashJS:function(e){var t=J(e);M[t]?M[t].removeDashJS():q.error(\"A monitor for `\"+t+\"` has not been initialized.\")},init:function(e,t){ce()&&t&&t.respectDoNotTrack&&q.info(\"The browser's Do Not Track flag is enabled - Mux beaconing is disabled.\");var i=J(e);M[i]=new Gr(ne,i,t)},emit:function(e,t,i){var a=J(e);M[a]?(M[a].emit(t,i),t===\"destroy\"&&delete M[a]):q.error(\"A monitor for `\"+a+\"` has not been initialized.\")},updateData:function(e,t){var i=J(e);M[i]?M[i].emit(\"hb\",t):q.error(\"A monitor for `\"+i+\"` has not been initialized.\")},setEmitTranslator:function(e,t){var i=J(e);M[i]?M[i].emitTranslator=t:q.error(\"A monitor for `\"+i+\"` has not been initialized.\")},setStateDataTranslator:function(e,t){var i=J(e);M[i]?M[i].stateDataTranslator=t:q.error(\"A monitor for `\"+i+\"` has not been initialized.\")},setGetPlayheadTime:function(e,t){var i=J(e);M[i]?M[i].getPlayheadTime=t:q.error(\"A monitor for `\"+i+\"` has not been initialized.\")},checkDoNotTrack:ce,log:q,utils:zr,events:Kr,WINDOW_HIDDEN:!1,WINDOW_UNLOADING:!1};Object.assign(ne,Ui);typeof be.default!=\"undefined\"&&typeof be.default.addEventListener==\"function\"&&be.default.addEventListener(\"pagehide\",function(r){r.persisted||(ne.WINDOW_UNLOADING=!0)},!1);var jl=ne;export{jl as default};\n/*!\n* JavaScript Cookie v2.1.3\n* https://github.com/js-cookie/js-cookie\n*\n* Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n* Released under the MIT license\n*/\n","import le from\"mux-embed\";import ot from\"hls.js\";var R=ot;import{CapLevelController as Dt}from\"hls.js\";var v={VIDEO:\"video\",THUMBNAIL:\"thumbnail\",STORYBOARD:\"storyboard\",DRM:\"drm\"},C={NOT_AN_ERROR:0,NETWORK_OFFLINE:2000002,NETWORK_UNKNOWN_ERROR:2e6,NETWORK_NO_STATUS:2000001,NETWORK_INVALID_URL:24e5,NETWORK_NOT_FOUND:2404e3,NETWORK_NOT_READY:2412e3,NETWORK_GENERIC_SERVER_FAIL:25e5,NETWORK_TOKEN_MISSING:2403201,NETWORK_TOKEN_MALFORMED:2412202,NETWORK_TOKEN_EXPIRED:2403210,NETWORK_TOKEN_AUD_MISSING:2403221,NETWORK_TOKEN_AUD_MISMATCH:2403222,NETWORK_TOKEN_SUB_MISMATCH:2403232,ENCRYPTED_ERROR:5e6,ENCRYPTED_UNSUPPORTED_KEY_SYSTEM:5000001,ENCRYPTED_GENERATE_REQUEST_FAILED:5000002,ENCRYPTED_UPDATE_LICENSE_FAILED:5000003,ENCRYPTED_UPDATE_SERVER_CERT_FAILED:5000004,ENCRYPTED_CDM_ERROR:5000005,ENCRYPTED_OUTPUT_RESTRICTED:5000006,ENCRYPTED_MISSING_TOKEN:5000002},V=e=>e===v.VIDEO?\"playback\":e,_=class _ extends Error{constructor(t,r=_.MEDIA_ERR_CUSTOM,n,o){var s;super(t),this.name=\"MediaError\",this.code=r,this.context=o,this.fatal=n!=null?n:r>=_.MEDIA_ERR_NETWORK&&r<=_.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(s=_.defaultMessages[this.code])!=null?s:\"\")}};_.MEDIA_ERR_ABORTED=1,_.MEDIA_ERR_NETWORK=2,_.MEDIA_ERR_DECODE=3,_.MEDIA_ERR_SRC_NOT_SUPPORTED=4,_.MEDIA_ERR_ENCRYPTED=5,_.MEDIA_ERR_CUSTOM=100,_.defaultMessages={1:\"You aborted the media playback\",2:\"A network error caused the media download to fail.\",3:\"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.\",4:\"An unsupported error occurred. The server or network failed, or your browser does not support this format.\",5:\"The media is encrypted and there are no keys to decrypt it.\"};var m=_;var at=e=>e==null,H=(e,t)=>at(t)?!1:e in t,F={ANY:\"any\",MUTED:\"muted\"},L={ON_DEMAND:\"on-demand\",LIVE:\"live\",UNKNOWN:\"unknown\"},Q={MSE:\"mse\",NATIVE:\"native\"},O={HEADER:\"header\",QUERY:\"query\",NONE:\"none\"},ir=Object.values(O),w={M3U8:\"application/vnd.apple.mpegurl\",MP4:\"video/mp4\"},Y={HLS:w.M3U8},cr=Object.keys(Y),ur=[...Object.values(w),\"hls\",\"HLS\"],dr={upTo720p:\"720p\",upTo1080p:\"1080p\",upTo1440p:\"1440p\",upTo2160p:\"2160p\"},lr={noLessThan480p:\"480p\",noLessThan540p:\"540p\",noLessThan720p:\"720p\",noLessThan1080p:\"1080p\",noLessThan1440p:\"1440p\",noLessThan2160p:\"2160p\"},pr={DESCENDING:\"desc\"},fr={upTo720p:\"720p\",upTo1080p:\"1080p\",upTo1440p:\"1440p\",upTo2160p:\"2160p\"};var st=\"en\",$={code:st};var P=(e,t,r,n,o=e)=>{o.addEventListener(t,r,n),e.addEventListener(\"teardown\",()=>{o.removeEventListener(t,r)},{once:!0})};function me(e,t,r){t&&r>t&&(r=t);for(let n=0;n<e.length;n++)if(e.start(n)<=r&&e.end(n)>=r)return!0;return!1}var B=e=>{let t=e.indexOf(\"?\");if(t<0)return[e];let r=e.slice(0,t),n=e.slice(t);return[r,n]},K=e=>{let{type:t}=e;if(t){let r=t.toUpperCase();return H(r,Y)?Y[r]:t}return it(e)},ee=e=>e===\"VOD\"?L.ON_DEMAND:L.LIVE,te=e=>e===\"EVENT\"?Number.POSITIVE_INFINITY:e===\"VOD\"?Number.NaN:0,it=e=>{let{src:t}=e;if(!t)return\"\";let r=\"\";try{r=new URL(t).pathname}catch{console.error(\"invalid url\")}let n=r.lastIndexOf(\".\");if(n<0)return ut(e)?w.M3U8:\"\";let s=r.slice(n+1).toUpperCase();return H(s,w)?w[s]:\"\"},ct=\"mux.com\",ut=({src:e,customDomain:t=ct})=>{let r;try{r=new URL(`${e}`)}catch{return!1}let n=r.protocol===\"https:\",o=r.hostname===`stream.${t}`.toLowerCase(),s=r.pathname.split(\"/\"),a=s.length===2,i=!(s!=null&&s[1].includes(\".\"));return n&&o&&a&&i},re=e=>{let t=(e!=null?e:\"\").split(\".\")[1];if(t)try{let r=t.replace(/-/g,\"+\").replace(/_/g,\"/\"),n=decodeURIComponent(atob(r).split(\"\").map(function(o){return\"%\"+(\"00\"+o.charCodeAt(0).toString(16)).slice(-2)}).join(\"\"));return JSON.parse(n)}catch{return}},Ee=({exp:e},t=Date.now())=>!e||e*1e3<t,ge=({sub:e},t)=>e!==t,Me=({aud:e},t)=>!e,be=({aud:e},t)=>e!==t,Re=\"en\";function x(e,t=!0){var o,s;let r=t&&(s=(o=$)==null?void 0:o[e])!=null?s:e,n=t?$.code:Re;return new Z(r,n)}var Z=class{constructor(t,r=(n=>(n=$)!=null?n:Re)()){this.message=t,this.locale=r}format(t){return this.message.replace(/\\{(\\w+)\\}/g,(r,n)=>{var o;return(o=t[n])!=null?o:\"\"})}toString(){return this.message}};var dt=Object.values(F),xe=e=>typeof e==\"boolean\"||typeof e==\"string\"&&dt.includes(e),Ce=(e,t,r)=>{let{autoplay:n}=e,o=!1,s=!1,a=xe(n)?n:!!n,i=()=>{o||P(t,\"playing\",()=>{o=!0},{once:!0})};if(i(),P(t,\"loadstart\",()=>{o=!1,i(),ne(t,a)},{once:!0}),P(t,\"loadstart\",()=>{r||(e.streamType&&e.streamType!==L.UNKNOWN?s=e.streamType===L.LIVE:s=!Number.isFinite(t.duration)),ne(t,a)},{once:!0}),r&&r.once(R.Events.LEVEL_LOADED,(u,y)=>{var c;e.streamType&&e.streamType!==L.UNKNOWN?s=e.streamType===L.LIVE:s=(c=y.details.live)!=null?c:!1}),!a){let u=()=>{!s||Number.isFinite(e.startTime)||(r!=null&&r.liveSyncPosition?t.currentTime=r.liveSyncPosition:Number.isFinite(t.seekable.end(0))&&(t.currentTime=t.seekable.end(0)))};r&&P(t,\"play\",()=>{t.preload===\"metadata\"?r.once(R.Events.LEVEL_UPDATED,u):u()},{once:!0})}return u=>{o||(a=xe(u)?u:!!u,ne(t,a))}},ne=(e,t)=>{if(!t)return;let r=e.muted,n=()=>e.muted=r;switch(t){case F.ANY:e.play().catch(()=>{e.muted=!0,e.play().catch(n)});break;case F.MUTED:e.muted=!0,e.play().catch(n);break;default:e.play().catch(()=>{});break}};var ve=({preload:e,src:t},r,n)=>{let o=c=>{c!=null&&[\"\",\"none\",\"metadata\",\"auto\"].includes(c)?r.setAttribute(\"preload\",c):r.removeAttribute(\"preload\")};if(!n)return o(e),o;let s=!1,a=!1,i=n.config.maxBufferLength,d=n.config.maxBufferSize,u=c=>{o(c);let f=c!=null?c:r.preload;a||f===\"none\"||(f===\"metadata\"?(n.config.maxBufferLength=1,n.config.maxBufferSize=1):(n.config.maxBufferLength=i,n.config.maxBufferSize=d),y())},y=()=>{!s&&t&&(s=!0,n.loadSource(t))};return P(r,\"play\",()=>{a=!0,n.config.maxBufferLength=i,n.config.maxBufferSize=d,y()},{once:!0}),u(e),u};function De(e,t){var d;if(!(\"videoTracks\"in e))return;let r=new WeakMap;t.on(R.Events.MANIFEST_PARSED,function(u,y){i();let c=e.addVideoTrack(\"main\");c.selected=!0;for(let[f,l]of y.levels.entries()){let p=c.addRendition(l.url[0],l.width,l.height,l.videoCodec,l.bitrate);r.set(l,`${f}`),p.id=`${f}`}}),t.on(R.Events.AUDIO_TRACKS_UPDATED,function(u,y){a();for(let c of y.audioTracks){let f=c.default?\"main\":\"alternative\",l=e.addAudioTrack(f,c.name,c.lang);l.id=`${c.id}`,c.default&&(l.enabled=!0)}});let n=()=>{var c;let u=+((c=[...e.audioTracks].find(f=>f.enabled))==null?void 0:c.id),y=t.audioTracks.map(f=>f.id);u!=t.audioTrack&&y.includes(u)&&(t.audioTrack=u)};e.audioTracks.addEventListener(\"change\",n),t.on(R.Events.LEVELS_UPDATED,function(u,y){var l;let c=e.videoTracks[(l=e.videoTracks.selectedIndex)!=null?l:0];if(!c)return;let f=y.levels.map(p=>r.get(p));for(let p of e.videoRenditions)p.id&&!f.includes(p.id)&&c.removeRendition(p)});let o=u=>{let y=u.target.selectedIndex;y!=t.nextLevel&&(t.nextLevel=y)};(d=e.videoRenditions)==null||d.addEventListener(\"change\",o);let s=()=>{for(let u of e.videoTracks)e.removeVideoTrack(u)},a=()=>{for(let u of e.audioTracks)e.removeAudioTrack(u)},i=()=>{s(),a()};t.once(R.Events.DESTROYING,()=>{var u,y;i(),(u=e.audioTracks)==null||u.removeEventListener(\"change\",n),(y=e.videoRenditions)==null||y.removeEventListener(\"change\",o)})}var oe=e=>\"time\"in e?e.time:e.startTime;function ke(e,t){t.on(R.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(o,{tracks:s})=>{s.forEach(a=>{var y,c;let i=(y=a.subtitleTrack)!=null?y:a.closedCaptions,d=t.subtitleTracks.findIndex(({lang:f,name:l,type:p})=>f==(i==null?void 0:i.lang)&&l===a.label&&p.toLowerCase()===a.kind),u=((c=a._id)!=null?c:a.default)?\"default\":`${a.kind}${d}`;ae(e,a.kind,a.label,i==null?void 0:i.lang,u,a.default)})});let r=()=>{if(!t.subtitleTracks.length)return;let o=Array.from(e.textTracks).find(i=>i.id&&i.mode===\"showing\"&&[\"subtitles\",\"captions\"].includes(i.kind));if(!o)return;let s=t.subtitleTracks[t.subtitleTrack],a=s?s.default?\"default\":`${t.subtitleTracks[t.subtitleTrack].type.toLowerCase()}${t.subtitleTrack}`:void 0;if(t.subtitleTrack<0||(o==null?void 0:o.id)!==a){let i=t.subtitleTracks.findIndex(({lang:d,name:u,type:y,default:c})=>o.id===\"default\"&&c||d==o.language&&u===o.label&&y.toLowerCase()===o.kind);t.subtitleTrack=i}(o==null?void 0:o.id)===a&&o.cues&&Array.from(o.cues).forEach(i=>{o.addCue(i)})};e.textTracks.addEventListener(\"change\",r),t.on(R.Events.CUES_PARSED,(o,{track:s,cues:a})=>{let i=e.textTracks.getTrackById(s);if(!i)return;let d=i.mode===\"disabled\";d&&(i.mode=\"hidden\"),a.forEach(u=>{var y;(y=i.cues)!=null&&y.getCueById(u.id)||i.addCue(u)}),d&&(i.mode=\"disabled\")}),t.once(R.Events.DESTROYING,()=>{e.textTracks.removeEventListener(\"change\",r),e.querySelectorAll(\"track[data-removeondestroy]\").forEach(s=>{s.remove()})});let n=()=>{Array.from(e.textTracks).forEach(o=>{var s,a;if(![\"subtitles\",\"caption\"].includes(o.kind)&&(o.label===\"thumbnails\"||o.kind===\"chapters\")){if(!((s=o.cues)!=null&&s.length)){let i=\"track\";o.kind&&(i+=`[kind=\"${o.kind}\"]`),o.label&&(i+=`[label=\"${o.label}\"]`);let d=e.querySelector(i),u=(a=d==null?void 0:d.getAttribute(\"src\"))!=null?a:\"\";d==null||d.removeAttribute(\"src\"),setTimeout(()=>{d==null||d.setAttribute(\"src\",u)},0)}o.mode!==\"hidden\"&&(o.mode=\"hidden\")}})};t.once(R.Events.MANIFEST_LOADED,n),t.once(R.Events.MEDIA_ATTACHED,n)}function ae(e,t,r,n,o,s){let a=document.createElement(\"track\");return a.kind=t,a.label=r,n&&(a.srclang=n),o&&(a.id=o),s&&(a.default=!0),a.track.mode=[\"subtitles\",\"captions\"].includes(t)?\"disabled\":\"hidden\",a.setAttribute(\"data-removeondestroy\",\"\"),e.append(a),a.track}function lt(e,t){let r=Array.prototype.find.call(e.querySelectorAll(\"track\"),n=>n.track===t);r==null||r.remove()}function U(e,t,r){var n;return(n=Array.from(e.querySelectorAll(\"track\")).find(o=>o.track.label===t&&o.track.kind===r))==null?void 0:n.track}async function Pe(e,t,r,n){let o=U(e,r,n);return o||(o=ae(e,n,r),o.mode=\"hidden\",await new Promise(s=>setTimeout(()=>s(void 0),0))),o.mode!==\"hidden\"&&(o.mode=\"hidden\"),[...t].sort((s,a)=>oe(a)-oe(s)).forEach(s=>{var d,u;let a=s.value,i=oe(s);if(\"endTime\"in s&&s.endTime!=null)o==null||o.addCue(new VTTCue(i,s.endTime,n===\"chapters\"?a:JSON.stringify(a!=null?a:null)));else{let y=Array.prototype.findIndex.call(o==null?void 0:o.cues,p=>p.startTime>=i),c=(d=o==null?void 0:o.cues)==null?void 0:d[y],f=c?c.startTime:Number.isFinite(e.duration)?e.duration:Number.MAX_SAFE_INTEGER,l=(u=o==null?void 0:o.cues)==null?void 0:u[y-1];l&&(l.endTime=i),o==null||o.addCue(new VTTCue(i,f,n===\"chapters\"?a:JSON.stringify(a!=null?a:null)))}}),e.textTracks.dispatchEvent(new Event(\"change\",{bubbles:!0,composed:!0})),o}var se=\"cuepoints\",he=Object.freeze({label:se});async function Le(e,t,r=he){return Pe(e,t,r.label,\"metadata\")}var j=e=>({time:e.startTime,value:JSON.parse(e.text)});function pt(e,t={label:se}){let r=U(e,t.label,\"metadata\");return r!=null&&r.cues?Array.from(r.cues,n=>j(n)):[]}function _e(e,t={label:se}){var s,a;let r=U(e,t.label,\"metadata\");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return j(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:d})=>i<=n&&d>n);return j(o||r.activeCues[0])}async function we(e,t=he){return new Promise(r=>{P(e,\"loadstart\",async()=>{let n=await Le(e,[],t);P(e,\"cuechange\",()=>{let o=_e(e);if(o){let s=new CustomEvent(\"cuepointchange\",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}var ie=\"chapters\",Ae=Object.freeze({label:ie}),J=e=>({startTime:e.startTime,endTime:e.endTime,value:e.text});async function Se(e,t,r=Ae){return Pe(e,t,r.label,\"chapters\")}function ft(e,t={label:ie}){var n;let r=U(e,t.label,\"chapters\");return(n=r==null?void 0:r.cues)!=null&&n.length?Array.from(r.cues,o=>J(o)):[]}function Ie(e,t={label:ie}){var s,a;let r=U(e,t.label,\"chapters\");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return J(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:d})=>i<=n&&d>n);return J(o||r.activeCues[0])}async function Ne(e,t=Ae){return new Promise(r=>{P(e,\"loadstart\",async()=>{let n=await Se(e,[],t);P(e,\"cuechange\",()=>{let o=Ie(e);if(o){let s=new CustomEvent(\"chapterchange\",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}function yt(e,t){if(t){let r=t.playingDate;if(r!=null)return new Date(r.getTime()-e.currentTime*1e3)}return typeof e.getStartDate==\"function\"?e.getStartDate():new Date(NaN)}function Tt(e,t){if(t&&t.playingDate)return t.playingDate;if(typeof e.getStartDate==\"function\"){let r=e.getStartDate();return new Date(r.getTime()+e.currentTime*1e3)}return new Date(NaN)}var ce={VIDEO:\"v\",THUMBNAIL:\"t\",STORYBOARD:\"s\",DRM:\"d\"},mt=e=>{if(e===v.VIDEO)return ce.VIDEO;if(e===v.DRM)return ce.DRM},Et=(e,t)=>{var o,s;let r=V(e),n=`${r}Token`;return(o=t.tokens)!=null&&o[r]?(s=t.tokens)==null?void 0:s[r]:H(n,t)?t[n]:void 0},W=(e,t,r,n,o=!1,s=!(a=>(a=globalThis.navigator)==null?void 0:a.onLine)())=>{var E,D;if(s){let g=x(\"Your device appears to be offline\",o),b=void 0,T=m.MEDIA_ERR_NETWORK,h=new m(g,T,!1,b);return h.errorCategory=t,h.muxCode=C.NETWORK_OFFLINE,h.data=e,h}let i=\"status\"in e?e.status:e.code,d=Date.now(),u=m.MEDIA_ERR_NETWORK;if(i===200)return;let y=V(t),c=Et(t,r),f=mt(t),[l]=B((E=r.playbackId)!=null?E:\"\");if(!i||!l)return;let p=re(c);if(c&&!p){let g=x(\"The {tokenNamePrefix}-token provided is invalid or malformed.\",o).format({tokenNamePrefix:y}),b=x(\"Compact JWT string: {token}\",o).format({token:c}),T=new m(g,u,!0,b);return T.errorCategory=t,T.muxCode=C.NETWORK_TOKEN_MALFORMED,T.data=e,T}if(i>=500){let g=new m(\"\",u,n!=null?n:!0);return g.errorCategory=t,g.muxCode=C.NETWORK_UNKNOWN_ERROR,g}if(i===403)if(p){if(Ee(p,d)){let g={timeStyle:\"medium\",dateStyle:\"medium\"},b=x(\"The video\\u2019s secured {tokenNamePrefix}-token has expired.\",o).format({tokenNamePrefix:y}),T=x(\"Expired at: {expiredDate}. Current time: {currentDate}.\",o).format({expiredDate:new Intl.DateTimeFormat(\"en\",g).format((D=p.exp)!=null?D:0*1e3),currentDate:new Intl.DateTimeFormat(\"en\",g).format(d)}),h=new m(b,u,!0,T);return h.errorCategory=t,h.muxCode=C.NETWORK_TOKEN_EXPIRED,h.data=e,h}if(ge(p,l)){let g=x(\"The video\\u2019s playback ID does not match the one encoded in the {tokenNamePrefix}-token.\",o).format({tokenNamePrefix:y}),b=x(\"Specified playback ID: {playbackId} and the playback ID encoded in the {tokenNamePrefix}-token: {tokenPlaybackId}\",o).format({tokenNamePrefix:y,playbackId:l,tokenPlaybackId:p.sub}),T=new m(g,u,!0,b);return T.errorCategory=t,T.muxCode=C.NETWORK_TOKEN_SUB_MISMATCH,T.data=e,T}if(Me(p,f)){let g=x(\"The {tokenNamePrefix}-token is formatted with incorrect information.\",o).format({tokenNamePrefix:y}),b=x(\"The {tokenNamePrefix}-token has no aud value. aud value should be {expectedAud}.\",o).format({tokenNamePrefix:y,expectedAud:f}),T=new m(g,u,!0,b);return T.errorCategory=t,T.muxCode=C.NETWORK_TOKEN_AUD_MISSING,T.data=e,T}if(be(p,f)){let g=x(\"The {tokenNamePrefix}-token is formatted with incorrect information.\",o).format({tokenNamePrefix:y}),b=x(\"The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.\",o).format({tokenNamePrefix:y,expectedAud:f,aud:p.aud}),T=new m(g,u,!0,b);return T.errorCategory=t,T.muxCode=C.NETWORK_TOKEN_AUD_MISMATCH,T.data=e,T}}else{let g=x(\"Authorization error trying to access this {category} URL. If this is a signed URL, you might need to provide a {tokenNamePrefix}-token.\",o).format({tokenNamePrefix:y,category:t}),b=x(\"Specified playback ID: {playbackId}\",o).format({playbackId:l}),T=new m(g,u,n!=null?n:!0,b);return T.errorCategory=t,T.muxCode=C.NETWORK_TOKEN_MISSING,T.data=e,T}if(i===412){let g=x(\"This playback-id may belong to a live stream that is not currently active or an asset that is not ready.\",o),b=x(\"Specified playback ID: {playbackId}\",o).format({playbackId:l}),T=new m(g,u,n!=null?n:!0,b);return T.errorCategory=t,T.muxCode=C.NETWORK_NOT_READY,T.streamType=r.streamType===L.LIVE?\"live\":r.streamType===L.ON_DEMAND?\"on-demand\":\"unknown\",T.data=e,T}if(i===404){let g=x(\"This URL or playback-id does not exist. You may have used an Asset ID or an ID from a different resource.\",o),b=x(\"Specified playback ID: {playbackId}\",o).format({playbackId:l}),T=new m(g,u,n!=null?n:!0,b);return T.errorCategory=t,T.muxCode=C.NETWORK_NOT_FOUND,T.data=e,T}if(i===400){let g=x(\"The URL or playback-id was invalid. You may have used an invalid value as a playback-id.\"),b=x(\"Specified playback ID: {playbackId}\",o).format({playbackId:l}),T=new m(g,u,n!=null?n:!0,b);return T.errorCategory=t,T.muxCode=C.NETWORK_INVALID_URL,T.data=e,T}let M=new m(\"\",u,n!=null?n:!0);return M.errorCategory=t,M.muxCode=C.NETWORK_UNKNOWN_ERROR,M.data=e,M};var Oe=R.DefaultConfig.capLevelController,gt={\"720p\":921600,\"1080p\":2073600,\"1440p\":4194304,\"2160p\":8294400};function Mt(e){let t=e.toLowerCase().trim();return gt[t]}var S=class S extends Oe{constructor(t){super(t)}static setMaxAutoResolution(t,r){r?S.maxAutoResolution.set(t,r):S.maxAutoResolution.delete(t)}getMaxAutoResolution(){var r;let t=this.hls;return(r=S.maxAutoResolution.get(t))!=null?r:void 0}get levels(){var t;return(t=this.hls.levels)!=null?t:[]}getValidLevels(t){return this.levels.filter((r,n)=>this.isLevelAllowed(r)&&n<=t)}getMaxLevelCapped(t){let r=this.getValidLevels(t),n=this.getMaxAutoResolution();if(!n)return super.getMaxLevel(t);let o=Mt(n);if(!o)return super.getMaxLevel(t);let s=r.filter(d=>d.width*d.height<=o),a=s.findIndex(d=>d.width*d.height===o);if(a!==-1){let d=s[a];return r.findIndex(u=>u===d)}if(s.length===0)return 0;let i=s[s.length-1];return r.findIndex(d=>d===i)}getMaxLevel(t){if(this.getMaxAutoResolution()!==void 0)return this.getMaxLevelCapped(t);let r=super.getMaxLevel(t),n=this.getValidLevels(t);if(!n[r])return r;let o=Math.min(n[r].width,n[r].height),s=S.minMaxResolution;return o>=s?r:Oe.getMaxLevelByMediaSize(n,s*(16/9),s)}};S.minMaxResolution=720,S.maxAutoResolution=new WeakMap;var ue=S,z=ue;var bt=\"com.apple.fps.1_0\",Rt=\"application/vnd.apple.mpegurl\",Ue=({mediaEl:e,getAppCertificate:t,getLicenseKey:r,saveAndDispatchError:n,drmTypeCb:o})=>{if(!window.WebKitMediaKeys||!(\"onwebkitneedkey\"in e)){console.error(\"No WebKitMediaKeys. FairPlay may not be supported\");let f=x(\"Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.\"),l=new m(f,m.MEDIA_ERR_ENCRYPTED,!0);return l.errorCategory=v.DRM,l.muxCode=C.ENCRYPTED_CDM_ERROR,n(e,l),()=>{}}let s=e,a=t(),i=null,d=f=>{(async()=>{try{s.webkitKeys||u();let p=await a;if(f.initData===null||p==null)return;let M=xt(f.initData,p);y(M)}catch(p){console.error(\"Could not start encrypted playback due to exception\",p),n(s,p)}})()},u=()=>{try{let f=new WebKitMediaKeys(bt);s.webkitSetMediaKeys(f),o()}catch{let f=\"Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.\",l=new m(f,m.MEDIA_ERR_ENCRYPTED,!0);throw l.errorCategory=v.DRM,l.muxCode=C.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,l}},y=f=>{let l=s.webkitKeys.createSession(Rt,f),p=async D=>{try{let g=D.message,b=await r(g);l.update(b)}catch(g){console.error(\"Error on FairPlay session message\",g),n(e,g)}},M=D=>{let g=D.target.error;if(!g)return;console.error(`Internal Webkit Key Session Error - sysCode: ${g.systemCode} code: ${g.code}`);let b=x(\"The DRM Content Decryption Module system had an internal failure. Try reloading the page, upading your browser, or playing in another browser.\"),T=new m(b,m.MEDIA_ERR_ENCRYPTED,!0);T.errorCategory=v.DRM,T.muxCode=C.ENCRYPTED_CDM_ERROR,n(e,T)},E=()=>{l.removeEventListener(\"webkitkeymessage\",p),l.removeEventListener(\"webkitkeyerror\",M),e.removeEventListener(\"teardown\",E),\"webkitCurrentPlaybackTargetIsWireless\"in e&&e.removeEventListener(\"webkitcurrentplaybacktargetiswirelesschanged\",E),i=null;try{l.close()}catch{}};\"webkitCurrentPlaybackTargetIsWireless\"in e&&e.addEventListener(\"webkitcurrentplaybacktargetiswirelesschanged\",E,{once:!0}),l.addEventListener(\"webkitkeymessage\",p),l.addEventListener(\"webkitkeyerror\",M),e.addEventListener(\"teardown\",E),i=E},c=()=>{e.removeEventListener(\"webkitneedkey\",d),e.removeEventListener(\"teardown\",c),i==null||i();try{s.webkitSetMediaKeys(null)}catch{}};return e.addEventListener(\"webkitneedkey\",d),e.addEventListener(\"teardown\",c,{once:!0}),c},xt=(e,t)=>{let r=vt(Ct(e)),n=new Uint8Array(e),o=new Uint8Array(r),s=new Uint8Array(t),a=n.byteLength+4+s.byteLength+4+o.byteLength,i=new Uint8Array(a),d=0,u=c=>{i.set(c,d),d+=c.byteLength},y=c=>{let f=new DataView(i.buffer),l=c.byteLength;f.setUint32(d,l,!0),d+=4,u(c)};return u(n),y(o),y(s),i},Ct=e=>new TextDecoder(\"utf-16le\").decode(e).replace(\"skd://\",\"\").slice(1);function vt(e){let t=new ArrayBuffer(e.length*2),r=new DataView(t);for(let n=0;n<e.length;n++)r.setUint16(n*2,e.charCodeAt(n),!0);return t}var He=({mediaEl:e,getAppCertificate:t,getLicenseKey:r,saveAndDispatchError:n,drmTypeCb:o,fallbackToWebkitFairplay:s})=>{let a=null,i=async c=>{try{let f=c.initDataType;if(f!==\"skd\"){console.error(`Received unexpected initialization data type \"${f}\"`);return}e.mediaKeys||await d(f);let l=c.initData;if(l==null){console.error(`Could not start encrypted playback due to missing initData in ${c.type} event`);return}await u(f,l)}catch(f){n(e,f);return}},d=async c=>{let f=await navigator.requestMediaKeySystemAccess(\"com.apple.fps\",[{initDataTypes:[c],videoCapabilities:[{contentType:\"application/vnd.apple.mpegurl\",robustness:\"\"}],distinctiveIdentifier:\"not-allowed\",persistentState:\"not-allowed\",sessionTypes:[\"temporary\"]}]).then(p=>(o(),p)).catch(()=>{let p=x(\"Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.\"),M=new m(p,m.MEDIA_ERR_ENCRYPTED,!0);M.errorCategory=v.DRM,M.muxCode=C.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,n(e,M)});if(!f)return;let l=await f.createMediaKeys();try{let p=await t();await l.setServerCertificate(p).catch(()=>{let M=x(\"Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate.\"),E=new m(M,m.MEDIA_ERR_ENCRYPTED,!0);return E.errorCategory=v.DRM,E.muxCode=C.ENCRYPTED_UPDATE_SERVER_CERT_FAILED,Promise.reject(E)})}catch(p){n(e,p);return}await e.setMediaKeys(l)},u=async(c,f)=>{let l=e.mediaKeys.createSession(),p=async D=>{let g=D.message,b=await r(g);try{await l.update(b)}catch{let T=x(\"Failed to update DRM license. This may be an issue with the player or your protected content.\"),h=new m(T,m.MEDIA_ERR_ENCRYPTED,!0);h.errorCategory=v.DRM,h.muxCode=C.ENCRYPTED_UPDATE_LICENSE_FAILED,n(e,h)}},M=()=>{let D=g=>{let b;if(g===\"internal-error\"){let T=x(\"The DRM Content Decryption Module system had an internal failure. Try reloading the page, upading your browser, or playing in another browser.\");b=new m(T,m.MEDIA_ERR_ENCRYPTED,!0),b.errorCategory=v.DRM,b.muxCode=C.ENCRYPTED_CDM_ERROR}else if(g===\"output-restricted\"||g===\"output-downscaled\"){let T=x(\"DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.\");b=new m(T,m.MEDIA_ERR_ENCRYPTED,!1),b.errorCategory=v.DRM,b.muxCode=C.ENCRYPTED_OUTPUT_RESTRICTED}b&&n(e,b)};l.keyStatuses.forEach(g=>D(g))};l.addEventListener(\"keystatuseschange\",M),l.addEventListener(\"message\",p);let E=async()=>{l.removeEventListener(\"keystatuseschange\",M),l.removeEventListener(\"message\",p),\"webkitCurrentPlaybackTargetIsWireless\"in e&&e.removeEventListener(\"webkitcurrentplaybacktargetiswirelesschanged\",E),e.removeEventListener(\"teardown\",E),await l.close().catch(D=>{console.warn(\"There was an error when closing EME session\",D)}),a=null};\"webkitCurrentPlaybackTargetIsWireless\"in e&&e.addEventListener(\"webkitcurrentplaybacktargetiswirelesschanged\",E,{once:!0}),e.addEventListener(\"teardown\",E,{once:!0}),a=E,await l.generateRequest(c,f).catch(async D=>{if(D.name===\"NotSupportedError\"&&\"webkitCurrentPlaybackTargetIsWireless\"in e&&e.webkitCurrentPlaybackTargetIsWireless)console.warn(\"Failed to generate a DRM license request. Attempting to fallback to Webkit DRM\"),s==null||s();else{let g=x(\"Failed to generate a DRM license request. This may be an issue with the player or your protected content.\"),b=new m(g,m.MEDIA_ERR_ENCRYPTED,!0);return b.errorCategory=v.DRM,b.muxCode=C.ENCRYPTED_GENERATE_REQUEST_FAILED,console.error(\"Failed to generate license request\",D),Promise.reject(b)}})},y=async()=>{e.removeEventListener(\"encrypted\",i),e.removeEventListener(\"teardown\",y),a&&await a(),await e.setMediaKeys(null).catch(()=>{})};return e.addEventListener(\"encrypted\",i),e.addEventListener(\"teardown\",y,{once:!0}),y};var q={FAIRPLAY:\"fairplay\",PLAYREADY:\"playready\",WIDEVINE:\"widevine\"},kt=e=>{if(e.includes(\"fps\"))return q.FAIRPLAY;if(e.includes(\"playready\"))return q.PLAYREADY;if(e.includes(\"widevine\"))return q.WIDEVINE},Pt=e=>{let t=e.split(`\n`).find((r,n,o)=>n&&o[n-1].startsWith(\"#EXT-X-STREAM-INF\"));return fetch(t).then(r=>r.status!==200?Promise.reject(r):r.text())},ht=e=>{let t=e.split(`\n`).filter(n=>n.startsWith(\"#EXT-X-SESSION-DATA\"));if(!t.length)return{};let r={};for(let n of t){let o=_t(n),s=o[\"DATA-ID\"];s&&(r[s]={...o})}return{sessionData:r}},Lt=/([A-Z0-9-]+)=\"?(.*?)\"?(?:,|$)/g;function _t(e){let t=[...e.matchAll(Lt)];return Object.fromEntries(t.map(([,r,n])=>[r,n]))}var wt=e=>{var i,d,u;let t=e.split(`\n`),n=(d=((i=t.find(y=>y.startsWith(\"#EXT-X-PLAYLIST-TYPE\")))!=null?i:\"\").split(\":\")[1])==null?void 0:d.trim(),o=ee(n),s=te(n),a;if(o===L.LIVE){let y=t.find(f=>f.startsWith(\"#EXT-X-PART-INF\"));if(!!y)a=+y.split(\":\")[1].split(\"=\")[1]*2;else{let f=t.find(M=>M.startsWith(\"#EXT-X-TARGETDURATION\")),l=(u=f==null?void 0:f.split(\":\"))==null?void 0:u[1];a=+(l!=null?l:6)*3}}return{streamType:o,targetLiveWindow:s,liveEdgeStartOffset:a}},At=async(e,t)=>{if(t===w.MP4)return{streamType:L.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0,sessionData:void 0};if(t===w.M3U8){let r=await fetch(e);if(!r.ok)return Promise.reject(r);let n=await r.text(),o=await Pt(n);return{...ht(n),...wt(o)}}return console.error(`Media type ${t} is an unrecognized or unsupported type for src ${e}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0,sessionData:void 0}},St=async(e,t,r=K({src:e}))=>{var d,u,y,c;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,sessionData:a}=await At(e,r),i=a==null?void 0:a[\"com.apple.hls.chapters\"];(i!=null&&i.URI||i!=null&&i.VALUE.toLocaleLowerCase().startsWith(\"http\"))&&pe((d=i.URI)!=null?d:i.VALUE,t),((u=k.get(t))!=null?u:{}).liveEdgeStartOffset=s,((y=k.get(t))!=null?y:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent(\"targetlivewindowchange\",{composed:!0,bubbles:!0})),((c=k.get(t))!=null?c:{}).streamType=n,t.dispatchEvent(new CustomEvent(\"streamtypechange\",{composed:!0,bubbles:!0}))},pe=async(e,t)=>{var r,n;try{let o=await fetch(e);if(!o.ok)throw new Error(`Failed to fetch Mux metadata: ${o.status} ${o.statusText}`);let s=await o.json(),a={};if(!((r=s==null?void 0:s[0])!=null&&r.metadata))return;for(let d of s[0].metadata)d.key&&d.value&&(a[d.key]=d.value);((n=k.get(t))!=null?n:{}).metadata=a;let i=new CustomEvent(\"muxmetadata\");t.dispatchEvent(i)}catch(o){console.error(o)}},It=e=>{var a;let t=e.type,r=ee(t),n=te(t),o,s=!!((a=e.partList)!=null&&a.length);return r===L.LIVE&&(o=s?e.partTarget*2:e.targetduration*3),{streamType:r,targetLiveWindow:n,liveEdgeStartOffset:o,lowLatency:s}},Nt=(e,t,r)=>{var i,d,u,y,c,f,l,p;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,lowLatency:a}=It(e);if(n===L.LIVE){a?(r.config.backBufferLength=(i=r.userConfig.backBufferLength)!=null?i:4,r.config.maxFragLookUpTolerance=(d=r.userConfig.maxFragLookUpTolerance)!=null?d:.001,r.config.abrBandWidthUpFactor=(u=r.userConfig.abrBandWidthUpFactor)!=null?u:r.config.abrBandWidthFactor):r.config.backBufferLength=(y=r.userConfig.backBufferLength)!=null?y:8;let M=Object.freeze({get length(){return t.seekable.length},start(E){return t.seekable.start(E)},end(E){var D;return E>this.length||E<0||Number.isFinite(t.duration)?t.seekable.end(E):(D=r.liveSyncPosition)!=null?D:t.seekable.end(E)}});((c=k.get(t))!=null?c:{}).seekable=M}((f=k.get(t))!=null?f:{}).liveEdgeStartOffset=s,((l=k.get(t))!=null?l:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent(\"targetlivewindowchange\",{composed:!0,bubbles:!0})),((p=k.get(t))!=null?p:{}).streamType=n,t.dispatchEvent(new CustomEvent(\"streamtypechange\",{composed:!0,bubbles:!0}))},We,Ve,Je=(Ve=(We=globalThis==null?void 0:globalThis.navigator)==null?void 0:We.userAgent)!=null?Ve:\"\",Fe,Ye,$e,Ot=($e=(Ye=(Fe=globalThis==null?void 0:globalThis.navigator)==null?void 0:Fe.userAgentData)==null?void 0:Ye.platform)!=null?$e:\"\",Ut=Je.toLowerCase().includes(\"android\")||[\"x11\",\"android\"].some(e=>Ot.toLowerCase().includes(e)),Ht=e=>/^((?!chrome|android).)*safari/i.test(Je)&&!!e.canPlayType(\"application/vnd.apple.mpegurl\"),k=new WeakMap,A=\"mux.com\",Be,je,ze=(je=(Be=R).isSupported)==null?void 0:je.call(Be),Kt=e=>Ut||!Ht(e),Tn=()=>{if(typeof window!=\"undefined\")return le.utils.now()},Wt=le.utils.generateUUID,mn=({playbackId:e,customDomain:t=A,maxResolution:r,minResolution:n,renditionOrder:o,programStartTime:s,programEndTime:a,assetStartTime:i,assetEndTime:d,playbackToken:u,tokens:{playback:y=u}={},extraSourceParams:c={}}={})=>{if(!e)return;let[f,l=\"\"]=B(e),p=new URL(`https://stream.${t}/${f}.m3u8${l}`);return y||p.searchParams.has(\"token\")?(p.searchParams.forEach((M,E)=>{E!=\"token\"&&p.searchParams.delete(E)}),y&&p.searchParams.set(\"token\",y)):(r&&p.searchParams.set(\"max_resolution\",r),n&&(p.searchParams.set(\"min_resolution\",n),r&&+r.slice(0,-1)<+n.slice(0,-1)&&console.error(\"minResolution must be <= maxResolution\",\"minResolution\",n,\"maxResolution\",r)),o&&p.searchParams.set(\"rendition_order\",o),s&&p.searchParams.set(\"program_start_time\",`${s}`),a&&p.searchParams.set(\"program_end_time\",`${a}`),i&&p.searchParams.set(\"asset_start_time\",`${i}`),d&&p.searchParams.set(\"asset_end_time\",`${d}`),Object.entries(c).forEach(([M,E])=>{E!=null&&p.searchParams.set(M,E)})),p.toString()},X=e=>{if(!e)return;let[t]=e.split(\"?\");return t||void 0},qe=e=>{if(!e||!e.startsWith(\"https://stream.\"))return;let[t]=new URL(e).pathname.slice(1).split(/\\.m3u8|\\//);return t||void 0},Vt=e=>{var t,r,n;return(t=e==null?void 0:e.metadata)!=null&&t.video_id?e.metadata.video_id:tt(e)&&(n=(r=X(e.playbackId))!=null?r:qe(e.src))!=null?n:e.src},Ft=e=>{var t;return(t=k.get(e))==null?void 0:t.error},En=e=>{var t;return(t=k.get(e))==null?void 0:t.metadata},Ke=e=>{var t,r;return(r=(t=k.get(e))==null?void 0:t.streamType)!=null?r:L.UNKNOWN},gn=e=>{var t,r;return(r=(t=k.get(e))==null?void 0:t.targetLiveWindow)!=null?r:Number.NaN},Ge=e=>{var t,r;return(r=(t=k.get(e))==null?void 0:t.seekable)!=null?r:e.seekable},Mn=e=>{var n;let t=(n=k.get(e))==null?void 0:n.liveEdgeStartOffset;if(typeof t!=\"number\")return Number.NaN;let r=Ge(e);return r.length?r.end(r.length-1)-t:Number.NaN},bn=e=>{var t;return(t=k.get(e))==null?void 0:t.coreReference},fe=.034,Yt=(e,t,r=fe)=>Math.abs(e-t)<=r,Xe=(e,t,r=fe)=>e>t||Yt(e,t,r),$t=(e,t=fe)=>e.paused&&Xe(e.currentTime,e.duration,t),Qe=(e,t)=>{var u,y,c;if(!t||!e.buffered.length)return;if(e.readyState>2)return!1;let r=t.currentLevel>=0?(y=(u=t.levels)==null?void 0:u[t.currentLevel])==null?void 0:y.details:(c=t.levels.find(f=>!!f.details))==null?void 0:c.details;if(!r||r.live)return;let{fragments:n}=r;if(!(n!=null&&n.length))return;if(e.currentTime<e.duration-(r.targetduration+.5))return!1;let o=n[n.length-1];if(e.currentTime<=o.start)return!1;let s=o.start+o.duration/2,a=e.buffered.start(e.buffered.length-1),i=e.buffered.end(e.buffered.length-1);return s>a&&s<i},Bt=(e,t)=>e.ended||e.loop?e.ended:t&&Qe(e,t)?!0:$t(e),jt=(e,t,r)=>{Jt(t,r,e);let{metadata:n={}}=e,{view_session_id:o=Wt()}=n,s=Vt(e);n.view_session_id=o,n.video_id=s,e.metadata=n;let a=f=>{var l;(l=t.mux)==null||l.emit(\"hb\",{view_drm_type:f})};e.drmTypeCb=a,e.fallbackToWebkitFairplay=async()=>{var E;let f=!t.paused,l=t.currentTime;e.useWebkitFairplay=!0;let p=e.muxDataKeepSession;e.muxDataKeepSession=!0;let M=(E=k.get(t))==null?void 0:E.coreReference;jt(e,t,M),e.muxDataKeepSession=p,e.useWebkitFairplay=!1,f&&await t.play().then(()=>{t.currentTime=l}).catch(()=>{}),t.currentTime=l},k.set(t,{retryCount:0});let i=zt(e,t),d=ve(e,t,i);e!=null&&e.muxDataKeepSession&&(t!=null&&t.mux)&&!t.mux.deleted?i&&t.mux.addHLSJS({hlsjs:i,Hls:i?R:void 0}):tr(e,t,i),rr(e,t,i),we(t),Ne(t);let u=Ce(e,t,i),y={engine:i,setAutoplay:u,setPreload:d},c=k.get(t);return c&&(c.coreReference=y),y},Jt=(e,t,r)=>{let n=t==null?void 0:t.engine;e!=null&&e.mux&&!e.mux.deleted&&(r!=null&&r.muxDataKeepSession?n&&e.mux.removeHLSJS():(e.mux.destroy(),delete e.mux)),n&&(n.detachMedia(),n.destroy()),e&&(e.hasAttribute(\"src\")&&(e.removeAttribute(\"src\"),e.load()),e.removeEventListener(\"error\",nt),e.removeEventListener(\"error\",de),e.removeEventListener(\"durationchange\",rt),k.delete(e),e.dispatchEvent(new Event(\"teardown\")))};function Ze(e,t){var u;let r=K(e);if(!(r===w.M3U8))return!0;let o=!r||((u=t.canPlayType(r))!=null?u:!0),{preferPlayback:s}=e,a=s===Q.MSE,i=s===Q.NATIVE,d=ze&&(a||Kt(t));return o&&(i||!d)}var zt=(e,t)=>{let{debug:r,streamType:n,startTime:o=-1,metadata:s,preferCmcd:a,_hlsConfig:i={},maxAutoResolution:d}=e,y=K(e)===w.M3U8,c=Ze(e,t);if(y&&!c&&ze){let f={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelOnFPSDrop:!0},l=qt(n),p=Gt(e),M=[O.QUERY,O.HEADER].includes(a)?{useHeaders:a===O.HEADER,sessionId:s==null?void 0:s.view_session_id,contentId:s==null?void 0:s.video_id}:void 0,E=er(e,i),D=new R({debug:r,startPosition:o,cmcd:M,xhrSetup:(g,b)=>{var N,ye;if(a&&a!==O.QUERY)return;let T=new URL(b);if(!T.searchParams.has(\"CMCD\"))return;let h=((ye=(N=T.searchParams.get(\"CMCD\"))==null?void 0:N.split(\",\"))!=null?ye:[]).filter(Te=>Te.startsWith(\"sid\")||Te.startsWith(\"cid\")).join(\",\");T.searchParams.set(\"CMCD\",h),g.open(\"GET\",T)},...f,...E,...l,...p,...i});return E.capLevelController===z&&d!==void 0&&z.setMaxAutoResolution(D,d),D.on(R.Events.MANIFEST_PARSED,async function(g,b){var h,N;let T=(h=b.sessionData)==null?void 0:h[\"com.apple.hls.chapters\"];(T!=null&&T.URI||T!=null&&T.VALUE.toLocaleLowerCase().startsWith(\"http\"))&&pe((N=T==null?void 0:T.URI)!=null?N:T==null?void 0:T.VALUE,t)}),D}},qt=e=>e===L.LIVE?{backBufferLength:8}:{},Gt=e=>{let{tokens:{drm:t}={},playbackId:r,drmTypeCb:n}=e,o=X(r);return!t||!o?{}:{emeEnabled:!0,drmSystems:{\"com.apple.fps\":{licenseUrl:G(e,\"fairplay\"),serverCertificateUrl:et(e,\"fairplay\")},\"com.widevine.alpha\":{licenseUrl:G(e,\"widevine\")},\"com.microsoft.playready\":{licenseUrl:G(e,\"playready\")}},requestMediaKeySystemAccessFunc:(s,a)=>(s===\"com.widevine.alpha\"&&(a=[...a.map(i=>{var u;let d=(u=i.videoCapabilities)==null?void 0:u.map(y=>({...y,robustness:\"HW_SECURE_ALL\"}));return{...i,videoCapabilities:d}}),...a]),navigator.requestMediaKeySystemAccess(s,a).then(i=>{let d=kt(s);return n==null||n(d),i}))}},Xt=async e=>{let t=await fetch(e);return t.status!==200?Promise.reject(t):await t.arrayBuffer()},Qt=async(e,t)=>{let r=await fetch(t,{method:\"POST\",headers:{\"Content-type\":\"application/octet-stream\"},body:e});if(r.status!==200)return Promise.reject(r);let n=await r.arrayBuffer();return new Uint8Array(n)},Zt=(e,t)=>{let o={mediaEl:t,getAppCertificate:()=>Xt(et(e,\"fairplay\")).catch(s=>{if(s instanceof Response){let a=W(s,v.DRM,e);return console.error(\"mediaError\",a==null?void 0:a.message,a==null?void 0:a.context),a?Promise.reject(a):Promise.reject(new Error(\"Unexpected error in app cert request\"))}return Promise.reject(s)}),getLicenseKey:s=>Qt(s,G(e,\"fairplay\")).catch(a=>{if(a instanceof Response){let i=W(a,v.DRM,e);return console.error(\"mediaError\",i==null?void 0:i.message,i==null?void 0:i.context),i?Promise.reject(i):Promise.reject(new Error(\"Unexpected error in license key request\"))}return Promise.reject(a)}),saveAndDispatchError:I,drmTypeCb:()=>{var s;(s=e.drmTypeCb)==null||s.call(e,q.FAIRPLAY)}};if(e.useWebkitFairplay)Ue(o);else{let s={fallbackToWebkitFairplay:async()=>{var i;await a(),(i=e.fallbackToWebkitFairplay)==null||i.call(e)},...o},a=He(s)}},G=({playbackId:e,tokens:{drm:t}={},customDomain:r=A},n)=>{let o=X(e);return`https://license.${r.toLocaleLowerCase().endsWith(A)?r:A}/license/${n}/${o}?token=${t}`},et=({playbackId:e,tokens:{drm:t}={},customDomain:r=A},n)=>{let o=X(e);return`https://license.${r.toLocaleLowerCase().endsWith(A)?r:A}/appcert/${n}/${o}?token=${t}`},tt=({playbackId:e,src:t,customDomain:r})=>{if(e)return!0;if(typeof t!=\"string\")return!1;let n=window==null?void 0:window.location.href,o=new URL(t,n).hostname.toLocaleLowerCase();return o.includes(A)||!!r&&o.includes(r.toLocaleLowerCase())},er=(e,t)=>{let r={};return r.capLevelToPlayerSize=e.capRenditionToPlayerSize,r.capLevelToPlayerSize==null?(r.capLevelController=z,r.capLevelToPlayerSize=!0):r.capLevelController=Dt,r},tr=(e,t,r)=>{var d;let{envKey:n,disableTracking:o,muxDataSDK:s=le,muxDataSDKOptions:a={}}=e,i=tt(e);if(!o&&(n||i)){let{playerInitTime:u,playerSoftwareName:y,playerSoftwareVersion:c,beaconCollectionDomain:f,debug:l,disableCookies:p}=e,M={...e.metadata,video_title:((d=e==null?void 0:e.metadata)==null?void 0:d.video_title)||void 0},E=D=>typeof D.player_error_code==\"string\"?!1:typeof e.errorTranslator==\"function\"?e.errorTranslator(D):D;s.monitor(t,{debug:l,beaconCollectionDomain:f,hlsjs:r,Hls:r?R:void 0,automaticErrorTracking:!1,errorTranslator:E,disableCookies:p,...a,data:{...n?{env_key:n}:{},player_software_name:y,player_software:y,player_software_version:c,player_init_time:u,...M}})}},rr=(e,t,r)=>{var y,c;let n=Ze(e,t),{src:o,customDomain:s=A}=e,a=()=>{t.ended||e.disablePseudoEnded||!Bt(t,r)||(Qe(t,r)?t.currentTime=t.buffered.end(t.buffered.length-1):t.dispatchEvent(new Event(\"ended\")))},i,d,u=()=>{let f=Ge(t),l,p;f.length>0&&(l=f.start(0),p=f.end(0)),(d!==p||i!==l)&&t.dispatchEvent(new CustomEvent(\"seekablechange\",{composed:!0})),i=l,d=p};if(P(t,\"durationchange\",u),t&&n){let f=K(e);if(typeof o==\"string\"){if(o.endsWith(\".mp4\")&&o.includes(s)){let M=qe(o),E=new URL(`https://stream.${s}/${M}/metadata.json`);pe(E.toString(),t)}let l=()=>{if(Ke(t)!==L.LIVE||Number.isFinite(t.duration))return;let M=setInterval(u,1e3);t.addEventListener(\"teardown\",()=>{clearInterval(M)},{once:!0}),P(t,\"durationchange\",()=>{Number.isFinite(t.duration)&&clearInterval(M)})},p=async()=>St(o,t,f).then(l).catch(M=>{if(M instanceof Response){let E=W(M,v.VIDEO,e);if(E){I(t,E);return}}else M instanceof Error});if(t.preload===\"none\"){let M=()=>{p(),t.removeEventListener(\"loadedmetadata\",E)},E=()=>{p(),t.removeEventListener(\"play\",M)};P(t,\"play\",M,{once:!0}),P(t,\"loadedmetadata\",E,{once:!0})}else p();(y=e.tokens)!=null&&y.drm?Zt(e,t):P(t,\"encrypted\",()=>{let M=x(\"Attempting to play DRM-protected content without providing a DRM token.\"),E=new m(M,m.MEDIA_ERR_ENCRYPTED,!0);E.errorCategory=v.DRM,E.muxCode=C.ENCRYPTED_MISSING_TOKEN,I(t,E)},{once:!0}),t.setAttribute(\"src\",o),e.startTime&&(((c=k.get(t))!=null?c:{}).startTime=e.startTime,t.addEventListener(\"durationchange\",rt,{once:!0}))}else t.removeAttribute(\"src\");t.addEventListener(\"error\",nt),t.addEventListener(\"error\",de),t.addEventListener(\"emptied\",()=>{t.querySelectorAll(\"track[data-removeondestroy]\").forEach(p=>{p.remove()})},{once:!0}),P(t,\"pause\",a),P(t,\"seeked\",a),P(t,\"play\",()=>{t.ended||Xe(t.currentTime,t.duration)&&(t.currentTime=t.seekable.length?t.seekable.start(0):0)})}else r&&o?(r.once(R.Events.LEVEL_LOADED,(f,l)=>{Nt(l.details,t,r),u(),Ke(t)===L.LIVE&&!Number.isFinite(t.duration)&&(r.on(R.Events.LEVEL_UPDATED,u),P(t,\"durationchange\",()=>{Number.isFinite(t.duration)&&r.off(R.Events.LEVELS_UPDATED,u)}))}),r.on(R.Events.ERROR,(f,l)=>{var M,E;let p=nr(l,e);if(p.muxCode===C.NETWORK_NOT_READY){let g=(M=k.get(t))!=null?M:{},b=(E=g.retryCount)!=null?E:0;if(b<6){let T=b===0?5e3:6e4,h=new m(`Retrying in ${T/1e3} seconds...`,p.code,p.fatal);Object.assign(h,p),I(t,h);let N=setTimeout(()=>{g.retryCount=b+1,l.details===\"manifestLoadError\"&&l.url&&r.loadSource(l.url)},T);t.addEventListener(\"teardown\",()=>clearTimeout(N),{once:!0});return}else{g.retryCount=0;let T=new m('Try again later or <a href=\"#\" onclick=\"window.location.reload(); return false;\" style=\"color: #4a90e2;\">click here to retry</a>',p.code,p.fatal);Object.assign(T,p),I(t,T);return}}I(t,p)}),r.on(R.Events.MANIFEST_LOADED,()=>{let f=k.get(t);f&&f.error&&(f.error=null,f.retryCount=0,t.dispatchEvent(new Event(\"emptied\")),t.dispatchEvent(new Event(\"loadstart\")))}),t.addEventListener(\"error\",de),P(t,\"waiting\",a),De(e,r),ke(t,r),r.attachMedia(t)):console.error(\"It looks like the video you're trying to play will not work on this system! If possible, try upgrading to the newest versions of your browser or software.\")};function rt(e){var n;let t=e.target,r=(n=k.get(t))==null?void 0:n.startTime;if(r&&me(t.seekable,t.duration,r)){let o=t.preload===\"auto\";o&&(t.preload=\"none\"),t.currentTime=r,o&&(t.preload=\"auto\")}}async function nt(e){if(!e.isTrusted)return;e.stopImmediatePropagation();let t=e.target;if(!(t!=null&&t.error))return;let{message:r,code:n}=t.error,o=new m(r,n);if(t.src&&n===m.MEDIA_ERR_SRC_NOT_SUPPORTED&&t.readyState===HTMLMediaElement.HAVE_NOTHING){setTimeout(()=>{var a;let s=(a=Ft(t))!=null?a:t.error;(s==null?void 0:s.code)===m.MEDIA_ERR_SRC_NOT_SUPPORTED&&I(t,o)},500);return}if(t.src&&(n!==m.MEDIA_ERR_DECODE||n!==void 0))try{let{status:s}=await fetch(t.src);o.data={response:{code:s}}}catch{}I(t,o)}function I(e,t){var r;t.fatal&&(((r=k.get(e))!=null?r:{}).error=t,e.dispatchEvent(new CustomEvent(\"error\",{detail:t})))}function de(e){var n,o;if(!(e instanceof CustomEvent)||!(e.detail instanceof m))return;let t=e.target,r=e.detail;!r||!r.fatal||(((n=k.get(t))!=null?n:{}).error=r,(o=t.mux)==null||o.emit(\"error\",{player_error_code:r.code,player_error_message:r.message,player_error_context:r.context}))}var nr=(e,t)=>{var d,u,y;!e.fatal?t.debug&&console.warn(\"getErrorFromHlsErrorData() (non-fatal)\",e):console.error(\"getErrorFromHlsErrorData()\",e);let n={[R.ErrorTypes.NETWORK_ERROR]:m.MEDIA_ERR_NETWORK,[R.ErrorTypes.MEDIA_ERROR]:m.MEDIA_ERR_DECODE,[R.ErrorTypes.KEY_SYSTEM_ERROR]:m.MEDIA_ERR_ENCRYPTED},o=c=>[R.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,R.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED].includes(c.details)?m.MEDIA_ERR_NETWORK:n[c.type],s=c=>{if(c.type===R.ErrorTypes.KEY_SYSTEM_ERROR)return v.DRM;if(c.type===R.ErrorTypes.NETWORK_ERROR)return v.VIDEO},a,i=o(e);if(i===m.MEDIA_ERR_NETWORK&&e.response){let c=(d=s(e))!=null?d:v.VIDEO;a=(u=W(e.response,c,t,e.fatal))!=null?u:new m(\"\",i,e.fatal)}else if(i===m.MEDIA_ERR_ENCRYPTED)if(e.details===R.ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE){let c=x(\"Attempting to play DRM-protected content without providing a DRM token.\");a=new m(c,m.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=v.DRM,a.muxCode=C.ENCRYPTED_MISSING_TOKEN}else if(e.details===R.ErrorDetails.KEY_SYSTEM_NO_ACCESS){let c=x(\"Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.\");a=new m(c,m.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=v.DRM,a.muxCode=C.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM}else if(e.details===R.ErrorDetails.KEY_SYSTEM_NO_SESSION){let c=x(\"Failed to generate a DRM license request. This may be an issue with the player or your protected content.\");a=new m(c,m.MEDIA_ERR_ENCRYPTED,!0),a.errorCategory=v.DRM,a.muxCode=C.ENCRYPTED_GENERATE_REQUEST_FAILED}else if(e.details===R.ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED){let c=x(\"Failed to update DRM license. This may be an issue with the player or your protected content.\");a=new m(c,m.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=v.DRM,a.muxCode=C.ENCRYPTED_UPDATE_LICENSE_FAILED}else if(e.details===R.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED){let c=x(\"Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate.\");a=new m(c,m.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=v.DRM,a.muxCode=C.ENCRYPTED_UPDATE_SERVER_CERT_FAILED}else if(e.details===R.ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR){let c=x(\"The DRM Content Decryption Module system had an internal failure. Try reloading the page, upading your browser, or playing in another browser.\");a=new m(c,m.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=v.DRM,a.muxCode=C.ENCRYPTED_CDM_ERROR}else if(e.details===R.ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED){let c=x(\"DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.\");a=new m(c,m.MEDIA_ERR_ENCRYPTED,!1),a.errorCategory=v.DRM,a.muxCode=C.ENCRYPTED_OUTPUT_RESTRICTED}else a=new m(e.error.message,m.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=v.DRM,a.muxCode=C.ENCRYPTED_ERROR;else a=new m(\"\",i,e.fatal);return a.context||(a.context=`${e.url?`url: ${e.url}\n`:\"\"}${e.response&&(e.response.code||e.response.text)?`response: ${e.response.code}, ${e.response.text}\n`:\"\"}${e.reason?`failure reason: ${e.reason}\n`:\"\"}${e.level?`level: ${e.level}\n`:\"\"}${e.parent?`parent stream controller: ${e.parent}\n`:\"\"}${e.buffer?`buffer length: ${e.buffer}\n`:\"\"}${e.error?`error: ${e.error}\n`:\"\"}${e.event?`event: ${e.event}\n`:\"\"}${e.err?`error message: ${(y=e.err)==null?void 0:y.message}\n`:\"\"}`),a.data=e,a};export{F as AutoplayTypes,ir as CmcdTypeValues,O as CmcdTypes,w as ExtensionMimeTypeMap,R as Hls,fr as MaxAutoResolution,dr as MaxResolution,m as MediaError,Y as MimeTypeShorthandMap,z as MinCapLevelController,lr as MinResolution,v as MuxErrorCategory,C as MuxErrorCode,ce as MuxJWTAud,Q as PlaybackTypes,pr as RenditionOrder,L as StreamTypes,Se as addChapters,Le as addCuePoints,ae as addTextTrack,ur as allMediaTypes,V as errorCategoryToTokenNameOrPrefix,pe as fetchAndDispatchMuxMetadata,Tn as generatePlayerInitTime,Wt as generateUUID,Ie as getActiveChapter,_e as getActiveCuePoint,Xt as getAppCertificate,er as getCapLevelControllerConfig,ft as getChapters,bn as getCoreReference,pt as getCuePoints,Tt as getCurrentPdt,Gt as getDRMConfig,Bt as getEnded,Ft as getError,Qt as getLicenseKey,Mn as getLiveEdgeStart,Pt as getMediaPlaylistFromMultivariantPlaylist,En as getMetadata,ht as getMultivariantPlaylistSessionData,Ge as getSeekable,yt as getStartDate,It as getStreamInfoFromHlsjsLevelDetails,wt as getStreamInfoFromPlaylist,At as getStreamInfoFromSrcAndType,Ke as getStreamType,qt as getStreamTypeConfig,gn as getTargetLiveWindow,U as getTextTrack,x as i18n,jt as initialize,H as isKeyOf,tt as isMuxVideoSrc,$t as isPseudoEnded,Qe as isStuckOnLastFragment,rr as loadMedia,le as mux,k as muxMediaState,re as parseJwt,_t as parseTagAttributes,lt as removeTextTrack,Ne as setupChapters,we as setupCuePoints,zt as setupHls,tr as setupMux,Zt as setupNativeFairplayDRM,cr as shorthandKeys,Jt as teardown,et as toAppCertURL,kt as toDRMTypeFromKeySystem,G as toLicenseKeyURL,mn as toMuxVideoURL,qe as toPlaybackIdFromSrc,B as toPlaybackIdParts,Nt as updateStreamInfoFromHlsjsLevelDetails,St as updateStreamInfoFromSrc};\n//# sourceMappingURL=index.mjs.map\n","var D=n=>{throw TypeError(n)};var P=(n,a,e)=>a.has(n)||D(\"Cannot \"+e);var s=(n,a,e)=>(P(n,a,\"read from private field\"),e?e.call(n):a.get(n)),u=(n,a,e)=>a.has(n)?D(\"Cannot add the same private member more than once\"):a instanceof WeakSet?a.add(n):a.set(n,e),l=(n,a,e,i)=>(P(n,a,\"write to private field\"),i?i.call(n,e):a.set(n,e),e),g=(n,a,e)=>(P(n,a,\"access private method\"),e);import{initialize as F,teardown as W,generatePlayerInitTime as V,PlaybackTypes as N,toMuxVideoURL as H,MediaError as me,getError as $,CmcdTypeValues as x,addCuePoints as w,getCuePoints as z,getActiveCuePoint as X,addChapters as j,getActiveChapter as q,getMetadata as Z,getStartDate as J,getCurrentPdt as Q,getStreamType as ee,getTargetLiveWindow as te,getLiveEdgeStart as ie,getSeekable as re,getEnded as se,getChapters as ne,toPlaybackIdFromSrc as ae,toPlaybackIdParts as oe,getCoreReference as ue}from\"@mux/playback-core\";var U=()=>{try{return\"0.30.5\"}catch{}return\"UNKNOWN\"},G=U(),k=()=>G;import{CustomVideoElement as L,Events as pe}from\"custom-media-element\";var v=`\n<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" part=\"logo\" style=\"fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2\" viewBox=\"0 0 1600 500\"><g fill=\"#fff\"><path d=\"M994.287 93.486c-17.121 0-31-13.879-31-31 0-17.121 13.879-31 31-31 17.121 0 31 13.879 31 31 0 17.121-13.879 31-31 31m0-93.486c-34.509 0-62.484 27.976-62.484 62.486v187.511c0 68.943-56.09 125.033-125.032 125.033s-125.03-56.09-125.03-125.033V62.486C681.741 27.976 653.765 0 619.256 0s-62.484 27.976-62.484 62.486v187.511C556.772 387.85 668.921 500 806.771 500c137.851 0 250.001-112.15 250.001-250.003V62.486c0-34.51-27.976-62.486-62.485-62.486M1537.51 468.511c-17.121 0-31-13.879-31-31 0-17.121 13.879-31 31-31 17.121 0 31 13.879 31 31 0 17.121-13.879 31-31 31m-275.883-218.509-143.33 143.329c-24.402 24.402-24.402 63.966 0 88.368 24.402 24.402 63.967 24.402 88.369 0l143.33-143.329 143.328 143.329c24.402 24.4 63.967 24.402 88.369 0 24.403-24.402 24.403-63.966.001-88.368l-143.33-143.329.001-.004 143.329-143.329c24.402-24.402 24.402-63.965 0-88.367s-63.967-24.402-88.369 0L1349.996 161.63 1206.667 18.302c-24.402-24.401-63.967-24.402-88.369 0s-24.402 63.965 0 88.367l143.329 143.329v.004ZM437.511 468.521c-17.121 0-31-13.879-31-31 0-17.121 13.879-31 31-31 17.121 0 31 13.879 31 31 0 17.121-13.879 31-31 31M461.426 4.759C438.078-4.913 411.2.432 393.33 18.303L249.999 161.632 106.669 18.303C88.798.432 61.922-4.913 38.573 4.759 15.224 14.43-.001 37.214-.001 62.488v375.026c0 34.51 27.977 62.486 62.487 62.486 34.51 0 62.486-27.976 62.486-62.486V213.341l80.843 80.844c24.404 24.402 63.965 24.402 88.369 0l80.843-80.844v224.173c0 34.51 27.976 62.486 62.486 62.486s62.486-27.976 62.486-62.486V62.488c0-25.274-15.224-48.058-38.573-57.729\" style=\"fill-rule:nonzero\"/></g></svg>`;var t={BEACON_COLLECTION_DOMAIN:\"beacon-collection-domain\",CUSTOM_DOMAIN:\"custom-domain\",DEBUG:\"debug\",DISABLE_TRACKING:\"disable-tracking\",DISABLE_COOKIES:\"disable-cookies\",DISABLE_PSEUDO_ENDED:\"disable-pseudo-ended\",DRM_TOKEN:\"drm-token\",PLAYBACK_TOKEN:\"playback-token\",ENV_KEY:\"env-key\",MAX_RESOLUTION:\"max-resolution\",MIN_RESOLUTION:\"min-resolution\",MAX_AUTO_RESOLUTION:\"max-auto-resolution\",RENDITION_ORDER:\"rendition-order\",PROGRAM_START_TIME:\"program-start-time\",PROGRAM_END_TIME:\"program-end-time\",ASSET_START_TIME:\"asset-start-time\",ASSET_END_TIME:\"asset-end-time\",METADATA_URL:\"metadata-url\",PLAYBACK_ID:\"playback-id\",PLAYER_SOFTWARE_NAME:\"player-software-name\",PLAYER_SOFTWARE_VERSION:\"player-software-version\",PLAYER_INIT_TIME:\"player-init-time\",PREFER_CMCD:\"prefer-cmcd\",PREFER_PLAYBACK:\"prefer-playback\",START_TIME:\"start-time\",STREAM_TYPE:\"stream-type\",TARGET_LIVE_WINDOW:\"target-live-window\",LIVE_EDGE_OFFSET:\"live-edge-offset\",TYPE:\"type\",LOGO:\"logo\",CAP_RENDITION_TO_PLAYER_SIZE:\"cap-rendition-to-player-size\"},de=Object.values(t),K=k(),B=\"mux-video\",T,_,c,p,O,R,I,M,m,S,o,A,y,b,Y=class extends L{constructor(){super();u(this,o);u(this,T);u(this,_);u(this,c,{});u(this,p,{});u(this,O);u(this,R);u(this,I);u(this,M);u(this,m,\"\");u(this,S,e=>{var E;let i=Z(this.nativeEl),r=(E=this.metadata)!=null?E:{};this.metadata={...i,...r},(i==null?void 0:i[\"com.mux.video.branding\"])===\"mux-free-plan\"&&(l(this,m,\"default\"),this.updateLogo())});u(this,y);l(this,_,V())}static get NAME(){return B}static get VERSION(){return K}static get observedAttributes(){var e;return[...de,...(e=L.observedAttributes)!=null?e:[]]}static getLogoHTML(e){return!e||e===\"false\"?\"\":e===\"default\"?v:`<img part=\"logo\" src=\"${e}\" />`}static getTemplateHTML(e={}){var i;return`\n ${L.getTemplateHTML(e)}\n <style>\n :host {\n position: relative;\n }\n slot[name=\"logo\"] {\n display: flex;\n justify-content: end;\n position: absolute;\n top: 1rem;\n right: 1rem;\n opacity: 0;\n transition: opacity 0.25s ease-in-out;\n z-index: 1;\n }\n slot[name=\"logo\"]:has([part=\"logo\"]) {\n opacity: 1;\n }\n slot[name=\"logo\"] [part=\"logo\"] {\n width: 5rem;\n pointer-events: none;\n user-select: none;\n }\n </style>\n <slot name=\"logo\">\n ${this.getLogoHTML((i=e[t.LOGO])!=null?i:\"\")}\n </slot>\n `}get preferCmcd(){var e;return(e=this.getAttribute(t.PREFER_CMCD))!=null?e:void 0}set preferCmcd(e){e!==this.preferCmcd&&(e?x.includes(e)?this.setAttribute(t.PREFER_CMCD,e):console.warn(`Invalid value for preferCmcd. Must be one of ${x.join()}`):this.removeAttribute(t.PREFER_CMCD))}get playerInitTime(){return this.hasAttribute(t.PLAYER_INIT_TIME)?+this.getAttribute(t.PLAYER_INIT_TIME):s(this,_)}set playerInitTime(e){e!=this.playerInitTime&&(e==null?this.removeAttribute(t.PLAYER_INIT_TIME):this.setAttribute(t.PLAYER_INIT_TIME,`${+e}`))}get playerSoftwareName(){var e;return(e=s(this,I))!=null?e:B}set playerSoftwareName(e){l(this,I,e)}get playerSoftwareVersion(){var e;return(e=s(this,R))!=null?e:K}set playerSoftwareVersion(e){l(this,R,e)}get _hls(){var e;return(e=s(this,o,A))==null?void 0:e.engine}get mux(){var e;return(e=this.nativeEl)==null?void 0:e.mux}get error(){var e;return(e=$(this.nativeEl))!=null?e:null}get errorTranslator(){return s(this,M)}set errorTranslator(e){l(this,M,e)}get src(){return this.getAttribute(\"src\")}set src(e){e!==this.src&&(e==null?this.removeAttribute(\"src\"):this.setAttribute(\"src\",e))}get type(){var e;return(e=this.getAttribute(t.TYPE))!=null?e:void 0}set type(e){e!==this.type&&(e?this.setAttribute(t.TYPE,e):this.removeAttribute(t.TYPE))}get preload(){let e=this.getAttribute(\"preload\");return e===\"\"?\"auto\":[\"none\",\"metadata\",\"auto\"].includes(e)?e:super.preload}set preload(e){e!=this.getAttribute(\"preload\")&&([\"\",\"none\",\"metadata\",\"auto\"].includes(e)?this.setAttribute(\"preload\",e):this.removeAttribute(\"preload\"))}get debug(){return this.getAttribute(t.DEBUG)!=null}set debug(e){e!==this.debug&&(e?this.setAttribute(t.DEBUG,\"\"):this.removeAttribute(t.DEBUG))}get disableTracking(){return this.hasAttribute(t.DISABLE_TRACKING)}set disableTracking(e){e!==this.disableTracking&&this.toggleAttribute(t.DISABLE_TRACKING,!!e)}get disableCookies(){return this.hasAttribute(t.DISABLE_COOKIES)}set disableCookies(e){e!==this.disableCookies&&(e?this.setAttribute(t.DISABLE_COOKIES,\"\"):this.removeAttribute(t.DISABLE_COOKIES))}get disablePseudoEnded(){return this.hasAttribute(t.DISABLE_PSEUDO_ENDED)}set disablePseudoEnded(e){e!==this.disablePseudoEnded&&(e?this.setAttribute(t.DISABLE_PSEUDO_ENDED,\"\"):this.removeAttribute(t.DISABLE_PSEUDO_ENDED))}get startTime(){let e=this.getAttribute(t.START_TIME);if(e==null)return;let i=+e;return Number.isNaN(i)?void 0:i}set startTime(e){e!==this.startTime&&(e==null?this.removeAttribute(t.START_TIME):this.setAttribute(t.START_TIME,`${e}`))}get playbackId(){var e;return this.hasAttribute(t.PLAYBACK_ID)?this.getAttribute(t.PLAYBACK_ID):(e=ae(this.src))!=null?e:void 0}set playbackId(e){e!==this.playbackId&&(e?this.setAttribute(t.PLAYBACK_ID,e):this.removeAttribute(t.PLAYBACK_ID))}get maxResolution(){var e;return(e=this.getAttribute(t.MAX_RESOLUTION))!=null?e:void 0}set maxResolution(e){e!==this.maxResolution&&(e?this.setAttribute(t.MAX_RESOLUTION,e):this.removeAttribute(t.MAX_RESOLUTION))}get minResolution(){var e;return(e=this.getAttribute(t.MIN_RESOLUTION))!=null?e:void 0}set minResolution(e){e!==this.minResolution&&(e?this.setAttribute(t.MIN_RESOLUTION,e):this.removeAttribute(t.MIN_RESOLUTION))}get maxAutoResolution(){var e;return(e=this.getAttribute(t.MAX_AUTO_RESOLUTION))!=null?e:void 0}set maxAutoResolution(e){e==null?this.removeAttribute(t.MAX_AUTO_RESOLUTION):this.setAttribute(t.MAX_AUTO_RESOLUTION,e)}get renditionOrder(){var e;return(e=this.getAttribute(t.RENDITION_ORDER))!=null?e:void 0}set renditionOrder(e){e!==this.renditionOrder&&(e?this.setAttribute(t.RENDITION_ORDER,e):this.removeAttribute(t.RENDITION_ORDER))}get programStartTime(){let e=this.getAttribute(t.PROGRAM_START_TIME);if(e==null)return;let i=+e;return Number.isNaN(i)?void 0:i}set programStartTime(e){e==null?this.removeAttribute(t.PROGRAM_START_TIME):this.setAttribute(t.PROGRAM_START_TIME,`${e}`)}get programEndTime(){let e=this.getAttribute(t.PROGRAM_END_TIME);if(e==null)return;let i=+e;return Number.isNaN(i)?void 0:i}set programEndTime(e){e==null?this.removeAttribute(t.PROGRAM_END_TIME):this.setAttribute(t.PROGRAM_END_TIME,`${e}`)}get assetStartTime(){let e=this.getAttribute(t.ASSET_START_TIME);if(e==null)return;let i=+e;return Number.isNaN(i)?void 0:i}set assetStartTime(e){e==null?this.removeAttribute(t.ASSET_START_TIME):this.setAttribute(t.ASSET_START_TIME,`${e}`)}get assetEndTime(){let e=this.getAttribute(t.ASSET_END_TIME);if(e==null)return;let i=+e;return Number.isNaN(i)?void 0:i}set assetEndTime(e){e==null?this.removeAttribute(t.ASSET_END_TIME):this.setAttribute(t.ASSET_END_TIME,`${e}`)}get customDomain(){var e;return(e=this.getAttribute(t.CUSTOM_DOMAIN))!=null?e:void 0}set customDomain(e){e!==this.customDomain&&(e?this.setAttribute(t.CUSTOM_DOMAIN,e):this.removeAttribute(t.CUSTOM_DOMAIN))}get capRenditionToPlayerSize(){var e;return((e=this._hlsConfig)==null?void 0:e.capLevelToPlayerSize)!=null?this._hlsConfig.capLevelToPlayerSize:s(this,y)}set capRenditionToPlayerSize(e){l(this,y,e)}get drmToken(){var e;return(e=this.getAttribute(t.DRM_TOKEN))!=null?e:void 0}set drmToken(e){e!==this.drmToken&&(e?this.setAttribute(t.DRM_TOKEN,e):this.removeAttribute(t.DRM_TOKEN))}get playbackToken(){var e,i,r,E;if(this.hasAttribute(t.PLAYBACK_TOKEN))return(e=this.getAttribute(t.PLAYBACK_TOKEN))!=null?e:void 0;if(this.hasAttribute(t.PLAYBACK_ID)){let[,f]=oe((i=this.playbackId)!=null?i:\"\");return(r=new URLSearchParams(f).get(\"token\"))!=null?r:void 0}if(this.src)return(E=new URLSearchParams(this.src).get(\"token\"))!=null?E:void 0}set playbackToken(e){e!==this.playbackToken&&(e?this.setAttribute(t.PLAYBACK_TOKEN,e):this.removeAttribute(t.PLAYBACK_TOKEN))}get tokens(){let e=this.getAttribute(t.PLAYBACK_TOKEN),i=this.getAttribute(t.DRM_TOKEN);return{...s(this,p),...e!=null?{playback:e}:{},...i!=null?{drm:i}:{}}}set tokens(e){l(this,p,e!=null?e:{})}get ended(){return se(this.nativeEl,this._hls)}get envKey(){var e;return(e=this.getAttribute(t.ENV_KEY))!=null?e:void 0}set envKey(e){e!==this.envKey&&(e?this.setAttribute(t.ENV_KEY,e):this.removeAttribute(t.ENV_KEY))}get beaconCollectionDomain(){var e;return(e=this.getAttribute(t.BEACON_COLLECTION_DOMAIN))!=null?e:void 0}set beaconCollectionDomain(e){e!==this.beaconCollectionDomain&&(e?this.setAttribute(t.BEACON_COLLECTION_DOMAIN,e):this.removeAttribute(t.BEACON_COLLECTION_DOMAIN))}get streamType(){var e;return(e=this.getAttribute(t.STREAM_TYPE))!=null?e:ee(this.nativeEl)}set streamType(e){e!==this.streamType&&(e?this.setAttribute(t.STREAM_TYPE,e):this.removeAttribute(t.STREAM_TYPE))}get targetLiveWindow(){return this.hasAttribute(t.TARGET_LIVE_WINDOW)?+this.getAttribute(t.TARGET_LIVE_WINDOW):te(this.nativeEl)}set targetLiveWindow(e){e!=this.targetLiveWindow&&(e==null?this.removeAttribute(t.TARGET_LIVE_WINDOW):this.setAttribute(t.TARGET_LIVE_WINDOW,`${+e}`))}get liveEdgeStart(){var e,i;if(this.hasAttribute(t.LIVE_EDGE_OFFSET)){let{liveEdgeOffset:r}=this,E=(e=this.nativeEl.seekable.end(0))!=null?e:0,f=(i=this.nativeEl.seekable.start(0))!=null?i:0;return Math.max(f,E-r)}return ie(this.nativeEl)}get liveEdgeOffset(){if(this.hasAttribute(t.LIVE_EDGE_OFFSET))return+this.getAttribute(t.LIVE_EDGE_OFFSET)}set liveEdgeOffset(e){e!=this.liveEdgeOffset&&(e==null?this.removeAttribute(t.LIVE_EDGE_OFFSET):this.setAttribute(t.LIVE_EDGE_OFFSET,`${+e}`))}get seekable(){return re(this.nativeEl)}async addCuePoints(e){return w(this.nativeEl,e)}get activeCuePoint(){return X(this.nativeEl)}get cuePoints(){return z(this.nativeEl)}async addChapters(e){return j(this.nativeEl,e)}get activeChapter(){return q(this.nativeEl)}get chapters(){return ne(this.nativeEl)}getStartDate(){return J(this.nativeEl,this._hls)}get currentPdt(){return Q(this.nativeEl,this._hls)}get preferPlayback(){let e=this.getAttribute(t.PREFER_PLAYBACK);if(e===N.MSE||e===N.NATIVE)return e}set preferPlayback(e){e!==this.preferPlayback&&(e===N.MSE||e===N.NATIVE?this.setAttribute(t.PREFER_PLAYBACK,e):this.removeAttribute(t.PREFER_PLAYBACK))}get metadata(){return{...this.getAttributeNames().filter(i=>i.startsWith(\"metadata-\")&&![t.METADATA_URL].includes(i)).reduce((i,r)=>{let E=this.getAttribute(r);return E!=null&&(i[r.replace(/^metadata-/,\"\").replace(/-/g,\"_\")]=E),i},{}),...s(this,c)}}set metadata(e){l(this,c,e!=null?e:{}),this.mux&&this.mux.emit(\"hb\",s(this,c))}get _hlsConfig(){return s(this,O)}set _hlsConfig(e){l(this,O,e)}get logo(){var e;return(e=this.getAttribute(t.LOGO))!=null?e:s(this,m)}set logo(e){e?this.setAttribute(t.LOGO,e):this.removeAttribute(t.LOGO)}load(){F(this,this.nativeEl,s(this,o,A))}unload(){W(this.nativeEl,s(this,o,A),this)}attributeChangedCallback(e,i,r){var f,C;switch(L.observedAttributes.includes(e)&&![\"src\",\"autoplay\",\"preload\"].includes(e)&&super.attributeChangedCallback(e,i,r),e){case t.PLAYER_SOFTWARE_NAME:this.playerSoftwareName=r!=null?r:void 0;break;case t.PLAYER_SOFTWARE_VERSION:this.playerSoftwareVersion=r!=null?r:void 0;break;case\"src\":{let d=!!i,h=!!r;!d&&h?g(this,o,b).call(this):d&&!h?this.unload():d&&h&&(this.unload(),g(this,o,b).call(this));break}case\"autoplay\":if(r===i)break;(f=s(this,o,A))==null||f.setAutoplay(this.autoplay);break;case\"preload\":if(r===i)break;(C=s(this,o,A))==null||C.setPreload(r);break;case t.PLAYBACK_ID:case t.CUSTOM_DOMAIN:case t.MAX_RESOLUTION:case t.MIN_RESOLUTION:case t.RENDITION_ORDER:case t.PROGRAM_START_TIME:case t.PROGRAM_END_TIME:case t.ASSET_START_TIME:case t.ASSET_END_TIME:case t.PLAYBACK_TOKEN:this.src=H(this);break;case t.DEBUG:{let d=this.debug;this.mux&&console.info(\"Cannot toggle debug mode of mux data after initialization. Make sure you set all metadata to override before setting the src.\"),this._hls&&(this._hls.config.debug=d);break}case t.METADATA_URL:r&&fetch(r).then(d=>d.json()).then(d=>this.metadata=d).catch(()=>console.error(`Unable to load or parse metadata JSON from metadata-url ${r}!`));break;case t.STREAM_TYPE:(r==null||r!==i)&&this.dispatchEvent(new CustomEvent(\"streamtypechange\",{composed:!0,bubbles:!0}));break;case t.TARGET_LIVE_WINDOW:(r==null||r!==i)&&this.dispatchEvent(new CustomEvent(\"targetlivewindowchange\",{composed:!0,bubbles:!0,detail:this.targetLiveWindow}));break;case t.LOGO:(r==null||r!==i)&&this.updateLogo();break;case t.DISABLE_TRACKING:{if(r==null||r!==i){let d=this.currentTime,h=this.paused;this.unload(),g(this,o,b).call(this).then(()=>{this.currentTime=d,h||this.play()})}break}case t.DISABLE_COOKIES:{(r==null||r!==i)&&this.disableCookies&&document.cookie.split(\";\").forEach(h=>{h.trim().startsWith(\"muxData\")&&(document.cookie=h.replace(/^ +/,\"\").replace(/=.*/,\"=;expires=\"+new Date().toUTCString()+\";path=/\"))});break}case t.CAP_RENDITION_TO_PLAYER_SIZE:(r==null||r!==i)&&(this.capRenditionToPlayerSize=r!=null?!0:void 0)}}updateLogo(){if(!this.shadowRoot)return;let e=this.shadowRoot.querySelector('slot[name=\"logo\"]');if(!e)return;let i=this.constructor.getLogoHTML(s(this,m)||this.logo);e.innerHTML=i}connectedCallback(){var e,i;(e=super.connectedCallback)==null||e.call(this),(i=this.nativeEl)==null||i.addEventListener(\"muxmetadata\",s(this,S)),this.nativeEl&&this.src&&!s(this,o,A)&&g(this,o,b).call(this)}disconnectedCallback(){var e,i;(e=this.nativeEl)==null||e.removeEventListener(\"muxmetadata\",s(this,S)),this.unload(),(i=super.disconnectedCallback)==null||i.call(this)}handleEvent(e){e.target===this.nativeEl&&this.dispatchEvent(new CustomEvent(e.type,{composed:!0,detail:e.detail}))}};T=new WeakMap,_=new WeakMap,c=new WeakMap,p=new WeakMap,O=new WeakMap,R=new WeakMap,I=new WeakMap,M=new WeakMap,m=new WeakMap,S=new WeakMap,o=new WeakSet,A=function(){return ue(this.nativeEl)},y=new WeakMap,b=async function(){s(this,T)||(await l(this,T,Promise.resolve()),l(this,T,null),this.load())};export{t as Attributes,pe as Events,me as MediaError,Y as MuxVideoBaseElement,V as generatePlayerInitTime,B as playerSoftwareName,K as playerSoftwareVersion};\n//# sourceMappingURL=base.mjs.map\n","/* global WeakRef */\n\nexport const privateProps = new WeakMap();\n\nexport class InvalidStateError extends Error {}\nexport class NotSupportedError extends Error {}\nexport class NotFoundError extends Error {}\n\nconst HLS_RESPONSE_HEADERS = ['application/x-mpegURL','application/vnd.apple.mpegurl','audio/mpegurl']\n\n// Fallback to a plain Set if WeakRef is not available.\nexport const IterableWeakSet = globalThis.WeakRef ?\n class extends Set {\n add(el) {\n super.add(new WeakRef(el));\n }\n forEach(fn) {\n super.forEach((ref) => {\n const value = ref.deref();\n if (value) fn(value);\n });\n }\n } : Set;\n\nexport function onCastApiAvailable(callback) {\n if (!globalThis.chrome?.cast?.isAvailable) {\n globalThis.__onGCastApiAvailable = () => {\n // The globalThis.__onGCastApiAvailable callback alone is not reliable for\n // the added cast.framework. It's loaded in a separate JS file.\n // https://www.gstatic.com/eureka/clank/101/cast_sender.js\n // https://www.gstatic.com/cast/sdk/libs/sender/1.0/cast_framework.js\n customElements\n .whenDefined('google-cast-button')\n .then(callback);\n };\n } else if (!globalThis.cast?.framework) {\n customElements\n .whenDefined('google-cast-button')\n .then(callback);\n } else {\n callback();\n }\n}\n\nexport function requiresCastFramework() {\n // todo: exclude for Android>=56 which supports the Remote Playback API natively.\n return globalThis.chrome;\n}\n\nexport function loadCastFramework() {\n const sdkUrl = 'https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1';\n if (globalThis.chrome?.cast || document.querySelector(`script[src=\"${sdkUrl}\"]`)) return;\n\n const script = document.createElement('script');\n script.src = sdkUrl;\n document.head.append(script);\n}\n\nexport function castContext() {\n return globalThis.cast?.framework?.CastContext.getInstance();\n}\n\nexport function currentSession() {\n return castContext()?.getCurrentSession();\n}\n\nexport function currentMedia() {\n return currentSession()?.getSessionObj().media[0];\n}\n\nexport function editTracksInfo(request) {\n return new Promise((resolve, reject) => {\n currentMedia().editTracksInfo(request, resolve, reject);\n });\n}\n\nexport function getMediaStatus(request) {\n return new Promise((resolve, reject) => {\n currentMedia().getStatus(request, resolve, reject);\n });\n}\n\nexport function setCastOptions(options) {\n return castContext().setOptions({\n ...getDefaultCastOptions(),\n ...options,\n });\n}\n\nexport function getDefaultCastOptions() {\n return {\n // Set the receiver application ID to your own (created in the\n // Google Cast Developer Console), or optionally\n // use the chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID\n receiverApplicationId: 'CC1AD845',\n\n // Auto join policy can be one of the following three:\n // ORIGIN_SCOPED - Auto connect from same appId and page origin\n // TAB_AND_ORIGIN_SCOPED - Auto connect from same appId, page origin, and tab\n // PAGE_SCOPED - No auto connect\n autoJoinPolicy: 'origin_scoped',\n\n // The following flag enables Cast Connect(requires Chrome 87 or higher)\n // https://developers.googleblog.com/2020/08/introducing-cast-connect-android-tv.html\n androidReceiverCompatible: false,\n\n language: 'en-US',\n resumeSavedSession: true,\n };\n}\n\n//Get the segment format given the end of the URL (.m4s, .ts, etc)\nfunction getFormat(segment) {\n if (!segment) return undefined;\n\n const regex = /\\.([a-zA-Z0-9]+)(?:\\?.*)?$/;\n const match = segment.match(regex);\n return match ? match[1] : null;\n}\n\nfunction parsePlaylistUrls(playlistContent) {\n const lines = playlistContent.split('\\n');\n const urls = [];\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i].trim();\n\n // Locate available video playlists and get the next line which is the URI (https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis-17#section-4.4.6.2)\n if (line.startsWith('#EXT-X-STREAM-INF')) {\n const nextLine = lines[i + 1] ? lines[i + 1].trim() : '';\n if (nextLine && !nextLine.startsWith('#')) {\n urls.push(nextLine);\n }\n }\n }\n\n return urls;\n}\n\nfunction parseSegment(playlistContent){\n const lines = playlistContent.split('\\n');\n\n const url = lines.find(line => !line.trim().startsWith('#') && line.trim() !== '');\n\n return url;\n}\n\nexport async function isHls(url) {\n try {\n const response = await fetch(url, {method: 'HEAD'});\n const contentType = response.headers.get('Content-Type');\n\n return HLS_RESPONSE_HEADERS.some((header) => contentType === header);\n } catch (err) {\n console.error('Error while trying to get the Content-Type of the manifest', err);\n return false;\n }\n}\n\nexport async function getPlaylistSegmentFormat(url) {\n try {\n const mainManifestContent = await (await fetch(url)).text();\n let availableChunksContent = mainManifestContent;\n\n const playlists = parsePlaylistUrls(mainManifestContent);\n if (playlists.length > 0) { \n const chosenPlaylistUrl = new URL(playlists[0], url).toString();\n availableChunksContent = await (await fetch(chosenPlaylistUrl)).text();\n }\n\n const segment = parseSegment(availableChunksContent);\n const format = getFormat(segment);\n return format\n } catch (err) {\n console.error('Error while trying to parse the manifest playlist', err);\n return undefined;\n }\n}","/* global chrome, cast */\nimport {\n privateProps,\n IterableWeakSet,\n InvalidStateError,\n NotSupportedError,\n onCastApiAvailable,\n castContext,\n currentSession,\n currentMedia,\n editTracksInfo,\n getMediaStatus,\n setCastOptions\n} from './castable-utils.js';\n\nconst remoteInstances = new IterableWeakSet();\nconst castElementRef = new WeakSet();\n\nlet cf;\n\nonCastApiAvailable(() => {\n if (!globalThis.chrome?.cast?.isAvailable) {\n // Useful to see in verbose logs if this shows undefined or false.\n console.debug('chrome.cast.isAvailable', globalThis.chrome?.cast?.isAvailable);\n return;\n }\n\n if (!cf) {\n cf = cast.framework;\n\n castContext().addEventListener(cf.CastContextEventType.CAST_STATE_CHANGED, (e) => {\n remoteInstances.forEach((r) => privateProps.get(r).onCastStateChanged?.(e));\n });\n\n castContext().addEventListener(cf.CastContextEventType.SESSION_STATE_CHANGED, (e) => {\n remoteInstances.forEach((r) => privateProps.get(r).onSessionStateChanged?.(e));\n });\n\n remoteInstances.forEach((r) => privateProps.get(r).init?.());\n }\n});\n\n\nlet remotePlaybackCallbackIdCount = 0;\n\n/**\n * Remote Playback shim for the Google cast SDK.\n * https://w3c.github.io/remote-playback/\n */\nexport class RemotePlayback extends EventTarget {\n #media;\n #isInit;\n #remotePlayer;\n #remoteListeners;\n #state = 'disconnected';\n #available = false;\n #callbacks = new Set();\n #callbackIds = new WeakMap();\n #onTextTrackChange = () => this.#updateRemoteTextTrack();\n\n constructor(media) {\n super();\n\n this.#media = media;\n\n remoteInstances.add(this);\n privateProps.set(this, {\n init: () => this.#init(),\n onCastStateChanged: () => this.#onCastStateChanged(),\n onSessionStateChanged: () => this.#onSessionStateChanged(),\n getCastPlayer: () => this.#castPlayer,\n });\n\n this.#init();\n }\n\n destroy() {\n this.#media?.textTracks?.removeEventListener('change', this.#onTextTrackChange);\n\n // Remove controller listeners if element is removed while casting\n // (in that case #disconnect() won't be called).\n if (this.#remoteListeners && this.#remotePlayer?.controller) {\n Object.entries(this.#remoteListeners).forEach(([event, listener]) => {\n this.#remotePlayer.controller.removeEventListener(event, listener);\n });\n }\n\n if (this.#media) castElementRef.delete(this.#media);\n this.#isInit = false;\n }\n\n get #castPlayer() {\n if (castElementRef.has(this.#media)) return this.#remotePlayer;\n return undefined;\n }\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/API/RemotePlayback/state\n * @return {'disconnected'|'connecting'|'connected'}\n */\n get state() {\n return this.#state;\n }\n\n async watchAvailability(callback) {\n if (this.#media.disableRemotePlayback) {\n throw new InvalidStateError('disableRemotePlayback attribute is present.');\n }\n\n this.#callbackIds.set(callback, ++remotePlaybackCallbackIdCount);\n this.#callbacks.add(callback);\n\n // https://w3c.github.io/remote-playback/#getting-the-remote-playback-devices-availability-information\n queueMicrotask(() => callback(this.#hasDevicesAvailable()));\n\n return remotePlaybackCallbackIdCount;\n }\n\n async cancelWatchAvailability(callback) {\n if (this.#media.disableRemotePlayback) {\n throw new InvalidStateError('disableRemotePlayback attribute is present.');\n }\n\n if (callback) {\n this.#callbacks.delete(callback);\n } else {\n this.#callbacks.clear();\n }\n }\n\n async prompt() {\n if (this.#media.disableRemotePlayback) {\n throw new InvalidStateError('disableRemotePlayback attribute is present.');\n }\n\n if (!globalThis.chrome?.cast?.isAvailable) {\n throw new NotSupportedError('The RemotePlayback API is disabled on this platform.');\n }\n\n const willDisconnect = castElementRef.has(this.#media);\n castElementRef.add(this.#media);\n\n setCastOptions(this.#media.castOptions);\n\n Object.entries(this.#remoteListeners).forEach(([event, listener]) => {\n this.#remotePlayer.controller.addEventListener(event, listener);\n });\n\n try {\n // Open browser cast menu.\n await castContext().requestSession();\n } catch (err) {\n // If there will be no disconnect, reset some state here.\n if (!willDisconnect) {\n castElementRef.delete(this.#media);\n }\n\n // Don't throw an error if disconnecting or cancelling.\n if (err === 'cancel') {\n return;\n }\n\n throw new Error(err);\n }\n\n privateProps.get(this.#media)?.loadOnPrompt?.();\n }\n\n #disconnect() {\n if (!castElementRef.has(this.#media)) return;\n\n Object.entries(this.#remoteListeners).forEach(([event, listener]) => {\n this.#remotePlayer.controller.removeEventListener(event, listener);\n });\n\n castElementRef.delete(this.#media);\n\n // isMuted is not in savedPlayerState. should we sync this back to local?\n this.#media.muted = this.#remotePlayer.isMuted;\n this.#media.currentTime = this.#remotePlayer.savedPlayerState.currentTime;\n if (this.#remotePlayer.savedPlayerState.isPaused === false) {\n this.#media.play();\n }\n }\n\n #hasDevicesAvailable() {\n // Cast state: NO_DEVICES_AVAILABLE, NOT_CONNECTED, CONNECTING, CONNECTED\n // https://developers.google.com/cast/docs/reference/web_sender/cast.framework#.CastState\n const castState = castContext()?.getCastState();\n return castState && castState !== 'NO_DEVICES_AVAILABLE';\n }\n\n #onCastStateChanged() {\n // Cast state: NO_DEVICES_AVAILABLE, NOT_CONNECTED, CONNECTING, CONNECTED\n // https://developers.google.com/cast/docs/reference/web_sender/cast.framework#.CastState\n const castState = castContext().getCastState();\n\n if (castElementRef.has(this.#media)) {\n if (castState === 'CONNECTING') {\n this.#state = 'connecting';\n this.dispatchEvent(new Event('connecting'));\n }\n }\n\n if (!this.#available && castState?.includes('CONNECT')) {\n this.#available = true;\n for (let callback of this.#callbacks) callback(true);\n }\n else if (this.#available && (!castState || castState === 'NO_DEVICES_AVAILABLE')) {\n this.#available = false;\n for (let callback of this.#callbacks) callback(false);\n }\n }\n\n async #onSessionStateChanged() {\n // Session states: NO_SESSION, SESSION_STARTING, SESSION_STARTED, SESSION_START_FAILED,\n // SESSION_ENDING, SESSION_ENDED, SESSION_RESUMED\n // https://developers.google.com/cast/docs/reference/web_sender/cast.framework#.SessionState\n\n const { SESSION_RESUMED } = cf.SessionState;\n if (castContext().getSessionState() === SESSION_RESUMED) {\n /**\n * Figure out if this was the video that started the resumed session.\n * @TODO make this more specific than just checking against the video src!! (WL)\n *\n * If this video element can get the same unique id on each browser refresh\n * it would be possible to pass this unique id w/ `LoadRequest.customData`\n * and verify against currentMedia().customData below.\n */\n if (this.#media.castSrc === currentMedia()?.media.contentId) {\n castElementRef.add(this.#media);\n\n Object.entries(this.#remoteListeners).forEach(([event, listener]) => {\n this.#remotePlayer.controller.addEventListener(event, listener);\n });\n\n /**\n * There is cast framework resume session bug when you refresh the page a few\n * times the this.#remotePlayer.currentTime will not be in sync with the receiver :(\n * The below status request syncs it back up.\n */\n try {\n await getMediaStatus(new chrome.cast.media.GetStatusRequest());\n } catch (error) {\n console.error(error);\n }\n\n // Dispatch the play, playing events manually to sync remote playing state.\n this.#remoteListeners[cf.RemotePlayerEventType.IS_PAUSED_CHANGED]();\n this.#remoteListeners[cf.RemotePlayerEventType.PLAYER_STATE_CHANGED]();\n }\n }\n }\n\n #init() {\n if (!cf || this.#isInit) return;\n this.#isInit = true;\n\n setCastOptions(this.#media.castOptions);\n\n /**\n * @TODO add listeners for addtrack, removetrack (WL)\n * This only has an impact on <track> with a `src` because these have to be\n * loaded manually in the load() method. This will require a new load() call\n * for each added/removed track w/ src.\n */\n this.#media.textTracks.addEventListener('change', this.#onTextTrackChange);\n\n this.#onCastStateChanged();\n\n this.#remotePlayer = new cf.RemotePlayer();\n new cf.RemotePlayerController(this.#remotePlayer);\n\n this.#remoteListeners = {\n [cf.RemotePlayerEventType.IS_CONNECTED_CHANGED]: ({ value }) => {\n if (value === true) {\n this.#state = 'connected';\n this.dispatchEvent(new Event('connect'));\n } else {\n this.#disconnect();\n this.#state = 'disconnected';\n this.dispatchEvent(new Event('disconnect'));\n }\n },\n [cf.RemotePlayerEventType.DURATION_CHANGED]: () => {\n this.#media.dispatchEvent(new Event('durationchange'));\n },\n [cf.RemotePlayerEventType.VOLUME_LEVEL_CHANGED]: () => {\n this.#media.dispatchEvent(new Event('volumechange'));\n },\n [cf.RemotePlayerEventType.IS_MUTED_CHANGED]: () => {\n this.#media.dispatchEvent(new Event('volumechange'));\n },\n [cf.RemotePlayerEventType.CURRENT_TIME_CHANGED]: () => {\n if (!this.#castPlayer?.isMediaLoaded) return;\n this.#media.dispatchEvent(new Event('timeupdate'));\n },\n [cf.RemotePlayerEventType.VIDEO_INFO_CHANGED]: () => {\n this.#media.dispatchEvent(new Event('resize'));\n },\n [cf.RemotePlayerEventType.IS_PAUSED_CHANGED]: () => {\n this.#media.dispatchEvent(new Event(this.paused ? 'pause' : 'play'));\n },\n [cf.RemotePlayerEventType.PLAYER_STATE_CHANGED]: () => {\n // Player states: IDLE, PLAYING, PAUSED, BUFFERING\n // https://developers.google.com/cast/docs/reference/web_sender/chrome.cast.media#.PlayerState\n\n // pause event is handled above.\n if (this.#castPlayer?.playerState === chrome.cast.media.PlayerState.PAUSED) {\n return;\n }\n\n this.#media.dispatchEvent(\n new Event(\n {\n [chrome.cast.media.PlayerState.PLAYING]: 'playing',\n [chrome.cast.media.PlayerState.BUFFERING]: 'waiting',\n [chrome.cast.media.PlayerState.IDLE]: 'emptied',\n }[this.#castPlayer?.playerState]\n )\n );\n },\n [cf.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED]: async () => {\n if (!this.#castPlayer?.isMediaLoaded) return;\n\n // mediaInfo is not immediately available due to a bug? wait one tick\n await Promise.resolve();\n this.#onRemoteMediaLoaded();\n },\n };\n }\n\n #onRemoteMediaLoaded() {\n this.#updateRemoteTextTrack();\n }\n\n async #updateRemoteTextTrack() {\n if (!this.#castPlayer) return;\n\n // Get the tracks w/ trackId's that have been loaded; manually or via a playlist like a M3U8 or MPD.\n const remoteTracks = this.#remotePlayer.mediaInfo?.tracks ?? [];\n const remoteSubtitles = remoteTracks.filter(\n ({ type }) => type === chrome.cast.media.TrackType.TEXT\n );\n\n const localSubtitles = [...this.#media.textTracks].filter(\n ({ kind }) => kind === 'subtitles' || kind === 'captions'\n );\n\n // Create a new array from the local subs w/ the trackId's from the remote subs.\n const subtitles = remoteSubtitles\n .map(({ language, name, trackId }) => {\n // Find the corresponding local text track and assign the trackId.\n const { mode } =\n localSubtitles.find(\n (local) => local.language === language && local.label === name\n ) ?? {};\n if (mode) return { mode, trackId };\n return false;\n })\n .filter(Boolean);\n\n const hiddenSubtitles = subtitles.filter(\n ({ mode }) => mode !== 'showing'\n );\n const hiddenTrackIds = hiddenSubtitles.map(({ trackId }) => trackId);\n const showingSubtitle = subtitles.find(({ mode }) => mode === 'showing');\n\n // Note this could also include audio or video tracks, diff against local state.\n const activeTrackIds =\n currentSession()?.getSessionObj().media[0]\n ?.activeTrackIds ?? [];\n let requestTrackIds = activeTrackIds;\n\n if (activeTrackIds.length) {\n // Filter out all local hidden subtitle trackId's.\n requestTrackIds = requestTrackIds.filter(\n (id) => !hiddenTrackIds.includes(id)\n );\n }\n\n if (showingSubtitle?.trackId) {\n requestTrackIds = [...requestTrackIds, showingSubtitle.trackId];\n }\n\n // Remove duplicate ids.\n requestTrackIds = [...new Set(requestTrackIds)];\n\n const arrayEquals = (a, b) =>\n a.length === b.length && a.every((a) => b.includes(a));\n if (!arrayEquals(activeTrackIds, requestTrackIds)) {\n try {\n const request = new chrome.cast.media.EditTracksInfoRequest(\n requestTrackIds\n );\n await editTracksInfo(request);\n } catch (error) {\n console.error(error);\n }\n }\n }\n}\n","/* global chrome */\nimport { RemotePlayback } from './castable-remote-playback.js';\nimport {\n privateProps,\n requiresCastFramework,\n loadCastFramework,\n currentSession,\n getDefaultCastOptions,\n isHls,\n getPlaylistSegmentFormat\n} from './castable-utils.js';\n\n/**\n * CastableMediaMixin\n *\n * This mixin function provides a way to compose multiple classes.\n * @see https://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/\n *\n * @param {HTMLMediaElement} superclass - HTMLMediaElement or an extended class of it.\n * @return {CastableMedia}\n */\nexport const CastableMediaMixin = (superclass) =>\n class CastableMedia extends superclass {\n\n static observedAttributes = [\n ...(superclass.observedAttributes ?? []),\n 'cast-src',\n 'cast-content-type',\n 'cast-stream-type',\n 'cast-receiver',\n ];\n\n #localState = { paused: false };\n #castOptions = getDefaultCastOptions();\n #castCustomData;\n #remote;\n\n get remote() {\n if (this.#remote) return this.#remote;\n\n if (requiresCastFramework()) {\n // Don't create a new RemotePlayback when the element is disconnected.\n // super.disconnectedCallback() may trigger property access that reaches\n // this getter, which would re-create a RemotePlayback after cleanup.\n if (!this.isConnected) return undefined;\n\n // No need to load the Cast framework if it's disabled.\n if (!this.disableRemotePlayback) {\n loadCastFramework();\n }\n\n privateProps.set(this, {\n loadOnPrompt: () => this.#loadOnPrompt()\n });\n\n return (this.#remote = new RemotePlayback(this));\n }\n\n return super.remote;\n }\n\n get #castPlayer() {\n return privateProps.get(this.remote)?.getCastPlayer?.();\n }\n\n disconnectedCallback() {\n this.#remote?.destroy();\n this.#remote = null;\n privateProps.delete(this);\n super.disconnectedCallback?.();\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n\n if (attrName === 'cast-receiver' && newValue) {\n this.#castOptions.receiverApplicationId = newValue;\n return;\n }\n\n if (!this.#castPlayer) return;\n\n switch (attrName) {\n case 'cast-stream-type':\n case 'cast-src':\n this.load();\n break;\n }\n }\n\n async #loadOnPrompt() {\n // Pause locally when the session is created.\n this.#localState.paused = super.paused;\n super.pause();\n\n // Sync over the muted state but not volume, 100% is different on TV's :P\n this.muted = super.muted;\n\n try {\n await this.load();\n } catch (err) {\n console.error(err);\n }\n }\n\n async load() {\n if (!this.#castPlayer) return super.load();\n\n const mediaInfo = new chrome.cast.media.MediaInfo(this.castSrc, this.castContentType);\n mediaInfo.customData = this.castCustomData;\n\n // Manually add text tracks with a `src` attribute.\n // M3U8's load text tracks in the receiver, handle these in the media loaded event.\n const subtitles = [...this.querySelectorAll('track')].filter(\n ({ kind, src }) => src && (kind === 'subtitles' || kind === 'captions')\n );\n\n const activeTrackIds = [];\n let textTrackIdCount = 0;\n\n if (subtitles.length) {\n mediaInfo.tracks = subtitles.map((trackEl) => {\n const trackId = ++textTrackIdCount;\n // only activate 1 subtitle text track.\n if (activeTrackIds.length === 0 && trackEl.track.mode === 'showing') {\n activeTrackIds.push(trackId);\n }\n\n const track = new chrome.cast.media.Track(\n trackId,\n chrome.cast.media.TrackType.TEXT\n );\n track.trackContentId = trackEl.src;\n track.trackContentType = 'text/vtt';\n track.subtype =\n trackEl.kind === 'captions'\n ? chrome.cast.media.TextTrackType.CAPTIONS\n : chrome.cast.media.TextTrackType.SUBTITLES;\n track.name = trackEl.label;\n track.language = trackEl.srclang;\n return track;\n });\n }\n\n if (this.castStreamType === 'live') {\n mediaInfo.streamType = chrome.cast.media.StreamType.LIVE;\n } else {\n mediaInfo.streamType = chrome.cast.media.StreamType.BUFFERED;\n }\n\n mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();\n mediaInfo.metadata.title = this.title;\n mediaInfo.metadata.images = [{ url: this.poster }];\n\n if (isHls(this.castSrc)) {\n const segmentFormat = await getPlaylistSegmentFormat(this.castSrc);\n const isFragmentedMP4 = segmentFormat?.includes('m4s') || segmentFormat?.includes('mp4');\n if (isFragmentedMP4) {\n mediaInfo.hlsSegmentFormat = chrome.cast.media.HlsSegmentFormat.FMP4;\n mediaInfo.hlsVideoSegmentFormat = chrome.cast.media.HlsVideoSegmentFormat.FMP4;\n } else if (segmentFormat?.includes('ts')) {\n mediaInfo.hlsSegmentFormat = chrome.cast.media.HlsSegmentFormat.TS;\n mediaInfo.hlsVideoSegmentFormat = chrome.cast.media.HlsVideoSegmentFormat.TS;\n }\n }\n\n const request = new chrome.cast.media.LoadRequest(mediaInfo);\n request.currentTime = super.currentTime ?? 0;\n request.autoplay = !this.#localState.paused;\n request.activeTrackIds = activeTrackIds;\n\n await currentSession()?.loadMedia(request);\n\n this.dispatchEvent(new Event('volumechange'));\n }\n\n play() {\n if (this.#castPlayer) {\n if (this.#castPlayer.isPaused) {\n this.#castPlayer.controller?.playOrPause();\n }\n return;\n }\n return super.play();\n }\n\n pause() {\n if (this.#castPlayer) {\n if (!this.#castPlayer.isPaused) {\n this.#castPlayer.controller?.playOrPause();\n }\n return;\n }\n super.pause();\n }\n\n /**\n * @see https://developers.google.com/cast/docs/reference/web_sender/cast.framework.CastOptions\n * @readonly\n *\n * @typedef {Object} CastOptions\n * @property {string} [receiverApplicationId='CC1AD845'] - The app id of the cast receiver.\n * @property {string} [autoJoinPolicy='origin_scoped'] - The auto join policy.\n * @property {string} [language='en-US'] - The language to use for the cast receiver.\n * @property {boolean} [androidReceiverCompatible=false] - Whether to use the Cast Connect.\n * @property {boolean} [resumeSavedSession=true] - Whether to resume the last session.\n *\n * @return {CastOptions}\n */\n get castOptions() {\n return this.#castOptions;\n }\n\n get castReceiver() {\n return this.getAttribute('cast-receiver') ?? undefined;\n }\n\n set castReceiver(val) {\n if (this.castReceiver == val) return;\n this.setAttribute('cast-receiver', `${val}`);\n }\n\n // Allow the cast source url to be different than <video src>, could be a blob.\n get castSrc() {\n // Try the first <source src> for usage with even more native markup.\n return (\n this.getAttribute('cast-src') ??\n this.querySelector('source')?.src ??\n this.currentSrc\n );\n }\n\n set castSrc(val) {\n if (this.castSrc == val) return;\n this.setAttribute('cast-src', `${val}`);\n }\n\n get castContentType() {\n return this.getAttribute('cast-content-type') ?? undefined;\n }\n\n set castContentType(val) {\n this.setAttribute('cast-content-type', `${val}`);\n }\n\n get castStreamType() {\n // NOTE: Per https://github.com/video-dev/media-ui-extensions/issues/3 `streamType` may yield `\"unknown\"`\n return this.getAttribute('cast-stream-type') ?? this.streamType ?? undefined;\n }\n\n set castStreamType(val) {\n this.setAttribute('cast-stream-type', `${val}`);\n }\n\n get castCustomData() {\n return this.#castCustomData;\n }\n\n set castCustomData(val) {\n const valType = typeof val;\n if (!['object', 'undefined'].includes(valType)) {\n console.error(`castCustomData must be nullish or an object but value was of type ${valType}`);\n return;\n }\n\n this.#castCustomData = val;\n }\n\n get readyState() {\n if (this.#castPlayer) {\n switch (this.#castPlayer.playerState) {\n case chrome.cast.media.PlayerState.IDLE:\n return 0;\n case chrome.cast.media.PlayerState.BUFFERING:\n return 2;\n default:\n return 3;\n }\n }\n return super.readyState;\n }\n\n get paused() {\n if (this.#castPlayer) return this.#castPlayer.isPaused;\n return super.paused;\n }\n\n get muted() {\n if (this.#castPlayer) return this.#castPlayer?.isMuted;\n return super.muted;\n }\n\n set muted(val) {\n if (this.#castPlayer) {\n if (\n (val && !this.#castPlayer.isMuted) ||\n (!val && this.#castPlayer.isMuted)\n ) {\n this.#castPlayer.controller?.muteOrUnmute();\n }\n return;\n }\n super.muted = val;\n }\n\n get volume() {\n if (this.#castPlayer) return this.#castPlayer?.volumeLevel ?? 1;\n return super.volume;\n }\n\n set volume(val) {\n if (this.#castPlayer) {\n this.#castPlayer.volumeLevel = +val;\n this.#castPlayer.controller?.setVolumeLevel();\n return;\n }\n super.volume = val;\n }\n\n get duration() {\n // castPlayer duration returns `0` when no media is loaded.\n if (this.#castPlayer && this.#castPlayer?.isMediaLoaded) {\n return this.#castPlayer?.duration ?? NaN;\n }\n return super.duration;\n }\n\n get currentTime() {\n if (this.#castPlayer && this.#castPlayer?.isMediaLoaded) {\n return this.#castPlayer?.currentTime ?? 0;\n }\n return super.currentTime;\n }\n\n set currentTime(val) {\n if (this.#castPlayer) {\n this.#castPlayer.currentTime = val;\n this.#castPlayer.controller?.seek();\n return;\n }\n super.currentTime = val;\n }\n };\n\nexport const CastableVideoMixin = CastableMediaMixin;\n","var f=e=>{throw TypeError(e)};var g=(e,o,t)=>o.has(e)||f(\"Cannot \"+t);var u=(e,o,t)=>(g(e,o,\"read from private field\"),t?t.call(e):o.get(e)),m=(e,o,t)=>o.has(e)?f(\"Cannot add the same private member more than once\"):o instanceof WeakSet?o.add(e):o.set(e,t),d=(e,o,t,l)=>(g(e,o,\"write to private field\"),l?l.call(e,t):o.set(e,t),t);var s=class{addEventListener(){}removeEventListener(){}dispatchEvent(o){return!0}};if(typeof DocumentFragment==\"undefined\"){class e extends s{}globalThis.DocumentFragment=e}var n=class extends s{},p=class extends s{},x={get(e){},define(e,o,t){},getName(e){return null},upgrade(e){},whenDefined(e){return Promise.resolve(n)}},a,h=class{constructor(o,t={}){m(this,a);d(this,a,t==null?void 0:t.detail)}get detail(){return u(this,a)}initCustomEvent(){}};a=new WeakMap;function C(e,o){return new n}var y={document:{createElement:C},DocumentFragment,customElements:x,CustomEvent:h,EventTarget:s,HTMLElement:n,HTMLVideoElement:p},b=typeof window==\"undefined\"||typeof globalThis.customElements==\"undefined\",c=b?y:globalThis,k=b?y.document:globalThis.document;import{MuxVideoBaseElement as T}from\"@mux/mux-video/base\";import{CastableMediaMixin as E}from\"castable-video/castable-mixin.js\";import{MediaTracksMixin as D}from\"media-tracks\";export*from\"@mux/mux-video/base\";var r,i=class extends E(D(T)){constructor(){super(...arguments);m(this,r)}get autoplay(){let t=this.getAttribute(\"autoplay\");return t===null?!1:t===\"\"?!0:t}set autoplay(t){let l=this.autoplay;t!==l&&(t?this.setAttribute(\"autoplay\",typeof t==\"string\"?t:\"\"):this.removeAttribute(\"autoplay\"))}get muxCastCustomData(){return{mux:{playbackId:this.playbackId,minResolution:this.minResolution,maxResolution:this.maxResolution,renditionOrder:this.renditionOrder,customDomain:this.customDomain,tokens:{drm:this.drmToken},envKey:this.envKey,metadata:this.metadata,disableCookies:this.disableCookies,disableTracking:this.disableTracking,beaconCollectionDomain:this.beaconCollectionDomain,startTime:this.startTime,preferCmcd:this.preferCmcd}}}get castCustomData(){var t;return(t=u(this,r))!=null?t:this.muxCastCustomData}set castCustomData(t){d(this,r,t)}};r=new WeakMap;c.customElements.get(\"mux-video\")||(c.customElements.define(\"mux-video\",i),c.MuxVideoElement=i);var F=i;export{F as default};\n//# sourceMappingURL=index.mjs.map\n","const MediaUIEvents = {\n MEDIA_PLAY_REQUEST: \"mediaplayrequest\",\n MEDIA_PAUSE_REQUEST: \"mediapauserequest\",\n MEDIA_MUTE_REQUEST: \"mediamuterequest\",\n MEDIA_UNMUTE_REQUEST: \"mediaunmuterequest\",\n MEDIA_LOOP_REQUEST: \"medialooprequest\",\n MEDIA_VOLUME_REQUEST: \"mediavolumerequest\",\n MEDIA_SEEK_REQUEST: \"mediaseekrequest\",\n MEDIA_AIRPLAY_REQUEST: \"mediaairplayrequest\",\n MEDIA_ENTER_FULLSCREEN_REQUEST: \"mediaenterfullscreenrequest\",\n MEDIA_EXIT_FULLSCREEN_REQUEST: \"mediaexitfullscreenrequest\",\n MEDIA_PREVIEW_REQUEST: \"mediapreviewrequest\",\n MEDIA_ENTER_PIP_REQUEST: \"mediaenterpiprequest\",\n MEDIA_EXIT_PIP_REQUEST: \"mediaexitpiprequest\",\n MEDIA_ENTER_CAST_REQUEST: \"mediaentercastrequest\",\n MEDIA_EXIT_CAST_REQUEST: \"mediaexitcastrequest\",\n MEDIA_SHOW_TEXT_TRACKS_REQUEST: \"mediashowtexttracksrequest\",\n MEDIA_HIDE_TEXT_TRACKS_REQUEST: \"mediahidetexttracksrequest\",\n MEDIA_SHOW_SUBTITLES_REQUEST: \"mediashowsubtitlesrequest\",\n MEDIA_DISABLE_SUBTITLES_REQUEST: \"mediadisablesubtitlesrequest\",\n MEDIA_TOGGLE_SUBTITLES_REQUEST: \"mediatogglesubtitlesrequest\",\n MEDIA_PLAYBACK_RATE_REQUEST: \"mediaplaybackraterequest\",\n MEDIA_RENDITION_REQUEST: \"mediarenditionrequest\",\n MEDIA_AUDIO_TRACK_REQUEST: \"mediaaudiotrackrequest\",\n MEDIA_SEEK_TO_LIVE_REQUEST: \"mediaseektoliverequest\",\n REGISTER_MEDIA_STATE_RECEIVER: \"registermediastatereceiver\",\n UNREGISTER_MEDIA_STATE_RECEIVER: \"unregistermediastatereceiver\"\n};\nconst MediaStateReceiverAttributes = {\n MEDIA_CHROME_ATTRIBUTES: \"mediachromeattributes\",\n MEDIA_CONTROLLER: \"mediacontroller\"\n};\nconst MediaUIProps = {\n MEDIA_AIRPLAY_UNAVAILABLE: \"mediaAirplayUnavailable\",\n MEDIA_AUDIO_TRACK_ENABLED: \"mediaAudioTrackEnabled\",\n MEDIA_AUDIO_TRACK_LIST: \"mediaAudioTrackList\",\n MEDIA_AUDIO_TRACK_UNAVAILABLE: \"mediaAudioTrackUnavailable\",\n MEDIA_BUFFERED: \"mediaBuffered\",\n MEDIA_CAST_UNAVAILABLE: \"mediaCastUnavailable\",\n MEDIA_CHAPTERS_CUES: \"mediaChaptersCues\",\n MEDIA_CURRENT_TIME: \"mediaCurrentTime\",\n MEDIA_DURATION: \"mediaDuration\",\n MEDIA_ENDED: \"mediaEnded\",\n MEDIA_ERROR: \"mediaError\",\n MEDIA_ERROR_CODE: \"mediaErrorCode\",\n MEDIA_ERROR_MESSAGE: \"mediaErrorMessage\",\n MEDIA_FULLSCREEN_UNAVAILABLE: \"mediaFullscreenUnavailable\",\n MEDIA_HAS_PLAYED: \"mediaHasPlayed\",\n MEDIA_HEIGHT: \"mediaHeight\",\n MEDIA_IS_AIRPLAYING: \"mediaIsAirplaying\",\n MEDIA_IS_CASTING: \"mediaIsCasting\",\n MEDIA_IS_FULLSCREEN: \"mediaIsFullscreen\",\n MEDIA_IS_PIP: \"mediaIsPip\",\n MEDIA_LOADING: \"mediaLoading\",\n MEDIA_MUTED: \"mediaMuted\",\n MEDIA_LOOP: \"mediaLoop\",\n MEDIA_PAUSED: \"mediaPaused\",\n MEDIA_PIP_UNAVAILABLE: \"mediaPipUnavailable\",\n MEDIA_PLAYBACK_RATE: \"mediaPlaybackRate\",\n MEDIA_PREVIEW_CHAPTER: \"mediaPreviewChapter\",\n MEDIA_PREVIEW_COORDS: \"mediaPreviewCoords\",\n MEDIA_PREVIEW_IMAGE: \"mediaPreviewImage\",\n MEDIA_PREVIEW_TIME: \"mediaPreviewTime\",\n MEDIA_RENDITION_LIST: \"mediaRenditionList\",\n MEDIA_RENDITION_SELECTED: \"mediaRenditionSelected\",\n MEDIA_RENDITION_UNAVAILABLE: \"mediaRenditionUnavailable\",\n MEDIA_SEEKABLE: \"mediaSeekable\",\n MEDIA_STREAM_TYPE: \"mediaStreamType\",\n MEDIA_SUBTITLES_LIST: \"mediaSubtitlesList\",\n MEDIA_SUBTITLES_SHOWING: \"mediaSubtitlesShowing\",\n MEDIA_TARGET_LIVE_WINDOW: \"mediaTargetLiveWindow\",\n MEDIA_TIME_IS_LIVE: \"mediaTimeIsLive\",\n MEDIA_VOLUME: \"mediaVolume\",\n MEDIA_VOLUME_LEVEL: \"mediaVolumeLevel\",\n MEDIA_VOLUME_UNAVAILABLE: \"mediaVolumeUnavailable\",\n MEDIA_LANG: \"mediaLang\",\n MEDIA_WIDTH: \"mediaWidth\"\n};\nconst MediaUIPropsEntries = Object.entries(\n MediaUIProps\n);\nconst MediaUIAttributes = MediaUIPropsEntries.reduce(\n (dictObj, [key, propName]) => {\n dictObj[key] = propName.toLowerCase();\n return dictObj;\n },\n {}\n);\nconst AdditionalStateChangeEvents = {\n USER_INACTIVE_CHANGE: \"userinactivechange\",\n BREAKPOINTS_CHANGE: \"breakpointchange\",\n BREAKPOINTS_COMPUTED: \"breakpointscomputed\"\n};\nconst MediaStateChangeEvents = MediaUIPropsEntries.reduce(\n (dictObj, [key, propName]) => {\n dictObj[key] = propName.toLowerCase();\n return dictObj;\n },\n { ...AdditionalStateChangeEvents }\n);\nconst StateChangeEventToAttributeMap = Object.entries(\n MediaStateChangeEvents\n).reduce(\n (mapObj, [key, eventType]) => {\n const attrName = MediaUIAttributes[key];\n if (attrName) {\n mapObj[eventType] = attrName;\n }\n return mapObj;\n },\n { userinactivechange: \"userinactive\" }\n);\nconst AttributeToStateChangeEventMap = Object.entries(\n MediaUIAttributes\n).reduce(\n (mapObj, [key, attrName]) => {\n const evtType = MediaStateChangeEvents[key];\n if (evtType) {\n mapObj[attrName] = evtType;\n }\n return mapObj;\n },\n { userinactive: \"userinactivechange\" }\n);\nconst TextTrackKinds = {\n SUBTITLES: \"subtitles\",\n CAPTIONS: \"captions\",\n DESCRIPTIONS: \"descriptions\",\n CHAPTERS: \"chapters\",\n METADATA: \"metadata\"\n};\nconst TextTrackModes = {\n DISABLED: \"disabled\",\n HIDDEN: \"hidden\",\n SHOWING: \"showing\"\n};\nconst ReadyStates = {\n HAVE_NOTHING: 0,\n HAVE_METADATA: 1,\n HAVE_CURRENT_DATA: 2,\n HAVE_FUTURE_DATA: 3,\n HAVE_ENOUGH_DATA: 4\n};\nconst PointerTypes = {\n MOUSE: \"mouse\",\n PEN: \"pen\",\n TOUCH: \"touch\"\n};\nconst AvailabilityStates = {\n UNAVAILABLE: \"unavailable\",\n UNSUPPORTED: \"unsupported\"\n};\nconst StreamTypes = {\n LIVE: \"live\",\n ON_DEMAND: \"on-demand\",\n UNKNOWN: \"unknown\"\n};\nconst VolumeLevels = {\n HIGH: \"high\",\n MEDIUM: \"medium\",\n LOW: \"low\",\n OFF: \"off\"\n};\nconst WebkitPresentationModes = {\n INLINE: \"inline\",\n FULLSCREEN: \"fullscreen\",\n PICTURE_IN_PICTURE: \"picture-in-picture\"\n};\nexport {\n AttributeToStateChangeEventMap,\n AvailabilityStates,\n MediaStateChangeEvents,\n MediaStateReceiverAttributes,\n MediaUIAttributes,\n MediaUIEvents,\n MediaUIProps,\n PointerTypes,\n ReadyStates,\n StateChangeEventToAttributeMap,\n StreamTypes,\n TextTrackKinds,\n TextTrackModes,\n VolumeLevels,\n WebkitPresentationModes\n};\n","function stringifyRenditionList(renditions) {\n return renditions == null ? void 0 : renditions.map(stringifyRendition).join(\" \");\n}\nfunction parseRenditionList(renditions) {\n return renditions == null ? void 0 : renditions.split(/\\s+/).map(parseRendition);\n}\nfunction stringifyRendition(rendition) {\n if (rendition) {\n const { id, width, height } = rendition;\n return [id, width, height].filter((a) => a != null).join(\":\");\n }\n}\nfunction parseRendition(rendition) {\n if (rendition) {\n const [id, width, height] = rendition.split(\":\");\n return { id, width: +width, height: +height };\n }\n}\nfunction stringifyAudioTrackList(audioTracks) {\n return audioTracks == null ? void 0 : audioTracks.map(stringifyAudioTrack).join(\" \");\n}\nfunction parseAudioTrackList(audioTracks) {\n return audioTracks == null ? void 0 : audioTracks.split(/\\s+/).map(parseAudioTrack);\n}\nfunction stringifyAudioTrack(audioTrack) {\n if (audioTrack) {\n const { id, kind, language, label } = audioTrack;\n return [id, kind, language, label].filter((a) => a != null).join(\":\");\n }\n}\nfunction parseAudioTrack(audioTrack) {\n if (audioTrack) {\n const [id, kind, language, label] = audioTrack.split(\":\");\n return {\n id,\n kind,\n language,\n label\n };\n }\n}\nfunction dashedToCamel(word) {\n return word.split(\"-\").map(function(x, i) {\n return (i ? x[0].toUpperCase() : x[0].toLowerCase()) + x.slice(1).toLowerCase();\n }).join(\"\");\n}\nfunction constToCamel(word, upperFirst = false) {\n return word.split(\"_\").map(function(x, i) {\n return (i || upperFirst ? x[0].toUpperCase() : x[0].toLowerCase()) + x.slice(1).toLowerCase();\n }).join(\"\");\n}\nfunction camelCase(name) {\n return name.replace(/[-_]([a-z])/g, ($0, $1) => $1.toUpperCase());\n}\nfunction isValidNumber(x) {\n return typeof x === \"number\" && !Number.isNaN(x) && Number.isFinite(x);\n}\nfunction isNumericString(str) {\n if (typeof str != \"string\")\n return false;\n return !isNaN(str) && !isNaN(parseFloat(str));\n}\nconst delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\nconst capitalize = (str) => str && str[0].toUpperCase() + str.slice(1);\nexport {\n camelCase,\n capitalize,\n constToCamel,\n dashedToCamel,\n delay,\n isNumericString,\n isValidNumber,\n parseAudioTrack,\n parseAudioTrackList,\n parseRendition,\n parseRenditionList,\n stringifyAudioTrack,\n stringifyAudioTrackList,\n stringifyRendition,\n stringifyRenditionList\n};\n","const En = {\n \"Start airplay\": \"Start airplay\",\n \"Stop airplay\": \"Stop airplay\",\n Audio: \"Audio\",\n Captions: \"Captions\",\n \"Enable captions\": \"Enable captions\",\n \"Disable captions\": \"Disable captions\",\n \"Start casting\": \"Start casting\",\n \"Stop casting\": \"Stop casting\",\n \"Enter fullscreen mode\": \"Enter fullscreen mode\",\n \"Exit fullscreen mode\": \"Exit fullscreen mode\",\n Mute: \"Mute\",\n Unmute: \"Unmute\",\n Loop: \"Loop\",\n \"Enter picture in picture mode\": \"Enter picture in picture mode\",\n \"Exit picture in picture mode\": \"Exit picture in picture mode\",\n Play: \"Play\",\n Pause: \"Pause\",\n \"Playback rate\": \"Playback rate\",\n \"Playback rate {playbackRate}\": \"Playback rate {playbackRate}\",\n Quality: \"Quality\",\n \"Seek backward\": \"Seek backward\",\n \"Seek forward\": \"Seek forward\",\n Settings: \"Settings\",\n Auto: \"Auto\",\n \"audio player\": \"audio player\",\n \"video player\": \"video player\",\n volume: \"volume\",\n seek: \"seek\",\n \"closed captions\": \"closed captions\",\n \"current playback rate\": \"current playback rate\",\n \"playback time\": \"playback time\",\n \"media loading\": \"media loading\",\n settings: \"settings\",\n \"audio tracks\": \"audio tracks\",\n quality: \"quality\",\n play: \"play\",\n pause: \"pause\",\n mute: \"mute\",\n unmute: \"unmute\",\n \"chapter: {chapterName}\": \"chapter: {chapterName}\",\n live: \"live\",\n Off: \"Off\",\n \"start airplay\": \"start airplay\",\n \"stop airplay\": \"stop airplay\",\n \"start casting\": \"start casting\",\n \"stop casting\": \"stop casting\",\n \"enter fullscreen mode\": \"enter fullscreen mode\",\n \"exit fullscreen mode\": \"exit fullscreen mode\",\n \"enter picture in picture mode\": \"enter picture in picture mode\",\n \"exit picture in picture mode\": \"exit picture in picture mode\",\n \"seek to live\": \"seek to live\",\n \"playing live\": \"playing live\",\n \"seek back {seekOffset} seconds\": \"seek back {seekOffset} seconds\",\n \"seek forward {seekOffset} seconds\": \"seek forward {seekOffset} seconds\",\n \"Network Error\": \"Network Error\",\n \"Decode Error\": \"Decode Error\",\n \"Source Not Supported\": \"Source Not Supported\",\n \"Encryption Error\": \"Encryption Error\",\n \"A network error caused the media download to fail.\": \"A network error caused the media download to fail.\",\n \"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.\": \"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.\",\n \"An unsupported error occurred. The server or network failed, or your browser does not support this format.\": \"An unsupported error occurred. The server or network failed, or your browser does not support this format.\",\n \"The media is encrypted and there are no keys to decrypt it.\": \"The media is encrypted and there are no keys to decrypt it.\",\n hour: \"hour\",\n hours: \"hours\",\n minute: \"minute\",\n minutes: \"minutes\",\n second: \"second\",\n seconds: \"seconds\",\n \"{time} remaining\": \"{time} remaining\",\n \"{currentTime} of {totalTime}\": \"{currentTime} of {totalTime}\",\n \"video not loaded, unknown time.\": \"video not loaded, unknown time.\"\n};\nexport {\n En\n};\n","var _a;\nimport { En } from \"../lang/en.js\";\nconst translations = {\n en: En\n};\nlet currentLang = ((_a = globalThis.navigator) == null ? void 0 : _a.language) || \"en\";\nconst setLanguage = (langCode) => {\n currentLang = langCode;\n};\nconst addTranslation = (lang, languageDictionary) => {\n translations[lang] = languageDictionary;\n};\nconst resolveTranslation = (key) => {\n var _a2, _b, _c;\n const [base] = currentLang.split(\"-\");\n return ((_a2 = translations[currentLang]) == null ? void 0 : _a2[key]) || ((_b = translations[base]) == null ? void 0 : _b[key]) || ((_c = translations.en) == null ? void 0 : _c[key]) || key;\n};\nconst t = (key, vars = {}) => resolveTranslation(key).replace(\n /\\{(\\w+)\\}/g,\n (_, v) => v in vars ? String(vars[v]) : `{${v}}`\n);\nexport {\n addTranslation,\n setLanguage,\n t\n};\n","import { isValidNumber } from \"./utils.js\";\nimport { t } from \"./i18n.js\";\nconst UnitLabels = [\n {\n singular: \"hour\",\n plural: \"hours\"\n },\n {\n singular: \"minute\",\n plural: \"minutes\"\n },\n {\n singular: \"second\",\n plural: \"seconds\"\n }\n];\nconst toTimeUnitPhrase = (timeUnitValue, unitIndex) => {\n const unitLabel = timeUnitValue === 1 ? t(UnitLabels[unitIndex].singular) : t(UnitLabels[unitIndex].plural);\n return `${timeUnitValue} ${unitLabel}`;\n};\nconst formatAsTimePhrase = (seconds) => {\n if (!isValidNumber(seconds))\n return \"\";\n const positiveSeconds = Math.abs(seconds);\n const negative = positiveSeconds !== seconds;\n const secondsDateTime = new Date(0, 0, 0, 0, 0, positiveSeconds, 0);\n const timeParts = [\n secondsDateTime.getHours(),\n secondsDateTime.getMinutes(),\n secondsDateTime.getSeconds()\n ];\n const timeString = timeParts.map(\n (timeUnitValue, index) => timeUnitValue && toTimeUnitPhrase(timeUnitValue, index)\n ).filter((x) => x).join(\", \");\n if (negative) {\n return t(\"{time} remaining\", { time: timeString });\n }\n return timeString;\n};\nfunction formatTime(seconds, guide) {\n let negative = false;\n if (seconds < 0) {\n negative = true;\n seconds = 0 - seconds;\n }\n seconds = seconds < 0 ? 0 : seconds;\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n if (isNaN(seconds) || seconds === Infinity) {\n h = m = s = \"0\";\n }\n h = h > 0 || gh > 0 ? h + \":\" : \"\";\n m = ((h || gm >= 10) && m < 10 ? \"0\" + m : m) + \":\";\n s = s < 10 ? \"0\" + s : s;\n return (negative ? \"-\" : \"\") + h + m + s;\n}\nconst emptyTimeRanges = Object.freeze({\n length: 0,\n start(index) {\n const unsignedIdx = index >>> 0;\n if (unsignedIdx >= this.length) {\n throw new DOMException(\n `Failed to execute 'start' on 'TimeRanges': The index provided (${unsignedIdx}) is greater than or equal to the maximum bound (${this.length}).`\n );\n }\n return 0;\n },\n end(index) {\n const unsignedIdx = index >>> 0;\n if (unsignedIdx >= this.length) {\n throw new DOMException(\n `Failed to execute 'end' on 'TimeRanges': The index provided (${unsignedIdx}) is greater than or equal to the maximum bound (${this.length}).`\n );\n }\n return 0;\n }\n});\nfunction serializeTimeRanges(timeRanges = emptyTimeRanges) {\n return Array.from(timeRanges).map(\n (_, i) => [\n Number(timeRanges.start(i).toFixed(3)),\n Number(timeRanges.end(i).toFixed(3))\n ].join(\":\")\n ).join(\" \");\n}\nexport {\n emptyTimeRanges,\n formatAsTimePhrase,\n formatTime,\n serializeTimeRanges\n};\n","class EventTarget {\n addEventListener() {\n }\n removeEventListener() {\n }\n dispatchEvent() {\n return true;\n }\n}\nclass Node extends EventTarget {\n}\nclass Element extends Node {\n constructor() {\n super(...arguments);\n this.role = null;\n }\n}\nclass ResizeObserver {\n observe() {\n }\n unobserve() {\n }\n disconnect() {\n }\n}\nconst documentShim = {\n createElement: function() {\n return new globalThisShim.HTMLElement();\n },\n createElementNS: function() {\n return new globalThisShim.HTMLElement();\n },\n addEventListener() {\n },\n removeEventListener() {\n },\n dispatchEvent(_event) {\n return false;\n }\n};\nconst globalThisShim = {\n ResizeObserver,\n document: documentShim,\n Node,\n Element,\n HTMLElement: class HTMLElement extends Element {\n constructor() {\n super(...arguments);\n this.innerHTML = \"\";\n }\n get content() {\n return new globalThisShim.DocumentFragment();\n }\n },\n DocumentFragment: class DocumentFragment extends EventTarget {\n },\n customElements: {\n get: function() {\n },\n define: function() {\n },\n whenDefined: function() {\n }\n },\n localStorage: {\n getItem(_key) {\n return null;\n },\n setItem(_key, _value) {\n },\n removeItem(_key) {\n }\n },\n CustomEvent: function CustomEvent() {\n },\n getComputedStyle: function() {\n },\n navigator: {\n languages: [],\n get userAgent() {\n return \"\";\n }\n },\n matchMedia(media) {\n return {\n matches: false,\n media\n };\n },\n DOMParser: class DOMParser {\n parseFromString(string, _contentType) {\n return {\n body: {\n textContent: string\n }\n };\n }\n }\n};\nconst isServer = \"global\" in globalThis && (globalThis == null ? void 0 : globalThis.global) === globalThis || // node or node-like environments, whether or not there are global polyfills like jsdom\ntypeof window === \"undefined\" || typeof window.customElements === \"undefined\";\nconst isShimmed = Object.keys(globalThisShim).every((key) => key in globalThis);\nconst GlobalThis = isServer && !isShimmed ? globalThisShim : globalThis;\nconst Document = isServer && !isShimmed ? documentShim : globalThis.document;\nexport {\n Document,\n GlobalThis,\n Document as document,\n GlobalThis as globalThis,\n isServer\n};\n","import { globalThis } from \"./server-safe-globals.js\";\nconst callbacksMap = /* @__PURE__ */ new WeakMap();\nconst getCallbacks = (element) => {\n let callbacks = callbacksMap.get(element);\n if (!callbacks)\n callbacksMap.set(element, callbacks = /* @__PURE__ */ new Set());\n return callbacks;\n};\nconst observer = new globalThis.ResizeObserver(\n (entries) => {\n for (const entry of entries) {\n for (const callback of getCallbacks(entry.target)) {\n callback(entry);\n }\n }\n }\n);\nfunction observeResize(element, callback) {\n getCallbacks(element).add(callback);\n observer.observe(element);\n}\nfunction unobserveResize(element, callback) {\n const callbacks = getCallbacks(element);\n callbacks.delete(callback);\n if (!callbacks.size) {\n observer.unobserve(element);\n }\n}\nexport {\n observeResize,\n unobserveResize\n};\n","import { MediaStateReceiverAttributes } from \"../constants.js\";\nfunction namedNodeMapToObject(namedNodeMap) {\n const obj = {};\n for (const attr of namedNodeMap) {\n obj[attr.name] = attr.value;\n }\n return obj;\n}\nfunction getMediaController(host) {\n var _a;\n return (_a = getAttributeMediaController(host)) != null ? _a : closestComposedNode(host, \"media-controller\");\n}\nfunction getAttributeMediaController(host) {\n var _a;\n const { MEDIA_CONTROLLER } = MediaStateReceiverAttributes;\n const mediaControllerId = host.getAttribute(MEDIA_CONTROLLER);\n if (mediaControllerId) {\n return (_a = getDocumentOrShadowRoot(host)) == null ? void 0 : _a.getElementById(\n mediaControllerId\n );\n }\n}\nconst updateIconText = (svg, value, selector = \".value\") => {\n const node = svg.querySelector(selector);\n if (!node)\n return;\n node.textContent = value;\n};\nconst getAllSlotted = (el, name) => {\n const slotSelector = `slot[name=\"${name}\"]`;\n const slot = el.shadowRoot.querySelector(slotSelector);\n if (!slot)\n return [];\n return slot.children;\n};\nconst getSlotted = (el, name) => getAllSlotted(el, name)[0];\nconst containsComposedNode = (rootNode, childNode) => {\n if (!rootNode || !childNode)\n return false;\n if (rootNode == null ? void 0 : rootNode.contains(childNode))\n return true;\n return containsComposedNode(\n rootNode,\n childNode.getRootNode().host\n );\n};\nconst closestComposedNode = (childNode, selector) => {\n if (!childNode)\n return null;\n const closest = childNode.closest(selector);\n if (closest)\n return closest;\n return closestComposedNode(\n childNode.getRootNode().host,\n selector\n );\n};\nfunction getActiveElement(root = document) {\n var _a;\n const activeEl = root == null ? void 0 : root.activeElement;\n if (!activeEl)\n return null;\n return (_a = getActiveElement(activeEl.shadowRoot)) != null ? _a : activeEl;\n}\nfunction getDocumentOrShadowRoot(node) {\n var _a;\n const rootNode = (_a = node == null ? void 0 : node.getRootNode) == null ? void 0 : _a.call(node);\n if (rootNode instanceof ShadowRoot || rootNode instanceof Document) {\n return rootNode;\n }\n return null;\n}\nfunction isElementVisible(element, { depth = 3, checkOpacity = true, checkVisibilityCSS = true } = {}) {\n if (element.checkVisibility) {\n return element.checkVisibility({\n checkOpacity,\n checkVisibilityCSS\n });\n }\n let el = element;\n while (el && depth > 0) {\n const style = getComputedStyle(el);\n if (checkOpacity && style.opacity === \"0\" || checkVisibilityCSS && style.visibility === \"hidden\" || style.display === \"none\") {\n return false;\n }\n el = el.parentElement;\n depth--;\n }\n return true;\n}\nfunction getPointProgressOnLine(x, y, p1, p2) {\n const dx = p2.x - p1.x;\n const dy = p2.y - p1.y;\n const lengthSquared = dx * dx + dy * dy;\n if (lengthSquared === 0)\n return 0;\n const projection = ((x - p1.x) * dx + (y - p1.y) * dy) / lengthSquared;\n return Math.max(0, Math.min(1, projection));\n}\nfunction distance(p1, p2) {\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\nfunction getOrInsertCSSRule(styleParent, selectorText) {\n const cssRule = getCSSRule(styleParent, (st) => st === selectorText);\n if (cssRule)\n return cssRule;\n return insertCSSRule(styleParent, selectorText);\n}\nfunction getCSSRule(styleParent, predicate) {\n var _a, _b;\n let style;\n for (style of (_a = styleParent.querySelectorAll(\"style:not([media])\")) != null ? _a : []) {\n let cssRules;\n try {\n cssRules = (_b = style.sheet) == null ? void 0 : _b.cssRules;\n } catch {\n continue;\n }\n for (const rule of cssRules != null ? cssRules : []) {\n if (predicate(rule.selectorText))\n return rule;\n }\n }\n}\nfunction insertCSSRule(styleParent, selectorText) {\n var _a, _b;\n const styles = (_a = styleParent.querySelectorAll(\"style:not([media])\")) != null ? _a : [];\n const style = styles == null ? void 0 : styles[styles.length - 1];\n if (!(style == null ? void 0 : style.sheet)) {\n console.warn(\n \"Media Chrome: No style sheet found on style tag of\",\n styleParent\n );\n return {\n // @ts-ignore\n style: {\n setProperty: () => {\n },\n removeProperty: () => \"\",\n getPropertyValue: () => \"\"\n }\n };\n }\n const cssRuleId = style == null ? void 0 : style.sheet.insertRule(`${selectorText}{}`, style.sheet.cssRules.length);\n return (_b = style.sheet.cssRules) == null ? void 0 : _b[cssRuleId];\n}\nfunction getNumericAttr(el, attrName, defaultValue = Number.NaN) {\n const attrVal = el.getAttribute(attrName);\n return attrVal != null ? +attrVal : defaultValue;\n}\nfunction setNumericAttr(el, attrName, value) {\n const nextNumericValue = +value;\n if (value == null || Number.isNaN(nextNumericValue)) {\n if (el.hasAttribute(attrName)) {\n el.removeAttribute(attrName);\n }\n return;\n }\n if (getNumericAttr(el, attrName, void 0) === nextNumericValue)\n return;\n el.setAttribute(attrName, `${nextNumericValue}`);\n}\nfunction getBooleanAttr(el, attrName) {\n return el.hasAttribute(attrName);\n}\nfunction setBooleanAttr(el, attrName, value) {\n if (value == null) {\n if (el.hasAttribute(attrName)) {\n el.removeAttribute(attrName);\n }\n return;\n }\n if (getBooleanAttr(el, attrName) == value)\n return;\n el.toggleAttribute(attrName, value);\n}\nfunction getStringAttr(el, attrName, defaultValue = null) {\n var _a;\n return (_a = el.getAttribute(attrName)) != null ? _a : defaultValue;\n}\nfunction setStringAttr(el, attrName, value) {\n if (value == null) {\n if (el.hasAttribute(attrName)) {\n el.removeAttribute(attrName);\n }\n return;\n }\n const nextValue = `${value}`;\n if (getStringAttr(el, attrName, void 0) === nextValue)\n return;\n el.setAttribute(attrName, nextValue);\n}\nexport {\n closestComposedNode,\n containsComposedNode,\n distance,\n getActiveElement,\n getAllSlotted,\n getAttributeMediaController,\n getBooleanAttr,\n getCSSRule,\n getDocumentOrShadowRoot,\n getMediaController,\n getNumericAttr,\n getOrInsertCSSRule,\n getPointProgressOnLine,\n getSlotted,\n getStringAttr,\n insertCSSRule,\n isElementVisible,\n namedNodeMapToObject,\n setBooleanAttr,\n setNumericAttr,\n setStringAttr,\n updateIconText\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _mediaController;\nimport {\n MediaUIAttributes,\n MediaUIEvents,\n MediaStateReceiverAttributes,\n PointerTypes\n} from \"./constants.js\";\nimport {\n closestComposedNode,\n getBooleanAttr,\n namedNodeMapToObject,\n setBooleanAttr\n} from \"./utils/element-utils.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n display: var(--media-control-display, var(--media-gesture-receiver-display, inline-block));\n box-sizing: border-box;\n }\n </style>\n `\n );\n}\nclass MediaGestureReceiver extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _mediaController, void 0);\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n }\n // NOTE: Currently \"baking in\" actions + attrs until we come up with\n // a more robust architecture (CJP)\n static get observedAttributes() {\n return [\n MediaStateReceiverAttributes.MEDIA_CONTROLLER,\n MediaUIAttributes.MEDIA_PAUSED\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e;\n if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue));\n (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this);\n }\n }\n }\n connectedCallback() {\n var _a, _b;\n this.tabIndex = -1;\n this.setAttribute(\"aria-hidden\", \"true\");\n __privateSet(this, _mediaController, getMediaControllerEl(this));\n if (this.getAttribute(MediaStateReceiverAttributes.MEDIA_CONTROLLER)) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.associateElement) == null ? void 0 : _b.call(_a, this);\n }\n if (!__privateGet(this, _mediaController))\n return;\n __privateGet(this, _mediaController).addEventListener(\"pointerdown\", this);\n __privateGet(this, _mediaController).addEventListener(\"click\", this);\n if (!__privateGet(this, _mediaController).hasAttribute(\"tabindex\")) {\n __privateGet(this, _mediaController).tabIndex = 0;\n }\n }\n disconnectedCallback() {\n var _a, _b, _c, _d;\n if (this.getAttribute(MediaStateReceiverAttributes.MEDIA_CONTROLLER)) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n }\n (_c = __privateGet(this, _mediaController)) == null ? void 0 : _c.removeEventListener(\"pointerdown\", this);\n (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.removeEventListener(\"click\", this);\n __privateSet(this, _mediaController, null);\n }\n handleEvent(event) {\n var _a;\n const composedTarget = (_a = event.composedPath()) == null ? void 0 : _a[0];\n const allowList = [\"video\", \"media-controller\"];\n if (!allowList.includes(composedTarget == null ? void 0 : composedTarget.localName))\n return;\n if (event.type === \"pointerdown\") {\n this._pointerType = event.pointerType;\n } else if (event.type === \"click\") {\n const { clientX, clientY } = event;\n const { left, top, width, height } = this.getBoundingClientRect();\n const x = clientX - left;\n const y = clientY - top;\n if (x < 0 || y < 0 || x > width || y > height || // In case this element has no dimensions (or display: none) return.\n width === 0 && height === 0) {\n return;\n }\n const pointerType = this._pointerType || \"mouse\";\n this._pointerType = void 0;\n if (pointerType === PointerTypes.TOUCH) {\n this.handleTap(event);\n return;\n } else if (pointerType === PointerTypes.MOUSE || pointerType === PointerTypes.PEN) {\n this.handleMouseClick(event);\n return;\n }\n }\n }\n /**\n * @type {boolean} Is the media paused\n */\n get mediaPaused() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED);\n }\n set mediaPaused(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED, value);\n }\n // NOTE: Currently \"baking in\" actions + attrs until we come up with\n // a more robust architecture (CJP)\n /**\n * @abstract\n * @argument {Event} e\n */\n handleTap(e) {\n }\n // eslint-disable-line\n // eslint-disable-next-line\n handleMouseClick(e) {\n const eventName = this.mediaPaused ? MediaUIEvents.MEDIA_PLAY_REQUEST : MediaUIEvents.MEDIA_PAUSE_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, { composed: true, bubbles: true })\n );\n }\n}\n_mediaController = new WeakMap();\nMediaGestureReceiver.shadowRootOptions = { mode: \"open\" };\nMediaGestureReceiver.getTemplateHTML = getTemplateHTML;\nfunction getMediaControllerEl(controlEl) {\n var _a;\n const mediaControllerId = controlEl.getAttribute(\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n );\n if (mediaControllerId) {\n return (_a = controlEl.getRootNode()) == null ? void 0 : _a.getElementById(mediaControllerId);\n }\n return closestComposedNode(controlEl, \"media-controller\");\n}\nif (!globalThis.customElements.get(\"media-gesture-receiver\")) {\n globalThis.customElements.define(\n \"media-gesture-receiver\",\n MediaGestureReceiver\n );\n}\nvar media_gesture_receiver_default = MediaGestureReceiver;\nexport {\n media_gesture_receiver_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _mutationObserver, _pointerDownTimeStamp, _currentMedia, _inactiveTimeout, _autohide, _handleMutation, _isResizePending, _handleResize, _handlePointerMove, handlePointerMove_fn, _handlePointerUp, handlePointerUp_fn, _setInactive, setInactive_fn, _setActive, setActive_fn, _scheduleInactive, scheduleInactive_fn, _chainedSlot, _handleSlotChange;\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIAttributes, MediaStateChangeEvents } from \"./constants.js\";\nimport { observeResize, unobserveResize } from \"./utils/resize-observer.js\";\nimport \"./media-gesture-receiver.js\";\nimport { t } from \"./utils/i18n.js\";\nimport {\n getBooleanAttr,\n getStringAttr,\n namedNodeMapToObject,\n setBooleanAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nimport MediaGestureReceiver from \"./media-gesture-receiver.js\";\nconst Attributes = {\n AUDIO: \"audio\",\n AUTOHIDE: \"autohide\",\n BREAKPOINTS: \"breakpoints\",\n GESTURES_DISABLED: \"gesturesdisabled\",\n KEYBOARD_CONTROL: \"keyboardcontrol\",\n NO_AUTOHIDE: \"noautohide\",\n USER_INACTIVE: \"userinactive\",\n AUTOHIDE_OVER_CONTROLS: \"autohideovercontrols\"\n};\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n ${/*\n * outline on media is turned off because it is allowed to get focus to faciliate hotkeys.\n * However, on keyboard interactions, the focus outline is shown,\n * which is particularly noticeable when going fullscreen via hotkeys.\n */\n \"\"}\n :host([${MediaUIAttributes.MEDIA_IS_FULLSCREEN}]) ::slotted([slot=media]) {\n outline: none;\n }\n\n :host {\n box-sizing: border-box;\n position: relative;\n display: inline-block;\n line-height: 0;\n background-color: var(--media-background-color, #000);\n overflow: hidden;\n }\n\n :host(:not([${Attributes.AUDIO}])) [part~=layer]:not([part~=media-layer]) {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n display: flex;\n flex-flow: column nowrap;\n align-items: start;\n pointer-events: none;\n background: none;\n }\n\n slot[name=media] {\n display: var(--media-slot-display, contents);\n }\n\n ${/*\n * when in audio mode, hide the slotted media element by default\n */\n \"\"}\n :host([${Attributes.AUDIO}]) slot[name=media] {\n display: var(--media-slot-display, none);\n }\n\n ${/*\n * when in audio mode, hide the gesture-layer which causes media-controller to be taller than the control bar\n */\n \"\"}\n :host([${Attributes.AUDIO}]) [part~=layer][part~=gesture-layer] {\n height: 0;\n display: block;\n }\n\n ${/*\n * if gestures are disabled, don't accept pointer-events\n */\n \"\"}\n :host(:not([${Attributes.AUDIO}])[${Attributes.GESTURES_DISABLED}]) ::slotted([slot=gestures-chrome]),\n :host(:not([${Attributes.AUDIO}])[${Attributes.GESTURES_DISABLED}]) media-gesture-receiver[slot=gestures-chrome] {\n display: none;\n }\n\n ${/*\n * any slotted element that isn't a poster or media slot should be pointer-events auto\n * we'll want to add here any slotted elements that shouldn't get pointer-events by default when slotted\n */\n \"\"}\n ::slotted(:not([slot=media]):not([slot=poster]):not(media-loading-indicator):not([role=dialog]):not([hidden])) {\n pointer-events: auto;\n }\n\n :host(:not([${Attributes.AUDIO}])) *[part~=layer][part~=centered-layer] {\n align-items: center;\n justify-content: center;\n }\n\n :host(:not([${Attributes.AUDIO}])) ::slotted(media-gesture-receiver[slot=gestures-chrome]),\n :host(:not([${Attributes.AUDIO}])) media-gesture-receiver[slot=gestures-chrome] {\n align-self: stretch;\n flex-grow: 1;\n }\n\n slot[name=middle-chrome] {\n display: inline;\n flex-grow: 1;\n pointer-events: none;\n background: none;\n }\n\n ${/* Position the media and poster elements to fill the container */\n \"\"}\n ::slotted([slot=media]),\n ::slotted([slot=poster]) {\n width: 100%;\n height: 100%;\n }\n\n ${/* Video specific styles */\n \"\"}\n :host(:not([${Attributes.AUDIO}])) .spacer {\n flex-grow: 1;\n }\n\n ${/* Safari needs this to actually make the element fill the window */\n \"\"}\n :host(:-webkit-full-screen) {\n ${/* Needs to use !important otherwise easy to break */\n \"\"}\n width: 100% !important;\n height: 100% !important;\n }\n\n ${/* Only add these if auto hide is not disabled */\n \"\"}\n ::slotted(:not([slot=media]):not([slot=poster]):not([${Attributes.NO_AUTOHIDE}]):not([hidden]):not([role=dialog])) {\n opacity: 1;\n transition: var(--media-control-transition-in, opacity 0.25s);\n }\n\n ${/* Hide controls when inactive, not paused, not audio and auto hide not disabled */\n \"\"}\n :host([${Attributes.USER_INACTIVE}]:not([${MediaUIAttributes.MEDIA_PAUSED}]):not([${MediaUIAttributes.MEDIA_IS_AIRPLAYING}]):not([${MediaUIAttributes.MEDIA_IS_CASTING}]):not([${Attributes.AUDIO}])) ::slotted(:not([slot=media]):not([slot=poster]):not([${Attributes.NO_AUTOHIDE}]):not([role=dialog])) {\n opacity: 0;\n transition: var(--media-control-transition-out, opacity 1s);\n }\n\n :host([${Attributes.USER_INACTIVE}]:not([${Attributes.NO_AUTOHIDE}]):not([${MediaUIAttributes.MEDIA_PAUSED}]):not([${MediaUIAttributes.MEDIA_IS_CASTING}]):not([${Attributes.AUDIO}])) ::slotted([slot=media]) {\n cursor: none;\n }\n\n :host([${Attributes.USER_INACTIVE}][${Attributes.AUTOHIDE_OVER_CONTROLS}]:not([${Attributes.NO_AUTOHIDE}]):not([${MediaUIAttributes.MEDIA_PAUSED}]):not([${MediaUIAttributes.MEDIA_IS_CASTING}]):not([${Attributes.AUDIO}])) * {\n --media-cursor: none;\n cursor: none;\n }\n\n\n ::slotted(media-control-bar) {\n align-self: stretch;\n }\n\n ${/* ::slotted([slot=poster]) doesn't work for slot fallback content so hide parent slot instead */\n \"\"}\n :host(:not([${Attributes.AUDIO}])[${MediaUIAttributes.MEDIA_HAS_PLAYED}]) slot[name=poster] {\n display: none;\n }\n\n ::slotted([role=dialog]) {\n width: 100%;\n height: 100%;\n align-self: center;\n }\n\n ::slotted([role=menu]) {\n align-self: end;\n }\n </style>\n\n <slot name=\"media\" part=\"layer media-layer\"></slot>\n <slot name=\"poster\" part=\"layer poster-layer\"></slot>\n <slot name=\"gestures-chrome\" part=\"layer gesture-layer\">\n <media-gesture-receiver slot=\"gestures-chrome\">\n <template shadowrootmode=\"${MediaGestureReceiver.shadowRootOptions.mode}\">\n ${MediaGestureReceiver.getTemplateHTML({})}\n </template>\n </media-gesture-receiver>\n </slot>\n <span part=\"layer vertical-layer\">\n <slot name=\"top-chrome\" part=\"top chrome\"></slot>\n <slot name=\"middle-chrome\" part=\"middle chrome\"></slot>\n <slot name=\"centered-chrome\" part=\"layer centered-layer center centered chrome\"></slot>\n ${/* default, effectively \"bottom-chrome\" */\n \"\"}\n <slot part=\"bottom chrome\"></slot>\n </span>\n <slot name=\"dialog\" part=\"layer dialog-layer\"></slot>\n `\n );\n}\nconst MEDIA_UI_ATTRIBUTE_NAMES = Object.values(MediaUIAttributes);\nconst defaultBreakpoints = \"sm:384 md:576 lg:768 xl:960\";\nfunction resizeCallback(entry) {\n setBreakpoints(entry.target, entry.contentRect.width);\n}\nfunction setBreakpoints(container, width) {\n var _a;\n if (!container.isConnected)\n return;\n const breakpoints = (_a = container.getAttribute(Attributes.BREAKPOINTS)) != null ? _a : defaultBreakpoints;\n const ranges = createBreakpointMap(breakpoints);\n const activeBreakpoints = getBreakpoints(ranges, width);\n let changed = false;\n Object.keys(ranges).forEach((name) => {\n if (activeBreakpoints.includes(name)) {\n if (!container.hasAttribute(`breakpoint${name}`)) {\n container.setAttribute(`breakpoint${name}`, \"\");\n changed = true;\n }\n return;\n }\n if (container.hasAttribute(`breakpoint${name}`)) {\n container.removeAttribute(`breakpoint${name}`);\n changed = true;\n }\n });\n if (changed) {\n const evt = new CustomEvent(MediaStateChangeEvents.BREAKPOINTS_CHANGE, {\n detail: activeBreakpoints\n });\n container.dispatchEvent(evt);\n }\n if (!container.breakpointsComputed) {\n container.breakpointsComputed = true;\n container.dispatchEvent(\n new CustomEvent(MediaStateChangeEvents.BREAKPOINTS_COMPUTED, {\n bubbles: true,\n composed: true\n })\n );\n }\n}\nfunction createBreakpointMap(breakpoints) {\n const pairs = breakpoints.split(/\\s+/);\n return Object.fromEntries(pairs.map((pair) => pair.split(\":\")));\n}\nfunction getBreakpoints(breakpoints, width) {\n return Object.keys(breakpoints).filter((name) => {\n return width >= parseInt(breakpoints[name]);\n });\n}\nclass MediaContainer extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _handlePointerMove);\n __privateAdd(this, _handlePointerUp);\n __privateAdd(this, _setInactive);\n __privateAdd(this, _setActive);\n __privateAdd(this, _scheduleInactive);\n __privateAdd(this, _mutationObserver, void 0);\n __privateAdd(this, _pointerDownTimeStamp, 0);\n __privateAdd(this, _currentMedia, null);\n __privateAdd(this, _inactiveTimeout, null);\n __privateAdd(this, _autohide, void 0);\n this.breakpointsComputed = false;\n __privateAdd(this, _handleMutation, (mutationsList) => {\n const media = this.media;\n for (const mutation of mutationsList) {\n if (mutation.type !== \"childList\")\n continue;\n const removedNodes = mutation.removedNodes;\n for (const node of removedNodes) {\n if (node.slot != \"media\" || mutation.target != this)\n continue;\n let previousSibling = mutation.previousSibling && mutation.previousSibling.previousElementSibling;\n if (!previousSibling || !media) {\n this.mediaUnsetCallback(node);\n } else {\n let wasFirst = previousSibling.slot !== \"media\";\n while ((previousSibling = previousSibling.previousSibling) !== null) {\n if (previousSibling.slot == \"media\")\n wasFirst = false;\n }\n if (wasFirst)\n this.mediaUnsetCallback(node);\n }\n }\n if (media) {\n for (const node of mutation.addedNodes) {\n if (node === media)\n this.handleMediaUpdated(media);\n }\n }\n }\n });\n __privateAdd(this, _isResizePending, false);\n __privateAdd(this, _handleResize, (entry) => {\n if (__privateGet(this, _isResizePending))\n return;\n setTimeout(() => {\n resizeCallback(entry);\n __privateSet(this, _isResizePending, false);\n }, 0);\n __privateSet(this, _isResizePending, true);\n });\n __privateAdd(this, _chainedSlot, void 0);\n __privateAdd(this, _handleSlotChange, () => {\n const slotEls = __privateGet(this, _chainedSlot).assignedElements({ flatten: true });\n if (!slotEls.length) {\n if (__privateGet(this, _currentMedia)) {\n this.mediaUnsetCallback(__privateGet(this, _currentMedia));\n }\n return;\n }\n this.handleMediaUpdated(this.media);\n });\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n const html = this.constructor.getTemplateHTML(attrs);\n this.shadowRoot.setHTMLUnsafe ? this.shadowRoot.setHTMLUnsafe(html) : this.shadowRoot.innerHTML = html;\n }\n __privateSet(this, _mutationObserver, new MutationObserver(__privateGet(this, _handleMutation)));\n }\n static get observedAttributes() {\n return [Attributes.AUTOHIDE, Attributes.GESTURES_DISABLED].concat(MEDIA_UI_ATTRIBUTE_NAMES).filter(\n (name) => ![\n MediaUIAttributes.MEDIA_RENDITION_LIST,\n MediaUIAttributes.MEDIA_AUDIO_TRACK_LIST,\n MediaUIAttributes.MEDIA_CHAPTERS_CUES,\n MediaUIAttributes.MEDIA_WIDTH,\n MediaUIAttributes.MEDIA_HEIGHT,\n MediaUIAttributes.MEDIA_ERROR,\n MediaUIAttributes.MEDIA_ERROR_MESSAGE\n ].includes(name)\n );\n }\n // Could share this code with media-chrome-html-element instead\n attributeChangedCallback(attrName, _oldValue, newValue) {\n if (attrName.toLowerCase() == Attributes.AUTOHIDE) {\n this.autohide = newValue;\n }\n }\n // First direct child with slot=media, or null\n get media() {\n let media = this.querySelector(\":scope > [slot=media]\");\n if ((media == null ? void 0 : media.nodeName) == \"SLOT\")\n media = media.assignedElements({ flatten: true })[0];\n return media;\n }\n async handleMediaUpdated(media) {\n if (!media)\n return;\n __privateSet(this, _currentMedia, media);\n if (media.localName.includes(\"-\")) {\n await globalThis.customElements.whenDefined(media.localName);\n }\n this.mediaSetCallback(media);\n }\n connectedCallback() {\n var _a;\n __privateGet(this, _mutationObserver).observe(this, { childList: true, subtree: true });\n observeResize(this, __privateGet(this, _handleResize));\n const isAudioChrome = this.getAttribute(Attributes.AUDIO) != null;\n const label = isAudioChrome ? t(\"audio player\") : t(\"video player\");\n this.setAttribute(\"role\", \"region\");\n this.setAttribute(\"aria-label\", label);\n this.handleMediaUpdated(this.media);\n this.setAttribute(Attributes.USER_INACTIVE, \"\");\n setBreakpoints(this, this.getBoundingClientRect().width);\n const chainedSlot = this.querySelector(\n \":scope > slot[slot=media]\"\n );\n if (chainedSlot) {\n __privateSet(this, _chainedSlot, chainedSlot);\n __privateGet(this, _chainedSlot).addEventListener(\"slotchange\", __privateGet(this, _handleSlotChange));\n }\n this.addEventListener(\"pointerdown\", this);\n this.addEventListener(\"pointermove\", this);\n this.addEventListener(\"pointerup\", this);\n this.addEventListener(\"mouseleave\", this);\n this.addEventListener(\"keyup\", this);\n (_a = globalThis.window) == null ? void 0 : _a.addEventListener(\"mouseup\", this);\n }\n disconnectedCallback() {\n var _a;\n unobserveResize(this, __privateGet(this, _handleResize));\n clearTimeout(__privateGet(this, _inactiveTimeout));\n __privateGet(this, _mutationObserver).disconnect();\n if (this.media) {\n this.mediaUnsetCallback(this.media);\n }\n (_a = globalThis.window) == null ? void 0 : _a.removeEventListener(\"mouseup\", this);\n this.removeEventListener(\"pointerdown\", this);\n this.removeEventListener(\"pointermove\", this);\n this.removeEventListener(\"pointerup\", this);\n this.removeEventListener(\"mouseleave\", this);\n this.removeEventListener(\"keyup\", this);\n if (__privateGet(this, _chainedSlot)) {\n __privateGet(this, _chainedSlot).removeEventListener(\"slotchange\", __privateGet(this, _handleSlotChange));\n __privateSet(this, _chainedSlot, null);\n }\n __privateSet(this, _isResizePending, false);\n }\n /**\n * @abstract\n */\n mediaSetCallback(_media) {\n }\n mediaUnsetCallback(_media) {\n __privateSet(this, _currentMedia, null);\n }\n handleEvent(event) {\n switch (event.type) {\n case \"pointerdown\":\n __privateSet(this, _pointerDownTimeStamp, event.timeStamp);\n break;\n case \"pointermove\":\n __privateMethod(this, _handlePointerMove, handlePointerMove_fn).call(this, event);\n break;\n case \"pointerup\":\n __privateMethod(this, _handlePointerUp, handlePointerUp_fn).call(this, event);\n break;\n case \"mouseleave\":\n __privateMethod(this, _setInactive, setInactive_fn).call(this);\n break;\n case \"mouseup\":\n this.removeAttribute(Attributes.KEYBOARD_CONTROL);\n break;\n case \"keyup\":\n __privateMethod(this, _scheduleInactive, scheduleInactive_fn).call(this);\n this.setAttribute(Attributes.KEYBOARD_CONTROL, \"\");\n break;\n }\n }\n set autohide(seconds) {\n const parsedSeconds = Number(seconds);\n __privateSet(this, _autohide, isNaN(parsedSeconds) ? 0 : parsedSeconds);\n }\n get autohide() {\n return (__privateGet(this, _autohide) === void 0 ? 2 : __privateGet(this, _autohide)).toString();\n }\n get breakpoints() {\n return getStringAttr(this, Attributes.BREAKPOINTS);\n }\n set breakpoints(value) {\n setStringAttr(this, Attributes.BREAKPOINTS, value);\n }\n get audio() {\n return getBooleanAttr(this, Attributes.AUDIO);\n }\n set audio(value) {\n setBooleanAttr(this, Attributes.AUDIO, value);\n }\n get gesturesDisabled() {\n return getBooleanAttr(this, Attributes.GESTURES_DISABLED);\n }\n set gesturesDisabled(value) {\n setBooleanAttr(this, Attributes.GESTURES_DISABLED, value);\n }\n get keyboardControl() {\n return getBooleanAttr(this, Attributes.KEYBOARD_CONTROL);\n }\n set keyboardControl(value) {\n setBooleanAttr(this, Attributes.KEYBOARD_CONTROL, value);\n }\n get noAutohide() {\n return getBooleanAttr(this, Attributes.NO_AUTOHIDE);\n }\n set noAutohide(value) {\n setBooleanAttr(this, Attributes.NO_AUTOHIDE, value);\n }\n get autohideOverControls() {\n return getBooleanAttr(this, Attributes.AUTOHIDE_OVER_CONTROLS);\n }\n set autohideOverControls(value) {\n setBooleanAttr(this, Attributes.AUTOHIDE_OVER_CONTROLS, value);\n }\n get userInteractive() {\n return getBooleanAttr(this, Attributes.USER_INACTIVE);\n }\n set userInteractive(value) {\n setBooleanAttr(this, Attributes.USER_INACTIVE, value);\n }\n}\n_mutationObserver = new WeakMap();\n_pointerDownTimeStamp = new WeakMap();\n_currentMedia = new WeakMap();\n_inactiveTimeout = new WeakMap();\n_autohide = new WeakMap();\n_handleMutation = new WeakMap();\n_isResizePending = new WeakMap();\n_handleResize = new WeakMap();\n_handlePointerMove = new WeakSet();\nhandlePointerMove_fn = function(event) {\n if (event.pointerType !== \"mouse\") {\n const MAX_TAP_DURATION = 250;\n if (event.timeStamp - __privateGet(this, _pointerDownTimeStamp) < MAX_TAP_DURATION)\n return;\n }\n __privateMethod(this, _setActive, setActive_fn).call(this);\n clearTimeout(__privateGet(this, _inactiveTimeout));\n const autohideOverControls = this.hasAttribute(\n Attributes.AUTOHIDE_OVER_CONTROLS\n );\n if ([this, this.media].includes(event.target) || autohideOverControls) {\n __privateMethod(this, _scheduleInactive, scheduleInactive_fn).call(this);\n }\n};\n_handlePointerUp = new WeakSet();\nhandlePointerUp_fn = function(event) {\n if (event.pointerType === \"touch\") {\n const controlsVisible = !this.hasAttribute(Attributes.USER_INACTIVE);\n if ([this, this.media].includes(event.target) && controlsVisible) {\n __privateMethod(this, _setInactive, setInactive_fn).call(this);\n } else {\n __privateMethod(this, _scheduleInactive, scheduleInactive_fn).call(this);\n }\n } else if (event.composedPath().some(\n (el) => [\"media-play-button\", \"media-fullscreen-button\"].includes(\n el == null ? void 0 : el.localName\n )\n )) {\n __privateMethod(this, _scheduleInactive, scheduleInactive_fn).call(this);\n }\n};\n_setInactive = new WeakSet();\nsetInactive_fn = function() {\n if (__privateGet(this, _autohide) < 0)\n return;\n if (this.hasAttribute(Attributes.USER_INACTIVE))\n return;\n this.setAttribute(Attributes.USER_INACTIVE, \"\");\n const evt = new globalThis.CustomEvent(\n MediaStateChangeEvents.USER_INACTIVE_CHANGE,\n { composed: true, bubbles: true, detail: true }\n );\n this.dispatchEvent(evt);\n};\n_setActive = new WeakSet();\nsetActive_fn = function() {\n if (!this.hasAttribute(Attributes.USER_INACTIVE))\n return;\n this.removeAttribute(Attributes.USER_INACTIVE);\n const evt = new globalThis.CustomEvent(\n MediaStateChangeEvents.USER_INACTIVE_CHANGE,\n { composed: true, bubbles: true, detail: false }\n );\n this.dispatchEvent(evt);\n};\n_scheduleInactive = new WeakSet();\nscheduleInactive_fn = function() {\n __privateMethod(this, _setActive, setActive_fn).call(this);\n clearTimeout(__privateGet(this, _inactiveTimeout));\n const autohide = parseInt(this.autohide);\n if (autohide < 0)\n return;\n __privateSet(this, _inactiveTimeout, setTimeout(() => {\n __privateMethod(this, _setInactive, setInactive_fn).call(this);\n }, autohide * 1e3));\n};\n_chainedSlot = new WeakMap();\n_handleSlotChange = new WeakMap();\nMediaContainer.shadowRootOptions = { mode: \"open\" };\nMediaContainer.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-container\")) {\n globalThis.customElements.define(\"media-container\", MediaContainer);\n}\nvar media_container_default = MediaContainer;\nexport {\n Attributes,\n MediaContainer,\n media_container_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _el, _attr, _defaultSet, _tokenSet, _tokens, tokens_get;\nclass AttributeTokenList {\n constructor(el, attr, { defaultValue } = { defaultValue: void 0 }) {\n __privateAdd(this, _tokens);\n __privateAdd(this, _el, void 0);\n __privateAdd(this, _attr, void 0);\n __privateAdd(this, _defaultSet, void 0);\n __privateAdd(this, _tokenSet, /* @__PURE__ */ new Set());\n __privateSet(this, _el, el);\n __privateSet(this, _attr, attr);\n __privateSet(this, _defaultSet, new Set(defaultValue));\n }\n [Symbol.iterator]() {\n return __privateGet(this, _tokens, tokens_get).values();\n }\n get length() {\n return __privateGet(this, _tokens, tokens_get).size;\n }\n get value() {\n var _a;\n return (_a = [...__privateGet(this, _tokens, tokens_get)].join(\" \")) != null ? _a : \"\";\n }\n set value(val) {\n var _a;\n if (val === this.value)\n return;\n __privateSet(this, _tokenSet, /* @__PURE__ */ new Set());\n this.add(...(_a = val == null ? void 0 : val.split(\" \")) != null ? _a : []);\n }\n toString() {\n return this.value;\n }\n item(index) {\n return [...__privateGet(this, _tokens, tokens_get)][index];\n }\n values() {\n return __privateGet(this, _tokens, tokens_get).values();\n }\n forEach(callback, thisArg) {\n __privateGet(this, _tokens, tokens_get).forEach(callback, thisArg);\n }\n add(...tokens) {\n var _a, _b;\n tokens.forEach((t) => __privateGet(this, _tokenSet).add(t));\n if (this.value === \"\" && !((_a = __privateGet(this, _el)) == null ? void 0 : _a.hasAttribute(`${__privateGet(this, _attr)}`))) {\n return;\n }\n (_b = __privateGet(this, _el)) == null ? void 0 : _b.setAttribute(`${__privateGet(this, _attr)}`, `${this.value}`);\n }\n remove(...tokens) {\n var _a;\n tokens.forEach((t) => __privateGet(this, _tokenSet).delete(t));\n (_a = __privateGet(this, _el)) == null ? void 0 : _a.setAttribute(`${__privateGet(this, _attr)}`, `${this.value}`);\n }\n contains(token) {\n return __privateGet(this, _tokens, tokens_get).has(token);\n }\n toggle(token, force) {\n if (typeof force !== \"undefined\") {\n if (force) {\n this.add(token);\n return true;\n } else {\n this.remove(token);\n return false;\n }\n }\n if (this.contains(token)) {\n this.remove(token);\n return false;\n }\n this.add(token);\n return true;\n }\n replace(oldToken, newToken) {\n this.remove(oldToken);\n this.add(newToken);\n return oldToken === newToken;\n }\n}\n_el = new WeakMap();\n_attr = new WeakMap();\n_defaultSet = new WeakMap();\n_tokenSet = new WeakMap();\n_tokens = new WeakSet();\ntokens_get = function() {\n return __privateGet(this, _tokenSet).size ? __privateGet(this, _tokenSet) : __privateGet(this, _defaultSet);\n};\nexport {\n AttributeTokenList\n};\n","import { MediaUIAttributes, TextTrackKinds } from \"../constants.js\";\nconst splitTextTracksStr = (textTracksStr = \"\") => textTracksStr.split(/\\s+/);\nconst parseTextTrackStr = (textTrackStr = \"\") => {\n const [kind, language, encodedLabel] = textTrackStr.split(\":\");\n const label = encodedLabel ? decodeURIComponent(encodedLabel) : void 0;\n return {\n kind: kind === \"cc\" ? TextTrackKinds.CAPTIONS : TextTrackKinds.SUBTITLES,\n language,\n label\n };\n};\nconst parseTextTracksStr = (textTracksStr = \"\", textTrackLikeObj = {}) => {\n return splitTextTracksStr(textTracksStr).map((textTrackStr) => {\n const textTrackObj = parseTextTrackStr(textTrackStr);\n return {\n ...textTrackLikeObj,\n ...textTrackObj\n };\n });\n};\nconst parseTracks = (trackOrTracks) => {\n if (!trackOrTracks)\n return [];\n if (Array.isArray(trackOrTracks)) {\n return trackOrTracks.map((trackObjOrStr) => {\n if (typeof trackObjOrStr === \"string\") {\n return parseTextTrackStr(trackObjOrStr);\n }\n return trackObjOrStr;\n });\n }\n if (typeof trackOrTracks === \"string\") {\n return parseTextTracksStr(trackOrTracks);\n }\n return [trackOrTracks];\n};\nconst formatTextTrackObj = ({ kind, label, language } = { kind: \"subtitles\" }) => {\n if (!label)\n return language;\n return `${kind === \"captions\" ? \"cc\" : \"sb\"}:${language}:${encodeURIComponent(\n label\n )}`;\n};\nconst stringifyTextTrackList = (textTracks = []) => {\n return Array.prototype.map.call(textTracks, formatTextTrackObj).join(\" \");\n};\nconst isMatchingPropOf = (key, value) => (obj) => obj[key] === value;\nconst textTrackObjAsPred = (filterObj) => {\n const preds = Object.entries(filterObj).map(([key, value]) => {\n return isMatchingPropOf(key, value);\n });\n return (textTrack) => preds.every((pred) => pred(textTrack));\n};\nconst updateTracksModeTo = (mode, tracks = [], tracksToUpdate = []) => {\n const preds = parseTracks(tracksToUpdate).map(textTrackObjAsPred);\n const isTrackToUpdate = (textTrack) => {\n return preds.some((pred) => pred(textTrack));\n };\n Array.from(tracks).filter(isTrackToUpdate).forEach((textTrack) => {\n textTrack.mode = mode;\n });\n};\nconst getTextTracksList = (media, filterPredOrObj = () => true) => {\n if (!(media == null ? void 0 : media.textTracks))\n return [];\n const filterPred = typeof filterPredOrObj === \"function\" ? filterPredOrObj : textTrackObjAsPred(filterPredOrObj);\n return Array.from(media.textTracks).filter(filterPred);\n};\nconst areSubsOn = (el) => {\n var _a;\n const showingSubtitles = !!((_a = el.mediaSubtitlesShowing) == null ? void 0 : _a.length) || el.hasAttribute(MediaUIAttributes.MEDIA_SUBTITLES_SHOWING);\n return showingSubtitles;\n};\nexport {\n areSubsOn,\n formatTextTrackObj,\n getTextTracksList,\n isMatchingPropOf,\n parseTextTrackStr,\n parseTextTracksStr,\n parseTracks,\n splitTextTracksStr,\n stringifyTextTrackList,\n textTrackObjAsPred,\n updateTracksModeTo\n};\n","import { WebkitPresentationModes } from \"../constants.js\";\nimport { containsComposedNode } from \"./element-utils.js\";\nimport { document } from \"./server-safe-globals.js\";\nconst enterFullscreen = (stateOwners) => {\n var _a;\n const { media, fullscreenElement } = stateOwners;\n try {\n const enterFullscreenKey = fullscreenElement && \"requestFullscreen\" in fullscreenElement ? \"requestFullscreen\" : fullscreenElement && \"webkitRequestFullScreen\" in fullscreenElement ? \"webkitRequestFullScreen\" : void 0;\n if (enterFullscreenKey) {\n const maybePromise = (_a = fullscreenElement[enterFullscreenKey]) == null ? void 0 : _a.call(fullscreenElement);\n if (maybePromise instanceof Promise) {\n return maybePromise.catch(() => {\n });\n }\n } else if (media == null ? void 0 : media.webkitEnterFullscreen) {\n media.webkitEnterFullscreen();\n } else if (media == null ? void 0 : media.requestFullscreen) {\n media.requestFullscreen();\n }\n } catch (e) {\n console.error(e);\n }\n};\nconst exitFullscreenKey = \"exitFullscreen\" in document ? \"exitFullscreen\" : \"webkitExitFullscreen\" in document ? \"webkitExitFullscreen\" : \"webkitCancelFullScreen\" in document ? \"webkitCancelFullScreen\" : void 0;\nconst exitFullscreen = (stateOwners) => {\n var _a;\n const { documentElement } = stateOwners;\n if (exitFullscreenKey) {\n const maybePromise = (_a = documentElement == null ? void 0 : documentElement[exitFullscreenKey]) == null ? void 0 : _a.call(documentElement);\n if (maybePromise instanceof Promise) {\n return maybePromise.catch(() => {\n });\n }\n }\n};\nconst fullscreenElementKey = \"fullscreenElement\" in document ? \"fullscreenElement\" : \"webkitFullscreenElement\" in document ? \"webkitFullscreenElement\" : void 0;\nconst getFullscreenElement = (stateOwners) => {\n const { documentElement, media } = stateOwners;\n const docFullscreenElement = documentElement == null ? void 0 : documentElement[fullscreenElementKey];\n if (!docFullscreenElement && \"webkitDisplayingFullscreen\" in media && \"webkitPresentationMode\" in media && media.webkitDisplayingFullscreen && media.webkitPresentationMode === WebkitPresentationModes.FULLSCREEN) {\n return media;\n }\n return docFullscreenElement;\n};\nconst isFullscreen = (stateOwners) => {\n var _a;\n const { media, documentElement, fullscreenElement = media } = stateOwners;\n if (!media || !documentElement)\n return false;\n const currentFullscreenElement = getFullscreenElement(stateOwners);\n if (!currentFullscreenElement)\n return false;\n if (currentFullscreenElement === fullscreenElement || currentFullscreenElement === media) {\n return true;\n }\n if (currentFullscreenElement.localName.includes(\"-\")) {\n let currentRoot = currentFullscreenElement.shadowRoot;\n if (!(fullscreenElementKey in currentRoot)) {\n return containsComposedNode(\n currentFullscreenElement,\n /** @TODO clean up type assumptions (e.g. Node) (CJP) */\n // @ts-ignore\n fullscreenElement\n );\n }\n while (currentRoot == null ? void 0 : currentRoot[fullscreenElementKey]) {\n if (currentRoot[fullscreenElementKey] === fullscreenElement)\n return true;\n currentRoot = (_a = currentRoot[fullscreenElementKey]) == null ? void 0 : _a.shadowRoot;\n }\n }\n return false;\n};\nconst fullscreenEnabledKey = \"fullscreenEnabled\" in document ? \"fullscreenEnabled\" : \"webkitFullscreenEnabled\" in document ? \"webkitFullscreenEnabled\" : void 0;\nconst isFullscreenEnabled = (stateOwners) => {\n const { documentElement, media } = stateOwners;\n return !!(documentElement == null ? void 0 : documentElement[fullscreenEnabledKey]) || media && \"webkitSupportsFullscreen\" in media;\n};\nexport {\n enterFullscreen,\n exitFullscreen,\n getFullscreenElement,\n isFullscreen,\n isFullscreenEnabled\n};\n","import { globalThis, document } from \"./server-safe-globals.js\";\nimport { delay } from \"./utils.js\";\nimport { isFullscreenEnabled } from \"./fullscreen-api.js\";\nlet testMediaEl;\nconst getTestMediaEl = () => {\n var _a, _b;\n if (testMediaEl)\n return testMediaEl;\n testMediaEl = (_b = (_a = document) == null ? void 0 : _a.createElement) == null ? void 0 : _b.call(_a, \"video\");\n return testMediaEl;\n};\nconst hasVolumeSupportAsync = async (mediaEl = getTestMediaEl()) => {\n if (!mediaEl)\n return false;\n const prevVolume = mediaEl.volume;\n mediaEl.volume = prevVolume / 2 + 0.1;\n const abortController = new AbortController();\n const volumeSupported = await Promise.race([\n dispatchedVolumeChange(mediaEl, abortController.signal),\n volumeChanged(mediaEl, prevVolume)\n ]);\n abortController.abort();\n return volumeSupported;\n};\nconst dispatchedVolumeChange = (mediaEl, signal) => {\n return new Promise((resolve) => {\n mediaEl.addEventListener(\"volumechange\", () => resolve(true), { signal });\n });\n};\nconst volumeChanged = async (mediaEl, prevVolume) => {\n for (let i = 0; i < 10; i++) {\n if (mediaEl.volume === prevVolume)\n return false;\n await delay(10);\n }\n return mediaEl.volume !== prevVolume;\n};\nconst isSafari = /.*Version\\/.*Safari\\/.*/.test(\n globalThis.navigator.userAgent\n);\nconst hasPipSupport = (mediaEl = getTestMediaEl()) => {\n if (globalThis.matchMedia(\"(display-mode: standalone)\").matches && isSafari)\n return false;\n return typeof (mediaEl == null ? void 0 : mediaEl.requestPictureInPicture) === \"function\";\n};\nconst hasFullscreenSupport = (mediaEl = getTestMediaEl()) => {\n return isFullscreenEnabled({ documentElement: document, media: mediaEl });\n};\nconst fullscreenSupported = hasFullscreenSupport();\nconst pipSupported = hasPipSupport();\nconst airplaySupported = !!globalThis.WebKitPlaybackTargetAvailabilityEvent;\nconst castSupported = !!globalThis.chrome;\nexport {\n airplaySupported,\n castSupported,\n fullscreenSupported,\n getTestMediaEl,\n hasFullscreenSupport,\n hasPipSupport,\n hasVolumeSupportAsync,\n pipSupported\n};\n","import { TextTrackKinds, TextTrackModes } from \"../constants.js\";\nimport { getTextTracksList, updateTracksModeTo } from \"../utils/captions.js\";\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nconst getSubtitleTracks = (stateOwners) => {\n return getTextTracksList(stateOwners.media, (textTrack) => {\n return [TextTrackKinds.SUBTITLES, TextTrackKinds.CAPTIONS].includes(\n textTrack.kind\n );\n }).sort((a, b) => a.kind >= b.kind ? 1 : -1);\n};\nconst getShowingSubtitleTracks = (stateOwners) => {\n return getTextTracksList(stateOwners.media, (textTrack) => {\n return textTrack.mode === TextTrackModes.SHOWING && [TextTrackKinds.SUBTITLES, TextTrackKinds.CAPTIONS].includes(\n textTrack.kind\n );\n });\n};\nconst toggleSubtitleTracks = (stateOwners, force) => {\n const tracks = getSubtitleTracks(stateOwners);\n const showingSubitleTracks = getShowingSubtitleTracks(stateOwners);\n const subtitlesShowing = !!showingSubitleTracks.length;\n if (!tracks.length)\n return;\n if (force === false || subtitlesShowing && force !== true) {\n updateTracksModeTo(TextTrackModes.DISABLED, tracks, showingSubitleTracks);\n } else if (force === true || !subtitlesShowing && force !== false) {\n let subTrack = tracks[0];\n const { options } = stateOwners;\n if (!(options == null ? void 0 : options.noSubtitlesLangPref)) {\n const subtitlesPref = globalThis.localStorage.getItem(\n \"media-chrome-pref-subtitles-lang\"\n );\n const userLangPrefs = subtitlesPref ? [subtitlesPref, ...globalThis.navigator.languages] : globalThis.navigator.languages;\n const preferredAvailableSubs = tracks.filter((textTrack) => {\n return userLangPrefs.some(\n (lang) => textTrack.language.toLowerCase().startsWith(lang.split(\"-\")[0])\n );\n }).sort((textTrackA, textTrackB) => {\n const idxA = userLangPrefs.findIndex(\n (lang) => textTrackA.language.toLowerCase().startsWith(lang.split(\"-\")[0])\n );\n const idxB = userLangPrefs.findIndex(\n (lang) => textTrackB.language.toLowerCase().startsWith(lang.split(\"-\")[0])\n );\n return idxA - idxB;\n });\n if (preferredAvailableSubs[0]) {\n subTrack = preferredAvailableSubs[0];\n }\n }\n const { language, label, kind } = subTrack;\n updateTracksModeTo(TextTrackModes.DISABLED, tracks, showingSubitleTracks);\n updateTracksModeTo(TextTrackModes.SHOWING, tracks, [\n { language, label, kind }\n ]);\n }\n};\nconst areValuesEq = (x, y) => {\n if (x === y)\n return true;\n if (x == null || y == null)\n return false;\n if (typeof x !== typeof y)\n return false;\n if (typeof x === \"number\" && Number.isNaN(x) && Number.isNaN(y))\n return true;\n if (typeof x !== \"object\")\n return false;\n if (Array.isArray(x))\n return areArraysEq(x, y);\n return Object.entries(x).every(\n // NOTE: Checking key in y to disambiguate between between missing keys and keys whose value are undefined (CJP)\n ([key, value]) => key in y && areValuesEq(value, y[key])\n );\n};\nconst areArraysEq = (xs, ys) => {\n const xIsArray = Array.isArray(xs);\n const yIsArray = Array.isArray(ys);\n if (xIsArray !== yIsArray)\n return false;\n if (!(xIsArray || yIsArray))\n return true;\n if (xs.length !== ys.length)\n return false;\n return xs.every((x, i) => areValuesEq(x, ys[i]));\n};\nexport {\n areArraysEq,\n areValuesEq,\n getShowingSubtitleTracks,\n getSubtitleTracks,\n toggleSubtitleTracks\n};\n","import { document, globalThis } from \"../utils/server-safe-globals.js\";\nimport {\n AvailabilityStates,\n StreamTypes,\n TextTrackKinds\n} from \"../constants.js\";\nimport { containsComposedNode } from \"../utils/element-utils.js\";\nimport {\n enterFullscreen,\n exitFullscreen,\n isFullscreen\n} from \"../utils/fullscreen-api.js\";\nimport {\n airplaySupported,\n castSupported,\n fullscreenSupported,\n hasFullscreenSupport,\n hasPipSupport,\n hasVolumeSupportAsync,\n pipSupported\n} from \"../utils/platform-tests.js\";\nimport {\n getShowingSubtitleTracks,\n getSubtitleTracks,\n toggleSubtitleTracks\n} from \"./util.js\";\nimport { getTextTracksList } from \"../utils/captions.js\";\nimport { isValidNumber } from \"../utils/utils.js\";\nconst StreamTypeValues = Object.values(StreamTypes);\nlet volumeSupported;\nconst volumeSupportPromise = hasVolumeSupportAsync().then((supported) => {\n volumeSupported = supported;\n return volumeSupported;\n});\nconst prepareStateOwners = async (...stateOwners) => {\n await Promise.all(\n stateOwners.filter((x) => x).map(async (stateOwner) => {\n if (!(\"localName\" in stateOwner && stateOwner instanceof globalThis.HTMLElement)) {\n return;\n }\n const name = stateOwner.localName;\n if (!name.includes(\"-\"))\n return;\n const classDef = globalThis.customElements.get(name);\n if (classDef && stateOwner instanceof classDef)\n return;\n await globalThis.customElements.whenDefined(name);\n globalThis.customElements.upgrade(stateOwner);\n })\n );\n};\nconst domParser = new globalThis.DOMParser();\nconst parseHtmlToText = (text) => text ? domParser.parseFromString(text, \"text/html\").body.textContent || text : text;\nconst stateMediator = {\n mediaError: {\n get(stateOwners, event) {\n const { media } = stateOwners;\n if ((event == null ? void 0 : event.type) === \"playing\")\n return;\n return media == null ? void 0 : media.error;\n },\n mediaEvents: [\"emptied\", \"error\", \"playing\"]\n },\n mediaErrorCode: {\n get(stateOwners, event) {\n var _a;\n const { media } = stateOwners;\n if ((event == null ? void 0 : event.type) === \"playing\")\n return;\n return (_a = media == null ? void 0 : media.error) == null ? void 0 : _a.code;\n },\n mediaEvents: [\"emptied\", \"error\", \"playing\"]\n },\n mediaErrorMessage: {\n get(stateOwners, event) {\n var _a, _b;\n const { media } = stateOwners;\n if ((event == null ? void 0 : event.type) === \"playing\")\n return;\n return (_b = (_a = media == null ? void 0 : media.error) == null ? void 0 : _a.message) != null ? _b : \"\";\n },\n mediaEvents: [\"emptied\", \"error\", \"playing\"]\n },\n mediaWidth: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.videoWidth) != null ? _a : 0;\n },\n mediaEvents: [\"resize\"]\n },\n mediaHeight: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.videoHeight) != null ? _a : 0;\n },\n mediaEvents: [\"resize\"]\n },\n mediaPaused: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.paused) != null ? _a : true;\n },\n set(value, stateOwners) {\n var _a;\n const { media } = stateOwners;\n if (!media)\n return;\n if (value) {\n media.pause();\n } else {\n (_a = media.play()) == null ? void 0 : _a.catch(() => {\n });\n }\n },\n mediaEvents: [\"play\", \"playing\", \"pause\", \"emptied\"]\n },\n mediaHasPlayed: {\n // We want to let the user know that the media started playing at any point (`media-has-played`).\n // Since these propagators are all called when boostrapping state, let's verify this is\n // a real playing event by checking that 1) there's media and 2) it isn't currently paused.\n get(stateOwners, event) {\n const { media } = stateOwners;\n if (!media)\n return false;\n if (!event)\n return !media.paused;\n return event.type === \"playing\";\n },\n mediaEvents: [\"playing\", \"emptied\"]\n },\n mediaEnded: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.ended) != null ? _a : false;\n },\n mediaEvents: [\"seeked\", \"ended\", \"emptied\"]\n },\n mediaPlaybackRate: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.playbackRate) != null ? _a : 1;\n },\n set(value, stateOwners) {\n const { media } = stateOwners;\n if (!media)\n return;\n if (!Number.isFinite(+value))\n return;\n media.playbackRate = +value;\n },\n mediaEvents: [\"ratechange\", \"loadstart\"]\n },\n mediaMuted: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.muted) != null ? _a : false;\n },\n set(value, stateOwners) {\n const { media, options: { noMutedPref } = {} } = stateOwners;\n if (!media)\n return;\n media.muted = value;\n try {\n const hasLocalStoragePrefMuted = globalThis.localStorage.getItem(\"media-chrome-pref-muted\") !== null;\n const hasMutedAttribute = media.hasAttribute(\"muted\");\n if (noMutedPref) {\n if (hasLocalStoragePrefMuted)\n globalThis.localStorage.removeItem(\"media-chrome-pref-muted\");\n return;\n }\n if (hasMutedAttribute && !hasLocalStoragePrefMuted) {\n return;\n }\n globalThis.localStorage.setItem(\n \"media-chrome-pref-muted\",\n value ? \"true\" : \"false\"\n );\n } catch (e) {\n console.debug(\"Error setting muted pref\", e);\n }\n },\n mediaEvents: [\"volumechange\"],\n stateOwnersUpdateHandlers: [\n (handler, stateOwners) => {\n const {\n options: { noMutedPref }\n } = stateOwners;\n const { media } = stateOwners;\n if (!media || media.muted || noMutedPref)\n return;\n try {\n const mutedPref = globalThis.localStorage.getItem(\"media-chrome-pref-muted\") === \"true\";\n stateMediator.mediaMuted.set(mutedPref, stateOwners);\n handler(mutedPref);\n } catch (e) {\n console.debug(\"Error getting muted pref\", e);\n }\n }\n ]\n },\n mediaLoop: {\n get(stateOwners) {\n const { media } = stateOwners;\n return media == null ? void 0 : media.loop;\n },\n set(value, stateOwners) {\n const { media } = stateOwners;\n if (!media)\n return;\n media.loop = value;\n },\n mediaEvents: [\"medialooprequest\"]\n },\n mediaVolume: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.volume) != null ? _a : 1;\n },\n set(value, stateOwners) {\n const { media, options: { noVolumePref } = {} } = stateOwners;\n if (!media)\n return;\n try {\n if (value == null) {\n globalThis.localStorage.removeItem(\"media-chrome-pref-volume\");\n } else if (!media.hasAttribute(\"muted\") && !noVolumePref) {\n globalThis.localStorage.setItem(\n \"media-chrome-pref-volume\",\n value.toString()\n );\n }\n } catch (e) {\n console.debug(\"Error setting volume pref\", e);\n }\n if (!Number.isFinite(+value))\n return;\n media.volume = +value;\n },\n mediaEvents: [\"volumechange\"],\n stateOwnersUpdateHandlers: [\n (handler, stateOwners) => {\n const {\n options: { noVolumePref }\n } = stateOwners;\n if (noVolumePref)\n return;\n try {\n const { media } = stateOwners;\n if (!media)\n return;\n const volumePref = globalThis.localStorage.getItem(\n \"media-chrome-pref-volume\"\n );\n if (volumePref == null)\n return;\n stateMediator.mediaVolume.set(+volumePref, stateOwners);\n handler(+volumePref);\n } catch (e) {\n console.debug(\"Error getting volume pref\", e);\n }\n }\n ]\n },\n // NOTE: Keeping this roughly equivalent to prior impl to reduce number of changes,\n // however we may want to model \"derived\" state differently from \"primary\" state\n // (in this case, derived === mediaVolumeLevel, primary === mediaMuted, mediaVolume) (CJP)\n mediaVolumeLevel: {\n get(stateOwners) {\n const { media } = stateOwners;\n if (typeof (media == null ? void 0 : media.volume) == \"undefined\")\n return \"high\";\n if (media.muted || media.volume === 0)\n return \"off\";\n if (media.volume < 0.5)\n return \"low\";\n if (media.volume < 0.75)\n return \"medium\";\n return \"high\";\n },\n mediaEvents: [\"volumechange\"]\n },\n mediaCurrentTime: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.currentTime) != null ? _a : 0;\n },\n set(value, stateOwners) {\n const { media } = stateOwners;\n if (!media || !isValidNumber(value))\n return;\n media.currentTime = value;\n },\n mediaEvents: [\"timeupdate\", \"loadedmetadata\"]\n },\n mediaDuration: {\n get(stateOwners) {\n const { media, options: { defaultDuration } = {} } = stateOwners;\n if (defaultDuration && (!media || !media.duration || Number.isNaN(media.duration) || !Number.isFinite(media.duration))) {\n return defaultDuration;\n }\n return Number.isFinite(media == null ? void 0 : media.duration) ? media.duration : Number.NaN;\n },\n mediaEvents: [\"durationchange\", \"loadedmetadata\", \"emptied\"]\n },\n mediaLoading: {\n get(stateOwners) {\n const { media } = stateOwners;\n return (media == null ? void 0 : media.readyState) < 3;\n },\n mediaEvents: [\"waiting\", \"playing\", \"emptied\"]\n },\n mediaSeekable: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n if (!((_a = media == null ? void 0 : media.seekable) == null ? void 0 : _a.length))\n return void 0;\n const start = media.seekable.start(0);\n const end = media.seekable.end(media.seekable.length - 1);\n if (!start && !end)\n return void 0;\n return [Number(start.toFixed(3)), Number(end.toFixed(3))];\n },\n mediaEvents: [\"loadedmetadata\", \"emptied\", \"progress\", \"seekablechange\"]\n },\n mediaBuffered: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n const timeRanges = (_a = media == null ? void 0 : media.buffered) != null ? _a : [];\n return Array.from(timeRanges).map((_, i) => [\n Number(timeRanges.start(i).toFixed(3)),\n Number(timeRanges.end(i).toFixed(3))\n ]);\n },\n mediaEvents: [\"progress\", \"emptied\"]\n },\n mediaStreamType: {\n get(stateOwners) {\n const { media, options: { defaultStreamType } = {} } = stateOwners;\n const usedDefaultStreamType = [\n StreamTypes.LIVE,\n StreamTypes.ON_DEMAND\n ].includes(defaultStreamType) ? defaultStreamType : void 0;\n if (!media)\n return usedDefaultStreamType;\n const { streamType } = media;\n if (StreamTypeValues.includes(streamType)) {\n if (streamType === StreamTypes.UNKNOWN) {\n return usedDefaultStreamType;\n }\n return streamType;\n }\n const duration = media.duration;\n if (duration === Infinity) {\n return StreamTypes.LIVE;\n } else if (Number.isFinite(duration)) {\n return StreamTypes.ON_DEMAND;\n }\n return usedDefaultStreamType;\n },\n mediaEvents: [\n \"emptied\",\n \"durationchange\",\n \"loadedmetadata\",\n \"streamtypechange\"\n ]\n },\n mediaTargetLiveWindow: {\n get(stateOwners) {\n const { media } = stateOwners;\n if (!media)\n return Number.NaN;\n const { targetLiveWindow } = media;\n const streamType = stateMediator.mediaStreamType.get(stateOwners);\n if ((targetLiveWindow == null || Number.isNaN(targetLiveWindow)) && streamType === StreamTypes.LIVE) {\n return 0;\n }\n return targetLiveWindow;\n },\n mediaEvents: [\n \"emptied\",\n \"durationchange\",\n \"loadedmetadata\",\n \"streamtypechange\",\n \"targetlivewindowchange\"\n ]\n },\n mediaTimeIsLive: {\n get(stateOwners) {\n const {\n media,\n // Default to 10 seconds\n options: { liveEdgeOffset = 10 } = {}\n } = stateOwners;\n if (!media)\n return false;\n if (typeof media.liveEdgeStart === \"number\") {\n if (Number.isNaN(media.liveEdgeStart))\n return false;\n return media.currentTime >= media.liveEdgeStart;\n }\n const live = stateMediator.mediaStreamType.get(stateOwners) === StreamTypes.LIVE;\n if (!live)\n return false;\n const seekable = media.seekable;\n if (!seekable)\n return true;\n if (!seekable.length)\n return false;\n const liveEdgeStart = seekable.end(seekable.length - 1) - liveEdgeOffset;\n return media.currentTime >= liveEdgeStart;\n },\n mediaEvents: [\"playing\", \"timeupdate\", \"progress\", \"waiting\", \"emptied\"]\n },\n // Text Tracks modeling\n mediaSubtitlesList: {\n get(stateOwners) {\n return getSubtitleTracks(stateOwners).map(\n ({ kind, label, language }) => ({ kind, label, language })\n );\n },\n mediaEvents: [\"loadstart\"],\n textTracksEvents: [\"addtrack\", \"removetrack\"]\n },\n mediaSubtitlesShowing: {\n get(stateOwners) {\n return getShowingSubtitleTracks(stateOwners).map(\n ({ kind, label, language }) => ({ kind, label, language })\n );\n },\n mediaEvents: [\"loadstart\"],\n textTracksEvents: [\"addtrack\", \"removetrack\", \"change\"],\n stateOwnersUpdateHandlers: [\n (_handler, stateOwners) => {\n var _a, _b;\n const { media, options } = stateOwners;\n if (!media)\n return;\n const updateDefaultSubtitlesCallback = (event) => {\n var _a2;\n if (!options.defaultSubtitles)\n return;\n const nonSubsEvent = event && ![TextTrackKinds.CAPTIONS, TextTrackKinds.SUBTITLES].includes(\n // @ts-ignore\n (_a2 = event == null ? void 0 : event.track) == null ? void 0 : _a2.kind\n );\n if (nonSubsEvent)\n return;\n toggleSubtitleTracks(stateOwners, true);\n };\n media.addEventListener(\n \"loadstart\",\n updateDefaultSubtitlesCallback\n );\n (_a = media.textTracks) == null ? void 0 : _a.addEventListener(\n \"addtrack\",\n updateDefaultSubtitlesCallback\n );\n (_b = media.textTracks) == null ? void 0 : _b.addEventListener(\n \"removetrack\",\n updateDefaultSubtitlesCallback\n );\n return () => {\n var _a2, _b2;\n media.removeEventListener(\n \"loadstart\",\n updateDefaultSubtitlesCallback\n );\n (_a2 = media.textTracks) == null ? void 0 : _a2.removeEventListener(\n \"addtrack\",\n updateDefaultSubtitlesCallback\n );\n (_b2 = media.textTracks) == null ? void 0 : _b2.removeEventListener(\n \"removetrack\",\n updateDefaultSubtitlesCallback\n );\n };\n }\n ]\n },\n mediaChaptersCues: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n if (!media)\n return [];\n const [chaptersTrack] = getTextTracksList(media, {\n kind: TextTrackKinds.CHAPTERS\n });\n return Array.from((_a = chaptersTrack == null ? void 0 : chaptersTrack.cues) != null ? _a : []).map(\n ({ text, startTime, endTime }) => ({\n text: parseHtmlToText(text),\n startTime,\n endTime\n })\n );\n },\n mediaEvents: [\"loadstart\", \"loadedmetadata\"],\n textTracksEvents: [\"addtrack\", \"removetrack\", \"change\"],\n stateOwnersUpdateHandlers: [\n (handler, stateOwners) => {\n var _a;\n const { media } = stateOwners;\n if (!media)\n return;\n const chaptersTrack = media.querySelector(\n 'track[kind=\"chapters\"][default][src]'\n );\n const shadowChaptersTrack = (_a = media.shadowRoot) == null ? void 0 : _a.querySelector(\n ':is(video,audio) > track[kind=\"chapters\"][default][src]'\n );\n chaptersTrack == null ? void 0 : chaptersTrack.addEventListener(\"load\", handler);\n shadowChaptersTrack == null ? void 0 : shadowChaptersTrack.addEventListener(\"load\", handler);\n return () => {\n chaptersTrack == null ? void 0 : chaptersTrack.removeEventListener(\"load\", handler);\n shadowChaptersTrack == null ? void 0 : shadowChaptersTrack.removeEventListener(\"load\", handler);\n };\n }\n ]\n },\n // Modeling state tied to root node\n mediaIsPip: {\n get(stateOwners) {\n var _a, _b;\n const { media, documentElement } = stateOwners;\n if (!media || !documentElement)\n return false;\n if (!documentElement.pictureInPictureElement)\n return false;\n if (documentElement.pictureInPictureElement === media)\n return true;\n if (documentElement.pictureInPictureElement instanceof HTMLMediaElement) {\n if (!((_a = media.localName) == null ? void 0 : _a.includes(\"-\")))\n return false;\n return containsComposedNode(\n media,\n documentElement.pictureInPictureElement\n );\n }\n if (documentElement.pictureInPictureElement.localName.includes(\"-\")) {\n let currentRoot = documentElement.pictureInPictureElement.shadowRoot;\n while (currentRoot == null ? void 0 : currentRoot.pictureInPictureElement) {\n if (currentRoot.pictureInPictureElement === media)\n return true;\n currentRoot = (_b = currentRoot.pictureInPictureElement) == null ? void 0 : _b.shadowRoot;\n }\n }\n return false;\n },\n set(value, stateOwners) {\n const { media } = stateOwners;\n if (!media)\n return;\n if (value) {\n if (!document.pictureInPictureEnabled) {\n console.warn(\"MediaChrome: Picture-in-picture is not enabled\");\n return;\n }\n if (!media.requestPictureInPicture) {\n console.warn(\n \"MediaChrome: The current media does not support picture-in-picture\"\n );\n return;\n }\n const warnNotReady = () => {\n console.warn(\n \"MediaChrome: The media is not ready for picture-in-picture. It must have a readyState > 0.\"\n );\n };\n media.requestPictureInPicture().catch((err) => {\n if (err.code === 11) {\n if (!media.src) {\n console.warn(\n \"MediaChrome: The media is not ready for picture-in-picture. It must have a src set.\"\n );\n return;\n }\n if (media.readyState === 0 && media.preload === \"none\") {\n const cleanup = () => {\n media.removeEventListener(\"loadedmetadata\", tryPip);\n media.preload = \"none\";\n };\n const tryPip = () => {\n media.requestPictureInPicture().catch(warnNotReady);\n cleanup();\n };\n media.addEventListener(\"loadedmetadata\", tryPip);\n media.preload = \"metadata\";\n setTimeout(() => {\n if (media.readyState === 0)\n warnNotReady();\n cleanup();\n }, 1e3);\n } else {\n throw err;\n }\n } else {\n throw err;\n }\n });\n } else if (document.pictureInPictureElement) {\n document.exitPictureInPicture();\n }\n },\n mediaEvents: [\"enterpictureinpicture\", \"leavepictureinpicture\"]\n },\n mediaRenditionList: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return [...(_a = media == null ? void 0 : media.videoRenditions) != null ? _a : []].map((videoRendition) => ({\n ...videoRendition\n }));\n },\n mediaEvents: [\"emptied\", \"loadstart\"],\n videoRenditionsEvents: [\"addrendition\", \"removerendition\"]\n },\n /** @TODO Model this as a derived value? (CJP) */\n mediaRenditionSelected: {\n get(stateOwners) {\n var _a, _b, _c;\n const { media } = stateOwners;\n return (_c = (_b = media == null ? void 0 : media.videoRenditions) == null ? void 0 : _b[(_a = media.videoRenditions) == null ? void 0 : _a.selectedIndex]) == null ? void 0 : _c.id;\n },\n set(value, stateOwners) {\n const { media } = stateOwners;\n if (!(media == null ? void 0 : media.videoRenditions)) {\n console.warn(\n \"MediaController: Rendition selection not supported by this media.\"\n );\n return;\n }\n const renditionId = value;\n const index = Array.prototype.findIndex.call(\n media.videoRenditions,\n (r) => r.id == renditionId\n );\n if (media.videoRenditions.selectedIndex != index) {\n media.videoRenditions.selectedIndex = index;\n }\n },\n mediaEvents: [\"emptied\"],\n videoRenditionsEvents: [\"addrendition\", \"removerendition\", \"change\"]\n },\n mediaAudioTrackList: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return [...(_a = media == null ? void 0 : media.audioTracks) != null ? _a : []];\n },\n mediaEvents: [\"emptied\", \"loadstart\"],\n audioTracksEvents: [\"addtrack\", \"removetrack\"]\n },\n mediaAudioTrackEnabled: {\n get(stateOwners) {\n var _a, _b;\n const { media } = stateOwners;\n return (_b = [...(_a = media == null ? void 0 : media.audioTracks) != null ? _a : []].find(\n (audioTrack) => audioTrack.enabled\n )) == null ? void 0 : _b.id;\n },\n set(value, stateOwners) {\n const { media } = stateOwners;\n if (!(media == null ? void 0 : media.audioTracks)) {\n console.warn(\n \"MediaChrome: Audio track selection not supported by this media.\"\n );\n return;\n }\n const audioTrackId = value;\n for (const track of media.audioTracks) {\n track.enabled = audioTrackId == track.id;\n }\n },\n mediaEvents: [\"emptied\"],\n audioTracksEvents: [\"addtrack\", \"removetrack\", \"change\"]\n },\n mediaIsFullscreen: {\n get(stateOwners) {\n return isFullscreen(stateOwners);\n },\n set(value, stateOwners, event) {\n var _a, _b;\n if (!value) {\n exitFullscreen(stateOwners);\n } else {\n enterFullscreen(stateOwners);\n const isPointer = event.detail;\n if (isPointer && !((_a = stateOwners.media) == null ? void 0 : _a.inert))\n (_b = stateOwners.media) == null ? void 0 : _b.focus();\n }\n },\n // older Safari version may require webkit-specific events\n rootEvents: [\"fullscreenchange\", \"webkitfullscreenchange\"],\n // iOS requires webkit-specific events on the video.\n mediaEvents: [\n \"webkitbeginfullscreen\",\n \"webkitendfullscreen\",\n \"webkitpresentationmodechanged\"\n ]\n },\n mediaIsCasting: {\n // Note this relies on a customized castable-video element.\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n if (!(media == null ? void 0 : media.remote) || ((_a = media.remote) == null ? void 0 : _a.state) === \"disconnected\")\n return false;\n return !!media.remote.state;\n },\n set(value, stateOwners) {\n var _a, _b;\n const { media } = stateOwners;\n if (!media)\n return;\n if (value && ((_a = media.remote) == null ? void 0 : _a.state) !== \"disconnected\")\n return;\n if (!value && ((_b = media.remote) == null ? void 0 : _b.state) !== \"connected\")\n return;\n if (typeof media.remote.prompt !== \"function\") {\n console.warn(\n \"MediaChrome: Casting is not supported in this environment\"\n );\n return;\n }\n media.remote.prompt().catch(() => {\n });\n },\n remoteEvents: [\"connect\", \"connecting\", \"disconnect\"]\n },\n // NOTE: Newly added state for tracking airplaying\n mediaIsAirplaying: {\n // NOTE: Cannot know if airplaying since Safari doesn't fully support HTMLMediaElement::remote yet (e.g. remote::state) (CJP)\n get() {\n return false;\n },\n set(_value, stateOwners) {\n const { media } = stateOwners;\n if (!media)\n return;\n if (!(media.webkitShowPlaybackTargetPicker && globalThis.WebKitPlaybackTargetAvailabilityEvent)) {\n console.error(\n \"MediaChrome: received a request to select AirPlay but AirPlay is not supported in this environment\"\n );\n return;\n }\n media.webkitShowPlaybackTargetPicker();\n },\n mediaEvents: [\"webkitcurrentplaybacktargetiswirelesschanged\"]\n },\n mediaFullscreenUnavailable: {\n get(stateOwners) {\n const { media } = stateOwners;\n if (!fullscreenSupported || !hasFullscreenSupport(media))\n return AvailabilityStates.UNSUPPORTED;\n return void 0;\n }\n },\n mediaPipUnavailable: {\n get(stateOwners) {\n const { media } = stateOwners;\n if (!pipSupported || !hasPipSupport(media))\n return AvailabilityStates.UNSUPPORTED;\n else if (media == null ? void 0 : media.disablePictureInPicture)\n return AvailabilityStates.UNAVAILABLE;\n return void 0;\n }\n },\n mediaVolumeUnavailable: {\n get(stateOwners) {\n const { media } = stateOwners;\n if (volumeSupported === false || (media == null ? void 0 : media.volume) == void 0) {\n return AvailabilityStates.UNSUPPORTED;\n }\n return void 0;\n },\n // NOTE: Slightly different impl here. Added generic support for\n // \"stateOwnersUpdateHandlers\" since the original impl had to hack around\n // race conditions. (CJP)\n stateOwnersUpdateHandlers: [\n (handler) => {\n if (volumeSupported == null) {\n volumeSupportPromise.then(\n (supported) => handler(supported ? void 0 : AvailabilityStates.UNSUPPORTED)\n );\n }\n }\n ]\n },\n mediaCastUnavailable: {\n // @ts-ignore\n get(stateOwners, { availability = \"not-available\" } = {}) {\n var _a;\n const { media } = stateOwners;\n if (!castSupported || !((_a = media == null ? void 0 : media.remote) == null ? void 0 : _a.state)) {\n return AvailabilityStates.UNSUPPORTED;\n }\n if (availability == null || availability === \"available\")\n return void 0;\n return AvailabilityStates.UNAVAILABLE;\n },\n stateOwnersUpdateHandlers: [\n (handler, stateOwners) => {\n var _a;\n const { media } = stateOwners;\n if (!media)\n return;\n const remotePlaybackDisabled = media.disableRemotePlayback || media.hasAttribute(\"disableremoteplayback\");\n if (!remotePlaybackDisabled) {\n (_a = media == null ? void 0 : media.remote) == null ? void 0 : _a.watchAvailability((availabilityBool) => {\n const availability = availabilityBool ? \"available\" : \"not-available\";\n handler({ availability });\n }).catch((error) => {\n if (error.name === \"NotSupportedError\") {\n handler({ availability: null });\n } else {\n handler({ availability: \"not-available\" });\n }\n });\n }\n return () => {\n var _a2;\n (_a2 = media == null ? void 0 : media.remote) == null ? void 0 : _a2.cancelWatchAvailability().catch(() => {\n });\n };\n }\n ]\n },\n mediaAirplayUnavailable: {\n get(_stateOwners, event) {\n if (!airplaySupported)\n return AvailabilityStates.UNSUPPORTED;\n if ((event == null ? void 0 : event.availability) === \"not-available\") {\n return AvailabilityStates.UNAVAILABLE;\n }\n return void 0;\n },\n // NOTE: Keeping this event, as it's still the documented way of monitoring\n // for AirPlay availability from Apple.\n // See: https://developer.apple.com/documentation/webkitjs/adding_an_airplay_button_to_your_safari_media_controls#2940021 (CJP)\n mediaEvents: [\"webkitplaybacktargetavailabilitychanged\"],\n stateOwnersUpdateHandlers: [\n (handler, stateOwners) => {\n var _a;\n const { media } = stateOwners;\n if (!media)\n return;\n const remotePlaybackDisabled = media.disableRemotePlayback || media.hasAttribute(\"disableremoteplayback\");\n if (!remotePlaybackDisabled) {\n (_a = media == null ? void 0 : media.remote) == null ? void 0 : _a.watchAvailability((availabilityBool) => {\n const availability = availabilityBool ? \"available\" : \"not-available\";\n handler({ availability });\n }).catch((error) => {\n if (error.name === \"NotSupportedError\") {\n handler({ availability: null });\n } else {\n handler({ availability: \"not-available\" });\n }\n });\n }\n return () => {\n var _a2;\n (_a2 = media == null ? void 0 : media.remote) == null ? void 0 : _a2.cancelWatchAvailability().catch(() => {\n });\n };\n }\n ]\n },\n mediaRenditionUnavailable: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n if (!(media == null ? void 0 : media.videoRenditions)) {\n return AvailabilityStates.UNSUPPORTED;\n }\n if (!((_a = media.videoRenditions) == null ? void 0 : _a.length)) {\n return AvailabilityStates.UNAVAILABLE;\n }\n return void 0;\n },\n mediaEvents: [\"emptied\", \"loadstart\"],\n videoRenditionsEvents: [\"addrendition\", \"removerendition\"]\n },\n mediaAudioTrackUnavailable: {\n get(stateOwners) {\n var _a, _b;\n const { media } = stateOwners;\n if (!(media == null ? void 0 : media.audioTracks)) {\n return AvailabilityStates.UNSUPPORTED;\n }\n if (((_b = (_a = media.audioTracks) == null ? void 0 : _a.length) != null ? _b : 0) <= 1) {\n return AvailabilityStates.UNAVAILABLE;\n }\n return void 0;\n },\n mediaEvents: [\"emptied\", \"loadstart\"],\n audioTracksEvents: [\"addtrack\", \"removetrack\"]\n },\n mediaLang: {\n get(stateOwners) {\n const { options: { mediaLang } = {} } = stateOwners;\n return mediaLang != null ? mediaLang : \"en\";\n }\n }\n};\nexport {\n prepareStateOwners,\n stateMediator,\n volumeSupportPromise\n};\n","import { globalThis } from \"../utils/server-safe-globals.js\";\nimport {\n MediaUIEvents,\n StreamTypes,\n TextTrackKinds,\n TextTrackModes\n} from \"../constants.js\";\nimport {\n getTextTracksList,\n parseTracks,\n updateTracksModeTo\n} from \"../utils/captions.js\";\nimport { getSubtitleTracks, toggleSubtitleTracks } from \"./util.js\";\nconst requestMap = {\n /**\n * @TODO Consider adding state to `StateMediator` for e.g. `mediaThumbnailCues` and use that for derived state here (CJP)\n */\n [MediaUIEvents.MEDIA_PREVIEW_REQUEST](stateMediator, stateOwners, { detail }) {\n var _a, _b, _c;\n const { media } = stateOwners;\n const mediaPreviewTime = detail != null ? detail : void 0;\n let mediaPreviewImage = void 0;\n let mediaPreviewCoords = void 0;\n if (media && mediaPreviewTime != null) {\n const [track] = getTextTracksList(media, {\n kind: TextTrackKinds.METADATA,\n label: \"thumbnails\"\n });\n const cue = Array.prototype.find.call((_a = track == null ? void 0 : track.cues) != null ? _a : [], (c, i, cs) => {\n if (i === 0)\n return c.endTime > mediaPreviewTime;\n if (i === cs.length - 1)\n return c.startTime <= mediaPreviewTime;\n return c.startTime <= mediaPreviewTime && c.endTime > mediaPreviewTime;\n });\n if (cue) {\n const base = !/'^(?:[a-z]+:)?\\/\\//i.test(cue.text) ? (_b = media == null ? void 0 : media.querySelector(\n 'track[label=\"thumbnails\"]'\n )) == null ? void 0 : _b.src : void 0;\n const url = new URL(cue.text, base);\n const previewCoordsStr = new URLSearchParams(url.hash).get(\"#xywh\");\n mediaPreviewCoords = previewCoordsStr.split(\",\").map((numStr) => +numStr);\n mediaPreviewImage = url.href;\n }\n }\n const mediaDuration = stateMediator.mediaDuration.get(stateOwners);\n const mediaChaptersCues = stateMediator.mediaChaptersCues.get(stateOwners);\n let mediaPreviewChapter = (_c = mediaChaptersCues.find((c, i, cs) => {\n if (i === cs.length - 1 && mediaDuration === c.endTime) {\n return c.startTime <= mediaPreviewTime && c.endTime >= mediaPreviewTime;\n }\n return c.startTime <= mediaPreviewTime && c.endTime > mediaPreviewTime;\n })) == null ? void 0 : _c.text;\n if (detail != null && mediaPreviewChapter == null) {\n mediaPreviewChapter = \"\";\n }\n return {\n mediaPreviewTime,\n mediaPreviewImage,\n mediaPreviewCoords,\n mediaPreviewChapter\n };\n },\n [MediaUIEvents.MEDIA_PAUSE_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaPaused\";\n const value = true;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_PLAY_REQUEST](stateMediator, stateOwners) {\n var _a, _b, _c, _d;\n const key = \"mediaPaused\";\n const value = false;\n const isLive = stateMediator.mediaStreamType.get(stateOwners) === StreamTypes.LIVE;\n const canAutoSeekToLive = !((_a = stateOwners.options) == null ? void 0 : _a.noAutoSeekToLive);\n const isDVR = stateMediator.mediaTargetLiveWindow.get(stateOwners) > 0;\n if (isLive && canAutoSeekToLive && !isDVR) {\n const seekableEnd = (_b = stateMediator.mediaSeekable.get(stateOwners)) == null ? void 0 : _b[1];\n if (seekableEnd) {\n const seekToLiveOffset = (_d = (_c = stateOwners.options) == null ? void 0 : _c.seekToLiveOffset) != null ? _d : 0;\n const liveEdgeTime = seekableEnd - seekToLiveOffset;\n stateMediator.mediaCurrentTime.set(liveEdgeTime, stateOwners);\n }\n }\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST](stateMediator, stateOwners, { detail }) {\n const key = \"mediaPlaybackRate\";\n const value = detail;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_MUTE_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaMuted\";\n const value = true;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_UNMUTE_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaMuted\";\n const value = false;\n if (!stateMediator.mediaVolume.get(stateOwners)) {\n stateMediator.mediaVolume.set(0.25, stateOwners);\n }\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_LOOP_REQUEST](stateMediator, stateOwners, { detail }) {\n const key = \"mediaLoop\";\n const value = !!detail;\n stateMediator[key].set(value, stateOwners);\n return { mediaLoop: value };\n },\n [MediaUIEvents.MEDIA_VOLUME_REQUEST](stateMediator, stateOwners, { detail }) {\n const key = \"mediaVolume\";\n const value = detail;\n if (value && stateMediator.mediaMuted.get(stateOwners)) {\n stateMediator.mediaMuted.set(false, stateOwners);\n }\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_SEEK_REQUEST](stateMediator, stateOwners, { detail }) {\n const key = \"mediaCurrentTime\";\n const value = detail;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_SEEK_TO_LIVE_REQUEST](stateMediator, stateOwners) {\n var _a, _b, _c;\n const key = \"mediaCurrentTime\";\n const seekableEnd = (_a = stateMediator.mediaSeekable.get(stateOwners)) == null ? void 0 : _a[1];\n if (Number.isNaN(Number(seekableEnd)))\n return;\n const seekToLiveOffset = (_c = (_b = stateOwners.options) == null ? void 0 : _b.seekToLiveOffset) != null ? _c : 0;\n const value = seekableEnd - seekToLiveOffset;\n stateMediator[key].set(value, stateOwners);\n },\n // Text Tracks state change requests\n [MediaUIEvents.MEDIA_SHOW_SUBTITLES_REQUEST](_stateMediator, stateOwners, { detail }) {\n var _a;\n const { options } = stateOwners;\n const tracks = getSubtitleTracks(stateOwners);\n const tracksToUpdate = parseTracks(detail);\n const preferredLanguage = (_a = tracksToUpdate[0]) == null ? void 0 : _a.language;\n if (preferredLanguage && !options.noSubtitlesLangPref) {\n globalThis.localStorage.setItem(\n \"media-chrome-pref-subtitles-lang\",\n preferredLanguage\n );\n }\n updateTracksModeTo(TextTrackModes.SHOWING, tracks, tracksToUpdate);\n },\n [MediaUIEvents.MEDIA_DISABLE_SUBTITLES_REQUEST](_stateMediator, stateOwners, { detail }) {\n const tracks = getSubtitleTracks(stateOwners);\n const tracksToUpdate = detail != null ? detail : [];\n updateTracksModeTo(TextTrackModes.DISABLED, tracks, tracksToUpdate);\n },\n [MediaUIEvents.MEDIA_TOGGLE_SUBTITLES_REQUEST](_stateMediator, stateOwners, { detail }) {\n toggleSubtitleTracks(stateOwners, detail);\n },\n // Renditions/Tracks state change requests\n [MediaUIEvents.MEDIA_RENDITION_REQUEST](stateMediator, stateOwners, { detail }) {\n const key = \"mediaRenditionSelected\";\n const value = detail;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_AUDIO_TRACK_REQUEST](stateMediator, stateOwners, { detail }) {\n const key = \"mediaAudioTrackEnabled\";\n const value = detail;\n stateMediator[key].set(value, stateOwners);\n },\n // State change requests dependent on root node\n [MediaUIEvents.MEDIA_ENTER_PIP_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaIsPip\";\n const value = true;\n if (stateMediator.mediaIsFullscreen.get(stateOwners)) {\n stateMediator.mediaIsFullscreen.set(false, stateOwners);\n }\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_EXIT_PIP_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaIsPip\";\n const value = false;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_ENTER_FULLSCREEN_REQUEST](stateMediator, stateOwners, event) {\n const key = \"mediaIsFullscreen\";\n const value = true;\n if (stateMediator.mediaIsPip.get(stateOwners)) {\n stateMediator.mediaIsPip.set(false, stateOwners);\n }\n stateMediator[key].set(value, stateOwners, event);\n },\n [MediaUIEvents.MEDIA_EXIT_FULLSCREEN_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaIsFullscreen\";\n const value = false;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_ENTER_CAST_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaIsCasting\";\n const value = true;\n if (stateMediator.mediaIsFullscreen.get(stateOwners)) {\n stateMediator.mediaIsFullscreen.set(false, stateOwners);\n }\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_EXIT_CAST_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaIsCasting\";\n const value = false;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_AIRPLAY_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaIsAirplaying\";\n const value = true;\n stateMediator[key].set(value, stateOwners);\n }\n};\nexport {\n requestMap\n};\n","import {\n stateMediator as defaultStateMediator,\n prepareStateOwners\n} from \"./state-mediator.js\";\nimport { areValuesEq } from \"./util.js\";\nimport { requestMap as defaultRequestMap } from \"./request-map.js\";\nconst createMediaStore = ({\n media,\n fullscreenElement,\n documentElement,\n stateMediator = defaultStateMediator,\n requestMap = defaultRequestMap,\n options = {},\n monitorStateOwnersOnlyWithSubscriptions = true\n}) => {\n const callbacks = [];\n const stateOwners = {\n // Spreading options here since folks should not rely on holding onto references\n // for any app-level logic wrt options.\n options: { ...options }\n };\n let state = Object.freeze({\n mediaPreviewTime: void 0,\n mediaPreviewImage: void 0,\n mediaPreviewCoords: void 0,\n mediaPreviewChapter: void 0\n });\n const updateState = (nextStateDelta) => {\n if (nextStateDelta == void 0)\n return;\n if (areValuesEq(nextStateDelta, state)) {\n return;\n }\n state = Object.freeze({\n ...state,\n ...nextStateDelta\n });\n callbacks.forEach((cb) => cb(state));\n };\n const updateStateFromFacade = () => {\n const nextState = Object.entries(stateMediator).reduce(\n (nextState2, [stateName, { get }]) => {\n nextState2[stateName] = get(stateOwners);\n return nextState2;\n },\n {}\n );\n updateState(nextState);\n };\n const stateUpdateHandlers = {};\n let nextStateOwners = void 0;\n const updateStateOwners = async (nextStateOwnersDelta, nextSubscriberCount) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n const pendingUpdate = !!nextStateOwners;\n nextStateOwners = {\n ...stateOwners,\n ...nextStateOwners != null ? nextStateOwners : {},\n ...nextStateOwnersDelta\n };\n if (pendingUpdate)\n return;\n await prepareStateOwners(...Object.values(nextStateOwnersDelta));\n const shouldTeardownFromSubscriberCount = callbacks.length > 0 && nextSubscriberCount === 0 && monitorStateOwnersOnlyWithSubscriptions;\n const mediaChanged = stateOwners.media !== nextStateOwners.media;\n const textTracksChanged = ((_a = stateOwners.media) == null ? void 0 : _a.textTracks) !== ((_b = nextStateOwners.media) == null ? void 0 : _b.textTracks);\n const videoRenditionsChanged = ((_c = stateOwners.media) == null ? void 0 : _c.videoRenditions) !== ((_d = nextStateOwners.media) == null ? void 0 : _d.videoRenditions);\n const audioTracksChanged = ((_e = stateOwners.media) == null ? void 0 : _e.audioTracks) !== ((_f = nextStateOwners.media) == null ? void 0 : _f.audioTracks);\n const remoteChanged = ((_g = stateOwners.media) == null ? void 0 : _g.remote) !== ((_h = nextStateOwners.media) == null ? void 0 : _h.remote);\n const rootNodeChanged = stateOwners.documentElement !== nextStateOwners.documentElement;\n const teardownMedia = !!stateOwners.media && (mediaChanged || shouldTeardownFromSubscriberCount);\n const teardownTextTracks = !!((_i = stateOwners.media) == null ? void 0 : _i.textTracks) && (textTracksChanged || shouldTeardownFromSubscriberCount);\n const teardownVideoRenditions = !!((_j = stateOwners.media) == null ? void 0 : _j.videoRenditions) && (videoRenditionsChanged || shouldTeardownFromSubscriberCount);\n const teardownAudioTracks = !!((_k = stateOwners.media) == null ? void 0 : _k.audioTracks) && (audioTracksChanged || shouldTeardownFromSubscriberCount);\n const teardownRemote = !!((_l = stateOwners.media) == null ? void 0 : _l.remote) && (remoteChanged || shouldTeardownFromSubscriberCount);\n const teardownRootNode = !!stateOwners.documentElement && (rootNodeChanged || shouldTeardownFromSubscriberCount);\n const teardownSomething = teardownMedia || teardownTextTracks || teardownVideoRenditions || teardownAudioTracks || teardownRemote || teardownRootNode;\n const shouldSetupFromSubscriberCount = callbacks.length === 0 && nextSubscriberCount === 1 && monitorStateOwnersOnlyWithSubscriptions;\n const setupMedia = !!nextStateOwners.media && (mediaChanged || shouldSetupFromSubscriberCount);\n const setupTextTracks = !!((_m = nextStateOwners.media) == null ? void 0 : _m.textTracks) && (textTracksChanged || shouldSetupFromSubscriberCount);\n const setupVideoRenditions = !!((_n = nextStateOwners.media) == null ? void 0 : _n.videoRenditions) && (videoRenditionsChanged || shouldSetupFromSubscriberCount);\n const setupAudioTracks = !!((_o = nextStateOwners.media) == null ? void 0 : _o.audioTracks) && (audioTracksChanged || shouldSetupFromSubscriberCount);\n const setupRemote = !!((_p = nextStateOwners.media) == null ? void 0 : _p.remote) && (remoteChanged || shouldSetupFromSubscriberCount);\n const setupRootNode = !!nextStateOwners.documentElement && (rootNodeChanged || shouldSetupFromSubscriberCount);\n const setupSomething = setupMedia || setupTextTracks || setupVideoRenditions || setupAudioTracks || setupRemote || setupRootNode;\n const somethingToDo = teardownSomething || setupSomething;\n if (!somethingToDo) {\n Object.entries(nextStateOwners).forEach(\n ([stateOwnerName, stateOwner]) => {\n stateOwners[stateOwnerName] = stateOwner;\n }\n );\n updateStateFromFacade();\n nextStateOwners = void 0;\n return;\n }\n Object.entries(stateMediator).forEach(\n ([\n stateName,\n {\n get,\n mediaEvents = [],\n textTracksEvents = [],\n videoRenditionsEvents = [],\n audioTracksEvents = [],\n remoteEvents = [],\n rootEvents = [],\n stateOwnersUpdateHandlers = []\n }\n ]) => {\n if (!stateUpdateHandlers[stateName]) {\n stateUpdateHandlers[stateName] = {};\n }\n const handler = (event) => {\n const nextValue = get(stateOwners, event);\n updateState({ [stateName]: nextValue });\n };\n let prevHandler;\n prevHandler = stateUpdateHandlers[stateName].mediaEvents;\n mediaEvents.forEach((eventType) => {\n if (prevHandler && teardownMedia) {\n stateOwners.media.removeEventListener(eventType, prevHandler);\n stateUpdateHandlers[stateName].mediaEvents = void 0;\n }\n if (setupMedia) {\n nextStateOwners.media.addEventListener(eventType, handler);\n stateUpdateHandlers[stateName].mediaEvents = handler;\n }\n });\n prevHandler = stateUpdateHandlers[stateName].textTracksEvents;\n textTracksEvents.forEach((eventType) => {\n var _a2, _b2;\n if (prevHandler && teardownTextTracks) {\n (_a2 = stateOwners.media.textTracks) == null ? void 0 : _a2.removeEventListener(\n eventType,\n prevHandler\n );\n stateUpdateHandlers[stateName].textTracksEvents = void 0;\n }\n if (setupTextTracks) {\n (_b2 = nextStateOwners.media.textTracks) == null ? void 0 : _b2.addEventListener(\n eventType,\n handler\n );\n stateUpdateHandlers[stateName].textTracksEvents = handler;\n }\n });\n prevHandler = stateUpdateHandlers[stateName].videoRenditionsEvents;\n videoRenditionsEvents.forEach((eventType) => {\n var _a2, _b2;\n if (prevHandler && teardownVideoRenditions) {\n (_a2 = stateOwners.media.videoRenditions) == null ? void 0 : _a2.removeEventListener(\n eventType,\n prevHandler\n );\n stateUpdateHandlers[stateName].videoRenditionsEvents = void 0;\n }\n if (setupVideoRenditions) {\n (_b2 = nextStateOwners.media.videoRenditions) == null ? void 0 : _b2.addEventListener(\n eventType,\n handler\n );\n stateUpdateHandlers[stateName].videoRenditionsEvents = handler;\n }\n });\n prevHandler = stateUpdateHandlers[stateName].audioTracksEvents;\n audioTracksEvents.forEach((eventType) => {\n var _a2, _b2;\n if (prevHandler && teardownAudioTracks) {\n (_a2 = stateOwners.media.audioTracks) == null ? void 0 : _a2.removeEventListener(\n eventType,\n prevHandler\n );\n stateUpdateHandlers[stateName].audioTracksEvents = void 0;\n }\n if (setupAudioTracks) {\n (_b2 = nextStateOwners.media.audioTracks) == null ? void 0 : _b2.addEventListener(\n eventType,\n handler\n );\n stateUpdateHandlers[stateName].audioTracksEvents = handler;\n }\n });\n prevHandler = stateUpdateHandlers[stateName].remoteEvents;\n remoteEvents.forEach((eventType) => {\n var _a2, _b2;\n if (prevHandler && teardownRemote) {\n (_a2 = stateOwners.media.remote) == null ? void 0 : _a2.removeEventListener(\n eventType,\n prevHandler\n );\n stateUpdateHandlers[stateName].remoteEvents = void 0;\n }\n if (setupRemote) {\n (_b2 = nextStateOwners.media.remote) == null ? void 0 : _b2.addEventListener(eventType, handler);\n stateUpdateHandlers[stateName].remoteEvents = handler;\n }\n });\n prevHandler = stateUpdateHandlers[stateName].rootEvents;\n rootEvents.forEach((eventType) => {\n if (prevHandler && teardownRootNode) {\n stateOwners.documentElement.removeEventListener(\n eventType,\n prevHandler\n );\n stateUpdateHandlers[stateName].rootEvents = void 0;\n }\n if (setupRootNode) {\n nextStateOwners.documentElement.addEventListener(\n eventType,\n handler\n );\n stateUpdateHandlers[stateName].rootEvents = handler;\n }\n });\n const prevHandlerTeardowns = stateUpdateHandlers[stateName].stateOwnersUpdateHandlers;\n if (prevHandlerTeardowns && teardownSomething) {\n const teardowns = Array.isArray(prevHandlerTeardowns) ? prevHandlerTeardowns : [prevHandlerTeardowns];\n teardowns.forEach((teardown) => {\n if (typeof teardown === \"function\") {\n teardown();\n }\n });\n }\n if (setupSomething) {\n const newTeardowns = stateOwnersUpdateHandlers.map((fn) => fn(handler, nextStateOwners)).filter((teardown) => typeof teardown === \"function\");\n stateUpdateHandlers[stateName].stateOwnersUpdateHandlers = newTeardowns.length === 1 ? newTeardowns[0] : newTeardowns;\n } else if (teardownSomething) {\n stateUpdateHandlers[stateName].stateOwnersUpdateHandlers = void 0;\n }\n }\n );\n Object.entries(nextStateOwners).forEach(([stateOwnerName, stateOwner]) => {\n stateOwners[stateOwnerName] = stateOwner;\n });\n updateStateFromFacade();\n nextStateOwners = void 0;\n };\n updateStateOwners({ media, fullscreenElement, documentElement, options });\n return {\n // note that none of these cases directly interact with the media element, root node, full screen element, etc.\n // note these \"actions\" could just be the events if we wanted, especially if we normalize on \"detail\" for\n // any payload-relevant values\n // This is roughly equivalent to our used to be in our state requests dictionary object, though much of the\n // \"heavy lifting\" is now moved into the facade `set()`\n dispatch(action) {\n const { type, detail } = action;\n if (requestMap[type] && state.mediaErrorCode == null) {\n updateState(requestMap[type](stateMediator, stateOwners, action));\n return;\n }\n if (type === \"mediaelementchangerequest\") {\n updateStateOwners({ media: detail });\n } else if (type === \"fullscreenelementchangerequest\") {\n updateStateOwners({ fullscreenElement: detail });\n } else if (type === \"documentelementchangerequest\") {\n updateStateOwners({ documentElement: detail });\n } else if (type === \"optionschangerequest\") {\n Object.entries(detail != null ? detail : {}).forEach(([optionName, optionValue]) => {\n stateOwners.options[optionName] = optionValue;\n });\n updateStateFromFacade();\n }\n },\n getState() {\n return state;\n },\n subscribe(callback) {\n updateStateOwners({}, callbacks.length + 1);\n callbacks.push(callback);\n callback(state);\n return () => {\n const idx = callbacks.indexOf(callback);\n if (idx >= 0) {\n updateStateOwners({}, callbacks.length - 1);\n callbacks.splice(idx, 1);\n }\n };\n }\n };\n};\nvar media_store_default = createMediaStore;\nexport {\n createMediaStore,\n media_store_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _hotKeys, _fullscreenElement, _mediaStore, _keyboardShortcutsDialog, _mediaStateCallback, _mediaStoreUnsubscribe, _mediaStateEventHandler, _subtitlesState, _setupDefaultStore, setupDefaultStore_fn, _keyUpHandler, _keyDownHandler, keyDownHandler_fn, _showKeyboardShortcutsDialog, showKeyboardShortcutsDialog_fn;\nimport { MediaContainer } from \"./media-container.js\";\nimport { document, globalThis } from \"./utils/server-safe-globals.js\";\nimport { AttributeTokenList } from \"./utils/attribute-token-list.js\";\nimport {\n delay,\n stringifyRenditionList,\n stringifyAudioTrackList\n} from \"./utils/utils.js\";\nimport { stringifyTextTrackList } from \"./utils/captions.js\";\nimport {\n MediaUIEvents,\n MediaUIAttributes,\n MediaStateReceiverAttributes,\n AttributeToStateChangeEventMap,\n MediaUIProps\n} from \"./constants.js\";\nimport {\n getBooleanAttr,\n getNumericAttr,\n getStringAttr,\n setBooleanAttr,\n setNumericAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nimport { createMediaStore } from \"./media-store/media-store.js\";\nimport { setLanguage } from \"./utils/i18n.js\";\nconst ButtonPressedKeys = [\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"Enter\",\n \" \",\n \"f\",\n \"m\",\n \"k\",\n \"c\",\n \"l\",\n \"j\",\n \">\",\n \"<\",\n \"p\"\n];\nconst DEFAULT_SEEK_OFFSET = 10;\nconst DEFAULT_VOLUME_STEP = 0.025;\nconst DEFAULT_PLAYBACK_RATE_STEP = 0.25;\nconst MIN_PLAYBACK_RATE = 0.25;\nconst MAX_PLAYBACK_RATE = 2;\nconst Attributes = {\n DEFAULT_SUBTITLES: \"defaultsubtitles\",\n DEFAULT_STREAM_TYPE: \"defaultstreamtype\",\n DEFAULT_DURATION: \"defaultduration\",\n FULLSCREEN_ELEMENT: \"fullscreenelement\",\n HOTKEYS: \"hotkeys\",\n KEYBOARD_BACKWARD_SEEK_OFFSET: \"keyboardbackwardseekoffset\",\n KEYBOARD_FORWARD_SEEK_OFFSET: \"keyboardforwardseekoffset\",\n KEYBOARD_DOWN_VOLUME_STEP: \"keyboarddownvolumestep\",\n KEYBOARD_UP_VOLUME_STEP: \"keyboardupvolumestep\",\n KEYS_USED: \"keysused\",\n LANG: \"lang\",\n LOOP: \"loop\",\n LIVE_EDGE_OFFSET: \"liveedgeoffset\",\n NO_AUTO_SEEK_TO_LIVE: \"noautoseektolive\",\n NO_DEFAULT_STORE: \"nodefaultstore\",\n NO_HOTKEYS: \"nohotkeys\",\n NO_MUTED_PREF: \"nomutedpref\",\n NO_SUBTITLES_LANG_PREF: \"nosubtitleslangpref\",\n NO_VOLUME_PREF: \"novolumepref\",\n SEEK_TO_LIVE_OFFSET: \"seektoliveoffset\"\n};\nclass MediaController extends MediaContainer {\n constructor() {\n super();\n __privateAdd(this, _setupDefaultStore);\n __privateAdd(this, _keyDownHandler);\n __privateAdd(this, _showKeyboardShortcutsDialog);\n this.mediaStateReceivers = [];\n this.associatedElementSubscriptions = /* @__PURE__ */ new Map();\n __privateAdd(this, _hotKeys, new AttributeTokenList(this, Attributes.HOTKEYS));\n __privateAdd(this, _fullscreenElement, void 0);\n __privateAdd(this, _mediaStore, void 0);\n __privateAdd(this, _keyboardShortcutsDialog, null);\n __privateAdd(this, _mediaStateCallback, void 0);\n __privateAdd(this, _mediaStoreUnsubscribe, void 0);\n __privateAdd(this, _mediaStateEventHandler, (event) => {\n var _a;\n (_a = __privateGet(this, _mediaStore)) == null ? void 0 : _a.dispatch(event);\n });\n __privateAdd(this, _subtitlesState, void 0);\n __privateAdd(this, _keyUpHandler, (e) => {\n const { key, shiftKey } = e;\n const isShiftSlash = shiftKey && (key === \"/\" || key === \"?\");\n const shouldHandle = isShiftSlash || ButtonPressedKeys.includes(key);\n if (!shouldHandle) {\n this.removeEventListener(\"keyup\", __privateGet(this, _keyUpHandler));\n return;\n }\n this.keyboardShortcutHandler(e);\n });\n this.associateElement(this);\n let prevState = {};\n __privateSet(this, _mediaStateCallback, (nextState) => {\n Object.entries(nextState).forEach(([stateName, stateValue]) => {\n if (stateName in prevState && prevState[stateName] === stateValue)\n return;\n this.propagateMediaState(stateName, stateValue);\n const attrName = stateName.toLowerCase();\n const evt = new globalThis.CustomEvent(\n AttributeToStateChangeEventMap[attrName],\n { composed: true, detail: stateValue }\n );\n this.dispatchEvent(evt);\n });\n prevState = nextState;\n });\n }\n static get observedAttributes() {\n return super.observedAttributes.concat(\n Attributes.NO_HOTKEYS,\n Attributes.HOTKEYS,\n Attributes.DEFAULT_STREAM_TYPE,\n Attributes.DEFAULT_SUBTITLES,\n Attributes.DEFAULT_DURATION,\n Attributes.NO_MUTED_PREF,\n Attributes.NO_VOLUME_PREF,\n Attributes.LANG,\n Attributes.LOOP,\n Attributes.LIVE_EDGE_OFFSET,\n Attributes.SEEK_TO_LIVE_OFFSET,\n Attributes.NO_AUTO_SEEK_TO_LIVE\n );\n }\n get mediaStore() {\n return __privateGet(this, _mediaStore);\n }\n set mediaStore(value) {\n var _a, _b;\n if (__privateGet(this, _mediaStore)) {\n (_a = __privateGet(this, _mediaStoreUnsubscribe)) == null ? void 0 : _a.call(this);\n __privateSet(this, _mediaStoreUnsubscribe, void 0);\n }\n __privateSet(this, _mediaStore, value);\n if (!__privateGet(this, _mediaStore) && !this.hasAttribute(Attributes.NO_DEFAULT_STORE)) {\n __privateMethod(this, _setupDefaultStore, setupDefaultStore_fn).call(this);\n return;\n }\n __privateSet(this, _mediaStoreUnsubscribe, (_b = __privateGet(this, _mediaStore)) == null ? void 0 : _b.subscribe(\n __privateGet(this, _mediaStateCallback)\n ));\n }\n get fullscreenElement() {\n var _a;\n return (_a = __privateGet(this, _fullscreenElement)) != null ? _a : this;\n }\n set fullscreenElement(element) {\n var _a;\n if (this.hasAttribute(Attributes.FULLSCREEN_ELEMENT)) {\n this.removeAttribute(Attributes.FULLSCREEN_ELEMENT);\n }\n __privateSet(this, _fullscreenElement, element);\n (_a = __privateGet(this, _mediaStore)) == null ? void 0 : _a.dispatch({\n type: \"fullscreenelementchangerequest\",\n detail: this.fullscreenElement\n });\n }\n get defaultSubtitles() {\n return getBooleanAttr(this, Attributes.DEFAULT_SUBTITLES);\n }\n set defaultSubtitles(value) {\n setBooleanAttr(this, Attributes.DEFAULT_SUBTITLES, value);\n }\n get defaultStreamType() {\n return getStringAttr(this, Attributes.DEFAULT_STREAM_TYPE);\n }\n set defaultStreamType(value) {\n setStringAttr(this, Attributes.DEFAULT_STREAM_TYPE, value);\n }\n get defaultDuration() {\n return getNumericAttr(this, Attributes.DEFAULT_DURATION);\n }\n set defaultDuration(value) {\n setNumericAttr(this, Attributes.DEFAULT_DURATION, value);\n }\n get noHotkeys() {\n return getBooleanAttr(this, Attributes.NO_HOTKEYS);\n }\n set noHotkeys(value) {\n setBooleanAttr(this, Attributes.NO_HOTKEYS, value);\n }\n get keysUsed() {\n return getStringAttr(this, Attributes.KEYS_USED);\n }\n set keysUsed(value) {\n setStringAttr(this, Attributes.KEYS_USED, value);\n }\n get liveEdgeOffset() {\n return getNumericAttr(this, Attributes.LIVE_EDGE_OFFSET);\n }\n set liveEdgeOffset(value) {\n setNumericAttr(this, Attributes.LIVE_EDGE_OFFSET, value);\n }\n get noAutoSeekToLive() {\n return getBooleanAttr(this, Attributes.NO_AUTO_SEEK_TO_LIVE);\n }\n set noAutoSeekToLive(value) {\n setBooleanAttr(this, Attributes.NO_AUTO_SEEK_TO_LIVE, value);\n }\n get noVolumePref() {\n return getBooleanAttr(this, Attributes.NO_VOLUME_PREF);\n }\n set noVolumePref(value) {\n setBooleanAttr(this, Attributes.NO_VOLUME_PREF, value);\n }\n get noMutedPref() {\n return getBooleanAttr(this, Attributes.NO_MUTED_PREF);\n }\n set noMutedPref(value) {\n setBooleanAttr(this, Attributes.NO_MUTED_PREF, value);\n }\n get noSubtitlesLangPref() {\n return getBooleanAttr(this, Attributes.NO_SUBTITLES_LANG_PREF);\n }\n set noSubtitlesLangPref(value) {\n setBooleanAttr(this, Attributes.NO_SUBTITLES_LANG_PREF, value);\n }\n get noDefaultStore() {\n return getBooleanAttr(this, Attributes.NO_DEFAULT_STORE);\n }\n set noDefaultStore(value) {\n setBooleanAttr(this, Attributes.NO_DEFAULT_STORE, value);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === Attributes.NO_HOTKEYS) {\n if (newValue !== oldValue && newValue === \"\") {\n if (this.hasAttribute(Attributes.HOTKEYS)) {\n console.warn(\n \"Media Chrome: Both `hotkeys` and `nohotkeys` have been set. All hotkeys will be disabled.\"\n );\n }\n this.disableHotkeys();\n } else if (newValue !== oldValue && newValue === null) {\n this.enableHotkeys();\n }\n } else if (attrName === Attributes.HOTKEYS) {\n __privateGet(this, _hotKeys).value = newValue;\n } else if (attrName === Attributes.DEFAULT_SUBTITLES && newValue !== oldValue) {\n (_a = __privateGet(this, _mediaStore)) == null ? void 0 : _a.dispatch({\n type: \"optionschangerequest\",\n detail: {\n defaultSubtitles: this.hasAttribute(Attributes.DEFAULT_SUBTITLES)\n }\n });\n } else if (attrName === Attributes.DEFAULT_STREAM_TYPE) {\n (_c = __privateGet(this, _mediaStore)) == null ? void 0 : _c.dispatch({\n type: \"optionschangerequest\",\n detail: {\n defaultStreamType: (_b = this.getAttribute(Attributes.DEFAULT_STREAM_TYPE)) != null ? _b : void 0\n }\n });\n } else if (attrName === Attributes.LIVE_EDGE_OFFSET && newValue !== oldValue) {\n (_d = __privateGet(this, _mediaStore)) == null ? void 0 : _d.dispatch({\n type: \"optionschangerequest\",\n detail: {\n liveEdgeOffset: this.hasAttribute(Attributes.LIVE_EDGE_OFFSET) ? +this.getAttribute(Attributes.LIVE_EDGE_OFFSET) : void 0,\n seekToLiveOffset: this.hasAttribute(Attributes.SEEK_TO_LIVE_OFFSET) ? +this.getAttribute(Attributes.SEEK_TO_LIVE_OFFSET) : this.hasAttribute(Attributes.LIVE_EDGE_OFFSET) ? +this.getAttribute(Attributes.LIVE_EDGE_OFFSET) : void 0\n }\n });\n } else if (attrName === Attributes.SEEK_TO_LIVE_OFFSET && newValue !== oldValue) {\n (_e = __privateGet(this, _mediaStore)) == null ? void 0 : _e.dispatch({\n type: \"optionschangerequest\",\n detail: {\n // Mirror #setupDefaultStore: prefer seektoliveoffset, fall back to\n // liveedgeoffset, otherwise undefined.\n seekToLiveOffset: this.hasAttribute(Attributes.SEEK_TO_LIVE_OFFSET) ? +this.getAttribute(Attributes.SEEK_TO_LIVE_OFFSET) : this.hasAttribute(Attributes.LIVE_EDGE_OFFSET) ? +this.getAttribute(Attributes.LIVE_EDGE_OFFSET) : void 0\n }\n });\n } else if (attrName === Attributes.NO_AUTO_SEEK_TO_LIVE) {\n (_f = __privateGet(this, _mediaStore)) == null ? void 0 : _f.dispatch({\n type: \"optionschangerequest\",\n detail: {\n noAutoSeekToLive: this.hasAttribute(Attributes.NO_AUTO_SEEK_TO_LIVE)\n }\n });\n } else if (attrName === Attributes.FULLSCREEN_ELEMENT) {\n const el = newValue ? (_g = this.getRootNode()) == null ? void 0 : _g.getElementById(newValue) : void 0;\n __privateSet(this, _fullscreenElement, el);\n (_h = __privateGet(this, _mediaStore)) == null ? void 0 : _h.dispatch({\n type: \"fullscreenelementchangerequest\",\n detail: this.fullscreenElement\n });\n } else if (attrName === Attributes.LANG && newValue !== oldValue) {\n setLanguage(newValue);\n (_i = __privateGet(this, _mediaStore)) == null ? void 0 : _i.dispatch({\n type: \"optionschangerequest\",\n detail: {\n mediaLang: newValue\n }\n });\n } else if (attrName === Attributes.LOOP && newValue !== oldValue) {\n (_j = __privateGet(this, _mediaStore)) == null ? void 0 : _j.dispatch({\n type: MediaUIEvents.MEDIA_LOOP_REQUEST,\n detail: newValue != null\n });\n } else if (attrName === Attributes.NO_VOLUME_PREF && newValue !== oldValue) {\n (_k = __privateGet(this, _mediaStore)) == null ? void 0 : _k.dispatch({\n type: \"optionschangerequest\",\n detail: {\n noVolumePref: this.hasAttribute(Attributes.NO_VOLUME_PREF)\n }\n });\n } else if (attrName === Attributes.NO_MUTED_PREF && newValue !== oldValue) {\n (_l = __privateGet(this, _mediaStore)) == null ? void 0 : _l.dispatch({\n type: \"optionschangerequest\",\n detail: {\n noMutedPref: this.hasAttribute(Attributes.NO_MUTED_PREF)\n }\n });\n }\n }\n connectedCallback() {\n var _a, _b, _c;\n this.associateElement(this);\n if (!__privateGet(this, _mediaStore) && !this.hasAttribute(Attributes.NO_DEFAULT_STORE)) {\n __privateMethod(this, _setupDefaultStore, setupDefaultStore_fn).call(this);\n }\n (_a = __privateGet(this, _mediaStore)) == null ? void 0 : _a.dispatch({\n type: \"documentelementchangerequest\",\n detail: document\n });\n (_b = __privateGet(this, _mediaStore)) == null ? void 0 : _b.dispatch({\n type: \"fullscreenelementchangerequest\",\n detail: this.fullscreenElement\n });\n super.connectedCallback();\n if (__privateGet(this, _mediaStore) && !__privateGet(this, _mediaStoreUnsubscribe)) {\n __privateSet(this, _mediaStoreUnsubscribe, (_c = __privateGet(this, _mediaStore)) == null ? void 0 : _c.subscribe(\n __privateGet(this, _mediaStateCallback)\n ));\n }\n if (__privateGet(this, _subtitlesState) !== void 0 && __privateGet(this, _mediaStore) && this.media) {\n setTimeout(() => {\n var _a2, _b2, _c2;\n if ((_b2 = (_a2 = this.media) == null ? void 0 : _a2.textTracks) == null ? void 0 : _b2.length) {\n (_c2 = __privateGet(this, _mediaStore)) == null ? void 0 : _c2.dispatch({\n type: MediaUIEvents.MEDIA_TOGGLE_SUBTITLES_REQUEST,\n detail: __privateGet(this, _subtitlesState)\n });\n }\n }, 0);\n }\n this.hasAttribute(Attributes.NO_HOTKEYS) ? this.disableHotkeys() : this.enableHotkeys();\n }\n disconnectedCallback() {\n var _a, _b, _c, _d, _e, _f;\n (_a = super.disconnectedCallback) == null ? void 0 : _a.call(this);\n this.disableHotkeys();\n if (__privateGet(this, _mediaStore)) {\n const currentState = __privateGet(this, _mediaStore).getState();\n __privateSet(this, _subtitlesState, !!((_b = currentState.mediaSubtitlesShowing) == null ? void 0 : _b.length));\n (_c = __privateGet(this, _mediaStore)) == null ? void 0 : _c.dispatch({\n type: \"fullscreenelementchangerequest\",\n detail: void 0\n });\n (_d = __privateGet(this, _mediaStore)) == null ? void 0 : _d.dispatch({\n type: \"documentelementchangerequest\",\n detail: void 0\n });\n (_e = __privateGet(this, _mediaStore)) == null ? void 0 : _e.dispatch({\n type: MediaUIEvents.MEDIA_TOGGLE_SUBTITLES_REQUEST,\n detail: false\n });\n }\n if (__privateGet(this, _mediaStoreUnsubscribe)) {\n (_f = __privateGet(this, _mediaStoreUnsubscribe)) == null ? void 0 : _f.call(this);\n __privateSet(this, _mediaStoreUnsubscribe, void 0);\n }\n this.unassociateElement(this);\n if (__privateGet(this, _keyboardShortcutsDialog)) {\n __privateGet(this, _keyboardShortcutsDialog).remove();\n __privateSet(this, _keyboardShortcutsDialog, null);\n }\n }\n /**\n * @override\n * @param {HTMLMediaElement} media\n */\n mediaSetCallback(media) {\n var _a;\n super.mediaSetCallback(media);\n (_a = __privateGet(this, _mediaStore)) == null ? void 0 : _a.dispatch({\n type: \"mediaelementchangerequest\",\n detail: media\n });\n if (!media.hasAttribute(\"tabindex\")) {\n media.tabIndex = -1;\n }\n }\n /**\n * @override\n * @param {HTMLMediaElement} media\n */\n mediaUnsetCallback(media) {\n var _a;\n super.mediaUnsetCallback(media);\n (_a = __privateGet(this, _mediaStore)) == null ? void 0 : _a.dispatch({\n type: \"mediaelementchangerequest\",\n detail: void 0\n });\n }\n propagateMediaState(stateName, state) {\n propagateMediaState(this.mediaStateReceivers, stateName, state);\n }\n associateElement(element) {\n if (!element)\n return;\n const { associatedElementSubscriptions } = this;\n if (associatedElementSubscriptions.has(element))\n return;\n const registerMediaStateReceiver = this.registerMediaStateReceiver.bind(this);\n const unregisterMediaStateReceiver = this.unregisterMediaStateReceiver.bind(this);\n const unsubscribe = monitorForMediaStateReceivers(\n element,\n registerMediaStateReceiver,\n unregisterMediaStateReceiver\n );\n Object.values(MediaUIEvents).forEach((eventName) => {\n element.addEventListener(eventName, __privateGet(this, _mediaStateEventHandler));\n });\n associatedElementSubscriptions.set(element, unsubscribe);\n }\n unassociateElement(element) {\n if (!element)\n return;\n const { associatedElementSubscriptions } = this;\n if (!associatedElementSubscriptions.has(element))\n return;\n const unsubscribe = associatedElementSubscriptions.get(element);\n unsubscribe();\n associatedElementSubscriptions.delete(element);\n Object.values(MediaUIEvents).forEach((eventName) => {\n element.removeEventListener(eventName, __privateGet(this, _mediaStateEventHandler));\n });\n }\n registerMediaStateReceiver(el) {\n if (!el)\n return;\n const els = this.mediaStateReceivers;\n const index = els.indexOf(el);\n if (index > -1)\n return;\n els.push(el);\n if (__privateGet(this, _mediaStore)) {\n Object.entries(__privateGet(this, _mediaStore).getState()).forEach(\n ([stateName, stateValue]) => {\n propagateMediaState([el], stateName, stateValue);\n }\n );\n }\n }\n unregisterMediaStateReceiver(el) {\n const els = this.mediaStateReceivers;\n const index = els.indexOf(el);\n if (index < 0)\n return;\n els.splice(index, 1);\n }\n enableHotkeys() {\n this.addEventListener(\"keydown\", __privateMethod(this, _keyDownHandler, keyDownHandler_fn));\n }\n disableHotkeys() {\n this.removeEventListener(\"keydown\", __privateMethod(this, _keyDownHandler, keyDownHandler_fn));\n this.removeEventListener(\"keyup\", __privateGet(this, _keyUpHandler));\n }\n // Added string to support JSX compatibility\n get hotkeys() {\n return __privateGet(this, _hotKeys);\n }\n set hotkeys(value) {\n setStringAttr(this, Attributes.HOTKEYS, value);\n }\n keyboardShortcutHandler(e) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i;\n const target = e.target;\n const keysUsed = ((_c = (_b = (_a = target.getAttribute(Attributes.KEYS_USED)) == null ? void 0 : _a.split(\" \")) != null ? _b : target == null ? void 0 : target.keysUsed) != null ? _c : []).map((key) => key === \"Space\" ? \" \" : key).filter(Boolean);\n if (keysUsed.includes(e.key)) {\n return;\n }\n let eventName, detail, evt;\n if (__privateGet(this, _hotKeys).contains(`no${e.key.toLowerCase()}`))\n return;\n if (e.key === \" \" && __privateGet(this, _hotKeys).contains(`nospace`))\n return;\n const isShiftSlash = e.shiftKey && (e.key === \"/\" || e.key === \"?\");\n if (isShiftSlash && __privateGet(this, _hotKeys).contains(\"noshift+/\"))\n return;\n switch (e.key) {\n case \" \":\n case \"k\":\n eventName = __privateGet(this, _mediaStore).getState().mediaPaused ? MediaUIEvents.MEDIA_PLAY_REQUEST : MediaUIEvents.MEDIA_PAUSE_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, {\n composed: true,\n bubbles: true\n })\n );\n break;\n case \"m\":\n eventName = this.mediaStore.getState().mediaVolumeLevel === \"off\" ? MediaUIEvents.MEDIA_UNMUTE_REQUEST : MediaUIEvents.MEDIA_MUTE_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, {\n composed: true,\n bubbles: true\n })\n );\n break;\n case \"f\":\n eventName = this.mediaStore.getState().mediaIsFullscreen ? MediaUIEvents.MEDIA_EXIT_FULLSCREEN_REQUEST : MediaUIEvents.MEDIA_ENTER_FULLSCREEN_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, {\n composed: true,\n bubbles: true\n })\n );\n break;\n case \"c\":\n this.dispatchEvent(\n new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_TOGGLE_SUBTITLES_REQUEST,\n { composed: true, bubbles: true }\n )\n );\n break;\n case \"ArrowLeft\":\n case \"j\": {\n const offsetValue = this.hasAttribute(\n Attributes.KEYBOARD_BACKWARD_SEEK_OFFSET\n ) ? +this.getAttribute(Attributes.KEYBOARD_BACKWARD_SEEK_OFFSET) : DEFAULT_SEEK_OFFSET;\n detail = Math.max(\n ((_d = this.mediaStore.getState().mediaCurrentTime) != null ? _d : 0) - offsetValue,\n 0\n );\n evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_SEEK_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n break;\n }\n case \"ArrowRight\":\n case \"l\": {\n const offsetValue = this.hasAttribute(\n Attributes.KEYBOARD_FORWARD_SEEK_OFFSET\n ) ? +this.getAttribute(Attributes.KEYBOARD_FORWARD_SEEK_OFFSET) : DEFAULT_SEEK_OFFSET;\n detail = Math.max(\n ((_e = this.mediaStore.getState().mediaCurrentTime) != null ? _e : 0) + offsetValue,\n 0\n );\n evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_SEEK_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n break;\n }\n case \"ArrowUp\": {\n const step = this.hasAttribute(Attributes.KEYBOARD_UP_VOLUME_STEP) ? +this.getAttribute(Attributes.KEYBOARD_UP_VOLUME_STEP) : DEFAULT_VOLUME_STEP;\n detail = Math.min(\n ((_f = this.mediaStore.getState().mediaVolume) != null ? _f : 1) + step,\n 1\n );\n evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_VOLUME_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n break;\n }\n case \"ArrowDown\": {\n const step = this.hasAttribute(Attributes.KEYBOARD_DOWN_VOLUME_STEP) ? +this.getAttribute(Attributes.KEYBOARD_DOWN_VOLUME_STEP) : DEFAULT_VOLUME_STEP;\n detail = Math.max(\n ((_g = this.mediaStore.getState().mediaVolume) != null ? _g : 1) - step,\n 0\n );\n evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_VOLUME_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n break;\n }\n case \"<\": {\n const playbackRate = (_h = this.mediaStore.getState().mediaPlaybackRate) != null ? _h : 1;\n detail = Math.max(\n playbackRate - DEFAULT_PLAYBACK_RATE_STEP,\n MIN_PLAYBACK_RATE\n ).toFixed(2);\n evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n break;\n }\n case \">\": {\n const playbackRate = (_i = this.mediaStore.getState().mediaPlaybackRate) != null ? _i : 1;\n detail = Math.min(\n playbackRate + DEFAULT_PLAYBACK_RATE_STEP,\n MAX_PLAYBACK_RATE\n ).toFixed(2);\n evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n break;\n }\n case \"/\":\n case \"?\": {\n if (e.shiftKey) {\n __privateMethod(this, _showKeyboardShortcutsDialog, showKeyboardShortcutsDialog_fn).call(this);\n }\n break;\n }\n case \"p\": {\n eventName = this.mediaStore.getState().mediaIsPip ? MediaUIEvents.MEDIA_EXIT_PIP_REQUEST : MediaUIEvents.MEDIA_ENTER_PIP_REQUEST;\n evt = new globalThis.CustomEvent(eventName, {\n composed: true,\n bubbles: true\n });\n this.dispatchEvent(evt);\n break;\n }\n default:\n break;\n }\n }\n}\n_hotKeys = new WeakMap();\n_fullscreenElement = new WeakMap();\n_mediaStore = new WeakMap();\n_keyboardShortcutsDialog = new WeakMap();\n_mediaStateCallback = new WeakMap();\n_mediaStoreUnsubscribe = new WeakMap();\n_mediaStateEventHandler = new WeakMap();\n_subtitlesState = new WeakMap();\n_setupDefaultStore = new WeakSet();\nsetupDefaultStore_fn = function() {\n var _a;\n this.mediaStore = createMediaStore({\n media: this.media,\n fullscreenElement: this.fullscreenElement,\n options: {\n defaultSubtitles: this.hasAttribute(Attributes.DEFAULT_SUBTITLES),\n defaultDuration: this.hasAttribute(Attributes.DEFAULT_DURATION) ? +this.getAttribute(Attributes.DEFAULT_DURATION) : void 0,\n defaultStreamType: (\n /** @type {import('./media-store/state-mediator.js').StreamTypeValue} */\n (_a = this.getAttribute(\n Attributes.DEFAULT_STREAM_TYPE\n )) != null ? _a : void 0\n ),\n liveEdgeOffset: this.hasAttribute(Attributes.LIVE_EDGE_OFFSET) ? +this.getAttribute(Attributes.LIVE_EDGE_OFFSET) : void 0,\n seekToLiveOffset: this.hasAttribute(Attributes.SEEK_TO_LIVE_OFFSET) ? +this.getAttribute(Attributes.SEEK_TO_LIVE_OFFSET) : this.hasAttribute(Attributes.LIVE_EDGE_OFFSET) ? +this.getAttribute(Attributes.LIVE_EDGE_OFFSET) : void 0,\n noAutoSeekToLive: this.hasAttribute(Attributes.NO_AUTO_SEEK_TO_LIVE),\n // NOTE: This wasn't updated if it was changed later. Should it be? (CJP)\n noVolumePref: this.hasAttribute(Attributes.NO_VOLUME_PREF),\n noMutedPref: this.hasAttribute(Attributes.NO_MUTED_PREF),\n noSubtitlesLangPref: this.hasAttribute(\n Attributes.NO_SUBTITLES_LANG_PREF\n )\n }\n });\n};\n_keyUpHandler = new WeakMap();\n_keyDownHandler = new WeakSet();\nkeyDownHandler_fn = function(e) {\n var _a;\n const { metaKey, altKey, key, shiftKey } = e;\n const isShiftSlash = shiftKey && (key === \"/\" || key === \"?\");\n if (isShiftSlash && ((_a = __privateGet(this, _keyboardShortcutsDialog)) == null ? void 0 : _a.open)) {\n this.removeEventListener(\"keyup\", __privateGet(this, _keyUpHandler));\n return;\n }\n if (metaKey || altKey || !isShiftSlash && !ButtonPressedKeys.includes(key)) {\n this.removeEventListener(\"keyup\", __privateGet(this, _keyUpHandler));\n return;\n }\n const target = e.target;\n const isRangeInput = target instanceof HTMLElement && (target.tagName.toLowerCase() === \"media-volume-range\" || target.tagName.toLowerCase() === \"media-time-range\");\n if ([\" \", \"ArrowLeft\", \"ArrowRight\", \"ArrowUp\", \"ArrowDown\"].includes(key) && !(__privateGet(this, _hotKeys).contains(`no${key.toLowerCase()}`) || key === \" \" && __privateGet(this, _hotKeys).contains(\"nospace\")) && !isRangeInput) {\n e.preventDefault();\n }\n this.addEventListener(\"keyup\", __privateGet(this, _keyUpHandler), { once: true });\n};\n_showKeyboardShortcutsDialog = new WeakSet();\nshowKeyboardShortcutsDialog_fn = function() {\n if (!__privateGet(this, _keyboardShortcutsDialog)) {\n __privateSet(this, _keyboardShortcutsDialog, document.createElement(\n \"media-keyboard-shortcuts-dialog\"\n ));\n this.appendChild(__privateGet(this, _keyboardShortcutsDialog));\n }\n __privateGet(this, _keyboardShortcutsDialog).open = true;\n};\nconst MEDIA_UI_ATTRIBUTE_NAMES = Object.values(MediaUIAttributes);\nconst MEDIA_UI_PROP_NAMES = Object.values(MediaUIProps);\nconst getMediaUIAttributesFrom = (child) => {\n var _a, _b, _c, _d;\n let { observedAttributes } = child.constructor;\n if (!observedAttributes && ((_a = child.nodeName) == null ? void 0 : _a.includes(\"-\"))) {\n globalThis.customElements.upgrade(child);\n ({ observedAttributes } = child.constructor);\n }\n const mediaChromeAttributesList = (_d = (_c = (_b = child == null ? void 0 : child.getAttribute) == null ? void 0 : _b.call(child, MediaStateReceiverAttributes.MEDIA_CHROME_ATTRIBUTES)) == null ? void 0 : _c.split) == null ? void 0 : _d.call(_c, /\\s+/);\n if (!Array.isArray(observedAttributes || mediaChromeAttributesList))\n return [];\n return (observedAttributes || mediaChromeAttributesList).filter(\n (attrName) => MEDIA_UI_ATTRIBUTE_NAMES.includes(attrName)\n );\n};\nconst hasMediaUIProps = (mediaStateReceiverCandidate) => {\n var _a, _b;\n if (((_a = mediaStateReceiverCandidate.nodeName) == null ? void 0 : _a.includes(\"-\")) && !!globalThis.customElements.get(\n (_b = mediaStateReceiverCandidate.nodeName) == null ? void 0 : _b.toLowerCase()\n ) && !(mediaStateReceiverCandidate instanceof globalThis.customElements.get(\n mediaStateReceiverCandidate.nodeName.toLowerCase()\n ))) {\n globalThis.customElements.upgrade(mediaStateReceiverCandidate);\n }\n return MEDIA_UI_PROP_NAMES.some(\n (propName) => propName in mediaStateReceiverCandidate\n );\n};\nconst isMediaStateReceiver = (child) => {\n return hasMediaUIProps(child) || !!getMediaUIAttributesFrom(child).length;\n};\nconst serializeTuple = (tuple) => {\n var _a;\n return (_a = tuple == null ? void 0 : tuple.join) == null ? void 0 : _a.call(tuple, \":\");\n};\nconst CustomAttrSerializer = {\n [MediaUIAttributes.MEDIA_SUBTITLES_LIST]: stringifyTextTrackList,\n [MediaUIAttributes.MEDIA_SUBTITLES_SHOWING]: stringifyTextTrackList,\n [MediaUIAttributes.MEDIA_SEEKABLE]: serializeTuple,\n [MediaUIAttributes.MEDIA_BUFFERED]: (tuples) => tuples == null ? void 0 : tuples.map(serializeTuple).join(\" \"),\n [MediaUIAttributes.MEDIA_PREVIEW_COORDS]: (coords) => coords == null ? void 0 : coords.join(\" \"),\n [MediaUIAttributes.MEDIA_RENDITION_LIST]: stringifyRenditionList,\n [MediaUIAttributes.MEDIA_AUDIO_TRACK_LIST]: stringifyAudioTrackList\n};\nconst setAttr = async (child, attrName, attrValue) => {\n var _a, _b;\n if (!child.isConnected) {\n await delay(0);\n }\n if (typeof attrValue === \"boolean\" || attrValue == null) {\n return setBooleanAttr(child, attrName, attrValue);\n }\n if (typeof attrValue === \"number\") {\n return setNumericAttr(child, attrName, attrValue);\n }\n if (typeof attrValue === \"string\") {\n return setStringAttr(child, attrName, attrValue);\n }\n if (Array.isArray(attrValue) && !attrValue.length) {\n return child.removeAttribute(attrName);\n }\n const val = (_b = (_a = CustomAttrSerializer[attrName]) == null ? void 0 : _a.call(CustomAttrSerializer, attrValue)) != null ? _b : attrValue;\n return child.setAttribute(attrName, val);\n};\nconst isMediaSlotElementDescendant = (el) => {\n var _a;\n return !!((_a = el.closest) == null ? void 0 : _a.call(el, '*[slot=\"media\"]'));\n};\nconst traverseForMediaStateReceivers = (rootNode, mediaStateReceiverCallback) => {\n if (isMediaSlotElementDescendant(rootNode)) {\n return;\n }\n const traverseForMediaStateReceiversSync = (rootNode2, mediaStateReceiverCallback2) => {\n var _a, _b;\n if (isMediaStateReceiver(rootNode2)) {\n mediaStateReceiverCallback2(rootNode2);\n }\n const { children = [] } = rootNode2 != null ? rootNode2 : {};\n const shadowChildren = (_b = (_a = rootNode2 == null ? void 0 : rootNode2.shadowRoot) == null ? void 0 : _a.children) != null ? _b : [];\n const allChildren = [...children, ...shadowChildren];\n allChildren.forEach(\n (child) => traverseForMediaStateReceivers(\n child,\n mediaStateReceiverCallback2\n )\n );\n };\n const name = rootNode == null ? void 0 : rootNode.nodeName.toLowerCase();\n if (name.includes(\"-\") && !isMediaStateReceiver(rootNode)) {\n globalThis.customElements.whenDefined(name).then(() => {\n traverseForMediaStateReceiversSync(rootNode, mediaStateReceiverCallback);\n });\n return;\n }\n traverseForMediaStateReceiversSync(rootNode, mediaStateReceiverCallback);\n};\nconst propagateMediaState = (els, stateName, val) => {\n els.forEach((el) => {\n if (stateName in el) {\n el[stateName] = val;\n return;\n }\n const relevantAttrs = getMediaUIAttributesFrom(el);\n const attrName = stateName.toLowerCase();\n if (!relevantAttrs.includes(attrName))\n return;\n setAttr(el, attrName, val);\n });\n};\nconst monitorForMediaStateReceivers = (rootNode, registerMediaStateReceiver, unregisterMediaStateReceiver) => {\n traverseForMediaStateReceivers(rootNode, registerMediaStateReceiver);\n const registerMediaStateReceiverHandler = (evt) => {\n var _a;\n const el = (_a = evt == null ? void 0 : evt.composedPath()[0]) != null ? _a : evt.target;\n registerMediaStateReceiver(el);\n };\n const unregisterMediaStateReceiverHandler = (evt) => {\n var _a;\n const el = (_a = evt == null ? void 0 : evt.composedPath()[0]) != null ? _a : evt.target;\n unregisterMediaStateReceiver(el);\n };\n rootNode.addEventListener(\n MediaUIEvents.REGISTER_MEDIA_STATE_RECEIVER,\n registerMediaStateReceiverHandler\n );\n rootNode.addEventListener(\n MediaUIEvents.UNREGISTER_MEDIA_STATE_RECEIVER,\n unregisterMediaStateReceiverHandler\n );\n const mutationCallback = (mutationsList) => {\n mutationsList.forEach((mutationRecord) => {\n const {\n addedNodes = [],\n removedNodes = [],\n type,\n target,\n attributeName\n } = mutationRecord;\n if (type === \"childList\") {\n Array.prototype.forEach.call(\n addedNodes,\n (node) => traverseForMediaStateReceivers(\n node,\n registerMediaStateReceiver\n )\n );\n Array.prototype.forEach.call(\n removedNodes,\n (node) => traverseForMediaStateReceivers(\n node,\n unregisterMediaStateReceiver\n )\n );\n } else if (type === \"attributes\" && attributeName === MediaStateReceiverAttributes.MEDIA_CHROME_ATTRIBUTES) {\n if (isMediaStateReceiver(target)) {\n registerMediaStateReceiver(target);\n } else {\n unregisterMediaStateReceiver(target);\n }\n }\n });\n };\n let prevSlotted = [];\n const slotChangeHandler = (event) => {\n const slotEl = event.target;\n if (slotEl.name === \"media\")\n return;\n prevSlotted.forEach(\n (node) => traverseForMediaStateReceivers(node, unregisterMediaStateReceiver)\n );\n prevSlotted = [\n ...slotEl.assignedElements({ flatten: true })\n ];\n prevSlotted.forEach(\n (node) => traverseForMediaStateReceivers(node, registerMediaStateReceiver)\n );\n };\n rootNode.addEventListener(\"slotchange\", slotChangeHandler);\n const observer = new MutationObserver(mutationCallback);\n observer.observe(rootNode, {\n childList: true,\n attributes: true,\n subtree: true\n });\n const unsubscribe = () => {\n traverseForMediaStateReceivers(rootNode, unregisterMediaStateReceiver);\n rootNode.removeEventListener(\"slotchange\", slotChangeHandler);\n observer.disconnect();\n rootNode.removeEventListener(\n MediaUIEvents.REGISTER_MEDIA_STATE_RECEIVER,\n registerMediaStateReceiverHandler\n );\n rootNode.removeEventListener(\n MediaUIEvents.UNREGISTER_MEDIA_STATE_RECEIVER,\n unregisterMediaStateReceiverHandler\n );\n };\n return unsubscribe;\n};\nif (!globalThis.customElements.get(\"media-controller\")) {\n globalThis.customElements.define(\"media-controller\", MediaController);\n}\nvar media_controller_default = MediaController;\nexport {\n Attributes,\n MediaController,\n media_controller_default as default\n};\n","import {\n closestComposedNode,\n getMediaController,\n getStringAttr,\n isElementVisible,\n namedNodeMapToObject,\n setStringAttr\n} from \"./utils/element-utils.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nconst Attributes = {\n PLACEMENT: \"placement\",\n BOUNDS: \"bounds\"\n};\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n --_tooltip-background-color: var(--media-tooltip-background-color, var(--media-secondary-color, rgba(20, 20, 30, .7)));\n --_tooltip-background: var(--media-tooltip-background, var(--_tooltip-background-color));\n --_tooltip-arrow-half-width: calc(var(--media-tooltip-arrow-width, 12px) / 2);\n --_tooltip-arrow-height: var(--media-tooltip-arrow-height, 5px);\n --_tooltip-arrow-background: var(--media-tooltip-arrow-color, var(--_tooltip-background-color));\n position: relative;\n pointer-events: none;\n display: var(--media-tooltip-display, inline-flex);\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n z-index: var(--media-tooltip-z-index, 1);\n background: var(--_tooltip-background);\n color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));\n font: var(--media-font,\n var(--media-font-weight, 400)\n var(--media-font-size, 13px) /\n var(--media-text-content-height, var(--media-control-height, 18px))\n var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));\n padding: var(--media-tooltip-padding, .35em .7em);\n border: var(--media-tooltip-border, none);\n border-radius: var(--media-tooltip-border-radius, 5px);\n filter: var(--media-tooltip-filter, drop-shadow(0 0 4px rgba(0, 0, 0, .2)));\n white-space: var(--media-tooltip-white-space, nowrap);\n }\n\n :host([hidden]) {\n display: none;\n }\n\n img, svg {\n display: inline-block;\n }\n\n #arrow {\n position: absolute;\n width: 0px;\n height: 0px;\n border-style: solid;\n display: var(--media-tooltip-arrow-display, block);\n }\n\n :host(:not([placement])),\n :host([placement=\"top\"]) {\n position: absolute;\n bottom: calc(100% + var(--media-tooltip-distance, 12px));\n left: 50%;\n transform: translate(calc(-50% - var(--media-tooltip-offset-x, 0px)), 0);\n }\n :host(:not([placement])) #arrow,\n :host([placement=\"top\"]) #arrow {\n top: 100%;\n left: 50%;\n border-width: var(--_tooltip-arrow-height) var(--_tooltip-arrow-half-width) 0 var(--_tooltip-arrow-half-width);\n border-color: var(--_tooltip-arrow-background) transparent transparent transparent;\n transform: translate(calc(-50% + var(--media-tooltip-offset-x, 0px)), 0);\n }\n\n :host([placement=\"right\"]) {\n position: absolute;\n left: calc(100% + var(--media-tooltip-distance, 12px));\n top: 50%;\n transform: translate(0, -50%);\n }\n :host([placement=\"right\"]) #arrow {\n top: 50%;\n right: 100%;\n border-width: var(--_tooltip-arrow-half-width) var(--_tooltip-arrow-height) var(--_tooltip-arrow-half-width) 0;\n border-color: transparent var(--_tooltip-arrow-background) transparent transparent;\n transform: translate(0, -50%);\n }\n\n :host([placement=\"bottom\"]) {\n position: absolute;\n top: calc(100% + var(--media-tooltip-distance, 12px));\n left: 50%;\n transform: translate(calc(-50% - var(--media-tooltip-offset-x, 0px)), 0);\n }\n :host([placement=\"bottom\"]) #arrow {\n bottom: 100%;\n left: 50%;\n border-width: 0 var(--_tooltip-arrow-half-width) var(--_tooltip-arrow-height) var(--_tooltip-arrow-half-width);\n border-color: transparent transparent var(--_tooltip-arrow-background) transparent;\n transform: translate(calc(-50% + var(--media-tooltip-offset-x, 0px)), 0);\n }\n\n :host([placement=\"left\"]) {\n position: absolute;\n right: calc(100% + var(--media-tooltip-distance, 12px));\n top: 50%;\n transform: translate(0, -50%);\n }\n :host([placement=\"left\"]) #arrow {\n top: 50%;\n left: 100%;\n border-width: var(--_tooltip-arrow-half-width) 0 var(--_tooltip-arrow-half-width) var(--_tooltip-arrow-height);\n border-color: transparent transparent transparent var(--_tooltip-arrow-background);\n transform: translate(0, -50%);\n }\n \n :host([placement=\"none\"]) #arrow {\n display: none;\n }\n </style>\n <slot></slot>\n <div id=\"arrow\"></div>\n `\n );\n}\nclass MediaTooltip extends globalThis.HTMLElement {\n constructor() {\n super();\n // Adjusts tooltip position relative to the closest specified container\n // such that it doesn't spill out of the left or right sides. Only applies\n // to 'top' and 'bottom' placed tooltips.\n this.updateXOffset = () => {\n var _a;\n if (!isElementVisible(this, { checkOpacity: false, checkVisibilityCSS: false }))\n return;\n const placement = this.placement;\n if (placement === \"left\" || placement === \"right\") {\n this.style.removeProperty(\"--media-tooltip-offset-x\");\n return;\n }\n const tooltipStyle = getComputedStyle(this);\n const containingEl = (_a = closestComposedNode(this, \"#\" + this.bounds)) != null ? _a : getMediaController(this);\n if (!containingEl)\n return;\n const { x: containerX, width: containerWidth } = containingEl.getBoundingClientRect();\n const { x: tooltipX, width: tooltipWidth } = this.getBoundingClientRect();\n const tooltipRight = tooltipX + tooltipWidth;\n const containerRight = containerX + containerWidth;\n const offsetXVal = tooltipStyle.getPropertyValue(\n \"--media-tooltip-offset-x\"\n );\n const currOffsetX = offsetXVal ? parseFloat(offsetXVal.replace(\"px\", \"\")) : 0;\n const marginVal = tooltipStyle.getPropertyValue(\n \"--media-tooltip-container-margin\"\n );\n const currMargin = marginVal ? parseFloat(marginVal.replace(\"px\", \"\")) : 0;\n const leftDiff = tooltipX - containerX + currOffsetX - currMargin;\n const rightDiff = tooltipRight - containerRight + currOffsetX + currMargin;\n if (leftDiff < 0) {\n this.style.setProperty(\"--media-tooltip-offset-x\", `${leftDiff}px`);\n return;\n }\n if (rightDiff > 0) {\n this.style.setProperty(\"--media-tooltip-offset-x\", `${rightDiff}px`);\n return;\n }\n this.style.removeProperty(\"--media-tooltip-offset-x\");\n };\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n this.arrowEl = this.shadowRoot.querySelector(\"#arrow\");\n if (Object.prototype.hasOwnProperty.call(this, \"placement\")) {\n const placement = this.placement;\n delete this.placement;\n this.placement = placement;\n }\n }\n static get observedAttributes() {\n return [Attributes.PLACEMENT, Attributes.BOUNDS];\n }\n /**\n * Get or set tooltip placement\n */\n get placement() {\n return getStringAttr(this, Attributes.PLACEMENT);\n }\n set placement(value) {\n setStringAttr(this, Attributes.PLACEMENT, value);\n }\n /**\n * Get or set tooltip container ID selector that will constrain the tooltips\n * horizontal position.\n */\n get bounds() {\n return getStringAttr(this, Attributes.BOUNDS);\n }\n set bounds(value) {\n setStringAttr(this, Attributes.BOUNDS, value);\n }\n}\nMediaTooltip.shadowRootOptions = { mode: \"open\" };\nMediaTooltip.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-tooltip\")) {\n globalThis.customElements.define(\"media-tooltip\", MediaTooltip);\n}\nvar media_tooltip_default = MediaTooltip;\nexport {\n Attributes,\n media_tooltip_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _mediaController, _clickListener, _positionTooltip, _keyupListener, _keydownListener, _setupTooltip, setupTooltip_fn;\nimport {\n MediaStateReceiverAttributes,\n MediaUIAttributes\n} from \"./constants.js\";\nimport MediaTooltip from \"./media-tooltip.js\";\nimport {\n getBooleanAttr,\n getOrInsertCSSRule,\n getStringAttr,\n namedNodeMapToObject,\n setBooleanAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nconst Attributes = {\n TOOLTIP_PLACEMENT: \"tooltipplacement\",\n DISABLED: \"disabled\",\n NO_TOOLTIP: \"notooltip\"\n};\nfunction getTemplateHTML(_attrs, _props = {}) {\n return (\n /*html*/\n `\n <style>\n :host {\n position: relative;\n font: var(--media-font,\n var(--media-font-weight, bold)\n var(--media-font-size, 14px) /\n var(--media-text-content-height, var(--media-control-height, 24px))\n var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));\n color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));\n background: var(--media-control-background, var(--media-secondary-color, rgb(20 20 30 / .7)));\n padding: var(--media-button-padding, var(--media-control-padding, 10px));\n justify-content: var(--media-button-justify-content, center);\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n box-sizing: border-box;\n transition: background .15s linear;\n pointer-events: auto;\n cursor: var(--media-cursor, pointer);\n -webkit-tap-highlight-color: transparent;\n }\n\n ${/*\n Only show outline when keyboard focusing.\n https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo\n */\n \"\"}\n :host(:focus-visible) {\n box-shadow: var(--media-focus-box-shadow, inset 0 0 0 2px rgb(27 127 204 / .9));\n outline: 0;\n }\n ${/*\n * hide default focus ring, particularly when using mouse\n */\n \"\"}\n :host(:where(:focus)) {\n box-shadow: none;\n outline: 0;\n }\n\n :host(:hover) {\n background: var(--media-control-hover-background, rgba(50 50 70 / .7));\n }\n\n svg, img, ::slotted(svg), ::slotted(img) {\n width: var(--media-button-icon-width);\n height: var(--media-button-icon-height, var(--media-control-height, 24px));\n transform: var(--media-button-icon-transform);\n transition: var(--media-button-icon-transition);\n fill: var(--media-icon-color, var(--media-primary-color, rgb(238 238 238)));\n vertical-align: middle;\n max-width: 100%;\n max-height: 100%;\n min-width: 100%;\n }\n\n media-tooltip {\n ${/** Make sure unpositioned tooltip doesn't cause page overflow (scroll). */\n \"\"}\n max-width: 0;\n overflow-x: clip;\n opacity: 0;\n transition: opacity .3s, max-width 0s 9s;\n }\n\n :host(:hover) media-tooltip,\n :host(:focus-visible) media-tooltip {\n max-width: 100vw;\n opacity: 1;\n transition: opacity .3s;\n }\n\n :host([notooltip]) slot[name=\"tooltip\"] {\n display: none;\n }\n </style>\n\n ${this.getSlotTemplateHTML(_attrs, _props)}\n\n <slot name=\"tooltip\">\n <media-tooltip part=\"tooltip\" aria-hidden=\"true\">\n <template shadowrootmode=\"${MediaTooltip.shadowRootOptions.mode}\">\n ${MediaTooltip.getTemplateHTML({})}\n </template>\n <slot name=\"tooltip-content\">\n ${this.getTooltipContentHTML(_attrs)}\n </slot>\n </media-tooltip>\n </slot>\n `\n );\n}\nfunction getSlotTemplateHTML(_attrs, _props) {\n return (\n /*html*/\n `\n <slot></slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return \"\";\n}\nclass MediaChromeButton extends globalThis.HTMLElement {\n constructor() {\n super();\n // Called when we know the tooltip is ready / defined\n __privateAdd(this, _setupTooltip);\n __privateAdd(this, _mediaController, void 0);\n this.preventClick = false;\n this.tooltipEl = null;\n __privateAdd(this, _clickListener, (e) => {\n if (!this.preventClick) {\n this.handleClick(e);\n }\n setTimeout(__privateGet(this, _positionTooltip), 0);\n });\n __privateAdd(this, _positionTooltip, () => {\n var _a, _b;\n (_b = (_a = this.tooltipEl) == null ? void 0 : _a.updateXOffset) == null ? void 0 : _b.call(_a);\n });\n // NOTE: There are definitely some \"false positive\" cases with multi-key pressing,\n // but this should be good enough for most use cases.\n __privateAdd(this, _keyupListener, (e) => {\n const { key } = e;\n if (!this.keysUsed.includes(key)) {\n this.removeEventListener(\"keyup\", __privateGet(this, _keyupListener));\n return;\n }\n if (!this.preventClick) {\n this.handleClick(e);\n }\n });\n __privateAdd(this, _keydownListener, (e) => {\n const { metaKey, altKey, key } = e;\n if (metaKey || altKey || !this.keysUsed.includes(key)) {\n this.removeEventListener(\"keyup\", __privateGet(this, _keyupListener));\n return;\n }\n this.addEventListener(\"keyup\", __privateGet(this, _keyupListener), { once: true });\n });\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n const html = this.constructor.getTemplateHTML(attrs);\n this.shadowRoot.setHTMLUnsafe ? this.shadowRoot.setHTMLUnsafe(html) : this.shadowRoot.innerHTML = html;\n }\n this.tooltipEl = this.shadowRoot.querySelector(\"media-tooltip\");\n }\n static get observedAttributes() {\n return [\n \"disabled\",\n Attributes.TOOLTIP_PLACEMENT,\n MediaStateReceiverAttributes.MEDIA_CONTROLLER,\n MediaUIAttributes.MEDIA_LANG\n ];\n }\n enable() {\n this.addEventListener(\"click\", __privateGet(this, _clickListener));\n this.addEventListener(\"keydown\", __privateGet(this, _keydownListener));\n this.tabIndex = 0;\n }\n disable() {\n this.removeEventListener(\"click\", __privateGet(this, _clickListener));\n this.removeEventListener(\"keydown\", __privateGet(this, _keydownListener));\n this.removeEventListener(\"keyup\", __privateGet(this, _keyupListener));\n this.tabIndex = -1;\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e;\n if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue));\n (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this);\n }\n } else if (attrName === \"disabled\" && newValue !== oldValue) {\n if (newValue == null) {\n this.enable();\n } else {\n this.disable();\n }\n } else if (attrName === Attributes.TOOLTIP_PLACEMENT && this.tooltipEl && newValue !== oldValue) {\n this.tooltipEl.placement = newValue;\n } else if (attrName === MediaUIAttributes.MEDIA_LANG) {\n this.shadowRoot.querySelector('slot[name=\"tooltip-content\"]').innerHTML = this.constructor.getTooltipContentHTML();\n }\n __privateGet(this, _positionTooltip).call(this);\n }\n connectedCallback() {\n var _a, _b, _c;\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n style.setProperty(\n \"display\",\n `var(--media-control-display, var(--${this.localName}-display, inline-flex))`\n );\n if (!this.hasAttribute(\"disabled\")) {\n this.enable();\n } else {\n this.disable();\n }\n this.setAttribute(\"role\", \"button\");\n const mediaControllerId = this.getAttribute(\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n );\n if (mediaControllerId) {\n __privateSet(\n this,\n _mediaController,\n // @ts-ignore\n (_a = this.getRootNode()) == null ? void 0 : _a.getElementById(mediaControllerId)\n );\n (_c = (_b = __privateGet(this, _mediaController)) == null ? void 0 : _b.associateElement) == null ? void 0 : _c.call(_b, this);\n }\n globalThis.customElements.whenDefined(\"media-tooltip\").then(() => __privateMethod(this, _setupTooltip, setupTooltip_fn).call(this));\n }\n disconnectedCallback() {\n var _a, _b;\n this.disable();\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n this.removeEventListener(\"mouseenter\", __privateGet(this, _positionTooltip));\n this.removeEventListener(\"focus\", __privateGet(this, _positionTooltip));\n this.removeEventListener(\"click\", __privateGet(this, _clickListener));\n }\n get keysUsed() {\n return [\"Enter\", \" \"];\n }\n /**\n * Get or set tooltip placement\n */\n get tooltipPlacement() {\n return getStringAttr(this, Attributes.TOOLTIP_PLACEMENT);\n }\n set tooltipPlacement(value) {\n setStringAttr(this, Attributes.TOOLTIP_PLACEMENT, value);\n }\n get mediaController() {\n return getStringAttr(this, MediaStateReceiverAttributes.MEDIA_CONTROLLER);\n }\n set mediaController(value) {\n setStringAttr(this, MediaStateReceiverAttributes.MEDIA_CONTROLLER, value);\n }\n get disabled() {\n return getBooleanAttr(this, Attributes.DISABLED);\n }\n set disabled(value) {\n setBooleanAttr(this, Attributes.DISABLED, value);\n }\n get noTooltip() {\n return getBooleanAttr(this, Attributes.NO_TOOLTIP);\n }\n set noTooltip(value) {\n setBooleanAttr(this, Attributes.NO_TOOLTIP, value);\n }\n /**\n * @abstract\n */\n handleClick(_e) {\n }\n}\n_mediaController = new WeakMap();\n_clickListener = new WeakMap();\n_positionTooltip = new WeakMap();\n_keyupListener = new WeakMap();\n_keydownListener = new WeakMap();\n_setupTooltip = new WeakSet();\nsetupTooltip_fn = function() {\n this.addEventListener(\"mouseenter\", __privateGet(this, _positionTooltip));\n this.addEventListener(\"focus\", __privateGet(this, _positionTooltip));\n this.addEventListener(\"click\", __privateGet(this, _clickListener));\n const initialPlacement = this.tooltipPlacement;\n if (initialPlacement && this.tooltipEl) {\n this.tooltipEl.placement = initialPlacement;\n }\n};\nMediaChromeButton.shadowRootOptions = { mode: \"open\" };\nMediaChromeButton.getTemplateHTML = getTemplateHTML;\nMediaChromeButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaChromeButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-chrome-button\")) {\n globalThis.customElements.define(\"media-chrome-button\", MediaChromeButton);\n}\nvar media_chrome_button_default = MediaChromeButton;\nexport {\n MediaChromeButton,\n media_chrome_button_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nimport {\n getStringAttr,\n setStringAttr,\n getBooleanAttr,\n setBooleanAttr\n} from \"./utils/element-utils.js\";\nconst airplayIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 26 24\">\n <path d=\"M22.13 3H3.87a.87.87 0 0 0-.87.87v13.26a.87.87 0 0 0 .87.87h3.4L9 16H5V5h16v11h-4l1.72 2h3.4a.87.87 0 0 0 .87-.87V3.87a.87.87 0 0 0-.86-.87Zm-8.75 11.44a.5.5 0 0 0-.76 0l-4.91 5.73a.5.5 0 0 0 .38.83h9.82a.501.501 0 0 0 .38-.83l-4.91-5.73Z\"/>\n</svg>\n`;\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host([${MediaUIAttributes.MEDIA_IS_AIRPLAYING}]) slot[name=icon] slot:not([name=exit]) {\n display: none !important;\n }\n\n ${/* Double negative, but safer if display doesn't equal 'block' */\n \"\"}\n :host(:not([${MediaUIAttributes.MEDIA_IS_AIRPLAYING}])) slot[name=icon] slot:not([name=enter]) {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_IS_AIRPLAYING}]) slot[name=tooltip-enter],\n :host(:not([${MediaUIAttributes.MEDIA_IS_AIRPLAYING}])) slot[name=tooltip-exit] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"enter\">${airplayIcon}</slot>\n <slot name=\"exit\">${airplayIcon}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return (\n /*html*/\n `\n <slot name=\"tooltip-enter\">${t(\"start airplay\")}</slot>\n <slot name=\"tooltip-exit\">${t(\"stop airplay\")}</slot>\n `\n );\n}\nconst updateAriaLabel = (el) => {\n const label = el.mediaIsAirplaying ? t(\"stop airplay\") : t(\"start airplay\");\n el.setAttribute(\"aria-label\", label);\n};\nclass MediaAirplayButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_IS_AIRPLAYING,\n MediaUIAttributes.MEDIA_AIRPLAY_UNAVAILABLE\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_IS_AIRPLAYING) {\n updateAriaLabel(this);\n }\n }\n /**\n * Are we currently airplaying\n */\n get mediaIsAirplaying() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_IS_AIRPLAYING);\n }\n set mediaIsAirplaying(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_IS_AIRPLAYING, value);\n }\n /**\n * Airplay unavailability state\n */\n get mediaAirplayUnavailable() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_AIRPLAY_UNAVAILABLE);\n }\n set mediaAirplayUnavailable(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_AIRPLAY_UNAVAILABLE, value);\n }\n handleClick() {\n const evt = new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_AIRPLAY_REQUEST,\n {\n composed: true,\n bubbles: true\n }\n );\n this.dispatchEvent(evt);\n }\n}\nMediaAirplayButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaAirplayButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-airplay-button\")) {\n globalThis.customElements.define(\"media-airplay-button\", MediaAirplayButton);\n}\nvar media_airplay_button_default = MediaAirplayButton;\nexport {\n media_airplay_button_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIAttributes, MediaUIEvents } from \"./constants.js\";\nimport {\n areSubsOn,\n parseTextTracksStr,\n stringifyTextTrackList\n} from \"./utils/captions.js\";\nimport { t } from \"./utils/i18n.js\";\nconst ccIconOn = `<svg aria-hidden=\"true\" viewBox=\"0 0 26 24\">\n <path d=\"M22.83 5.68a2.58 2.58 0 0 0-2.3-2.5c-3.62-.24-11.44-.24-15.06 0a2.58 2.58 0 0 0-2.3 2.5c-.23 4.21-.23 8.43 0 12.64a2.58 2.58 0 0 0 2.3 2.5c3.62.24 11.44.24 15.06 0a2.58 2.58 0 0 0 2.3-2.5c.23-4.21.23-8.43 0-12.64Zm-11.39 9.45a3.07 3.07 0 0 1-1.91.57 3.06 3.06 0 0 1-2.34-1 3.75 3.75 0 0 1-.92-2.67 3.92 3.92 0 0 1 .92-2.77 3.18 3.18 0 0 1 2.43-1 2.94 2.94 0 0 1 2.13.78c.364.359.62.813.74 1.31l-1.43.35a1.49 1.49 0 0 0-1.51-1.17 1.61 1.61 0 0 0-1.29.58 2.79 2.79 0 0 0-.5 1.89 3 3 0 0 0 .49 1.93 1.61 1.61 0 0 0 1.27.58 1.48 1.48 0 0 0 1-.37 2.1 2.1 0 0 0 .59-1.14l1.4.44a3.23 3.23 0 0 1-1.07 1.69Zm7.22 0a3.07 3.07 0 0 1-1.91.57 3.06 3.06 0 0 1-2.34-1 3.75 3.75 0 0 1-.92-2.67 3.88 3.88 0 0 1 .93-2.77 3.14 3.14 0 0 1 2.42-1 3 3 0 0 1 2.16.82 2.8 2.8 0 0 1 .73 1.31l-1.43.35a1.49 1.49 0 0 0-1.51-1.21 1.61 1.61 0 0 0-1.29.58A2.79 2.79 0 0 0 15 12a3 3 0 0 0 .49 1.93 1.61 1.61 0 0 0 1.27.58 1.44 1.44 0 0 0 1-.37 2.1 2.1 0 0 0 .6-1.15l1.4.44a3.17 3.17 0 0 1-1.1 1.7Z\"/>\n</svg>`;\nconst ccIconOff = `<svg aria-hidden=\"true\" viewBox=\"0 0 26 24\">\n <path d=\"M17.73 14.09a1.4 1.4 0 0 1-1 .37 1.579 1.579 0 0 1-1.27-.58A3 3 0 0 1 15 12a2.8 2.8 0 0 1 .5-1.85 1.63 1.63 0 0 1 1.29-.57 1.47 1.47 0 0 1 1.51 1.2l1.43-.34A2.89 2.89 0 0 0 19 9.07a3 3 0 0 0-2.14-.78 3.14 3.14 0 0 0-2.42 1 3.91 3.91 0 0 0-.93 2.78 3.74 3.74 0 0 0 .92 2.66 3.07 3.07 0 0 0 2.34 1 3.07 3.07 0 0 0 1.91-.57 3.17 3.17 0 0 0 1.07-1.74l-1.4-.45c-.083.43-.3.822-.62 1.12Zm-7.22 0a1.43 1.43 0 0 1-1 .37 1.58 1.58 0 0 1-1.27-.58A3 3 0 0 1 7.76 12a2.8 2.8 0 0 1 .5-1.85 1.63 1.63 0 0 1 1.29-.57 1.47 1.47 0 0 1 1.51 1.2l1.43-.34a2.81 2.81 0 0 0-.74-1.32 2.94 2.94 0 0 0-2.13-.78 3.18 3.18 0 0 0-2.43 1 4 4 0 0 0-.92 2.78 3.74 3.74 0 0 0 .92 2.66 3.07 3.07 0 0 0 2.34 1 3.07 3.07 0 0 0 1.91-.57 3.23 3.23 0 0 0 1.07-1.74l-1.4-.45a2.06 2.06 0 0 1-.6 1.07Zm12.32-8.41a2.59 2.59 0 0 0-2.3-2.51C18.72 3.05 15.86 3 13 3c-2.86 0-5.72.05-7.53.17a2.59 2.59 0 0 0-2.3 2.51c-.23 4.207-.23 8.423 0 12.63a2.57 2.57 0 0 0 2.3 2.5c1.81.13 4.67.19 7.53.19 2.86 0 5.72-.06 7.53-.19a2.57 2.57 0 0 0 2.3-2.5c.23-4.207.23-8.423 0-12.63Zm-1.49 12.53a1.11 1.11 0 0 1-.91 1.11c-1.67.11-4.45.18-7.43.18-2.98 0-5.76-.07-7.43-.18a1.11 1.11 0 0 1-.91-1.11c-.21-4.14-.21-8.29 0-12.43a1.11 1.11 0 0 1 .91-1.11C7.24 4.56 10 4.49 13 4.49s5.76.07 7.43.18a1.11 1.11 0 0 1 .91 1.11c.21 4.14.21 8.29 0 12.43Z\"/>\n</svg>`;\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host([aria-checked=\"true\"]) slot[name=off] {\n display: none !important;\n }\n\n ${/* Double negative, but safer if display doesn't equal 'block' */\n \"\"}\n :host(:not([aria-checked=\"true\"])) slot[name=on] {\n display: none !important;\n }\n\n :host([aria-checked=\"true\"]) slot[name=tooltip-enable],\n :host(:not([aria-checked=\"true\"])) slot[name=tooltip-disable] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"on\">${ccIconOn}</slot>\n <slot name=\"off\">${ccIconOff}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return (\n /*html*/\n `\n <slot name=\"tooltip-enable\">${t(\"Enable captions\")}</slot>\n <slot name=\"tooltip-disable\">${t(\"Disable captions\")}</slot>\n `\n );\n}\nconst updateAriaChecked = (el) => {\n el.setAttribute(\"aria-checked\", areSubsOn(el).toString());\n};\nclass MediaCaptionsButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_SUBTITLES_LIST,\n MediaUIAttributes.MEDIA_SUBTITLES_SHOWING\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"role\", \"button\");\n this.setAttribute(\"aria-label\", t(\"closed captions\"));\n updateAriaChecked(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_SUBTITLES_SHOWING) {\n updateAriaChecked(this);\n }\n }\n /**\n * An array of TextTrack-like objects.\n * Objects must have the properties: kind, language, and label.\n */\n get mediaSubtitlesList() {\n return getSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_LIST);\n }\n set mediaSubtitlesList(list) {\n setSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_LIST, list);\n }\n /**\n * An array of TextTrack-like objects.\n * Objects must have the properties: kind, language, and label.\n */\n get mediaSubtitlesShowing() {\n return getSubtitlesListAttr(\n this,\n MediaUIAttributes.MEDIA_SUBTITLES_SHOWING\n );\n }\n set mediaSubtitlesShowing(list) {\n setSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_SHOWING, list);\n }\n handleClick() {\n this.dispatchEvent(\n new globalThis.CustomEvent(MediaUIEvents.MEDIA_TOGGLE_SUBTITLES_REQUEST, {\n composed: true,\n bubbles: true\n })\n );\n }\n}\nMediaCaptionsButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaCaptionsButton.getTooltipContentHTML = getTooltipContentHTML;\nconst getSubtitlesListAttr = (el, attrName) => {\n const attrVal = el.getAttribute(attrName);\n return attrVal ? parseTextTracksStr(attrVal) : [];\n};\nconst setSubtitlesListAttr = (el, attrName, list) => {\n if (!(list == null ? void 0 : list.length)) {\n el.removeAttribute(attrName);\n return;\n }\n const newValStr = stringifyTextTrackList(list);\n const oldVal = el.getAttribute(attrName);\n if (oldVal === newValStr)\n return;\n el.setAttribute(attrName, newValStr);\n};\nif (!globalThis.customElements.get(\"media-captions-button\")) {\n globalThis.customElements.define(\n \"media-captions-button\",\n MediaCaptionsButton\n );\n}\nvar media_captions_button_default = MediaCaptionsButton;\nexport {\n MediaCaptionsButton,\n media_captions_button_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nimport {\n getBooleanAttr,\n setBooleanAttr,\n getStringAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nconst enterIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\"><g><path class=\"cast_caf_icon_arch0\" d=\"M1,18 L1,21 L4,21 C4,19.3 2.66,18 1,18 L1,18 Z\"/><path class=\"cast_caf_icon_arch1\" d=\"M1,14 L1,16 C3.76,16 6,18.2 6,21 L8,21 C8,17.13 4.87,14 1,14 L1,14 Z\"/><path class=\"cast_caf_icon_arch2\" d=\"M1,10 L1,12 C5.97,12 10,16.0 10,21 L12,21 C12,14.92 7.07,10 1,10 L1,10 Z\"/><path class=\"cast_caf_icon_box\" d=\"M21,3 L3,3 C1.9,3 1,3.9 1,5 L1,8 L3,8 L3,5 L21,5 L21,19 L14,19 L14,21 L21,21 C22.1,21 23,20.1 23,19 L23,5 C23,3.9 22.1,3 21,3 L21,3 Z\"/></g></svg>`;\nconst exitIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\"><g><path class=\"cast_caf_icon_arch0\" d=\"M1,18 L1,21 L4,21 C4,19.3 2.66,18 1,18 L1,18 Z\"/><path class=\"cast_caf_icon_arch1\" d=\"M1,14 L1,16 C3.76,16 6,18.2 6,21 L8,21 C8,17.13 4.87,14 1,14 L1,14 Z\"/><path class=\"cast_caf_icon_arch2\" d=\"M1,10 L1,12 C5.97,12 10,16.0 10,21 L12,21 C12,14.92 7.07,10 1,10 L1,10 Z\"/><path class=\"cast_caf_icon_box\" d=\"M21,3 L3,3 C1.9,3 1,3.9 1,5 L1,8 L3,8 L3,5 L21,5 L21,19 L14,19 L14,21 L21,21 C22.1,21 23,20.1 23,19 L23,5 C23,3.9 22.1,3 21,3 L21,3 Z\"/><path class=\"cast_caf_icon_boxfill\" d=\"M5,7 L5,8.63 C8,8.6 13.37,14 13.37,17 L19,17 L19,7 Z\"/></g></svg>`;\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host([${MediaUIAttributes.MEDIA_IS_CASTING}]) slot[name=icon] slot:not([name=exit]) {\n display: none !important;\n }\n\n ${/* Double negative, but safer if display doesn't equal 'block' */\n \"\"}\n :host(:not([${MediaUIAttributes.MEDIA_IS_CASTING}])) slot[name=icon] slot:not([name=enter]) {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_IS_CASTING}]) slot[name=tooltip-enter],\n :host(:not([${MediaUIAttributes.MEDIA_IS_CASTING}])) slot[name=tooltip-exit] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"enter\">${enterIcon}</slot>\n <slot name=\"exit\">${exitIcon}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return (\n /*html*/\n `\n <slot name=\"tooltip-enter\">${t(\"Start casting\")}</slot>\n <slot name=\"tooltip-exit\">${t(\"Stop casting\")}</slot>\n `\n );\n}\nconst updateAriaLabel = (el) => {\n const label = el.mediaIsCasting ? t(\"stop casting\") : t(\"start casting\");\n el.setAttribute(\"aria-label\", label);\n};\nclass MediaCastButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_IS_CASTING,\n MediaUIAttributes.MEDIA_CAST_UNAVAILABLE\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_IS_CASTING) {\n updateAriaLabel(this);\n }\n }\n /**\n * @type {boolean} Are we currently casting\n */\n get mediaIsCasting() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_IS_CASTING);\n }\n set mediaIsCasting(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_IS_CASTING, value);\n }\n /**\n * @type {string | undefined} Cast unavailability state\n */\n get mediaCastUnavailable() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_CAST_UNAVAILABLE);\n }\n set mediaCastUnavailable(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_CAST_UNAVAILABLE, value);\n }\n handleClick() {\n const eventName = this.mediaIsCasting ? MediaUIEvents.MEDIA_EXIT_CAST_REQUEST : MediaUIEvents.MEDIA_ENTER_CAST_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, { composed: true, bubbles: true })\n );\n }\n}\nMediaCastButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaCastButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-cast-button\")) {\n globalThis.customElements.define(\"media-cast-button\", MediaCastButton);\n}\nvar media_cast_button_default = MediaCastButton;\nexport {\n media_cast_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _isInit, _previouslyFocused, _invokerElement, _init, init_fn, _handleOpen, handleOpen_fn, _handleClosed, handleClosed_fn, _handleInvoke, handleInvoke_fn, _handleFocusOut, handleFocusOut_fn, _handleKeyDown, handleKeyDown_fn;\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport {\n containsComposedNode,\n getActiveElement,\n getBooleanAttr,\n namedNodeMapToObject,\n setBooleanAttr,\n getOrInsertCSSRule\n} from \"./utils/element-utils.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n font: var(--media-font,\n var(--media-font-weight, normal)\n var(--media-font-size, 14px) /\n var(--media-text-content-height, var(--media-control-height, 24px))\n var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));\n color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));\n display: var(--media-dialog-display, inline-flex);\n justify-content: center;\n align-items: center;\n ${/** The hide transition is defined below after a short delay. */\n \"\"}\n transition-behavior: allow-discrete;\n visibility: hidden;\n opacity: 0;\n transform: translateY(2px) scale(.99);\n pointer-events: none;\n }\n\n :host([open]) {\n transition: display .2s, visibility 0s, opacity .2s ease-out, transform .15s ease-out;\n visibility: visible;\n opacity: 1;\n transform: translateY(0) scale(1);\n pointer-events: auto;\n }\n\n #content {\n display: flex;\n position: relative;\n box-sizing: border-box;\n width: min(320px, 100%);\n word-wrap: break-word;\n max-height: 100%;\n overflow: auto;\n text-align: center;\n line-height: 1.4;\n }\n </style>\n ${this.getSlotTemplateHTML(_attrs)}\n `\n );\n}\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <slot id=\"content\"></slot>\n `\n );\n}\nconst Attributes = {\n OPEN: \"open\",\n ANCHOR: \"anchor\"\n};\nclass MediaChromeDialog extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _init);\n __privateAdd(this, _handleOpen);\n __privateAdd(this, _handleClosed);\n __privateAdd(this, _handleInvoke);\n __privateAdd(this, _handleFocusOut);\n __privateAdd(this, _handleKeyDown);\n __privateAdd(this, _isInit, false);\n __privateAdd(this, _previouslyFocused, null);\n __privateAdd(this, _invokerElement, null);\n }\n static get observedAttributes() {\n return [Attributes.OPEN, Attributes.ANCHOR];\n }\n get open() {\n return getBooleanAttr(this, Attributes.OPEN);\n }\n set open(value) {\n setBooleanAttr(this, Attributes.OPEN, value);\n }\n handleEvent(event) {\n switch (event.type) {\n case \"invoke\":\n __privateMethod(this, _handleInvoke, handleInvoke_fn).call(this, event);\n break;\n case \"focusout\":\n __privateMethod(this, _handleFocusOut, handleFocusOut_fn).call(this, event);\n break;\n case \"keydown\":\n __privateMethod(this, _handleKeyDown, handleKeyDown_fn).call(this, event);\n break;\n }\n }\n connectedCallback() {\n __privateMethod(this, _init, init_fn).call(this);\n if (!this.role) {\n this.role = \"dialog\";\n }\n this.addEventListener(\"invoke\", this);\n this.addEventListener(\"focusout\", this);\n this.addEventListener(\"keydown\", this);\n }\n disconnectedCallback() {\n this.removeEventListener(\"invoke\", this);\n this.removeEventListener(\"focusout\", this);\n this.removeEventListener(\"keydown\", this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n __privateMethod(this, _init, init_fn).call(this);\n if (attrName === Attributes.OPEN && newValue !== oldValue) {\n if (this.open) {\n __privateMethod(this, _handleOpen, handleOpen_fn).call(this);\n } else {\n __privateMethod(this, _handleClosed, handleClosed_fn).call(this);\n }\n }\n }\n focus() {\n __privateSet(this, _previouslyFocused, getActiveElement());\n const focusCancelled = !this.dispatchEvent(new Event(\"focus\", { composed: true, cancelable: true }));\n const focusInCancelled = !this.dispatchEvent(new Event(\"focusin\", { composed: true, bubbles: true, cancelable: true }));\n if (focusCancelled || focusInCancelled)\n return;\n const focusable = this.querySelector(\n '[autofocus], [tabindex]:not([tabindex=\"-1\"]), [role=\"menu\"]'\n );\n focusable == null ? void 0 : focusable.focus();\n }\n get keysUsed() {\n return [\"Escape\", \"Tab\"];\n }\n}\n_isInit = new WeakMap();\n_previouslyFocused = new WeakMap();\n_invokerElement = new WeakMap();\n_init = new WeakSet();\ninit_fn = function() {\n if (__privateGet(this, _isInit))\n return;\n __privateSet(this, _isInit, true);\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n queueMicrotask(() => {\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n style.setProperty(\n \"transition\",\n `display .15s, visibility .15s, opacity .15s ease-in, transform .15s ease-in`\n );\n });\n }\n};\n_handleOpen = new WeakSet();\nhandleOpen_fn = function() {\n var _a;\n (_a = __privateGet(this, _invokerElement)) == null ? void 0 : _a.setAttribute(\"aria-expanded\", \"true\");\n this.dispatchEvent(new Event(\"open\", { composed: true, bubbles: true }));\n this.addEventListener(\"transitionend\", () => this.focus(), { once: true });\n};\n_handleClosed = new WeakSet();\nhandleClosed_fn = function() {\n var _a;\n (_a = __privateGet(this, _invokerElement)) == null ? void 0 : _a.setAttribute(\"aria-expanded\", \"false\");\n this.dispatchEvent(new Event(\"close\", { composed: true, bubbles: true }));\n};\n_handleInvoke = new WeakSet();\nhandleInvoke_fn = function(event) {\n __privateSet(this, _invokerElement, event.relatedTarget);\n if (!containsComposedNode(this, event.relatedTarget)) {\n this.open = !this.open;\n }\n};\n_handleFocusOut = new WeakSet();\nhandleFocusOut_fn = function(event) {\n var _a;\n if (!containsComposedNode(this, event.relatedTarget)) {\n (_a = __privateGet(this, _previouslyFocused)) == null ? void 0 : _a.focus();\n if (__privateGet(this, _invokerElement) && __privateGet(this, _invokerElement) !== event.relatedTarget && this.open) {\n this.open = false;\n }\n }\n};\n_handleKeyDown = new WeakSet();\nhandleKeyDown_fn = function(event) {\n var _a, _b, _c, _d, _e;\n const { key, ctrlKey, altKey, metaKey } = event;\n if (ctrlKey || altKey || metaKey) {\n return;\n }\n if (!this.keysUsed.includes(key)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n if (key === \"Tab\") {\n if (event.shiftKey) {\n (_b = (_a = this.previousElementSibling) == null ? void 0 : _a.focus) == null ? void 0 : _b.call(_a);\n } else {\n (_d = (_c = this.nextElementSibling) == null ? void 0 : _c.focus) == null ? void 0 : _d.call(_c);\n }\n this.blur();\n } else if (key === \"Escape\") {\n (_e = __privateGet(this, _previouslyFocused)) == null ? void 0 : _e.focus();\n this.open = false;\n }\n};\nMediaChromeDialog.shadowRootOptions = { mode: \"open\" };\nMediaChromeDialog.getTemplateHTML = getTemplateHTML;\nMediaChromeDialog.getSlotTemplateHTML = getSlotTemplateHTML;\nif (!globalThis.customElements.get(\"media-chrome-dialog\")) {\n globalThis.customElements.define(\"media-chrome-dialog\", MediaChromeDialog);\n}\nvar media_chrome_dialog_default = MediaChromeDialog;\nexport {\n Attributes,\n MediaChromeDialog,\n media_chrome_dialog_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _mediaController, _isInputTarget, _startpoint, _endpoint, _cssRules, _segments, _onFocusIn, _onFocusOut, _updateComputedStyles, _updateActiveSegment, updateActiveSegment_fn, _enableUserEvents, enableUserEvents_fn, _disableUserEvents, disableUserEvents_fn, _handlePointerDown, handlePointerDown_fn, _handlePointerEnter, handlePointerEnter_fn, _handlePointerUp, handlePointerUp_fn, _handlePointerLeave, handlePointerLeave_fn, _handlePointerMove, handlePointerMove_fn;\nimport { MediaStateReceiverAttributes } from \"./constants.js\";\nimport { globalThis, document } from \"./utils/server-safe-globals.js\";\nimport {\n getOrInsertCSSRule,\n getPointProgressOnLine,\n insertCSSRule,\n namedNodeMapToObject\n} from \"./utils/element-utils.js\";\nimport { observeResize, unobserveResize } from \"./utils/resize-observer.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n --_focus-box-shadow: var(--media-focus-box-shadow, inset 0 0 0 2px rgb(27 127 204 / .9));\n --_media-range-padding: var(--media-range-padding, var(--media-control-padding, 10px));\n\n box-shadow: var(--_focus-visible-box-shadow, none);\n background: var(--media-control-background, var(--media-secondary-color, rgb(20 20 30 / .7)));\n height: calc(var(--media-control-height, 24px) + 2 * var(--_media-range-padding));\n display: inline-flex;\n align-items: center;\n ${/* Don't horizontal align w/ justify-content! #container can go negative on the x-axis w/ small width. */\n \"\"}\n vertical-align: middle;\n box-sizing: border-box;\n position: relative;\n width: 100px;\n transition: background .15s linear;\n cursor: var(--media-cursor, pointer);\n pointer-events: auto;\n touch-action: none; ${/* Prevent scrolling when dragging on mobile. */\n \"\"}\n }\n\n ${/* Reset before `outline` on track could be set by a CSS var */\n \"\"}\n input[type=range]:focus {\n outline: 0;\n }\n input[type=range]:focus::-webkit-slider-runnable-track {\n outline: 0;\n }\n\n :host(:hover) {\n background: var(--media-control-hover-background, rgb(50 50 70 / .7));\n }\n\n #leftgap {\n padding-left: var(--media-range-padding-left, var(--_media-range-padding));\n }\n\n #rightgap {\n padding-right: var(--media-range-padding-right, var(--_media-range-padding));\n }\n\n #startpoint,\n #endpoint {\n position: absolute;\n }\n\n #endpoint {\n right: 0;\n }\n\n #container {\n ${/* Not using the CSS `padding` prop makes it easier for slide open volume ranges so the width can be zero. */\n \"\"}\n width: var(--media-range-track-width, 100%);\n transform: translate(var(--media-range-track-translate-x, 0px), var(--media-range-track-translate-y, 0px));\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n min-width: 40px;\n }\n\n #range {\n ${/* The input range acts as a hover and hit zone for input events. */\n \"\"}\n display: var(--media-time-range-hover-display, block);\n bottom: var(--media-time-range-hover-bottom, -7px);\n height: var(--media-time-range-hover-height, max(100% + 7px, 25px));\n width: 100%;\n position: absolute;\n cursor: var(--media-cursor, pointer);\n\n -webkit-appearance: none; ${/* Hides the slider so that custom slider can be made */\n \"\"}\n -webkit-tap-highlight-color: transparent;\n background: transparent; ${/* Otherwise white in Chrome */\n \"\"}\n margin: 0;\n z-index: 1;\n }\n\n @media (hover: hover) {\n #range {\n bottom: var(--media-time-range-hover-bottom, -5px);\n height: var(--media-time-range-hover-height, max(100% + 5px, 20px));\n }\n }\n\n ${/* Special styling for WebKit/Blink */\n \"\"}\n ${/* Make thumb width/height small so it has no effect on range click position. */\n \"\"}\n #range::-webkit-slider-thumb {\n -webkit-appearance: none;\n background: transparent;\n width: .1px;\n height: .1px;\n }\n\n ${/* The thumb is not positioned relative to the track in Firefox */\n \"\"}\n #range::-moz-range-thumb {\n background: transparent;\n border: transparent;\n width: .1px;\n height: .1px;\n }\n\n #appearance {\n height: var(--media-range-track-height, 4px);\n display: flex;\n flex-direction: column;\n justify-content: center;\n width: 100%;\n position: absolute;\n ${/* Required for Safari to stop glitching track height on hover */\n \"\"}\n will-change: transform;\n }\n\n #track {\n background: var(--media-range-track-background, rgb(255 255 255 / .2));\n border-radius: var(--media-range-track-border-radius, 1px);\n border: var(--media-range-track-border, none);\n outline: var(--media-range-track-outline);\n outline-offset: var(--media-range-track-outline-offset);\n backdrop-filter: var(--media-range-track-backdrop-filter);\n -webkit-backdrop-filter: var(--media-range-track-backdrop-filter);\n box-shadow: var(--media-range-track-box-shadow, none);\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n\n #progress,\n #pointer {\n position: absolute;\n height: 100%;\n will-change: width;\n }\n\n #progress {\n background: var(--media-range-bar-color, var(--media-primary-color, rgb(238 238 238)));\n transition: var(--media-range-track-transition);\n }\n\n #pointer {\n background: var(--media-range-track-pointer-background);\n border-right: var(--media-range-track-pointer-border-right);\n transition: visibility .25s, opacity .25s;\n visibility: hidden;\n opacity: 0;\n }\n\n @media (hover: hover) {\n :host(:hover) #pointer {\n transition: visibility .5s, opacity .5s;\n visibility: visible;\n opacity: 1;\n }\n }\n\n #thumb,\n ::slotted([slot=thumb]) {\n width: var(--media-range-thumb-width, 10px);\n height: var(--media-range-thumb-height, 10px);\n transition: var(--media-range-thumb-transition);\n transform: var(--media-range-thumb-transform, none);\n opacity: var(--media-range-thumb-opacity, 1);\n translate: -50%;\n position: absolute;\n left: 0;\n cursor: var(--media-cursor, pointer);\n }\n\n #thumb {\n border-radius: var(--media-range-thumb-border-radius, 10px);\n background: var(--media-range-thumb-background, var(--media-primary-color, rgb(238 238 238)));\n box-shadow: var(--media-range-thumb-box-shadow, 1px 1px 1px transparent);\n border: var(--media-range-thumb-border, none);\n }\n\n :host([disabled]) #thumb {\n background-color: #777;\n }\n\n .segments #appearance {\n height: var(--media-range-segment-hover-height, 7px);\n }\n\n #track {\n clip-path: url(#segments-clipping);\n }\n\n #segments {\n --segments-gap: var(--media-range-segments-gap, 2px);\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n #segments-clipping {\n transform: translateX(calc(var(--segments-gap) / 2));\n }\n\n #segments-clipping:empty {\n display: none;\n }\n\n #segments-clipping rect {\n height: var(--media-range-track-height, 4px);\n y: calc((var(--media-range-segment-hover-height, 7px) - var(--media-range-track-height, 4px)) / 2);\n transition: var(--media-range-segment-transition, transform .1s ease-in-out);\n transform: var(--media-range-segment-transform, scaleY(1));\n transform-origin: center;\n }\n\n /* Visible label for accessibility - positioned off-screen but technically visible (Firefox requires visible labels) */\n #range-label {\n position: absolute;\n left: -10000px;\n background: var(--media-control-background, var(--media-secondary-color, rgb(20 20 30 / .7)));\n pointer-events: none;\n }\n </style>\n <div id=\"leftgap\"></div>\n <div id=\"container\">\n <div id=\"startpoint\"></div>\n <div id=\"endpoint\"></div>\n <div id=\"appearance\">\n <div id=\"track\" part=\"track\">\n <div id=\"pointer\"></div>\n <div id=\"progress\" part=\"progress\"></div>\n </div>\n <slot name=\"thumb\">\n <div id=\"thumb\" part=\"thumb\"></div>\n </slot>\n <svg id=\"segments\" aria-hidden=\"true\"><clipPath id=\"segments-clipping\"></clipPath></svg>\n </div>\n <input id=\"range\" type=\"range\" min=\"0\" max=\"1\" step=\"any\" value=\"0\">\n <label for=\"range\" id=\"range-label\"></label>\n\n ${this.getContainerTemplateHTML(_attrs)}\n </div>\n <div id=\"rightgap\"></div>\n `\n );\n}\nfunction getContainerTemplateHTML(_attrs) {\n return \"\";\n}\nclass MediaChromeRange extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _updateActiveSegment);\n __privateAdd(this, _enableUserEvents);\n __privateAdd(this, _disableUserEvents);\n __privateAdd(this, _handlePointerDown);\n __privateAdd(this, _handlePointerEnter);\n __privateAdd(this, _handlePointerUp);\n __privateAdd(this, _handlePointerLeave);\n __privateAdd(this, _handlePointerMove);\n __privateAdd(this, _mediaController, void 0);\n __privateAdd(this, _isInputTarget, void 0);\n __privateAdd(this, _startpoint, void 0);\n __privateAdd(this, _endpoint, void 0);\n __privateAdd(this, _cssRules, {});\n __privateAdd(this, _segments, []);\n __privateAdd(this, _onFocusIn, () => {\n if (this.range.matches(\":focus-visible\")) {\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n style.setProperty(\n \"--_focus-visible-box-shadow\",\n \"var(--_focus-box-shadow)\"\n );\n }\n });\n __privateAdd(this, _onFocusOut, () => {\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n style.removeProperty(\"--_focus-visible-box-shadow\");\n });\n __privateAdd(this, _updateComputedStyles, () => {\n const clipping = this.shadowRoot.querySelector(\"#segments-clipping\");\n if (clipping)\n clipping.parentNode.append(clipping);\n });\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n const html = this.constructor.getTemplateHTML(attrs);\n this.shadowRoot.setHTMLUnsafe ? this.shadowRoot.setHTMLUnsafe(html) : this.shadowRoot.innerHTML = html;\n }\n this.container = this.shadowRoot.querySelector(\"#container\");\n __privateSet(this, _startpoint, this.shadowRoot.querySelector(\"#startpoint\"));\n __privateSet(this, _endpoint, this.shadowRoot.querySelector(\"#endpoint\"));\n this.range = this.shadowRoot.querySelector(\"#range\");\n this.appearance = this.shadowRoot.querySelector(\"#appearance\");\n }\n static get observedAttributes() {\n return [\n \"disabled\",\n \"aria-disabled\",\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e;\n if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue));\n (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this);\n }\n } else if (attrName === \"disabled\" || attrName === \"aria-disabled\" && oldValue !== newValue) {\n if (newValue == null) {\n this.range.removeAttribute(attrName);\n __privateMethod(this, _enableUserEvents, enableUserEvents_fn).call(this);\n } else {\n this.range.setAttribute(attrName, newValue);\n __privateMethod(this, _disableUserEvents, disableUserEvents_fn).call(this);\n }\n }\n }\n connectedCallback() {\n var _a, _b, _c;\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n style.setProperty(\n \"display\",\n `var(--media-control-display, var(--${this.localName}-display, inline-flex))`\n );\n __privateGet(this, _cssRules).pointer = getOrInsertCSSRule(this.shadowRoot, \"#pointer\");\n __privateGet(this, _cssRules).progress = getOrInsertCSSRule(this.shadowRoot, \"#progress\");\n __privateGet(this, _cssRules).thumb = getOrInsertCSSRule(\n this.shadowRoot,\n '#thumb, ::slotted([slot=\"thumb\"])'\n );\n __privateGet(this, _cssRules).activeSegment = getOrInsertCSSRule(\n this.shadowRoot,\n \"#segments-clipping rect:nth-child(0)\"\n );\n const mediaControllerId = this.getAttribute(\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n );\n if (mediaControllerId) {\n __privateSet(this, _mediaController, (_a = this.getRootNode()) == null ? void 0 : _a.getElementById(\n mediaControllerId\n ));\n (_c = (_b = __privateGet(this, _mediaController)) == null ? void 0 : _b.associateElement) == null ? void 0 : _c.call(_b, this);\n }\n this.updateBar();\n this.shadowRoot.addEventListener(\"focusin\", __privateGet(this, _onFocusIn));\n this.shadowRoot.addEventListener(\"focusout\", __privateGet(this, _onFocusOut));\n __privateMethod(this, _enableUserEvents, enableUserEvents_fn).call(this);\n observeResize(this.container, __privateGet(this, _updateComputedStyles));\n }\n disconnectedCallback() {\n var _a, _b;\n __privateMethod(this, _disableUserEvents, disableUserEvents_fn).call(this);\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n this.shadowRoot.removeEventListener(\"focusin\", __privateGet(this, _onFocusIn));\n this.shadowRoot.removeEventListener(\"focusout\", __privateGet(this, _onFocusOut));\n unobserveResize(this.container, __privateGet(this, _updateComputedStyles));\n }\n updatePointerBar(evt) {\n var _a;\n (_a = __privateGet(this, _cssRules).pointer) == null ? void 0 : _a.style.setProperty(\n \"width\",\n `${this.getPointerRatio(evt) * 100}%`\n );\n }\n updateBar() {\n var _a, _b;\n const rangePercent = this.range.valueAsNumber * 100;\n (_a = __privateGet(this, _cssRules).progress) == null ? void 0 : _a.style.setProperty(\"width\", `${rangePercent}%`);\n (_b = __privateGet(this, _cssRules).thumb) == null ? void 0 : _b.style.setProperty(\"left\", `${rangePercent}%`);\n }\n updateSegments(segments) {\n const clipping = this.shadowRoot.querySelector(\"#segments-clipping\");\n clipping.textContent = \"\";\n this.container.classList.toggle(\"segments\", !!(segments == null ? void 0 : segments.length));\n if (!(segments == null ? void 0 : segments.length))\n return;\n const normalized = [\n .../* @__PURE__ */ new Set([\n +this.range.min,\n ...segments.flatMap((s) => [s.start, s.end]),\n +this.range.max\n ])\n ];\n __privateSet(this, _segments, [...normalized]);\n const lastMarker = normalized.pop();\n for (const [i, marker] of normalized.entries()) {\n const [isFirst, isLast] = [i === 0, i === normalized.length - 1];\n const x = isFirst ? \"calc(var(--segments-gap) / -1)\" : `${marker * 100}%`;\n const x2 = isLast ? lastMarker : normalized[i + 1];\n const width = `calc(${(x2 - marker) * 100}%${isFirst || isLast ? \"\" : ` - var(--segments-gap)`})`;\n const segmentEl = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"rect\"\n );\n const cssRule = insertCSSRule(\n this.shadowRoot,\n `#segments-clipping rect:nth-child(${i + 1})`\n );\n cssRule.style.setProperty(\"x\", x);\n cssRule.style.setProperty(\"width\", width);\n clipping.append(segmentEl);\n }\n }\n getPointerRatio(evt) {\n return getPointProgressOnLine(\n evt.clientX,\n evt.clientY,\n __privateGet(this, _startpoint).getBoundingClientRect(),\n __privateGet(this, _endpoint).getBoundingClientRect()\n );\n }\n get dragging() {\n return this.hasAttribute(\"dragging\");\n }\n handleEvent(evt) {\n switch (evt.type) {\n case \"pointermove\":\n __privateMethod(this, _handlePointerMove, handlePointerMove_fn).call(this, evt);\n break;\n case \"input\":\n this.updateBar();\n break;\n case \"pointerenter\":\n __privateMethod(this, _handlePointerEnter, handlePointerEnter_fn).call(this, evt);\n break;\n case \"pointerdown\":\n __privateMethod(this, _handlePointerDown, handlePointerDown_fn).call(this, evt);\n break;\n case \"pointerup\":\n __privateMethod(this, _handlePointerUp, handlePointerUp_fn).call(this);\n break;\n case \"pointerleave\":\n __privateMethod(this, _handlePointerLeave, handlePointerLeave_fn).call(this);\n break;\n }\n }\n get keysUsed() {\n return [\"ArrowUp\", \"ArrowRight\", \"ArrowDown\", \"ArrowLeft\"];\n }\n}\n_mediaController = new WeakMap();\n_isInputTarget = new WeakMap();\n_startpoint = new WeakMap();\n_endpoint = new WeakMap();\n_cssRules = new WeakMap();\n_segments = new WeakMap();\n_onFocusIn = new WeakMap();\n_onFocusOut = new WeakMap();\n_updateComputedStyles = new WeakMap();\n_updateActiveSegment = new WeakSet();\nupdateActiveSegment_fn = function(evt) {\n const rule = __privateGet(this, _cssRules).activeSegment;\n if (!rule)\n return;\n const pointerRatio = this.getPointerRatio(evt);\n const segmentIndex = __privateGet(this, _segments).findIndex((start, i, arr) => {\n const end = arr[i + 1];\n return end != null && pointerRatio >= start && pointerRatio <= end;\n });\n const selectorText = `#segments-clipping rect:nth-child(${segmentIndex + 1})`;\n if (rule.selectorText != selectorText || !rule.style.transform) {\n rule.selectorText = selectorText;\n rule.style.setProperty(\n \"transform\",\n \"var(--media-range-segment-hover-transform, scaleY(2))\"\n );\n }\n};\n_enableUserEvents = new WeakSet();\nenableUserEvents_fn = function() {\n if (this.hasAttribute(\"disabled\") || !this.isConnected)\n return;\n this.addEventListener(\"input\", this);\n this.addEventListener(\"pointerdown\", this);\n this.addEventListener(\"pointerenter\", this);\n};\n_disableUserEvents = new WeakSet();\ndisableUserEvents_fn = function() {\n var _a, _b;\n this.removeEventListener(\"input\", this);\n this.removeEventListener(\"pointerdown\", this);\n this.removeEventListener(\"pointerenter\", this);\n this.removeEventListener(\"pointerleave\", this);\n (_a = globalThis.window) == null ? void 0 : _a.removeEventListener(\"pointerup\", this);\n (_b = globalThis.window) == null ? void 0 : _b.removeEventListener(\"pointermove\", this);\n};\n_handlePointerDown = new WeakSet();\nhandlePointerDown_fn = function(evt) {\n var _a;\n __privateSet(this, _isInputTarget, evt.composedPath().includes(this.range));\n (_a = globalThis.window) == null ? void 0 : _a.addEventListener(\"pointerup\", this, { once: true });\n};\n_handlePointerEnter = new WeakSet();\nhandlePointerEnter_fn = function(evt) {\n var _a;\n if (evt.pointerType !== \"mouse\")\n __privateMethod(this, _handlePointerDown, handlePointerDown_fn).call(this, evt);\n this.addEventListener(\"pointerleave\", this, { once: true });\n (_a = globalThis.window) == null ? void 0 : _a.addEventListener(\"pointermove\", this);\n};\n_handlePointerUp = new WeakSet();\nhandlePointerUp_fn = function() {\n var _a;\n (_a = globalThis.window) == null ? void 0 : _a.removeEventListener(\"pointerup\", this);\n this.toggleAttribute(\"dragging\", false);\n this.range.disabled = this.hasAttribute(\"disabled\");\n};\n_handlePointerLeave = new WeakSet();\nhandlePointerLeave_fn = function() {\n var _a, _b;\n this.removeEventListener(\"pointerleave\", this);\n (_a = globalThis.window) == null ? void 0 : _a.removeEventListener(\"pointermove\", this);\n this.toggleAttribute(\"dragging\", false);\n this.range.disabled = this.hasAttribute(\"disabled\");\n (_b = __privateGet(this, _cssRules).activeSegment) == null ? void 0 : _b.style.removeProperty(\"transform\");\n};\n_handlePointerMove = new WeakSet();\nhandlePointerMove_fn = function(evt) {\n if (evt.pointerType === \"pen\" && evt.buttons === 0) {\n return;\n }\n this.toggleAttribute(\n \"dragging\",\n evt.buttons === 1 || evt.pointerType !== \"mouse\"\n );\n this.updatePointerBar(evt);\n __privateMethod(this, _updateActiveSegment, updateActiveSegment_fn).call(this, evt);\n if (this.dragging && (evt.pointerType !== \"mouse\" || !__privateGet(this, _isInputTarget))) {\n this.range.disabled = true;\n this.range.valueAsNumber = this.getPointerRatio(evt);\n this.range.dispatchEvent(\n new Event(\"input\", { bubbles: true, composed: true })\n );\n }\n};\nMediaChromeRange.shadowRootOptions = { mode: \"open\" };\nMediaChromeRange.getTemplateHTML = getTemplateHTML;\nMediaChromeRange.getContainerTemplateHTML = getContainerTemplateHTML;\nif (!globalThis.customElements.get(\"media-chrome-range\")) {\n globalThis.customElements.define(\"media-chrome-range\", MediaChromeRange);\n}\nvar media_chrome_range_default = MediaChromeRange;\nexport {\n MediaChromeRange,\n media_chrome_range_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _mediaController;\nimport { MediaStateReceiverAttributes } from \"./constants.js\";\nimport { namedNodeMapToObject } from \"./utils/element-utils.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n ${/* Need position to display above video for some reason */\n \"\"}\n box-sizing: border-box;\n display: var(--media-control-display, var(--media-control-bar-display, inline-flex));\n color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));\n --media-loading-indicator-icon-height: 44px;\n }\n\n ::slotted(media-time-range),\n ::slotted(media-volume-range) {\n min-height: 100%;\n }\n\n ::slotted(media-time-range),\n ::slotted(media-clip-selector) {\n flex-grow: 1;\n }\n\n ::slotted([role=\"menu\"]) {\n position: absolute;\n }\n </style>\n\n <slot></slot>\n `\n );\n}\nclass MediaControlBar extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _mediaController, void 0);\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n }\n static get observedAttributes() {\n return [MediaStateReceiverAttributes.MEDIA_CONTROLLER];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e;\n if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue));\n (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this);\n }\n }\n }\n connectedCallback() {\n var _a, _b, _c;\n const mediaControllerId = this.getAttribute(\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n );\n if (mediaControllerId) {\n __privateSet(this, _mediaController, (_a = this.getRootNode()) == null ? void 0 : _a.getElementById(\n mediaControllerId\n ));\n (_c = (_b = __privateGet(this, _mediaController)) == null ? void 0 : _b.associateElement) == null ? void 0 : _c.call(_b, this);\n }\n }\n disconnectedCallback() {\n var _a, _b;\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n}\n_mediaController = new WeakMap();\nMediaControlBar.shadowRootOptions = { mode: \"open\" };\nMediaControlBar.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-control-bar\")) {\n globalThis.customElements.define(\"media-control-bar\", MediaControlBar);\n}\nvar media_control_bar_default = MediaControlBar;\nexport {\n media_control_bar_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _mediaController;\nimport { MediaStateReceiverAttributes } from \"./constants.js\";\nimport { getOrInsertCSSRule, namedNodeMapToObject } from \"./utils/element-utils.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nfunction getTemplateHTML(_attrs, _props = {}) {\n return (\n /*html*/\n `\n <style>\n :host {\n font: var(--media-font,\n var(--media-font-weight, normal)\n var(--media-font-size, 14px) /\n var(--media-text-content-height, var(--media-control-height, 24px))\n var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));\n color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));\n background: var(--media-text-background, var(--media-control-background, var(--media-secondary-color, rgb(20 20 30 / .7))));\n padding: var(--media-control-padding, 10px);\n display: inline-flex;\n justify-content: center;\n align-items: center;\n vertical-align: middle;\n box-sizing: border-box;\n text-align: center;\n pointer-events: auto;\n }\n\n ${/*\n Only show outline when keyboard focusing.\n https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo\n */\n \"\"}\n :host(:focus-visible) {\n box-shadow: inset 0 0 0 2px rgb(27 127 204 / .9);\n outline: 0;\n }\n\n ${/*\n * hide default focus ring, particularly when using mouse\n */\n \"\"}\n :host(:where(:focus)) {\n box-shadow: none;\n outline: 0;\n }\n </style>\n\n ${this.getSlotTemplateHTML(_attrs, _props)}\n `\n );\n}\nfunction getSlotTemplateHTML(_attrs, _props) {\n return (\n /*html*/\n `\n <slot></slot>\n `\n );\n}\nclass MediaTextDisplay extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _mediaController, void 0);\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n }\n static get observedAttributes() {\n return [MediaStateReceiverAttributes.MEDIA_CONTROLLER];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e;\n if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue));\n (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this);\n }\n }\n }\n connectedCallback() {\n var _a, _b, _c;\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n style.setProperty(\n \"display\",\n `var(--media-control-display, var(--${this.localName}-display, inline-flex))`\n );\n const mediaControllerId = this.getAttribute(\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n );\n if (mediaControllerId) {\n __privateSet(this, _mediaController, (_a = this.getRootNode()) == null ? void 0 : _a.getElementById(\n mediaControllerId\n ));\n (_c = (_b = __privateGet(this, _mediaController)) == null ? void 0 : _b.associateElement) == null ? void 0 : _c.call(_b, this);\n }\n }\n disconnectedCallback() {\n var _a, _b;\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n}\n_mediaController = new WeakMap();\nMediaTextDisplay.shadowRootOptions = { mode: \"open\" };\nMediaTextDisplay.getTemplateHTML = getTemplateHTML;\nMediaTextDisplay.getSlotTemplateHTML = getSlotTemplateHTML;\nif (!globalThis.customElements.get(\"media-text-display\")) {\n globalThis.customElements.define(\"media-text-display\", MediaTextDisplay);\n}\nvar media_text_display_default = MediaTextDisplay;\nexport {\n MediaTextDisplay,\n media_text_display_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _slot;\nimport { MediaTextDisplay } from \"./media-text-display.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { formatTime } from \"./utils/time.js\";\nimport { MediaUIAttributes } from \"./constants.js\";\nimport { getNumericAttr, setNumericAttr } from \"./utils/element-utils.js\";\nfunction getSlotTemplateHTML(_attrs, props) {\n return (\n /*html*/\n `\n <slot>${formatTime(props.mediaDuration)}</slot>\n `\n );\n}\nclass MediaDurationDisplay extends MediaTextDisplay {\n constructor() {\n var _a;\n super();\n __privateAdd(this, _slot, void 0);\n __privateSet(this, _slot, this.shadowRoot.querySelector(\"slot\"));\n __privateGet(this, _slot).textContent = formatTime((_a = this.mediaDuration) != null ? _a : 0);\n }\n static get observedAttributes() {\n return [...super.observedAttributes, MediaUIAttributes.MEDIA_DURATION];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n if (attrName === MediaUIAttributes.MEDIA_DURATION) {\n __privateGet(this, _slot).textContent = formatTime(+newValue);\n }\n super.attributeChangedCallback(attrName, oldValue, newValue);\n }\n /**\n * @type {number | undefined} In seconds\n */\n get mediaDuration() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_DURATION);\n }\n set mediaDuration(time) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_DURATION, time);\n }\n}\n_slot = new WeakMap();\nMediaDurationDisplay.getSlotTemplateHTML = getSlotTemplateHTML;\nif (!globalThis.customElements.get(\"media-duration-display\")) {\n globalThis.customElements.define(\n \"media-duration-display\",\n MediaDurationDisplay\n );\n}\nvar media_duration_display_default = MediaDurationDisplay;\nexport {\n media_duration_display_default as default\n};\n","import { t } from \"../utils/i18n.js\";\nconst defaultErrorTitles = {\n 2: t(\"Network Error\"),\n 3: t(\"Decode Error\"),\n 4: t(\"Source Not Supported\"),\n 5: t(\"Encryption Error\")\n};\nconst defaultErrorMessages = {\n 2: t(\"A network error caused the media download to fail.\"),\n 3: t(\n \"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.\"\n ),\n 4: t(\n \"An unsupported error occurred. The server or network failed, or your browser does not support this format.\"\n ),\n 5: t(\"The media is encrypted and there are no keys to decrypt it.\")\n};\nconst formatError = (error) => {\n var _a, _b;\n if (error.code === 1)\n return null;\n return {\n title: (_a = defaultErrorTitles[error.code]) != null ? _a : `Error ${error.code}`,\n message: (_b = defaultErrorMessages[error.code]) != null ? _b : error.message\n };\n};\nexport {\n formatError\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _mediaError;\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIAttributes } from \"./constants.js\";\nimport { formatError } from \"./labels/labels.js\";\nimport { MediaChromeDialog } from \"./media-chrome-dialog.js\";\nimport {\n getNumericAttr,\n getStringAttr,\n setNumericAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nfunction getSlotTemplateHTML(attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n background: rgb(20 20 30 / .8);\n }\n\n #content {\n display: block;\n padding: 1.2em 1.5em;\n }\n\n h3,\n p {\n margin-block: 0 .3em;\n }\n </style>\n <slot name=\"error-${attrs.mediaerrorcode}\" id=\"content\">\n ${formatErrorMessage({ code: +attrs.mediaerrorcode, message: attrs.mediaerrormessage })}\n </slot>\n `\n );\n}\nfunction shouldOpenErrorDialog(error) {\n return error.code && formatError(error) !== null;\n}\nfunction formatErrorMessage(error) {\n var _a;\n const { title, message } = (_a = formatError(error)) != null ? _a : {};\n let html = \"\";\n if (title)\n html += `<slot name=\"error-${error.code}-title\"><h3>${title}</h3></slot>`;\n if (message)\n html += `<slot name=\"error-${error.code}-message\"><p>${message}</p></slot>`;\n return html;\n}\nconst observedAttributes = [\n MediaUIAttributes.MEDIA_ERROR_CODE,\n MediaUIAttributes.MEDIA_ERROR_MESSAGE\n];\nclass MediaErrorDialog extends MediaChromeDialog {\n constructor() {\n super(...arguments);\n __privateAdd(this, _mediaError, null);\n }\n static get observedAttributes() {\n return [...super.observedAttributes, ...observedAttributes];\n }\n formatErrorMessage(error) {\n return this.constructor.formatErrorMessage(error);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a;\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (!observedAttributes.includes(attrName))\n return;\n const mediaError = (_a = this.mediaError) != null ? _a : {\n code: this.mediaErrorCode,\n message: this.mediaErrorMessage\n };\n this.open = shouldOpenErrorDialog(mediaError);\n if (this.open) {\n this.shadowRoot.querySelector(\"slot\").name = `error-${this.mediaErrorCode}`;\n this.shadowRoot.querySelector(\"#content\").innerHTML = this.formatErrorMessage(mediaError);\n if (!this.hasAttribute(\"aria-label\")) {\n const { title } = formatError(mediaError);\n if (title)\n this.setAttribute(\"aria-label\", title);\n }\n }\n }\n get mediaError() {\n return __privateGet(this, _mediaError);\n }\n set mediaError(value) {\n __privateSet(this, _mediaError, value);\n }\n get mediaErrorCode() {\n return getNumericAttr(this, \"mediaerrorcode\");\n }\n set mediaErrorCode(value) {\n setNumericAttr(this, \"mediaerrorcode\", value);\n }\n get mediaErrorMessage() {\n return getStringAttr(this, \"mediaerrormessage\");\n }\n set mediaErrorMessage(value) {\n setStringAttr(this, \"mediaerrormessage\", value);\n }\n}\n_mediaError = new WeakMap();\nMediaErrorDialog.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaErrorDialog.formatErrorMessage = formatErrorMessage;\nif (!globalThis.customElements.get(\"media-error-dialog\")) {\n globalThis.customElements.define(\"media-error-dialog\", MediaErrorDialog);\n}\nvar media_error_dialog_default = MediaErrorDialog;\nexport {\n MediaErrorDialog,\n media_error_dialog_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar _clickHandler, _keyDownHandler;\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaChromeDialog } from \"./media-chrome-dialog.js\";\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 9999;\n background: rgb(20 20 30 / .8);\n backdrop-filter: blur(10px);\n }\n\n #content {\n display: block;\n width: clamp(400px, 40vw, 700px);\n max-width: 90vw;\n text-align: left;\n }\n\n h2 {\n margin: 0 0 1.5rem 0;\n font-size: 1.5rem;\n font-weight: 500;\n text-align: center;\n }\n\n .shortcuts-table {\n width: 100%;\n border-collapse: collapse;\n }\n\n .shortcuts-table tr {\n border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n }\n\n .shortcuts-table tr:last-child {\n border-bottom: none;\n }\n\n .shortcuts-table td {\n padding: 0.75rem 0.5rem;\n }\n\n .shortcuts-table td:first-child {\n text-align: right;\n padding-right: 1rem;\n width: 40%;\n min-width: 120px;\n }\n\n .shortcuts-table td:last-child {\n padding-left: 1rem;\n }\n\n .key {\n display: inline-block;\n background: rgba(255, 255, 255, 0.15);\n border: 1px solid rgba(255, 255, 255, 0.2);\n border-radius: 4px;\n padding: 0.25rem 0.5rem;\n font-family: 'Courier New', monospace;\n font-size: 0.9rem;\n font-weight: 500;\n min-width: 1.5rem;\n text-align: center;\n margin: 0 0.2rem;\n }\n\n .description {\n color: rgba(255, 255, 255, 0.9);\n font-size: 0.95rem;\n }\n\n .key-combo {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 0.3rem;\n }\n\n .key-separator {\n color: rgba(255, 255, 255, 0.5);\n font-size: 0.9rem;\n }\n </style>\n <slot id=\"content\">\n ${formatKeyboardShortcuts()}\n </slot>\n `\n );\n}\nfunction formatKeyboardShortcuts() {\n const shortcuts = [\n { keys: [\"Space\", \"k\"], description: \"Toggle Playback\" },\n { keys: [\"m\"], description: \"Toggle mute\" },\n { keys: [\"f\"], description: \"Toggle fullscreen\" },\n { keys: [\"c\"], description: \"Toggle captions or subtitles, if available\" },\n { keys: [\"p\"], description: \"Toggle Picture in Picture\" },\n { keys: [\"\\u2190\", \"j\"], description: \"Seek back 10s\" },\n { keys: [\"\\u2192\", \"l\"], description: \"Seek forward 10s\" },\n { keys: [\"\\u2191\"], description: \"Turn volume up\" },\n { keys: [\"\\u2193\"], description: \"Turn volume down\" },\n { keys: [\"< (SHIFT+,)\"], description: \"Decrease playback rate\" },\n { keys: [\"> (SHIFT+.)\"], description: \"Increase playback rate\" }\n ];\n const rows = shortcuts.map(({ keys, description }) => {\n const keyCombo = keys.map(\n (key, index) => index > 0 ? `<span class=\"key-separator\">or</span><span class=\"key\">${key}</span>` : `<span class=\"key\">${key}</span>`\n ).join(\"\");\n return `\n <tr>\n <td>\n <div class=\"key-combo\">${keyCombo}</div>\n </td>\n <td class=\"description\">${description}</td>\n </tr>\n `;\n }).join(\"\");\n return `\n <h2>Keyboard Shortcuts</h2>\n <table class=\"shortcuts-table\">${rows}</table>\n `;\n}\nclass MediaKeyboardShortcutsDialog extends MediaChromeDialog {\n constructor() {\n super(...arguments);\n __privateAdd(this, _clickHandler, (e) => {\n var _a;\n if (!this.open)\n return;\n const content = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(\"#content\");\n if (!content)\n return;\n const path = e.composedPath();\n const isClickOnHost = path[0] === this || path.includes(this);\n const isClickInsideContent = path.includes(content);\n if (isClickOnHost && !isClickInsideContent) {\n this.open = false;\n }\n });\n __privateAdd(this, _keyDownHandler, (e) => {\n if (!this.open)\n return;\n const isShiftSlash = e.shiftKey && (e.key === \"/\" || e.key === \"?\");\n if ((e.key === \"Escape\" || isShiftSlash) && !e.ctrlKey && !e.altKey && !e.metaKey) {\n this.open = false;\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n connectedCallback() {\n super.connectedCallback();\n if (this.open) {\n this.addEventListener(\"click\", __privateGet(this, _clickHandler));\n document.addEventListener(\"keydown\", __privateGet(this, _keyDownHandler));\n }\n }\n disconnectedCallback() {\n this.removeEventListener(\"click\", __privateGet(this, _clickHandler));\n document.removeEventListener(\"keydown\", __privateGet(this, _keyDownHandler));\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === \"open\") {\n if (this.open) {\n this.addEventListener(\"click\", __privateGet(this, _clickHandler));\n document.addEventListener(\"keydown\", __privateGet(this, _keyDownHandler));\n } else {\n this.removeEventListener(\"click\", __privateGet(this, _clickHandler));\n document.removeEventListener(\"keydown\", __privateGet(this, _keyDownHandler));\n }\n }\n }\n}\n_clickHandler = new WeakMap();\n_keyDownHandler = new WeakMap();\nMediaKeyboardShortcutsDialog.getSlotTemplateHTML = getSlotTemplateHTML;\nif (!globalThis.customElements.get(\"media-keyboard-shortcuts-dialog\")) {\n globalThis.customElements.define(\"media-keyboard-shortcuts-dialog\", MediaKeyboardShortcutsDialog);\n}\nvar media_keyboard_shortcuts_dialog_default = MediaKeyboardShortcutsDialog;\nexport {\n MediaKeyboardShortcutsDialog,\n media_keyboard_shortcuts_dialog_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _lastActionEvent;\nimport { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nimport {\n getBooleanAttr,\n getStringAttr,\n setBooleanAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nconst enterFullscreenIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 26 24\">\n <path d=\"M16 3v2.5h3.5V9H22V3h-6ZM4 9h2.5V5.5H10V3H4v6Zm15.5 9.5H16V21h6v-6h-2.5v3.5ZM6.5 15H4v6h6v-2.5H6.5V15Z\"/>\n</svg>`;\nconst exitFullscreenIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 26 24\">\n <path d=\"M18.5 6.5V3H16v6h6V6.5h-3.5ZM16 21h2.5v-3.5H22V15h-6v6ZM4 17.5h3.5V21H10v-6H4v2.5Zm3.5-11H4V9h6V3H7.5v3.5Z\"/>\n</svg>`;\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host([${MediaUIAttributes.MEDIA_IS_FULLSCREEN}]) slot[name=icon] slot:not([name=exit]) {\n display: none !important;\n }\n\n ${/* Double negative, but safer if display doesn't equal 'block' */\n \"\"}\n :host(:not([${MediaUIAttributes.MEDIA_IS_FULLSCREEN}])) slot[name=icon] slot:not([name=enter]) {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_IS_FULLSCREEN}]) slot[name=tooltip-enter],\n :host(:not([${MediaUIAttributes.MEDIA_IS_FULLSCREEN}])) slot[name=tooltip-exit] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"enter\">${enterFullscreenIcon}</slot>\n <slot name=\"exit\">${exitFullscreenIcon}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return (\n /*html*/\n `\n <slot name=\"tooltip-enter\">${t(\"Enter fullscreen mode\")}</slot>\n <slot name=\"tooltip-exit\">${t(\"Exit fullscreen mode\")}</slot>\n `\n );\n}\nconst updateAriaLabel = (el) => {\n const label = el.mediaIsFullscreen ? t(\"exit fullscreen mode\") : t(\"enter fullscreen mode\");\n el.setAttribute(\"aria-label\", label);\n};\nclass MediaFullscreenButton extends MediaChromeButton {\n constructor() {\n super(...arguments);\n __privateAdd(this, _lastActionEvent, null);\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_IS_FULLSCREEN,\n MediaUIAttributes.MEDIA_FULLSCREEN_UNAVAILABLE\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_IS_FULLSCREEN) {\n updateAriaLabel(this);\n }\n }\n /**\n * @type {string | undefined} Fullscreen unavailability state\n */\n get mediaFullscreenUnavailable() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_FULLSCREEN_UNAVAILABLE);\n }\n set mediaFullscreenUnavailable(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_FULLSCREEN_UNAVAILABLE, value);\n }\n /**\n * @type {boolean} Whether fullscreen is available\n */\n get mediaIsFullscreen() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_IS_FULLSCREEN);\n }\n set mediaIsFullscreen(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_IS_FULLSCREEN, value);\n }\n handleClick(e) {\n __privateSet(this, _lastActionEvent, e);\n const isPointerEvent = __privateGet(this, _lastActionEvent) instanceof PointerEvent;\n const event = this.mediaIsFullscreen ? new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_EXIT_FULLSCREEN_REQUEST,\n { composed: true, bubbles: true }\n ) : new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_ENTER_FULLSCREEN_REQUEST,\n { composed: true, bubbles: true, detail: isPointerEvent }\n );\n this.dispatchEvent(event);\n }\n}\n_lastActionEvent = new WeakMap();\nMediaFullscreenButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaFullscreenButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-fullscreen-button\")) {\n globalThis.customElements.define(\n \"media-fullscreen-button\",\n MediaFullscreenButton\n );\n}\nvar media_fullscreen_button_default = MediaFullscreenButton;\nexport {\n media_fullscreen_button_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { getBooleanAttr, setBooleanAttr } from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nconst { MEDIA_TIME_IS_LIVE, MEDIA_PAUSED } = MediaUIAttributes;\nconst { MEDIA_SEEK_TO_LIVE_REQUEST, MEDIA_PLAY_REQUEST } = MediaUIEvents;\nconst indicatorSVG = '<svg viewBox=\"0 0 6 12\" aria-hidden=\"true\"><circle cx=\"3\" cy=\"6\" r=\"2\"></circle></svg>';\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host { --media-tooltip-display: none; }\n \n slot[name=indicator] > *,\n :host ::slotted([slot=indicator]) {\n ${/* Override styles for icon-only buttons */\n \"\"}\n min-width: auto;\n fill: var(--media-live-button-icon-color, rgb(140, 140, 140));\n color: var(--media-live-button-icon-color, rgb(140, 140, 140));\n }\n\n :host([${MEDIA_TIME_IS_LIVE}]:not([${MEDIA_PAUSED}])) slot[name=indicator] > *,\n :host([${MEDIA_TIME_IS_LIVE}]:not([${MEDIA_PAUSED}])) ::slotted([slot=indicator]) {\n fill: var(--media-live-button-indicator-color, rgb(255, 0, 0));\n color: var(--media-live-button-indicator-color, rgb(255, 0, 0));\n }\n\n :host([${MEDIA_TIME_IS_LIVE}]:not([${MEDIA_PAUSED}])) {\n cursor: var(--media-cursor, not-allowed);\n }\n\n slot[name=text]{\n text-transform: uppercase;\n }\n\n </style>\n\n <slot name=\"indicator\">${indicatorSVG}</slot>\n ${/*\n A new line between spacer and text creates inconsistent spacing\n between slotted items and default slots.\n */\n \"\"}\n <slot name=\"spacer\">&nbsp;</slot><slot name=\"text\">${t(\"live\")}</slot>\n `\n );\n}\nconst updateAriaAttributes = (el) => {\n var _a;\n const isPausedOrNotLive = el.mediaPaused || !el.mediaTimeIsLive;\n const label = isPausedOrNotLive ? t(\"seek to live\") : t(\"playing live\");\n el.setAttribute(\"aria-label\", label);\n const textSlot = (_a = el.shadowRoot) == null ? void 0 : _a.querySelector('slot[name=\"text\"]');\n if (textSlot)\n textSlot.textContent = t(\"live\");\n isPausedOrNotLive ? el.removeAttribute(\"aria-disabled\") : el.setAttribute(\"aria-disabled\", \"true\");\n};\nclass MediaLiveButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MEDIA_TIME_IS_LIVE,\n MEDIA_PAUSED\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaAttributes(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n updateAriaAttributes(this);\n }\n /**\n * @type {boolean} Is the media paused\n */\n get mediaPaused() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED);\n }\n set mediaPaused(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED, value);\n }\n /**\n * @type {boolean} Is the media playback currently live\n */\n get mediaTimeIsLive() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_TIME_IS_LIVE);\n }\n set mediaTimeIsLive(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_TIME_IS_LIVE, value);\n }\n handleClick() {\n if (!this.mediaPaused && this.mediaTimeIsLive)\n return;\n this.dispatchEvent(\n new globalThis.CustomEvent(MEDIA_SEEK_TO_LIVE_REQUEST, {\n composed: true,\n bubbles: true\n })\n );\n if (this.hasAttribute(MEDIA_PAUSED)) {\n this.dispatchEvent(\n new globalThis.CustomEvent(MEDIA_PLAY_REQUEST, {\n composed: true,\n bubbles: true\n })\n );\n }\n }\n}\nMediaLiveButton.getSlotTemplateHTML = getSlotTemplateHTML;\nif (!globalThis.customElements.get(\"media-live-button\")) {\n globalThis.customElements.define(\"media-live-button\", MediaLiveButton);\n}\nvar media_live_button_default = MediaLiveButton;\nexport {\n media_live_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _mediaController, _delay;\nimport {\n MediaUIAttributes,\n MediaStateReceiverAttributes\n} from \"./constants.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport {\n getBooleanAttr,\n setBooleanAttr,\n getOrInsertCSSRule,\n setStringAttr,\n getStringAttr,\n namedNodeMapToObject\n} from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nconst Attributes = {\n LOADING_DELAY: \"loadingdelay\",\n NO_AUTOHIDE: \"noautohide\"\n};\nconst DEFAULT_LOADING_DELAY = 500;\nconst loadingIndicatorIcon = `\n<svg aria-hidden=\"true\" viewBox=\"0 0 100 100\">\n <path d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\">\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\" />\n </path>\n</svg>\n`;\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n display: var(--media-control-display, var(--media-loading-indicator-display, inline-block));\n vertical-align: middle;\n box-sizing: border-box;\n --_loading-indicator-delay: var(--media-loading-indicator-transition-delay, ${DEFAULT_LOADING_DELAY}ms);\n }\n\n #status {\n color: rgba(0,0,0,0);\n width: 0px;\n height: 0px;\n }\n\n :host slot[name=icon] > *,\n :host ::slotted([slot=icon]) {\n opacity: var(--media-loading-indicator-opacity, 0);\n transition: opacity 0.15s;\n }\n\n :host([${MediaUIAttributes.MEDIA_LOADING}]:not([${MediaUIAttributes.MEDIA_PAUSED}])) slot[name=icon] > *,\n :host([${MediaUIAttributes.MEDIA_LOADING}]:not([${MediaUIAttributes.MEDIA_PAUSED}])) ::slotted([slot=icon]) {\n opacity: var(--media-loading-indicator-opacity, 1);\n transition: opacity 0.15s var(--_loading-indicator-delay);\n }\n\n :host #status {\n visibility: var(--media-loading-indicator-opacity, hidden);\n transition: visibility 0.15s;\n }\n\n :host([${MediaUIAttributes.MEDIA_LOADING}]:not([${MediaUIAttributes.MEDIA_PAUSED}])) #status {\n visibility: var(--media-loading-indicator-opacity, visible);\n transition: visibility 0.15s var(--_loading-indicator-delay);\n }\n\n svg, img, ::slotted(svg), ::slotted(img) {\n width: var(--media-loading-indicator-icon-width);\n height: var(--media-loading-indicator-icon-height, 100px);\n fill: var(--media-icon-color, var(--media-primary-color, rgb(238 238 238)));\n vertical-align: middle;\n }\n </style>\n\n <slot name=\"icon\">${loadingIndicatorIcon}</slot>\n <div id=\"status\" role=\"status\" aria-live=\"polite\">${t(\"media loading\")}</div>\n `\n );\n}\nclass MediaLoadingIndicator extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _mediaController, void 0);\n __privateAdd(this, _delay, DEFAULT_LOADING_DELAY);\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n }\n static get observedAttributes() {\n return [\n MediaStateReceiverAttributes.MEDIA_CONTROLLER,\n MediaUIAttributes.MEDIA_PAUSED,\n MediaUIAttributes.MEDIA_LOADING,\n Attributes.LOADING_DELAY\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e;\n if (attrName === Attributes.LOADING_DELAY && oldValue !== newValue) {\n this.loadingDelay = Number(newValue);\n } else if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue));\n (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this);\n }\n }\n }\n connectedCallback() {\n var _a, _b, _c;\n const mediaControllerId = this.getAttribute(\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n );\n if (mediaControllerId) {\n __privateSet(this, _mediaController, (_a = this.getRootNode()) == null ? void 0 : _a.getElementById(\n mediaControllerId\n ));\n (_c = (_b = __privateGet(this, _mediaController)) == null ? void 0 : _b.associateElement) == null ? void 0 : _c.call(_b, this);\n }\n }\n disconnectedCallback() {\n var _a, _b;\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n /**\n * Delay in ms\n */\n get loadingDelay() {\n return __privateGet(this, _delay);\n }\n set loadingDelay(delay) {\n __privateSet(this, _delay, delay);\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n style.setProperty(\n \"--_loading-indicator-delay\",\n `var(--media-loading-indicator-transition-delay, ${delay}ms)`\n );\n }\n /**\n * Is the media paused\n */\n get mediaPaused() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED);\n }\n set mediaPaused(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED, value);\n }\n /**\n * Is the media loading\n */\n get mediaLoading() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_LOADING);\n }\n set mediaLoading(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_LOADING, value);\n }\n get mediaController() {\n return getStringAttr(this, MediaStateReceiverAttributes.MEDIA_CONTROLLER);\n }\n set mediaController(value) {\n setStringAttr(this, MediaStateReceiverAttributes.MEDIA_CONTROLLER, value);\n }\n get noAutohide() {\n return getBooleanAttr(this, Attributes.NO_AUTOHIDE);\n }\n set noAutohide(value) {\n setBooleanAttr(this, Attributes.NO_AUTOHIDE, value);\n }\n}\n_mediaController = new WeakMap();\n_delay = new WeakMap();\nMediaLoadingIndicator.shadowRootOptions = { mode: \"open\" };\nMediaLoadingIndicator.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-loading-indicator\")) {\n globalThis.customElements.define(\n \"media-loading-indicator\",\n MediaLoadingIndicator\n );\n}\nvar media_loading_indicator_default = MediaLoadingIndicator;\nexport {\n Attributes,\n media_loading_indicator_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nimport { getStringAttr, setStringAttr } from \"./utils/element-utils.js\";\nconst offIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"M16.5 12A4.5 4.5 0 0 0 14 8v2.18l2.45 2.45a4.22 4.22 0 0 0 .05-.63Zm2.5 0a6.84 6.84 0 0 1-.54 2.64L20 16.15A8.8 8.8 0 0 0 21 12a9 9 0 0 0-7-8.77v2.06A7 7 0 0 1 19 12ZM4.27 3 3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25A6.92 6.92 0 0 1 14 18.7v2.06A9 9 0 0 0 17.69 19l2 2.05L21 19.73l-9-9L4.27 3ZM12 4 9.91 6.09 12 8.18V4Z\"/>\n</svg>`;\nconst lowIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"M3 9v6h4l5 5V4L7 9H3Zm13.5 3A4.5 4.5 0 0 0 14 8v8a4.47 4.47 0 0 0 2.5-4Z\"/>\n</svg>`;\nconst highIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"M3 9v6h4l5 5V4L7 9H3Zm13.5 3A4.5 4.5 0 0 0 14 8v8a4.47 4.47 0 0 0 2.5-4ZM14 3.23v2.06a7 7 0 0 1 0 13.42v2.06a9 9 0 0 0 0-17.54Z\"/>\n</svg>`;\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host(:not([${MediaUIAttributes.MEDIA_VOLUME_LEVEL}])) slot[name=icon] slot:not([name=high]),\n :host([${MediaUIAttributes.MEDIA_VOLUME_LEVEL}=high]) slot[name=icon] slot:not([name=high]) {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_VOLUME_LEVEL}=off]) slot[name=icon] slot:not([name=off]) {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_VOLUME_LEVEL}=low]) slot[name=icon] slot:not([name=low]) {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_VOLUME_LEVEL}=medium]) slot[name=icon] slot:not([name=medium]) {\n display: none !important;\n }\n\n :host(:not([${MediaUIAttributes.MEDIA_VOLUME_LEVEL}=off])) slot[name=tooltip-unmute],\n :host([${MediaUIAttributes.MEDIA_VOLUME_LEVEL}=off]) slot[name=tooltip-mute] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"off\">${offIcon}</slot>\n <slot name=\"low\">${lowIcon}</slot>\n <slot name=\"medium\">${lowIcon}</slot>\n <slot name=\"high\">${highIcon}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return (\n /*html*/\n `\n <slot name=\"tooltip-mute\">${t(\"Mute\")}</slot>\n <slot name=\"tooltip-unmute\">${t(\"Unmute\")}</slot>\n `\n );\n}\nconst updateAriaLabel = (el) => {\n const muted = el.mediaVolumeLevel === \"off\";\n const label = muted ? t(\"unmute\") : t(\"mute\");\n el.setAttribute(\"aria-label\", label);\n};\nclass MediaMuteButton extends MediaChromeButton {\n static get observedAttributes() {\n return [...super.observedAttributes, MediaUIAttributes.MEDIA_VOLUME_LEVEL];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_VOLUME_LEVEL) {\n updateAriaLabel(this);\n }\n }\n /**\n * @type {string | undefined}\n */\n get mediaVolumeLevel() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_VOLUME_LEVEL);\n }\n set mediaVolumeLevel(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_VOLUME_LEVEL, value);\n }\n handleClick() {\n const eventName = this.mediaVolumeLevel === \"off\" ? MediaUIEvents.MEDIA_UNMUTE_REQUEST : MediaUIEvents.MEDIA_MUTE_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, { composed: true, bubbles: true })\n );\n }\n}\nMediaMuteButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaMuteButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-mute-button\")) {\n globalThis.customElements.define(\"media-mute-button\", MediaMuteButton);\n}\nvar media_mute_button_default = MediaMuteButton;\nexport {\n media_mute_button_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nimport {\n getBooleanAttr,\n getStringAttr,\n setBooleanAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nconst pipIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 28 24\">\n <path d=\"M24 3H4a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h20a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1Zm-1 16H5V5h18v14Zm-3-8h-7v5h7v-5Z\"/>\n</svg>`;\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host([${MediaUIAttributes.MEDIA_IS_PIP}]) slot[name=icon] slot:not([name=exit]) {\n display: none !important;\n }\n\n :host(:not([${MediaUIAttributes.MEDIA_IS_PIP}])) slot[name=icon] slot:not([name=enter]) {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_IS_PIP}]) slot[name=tooltip-enter],\n :host(:not([${MediaUIAttributes.MEDIA_IS_PIP}])) slot[name=tooltip-exit] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"enter\">${pipIcon}</slot>\n <slot name=\"exit\">${pipIcon}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return (\n /*html*/\n `\n <slot name=\"tooltip-enter\">${t(\"Enter picture in picture mode\")}</slot>\n <slot name=\"tooltip-exit\">${t(\"Exit picture in picture mode\")}</slot>\n `\n );\n}\nconst updateAriaLabel = (el) => {\n const label = el.mediaIsPip ? t(\"exit picture in picture mode\") : t(\"enter picture in picture mode\");\n el.setAttribute(\"aria-label\", label);\n};\nclass MediaPipButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_IS_PIP,\n MediaUIAttributes.MEDIA_PIP_UNAVAILABLE\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_IS_PIP) {\n updateAriaLabel(this);\n }\n }\n /**\n * @type {string | undefined} Pip unavailability state\n */\n get mediaPipUnavailable() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_PIP_UNAVAILABLE);\n }\n set mediaPipUnavailable(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_PIP_UNAVAILABLE, value);\n }\n /**\n * @type {boolean} Is the media currently playing picture-in-picture\n */\n get mediaIsPip() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_IS_PIP);\n }\n set mediaIsPip(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_IS_PIP, value);\n }\n handleClick() {\n const eventName = this.mediaIsPip ? MediaUIEvents.MEDIA_EXIT_PIP_REQUEST : MediaUIEvents.MEDIA_ENTER_PIP_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, { composed: true, bubbles: true })\n );\n }\n}\nMediaPipButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaPipButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-pip-button\")) {\n globalThis.customElements.define(\"media-pip-button\", MediaPipButton);\n}\nvar media_pip_button_default = MediaPipButton;\nexport {\n media_pip_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar _rates;\nimport { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { AttributeTokenList } from \"./utils/attribute-token-list.js\";\nimport { getNumericAttr, setNumericAttr } from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nconst Attributes = {\n RATES: \"rates\"\n};\nconst DEFAULT_RATES = [1, 1.2, 1.5, 1.7, 2];\nconst DEFAULT_RATE = 1;\nfunction getSlotTemplateHTML(attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n min-width: 5ch;\n padding: var(--media-button-padding, var(--media-control-padding, 10px 5px));\n }\n </style>\n <slot name=\"icon\">${attrs[\"mediaplaybackrate\"] || DEFAULT_RATE}x</slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Playback rate\");\n}\nclass MediaPlaybackRateButton extends MediaChromeButton {\n constructor() {\n var _a;\n super();\n __privateAdd(this, _rates, new AttributeTokenList(this, Attributes.RATES, {\n defaultValue: DEFAULT_RATES\n }));\n this.container = this.shadowRoot.querySelector('slot[name=\"icon\"]');\n this.container.innerHTML = `${(_a = this.mediaPlaybackRate) != null ? _a : DEFAULT_RATE}x`;\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_PLAYBACK_RATE,\n Attributes.RATES\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === Attributes.RATES) {\n __privateGet(this, _rates).value = newValue;\n }\n if (attrName === MediaUIAttributes.MEDIA_PLAYBACK_RATE) {\n const newPlaybackRate = newValue ? +newValue : Number.NaN;\n const playbackRate = !Number.isNaN(newPlaybackRate) ? newPlaybackRate : DEFAULT_RATE;\n this.container.innerHTML = `${playbackRate}x`;\n this.setAttribute(\n \"aria-label\",\n t(\"Playback rate {playbackRate}\", { playbackRate })\n );\n }\n }\n /**\n * Get the playback rates for the button.\n */\n get rates() {\n return __privateGet(this, _rates);\n }\n /**\n * Set the playback rates for the button.\n * For React 19+ compatibility, accept a string of space-separated rates.\n */\n set rates(value) {\n if (!value) {\n __privateGet(this, _rates).value = \"\";\n } else if (Array.isArray(value)) {\n __privateGet(this, _rates).value = value.join(\" \");\n } else if (typeof value === \"string\") {\n __privateGet(this, _rates).value = value;\n }\n }\n /**\n * @type {number} The current playback rate\n */\n get mediaPlaybackRate() {\n return getNumericAttr(\n this,\n MediaUIAttributes.MEDIA_PLAYBACK_RATE,\n DEFAULT_RATE\n );\n }\n set mediaPlaybackRate(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_PLAYBACK_RATE, value);\n }\n handleClick() {\n var _a, _b;\n const availableRates = Array.from(__privateGet(this, _rates).values(), (str) => +str).sort(\n (a, b) => a - b\n );\n const detail = (_b = (_a = availableRates.find((r) => r > this.mediaPlaybackRate)) != null ? _a : availableRates[0]) != null ? _b : DEFAULT_RATE;\n const evt = new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST,\n { composed: true, bubbles: true, detail }\n );\n this.dispatchEvent(evt);\n }\n}\n_rates = new WeakMap();\nMediaPlaybackRateButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaPlaybackRateButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-playback-rate-button\")) {\n globalThis.customElements.define(\n \"media-playback-rate-button\",\n MediaPlaybackRateButton\n );\n}\nvar media_playback_rate_button_default = MediaPlaybackRateButton;\nexport {\n Attributes,\n DEFAULT_RATE,\n DEFAULT_RATES,\n media_playback_rate_button_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nimport { getBooleanAttr, setBooleanAttr } from \"./utils/element-utils.js\";\nconst playIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"m6 21 15-9L6 3v18Z\"/>\n</svg>`;\nconst pauseIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"M6 20h4V4H6v16Zm8-16v16h4V4h-4Z\"/>\n</svg>`;\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host([${MediaUIAttributes.MEDIA_PAUSED}]) slot[name=pause],\n :host(:not([${MediaUIAttributes.MEDIA_PAUSED}])) slot[name=play] {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_PAUSED}]) slot[name=tooltip-pause],\n :host(:not([${MediaUIAttributes.MEDIA_PAUSED}])) slot[name=tooltip-play] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"play\">${playIcon}</slot>\n <slot name=\"pause\">${pauseIcon}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return (\n /*html*/\n `\n <slot name=\"tooltip-play\">${t(\"Play\")}</slot>\n <slot name=\"tooltip-pause\">${t(\"Pause\")}</slot>\n `\n );\n}\nconst updateAriaLabel = (el) => {\n const label = el.mediaPaused ? t(\"play\") : t(\"pause\");\n el.setAttribute(\"aria-label\", label);\n};\nclass MediaPlayButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_PAUSED,\n MediaUIAttributes.MEDIA_ENDED\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_PAUSED || attrName === MediaUIAttributes.MEDIA_LANG) {\n updateAriaLabel(this);\n }\n }\n /**\n * Is the media paused\n */\n get mediaPaused() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED);\n }\n set mediaPaused(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED, value);\n }\n handleClick() {\n const eventName = this.mediaPaused ? MediaUIEvents.MEDIA_PLAY_REQUEST : MediaUIEvents.MEDIA_PAUSE_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, { composed: true, bubbles: true })\n );\n }\n}\nMediaPlayButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaPlayButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-play-button\")) {\n globalThis.customElements.define(\"media-play-button\", MediaPlayButton);\n}\nvar media_play_button_default = MediaPlayButton;\nexport {\n MediaPlayButton,\n media_play_button_default as default\n};\n","import { globalThis } from \"./utils/server-safe-globals.js\";\nimport { getStringAttr, namedNodeMapToObject, setStringAttr } from \"./utils/element-utils.js\";\nconst Attributes = {\n PLACEHOLDER_SRC: \"placeholdersrc\",\n SRC: \"src\"\n};\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n pointer-events: none;\n display: var(--media-poster-image-display, inline-block);\n box-sizing: border-box;\n }\n\n img {\n max-width: 100%;\n max-height: 100%;\n min-width: 100%;\n min-height: 100%;\n background-repeat: no-repeat;\n background-position: var(--media-poster-image-background-position, var(--media-object-position, center));\n background-size: var(--media-poster-image-background-size, var(--media-object-fit, contain));\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n }\n </style>\n\n <img part=\"poster img\" aria-hidden=\"true\" id=\"image\"/>\n `\n );\n}\nconst unsetBackgroundImage = (el) => {\n el.style.removeProperty(\"background-image\");\n};\nconst setBackgroundImage = (el, image) => {\n el.style[\"background-image\"] = `url('${image}')`;\n};\nclass MediaPosterImage extends globalThis.HTMLElement {\n static get observedAttributes() {\n return [Attributes.PLACEHOLDER_SRC, Attributes.SRC];\n }\n constructor() {\n super();\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n this.image = this.shadowRoot.querySelector(\"#image\");\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n if (attrName === Attributes.SRC) {\n if (newValue == null) {\n this.image.removeAttribute(Attributes.SRC);\n } else {\n this.image.setAttribute(Attributes.SRC, newValue);\n }\n }\n if (attrName === Attributes.PLACEHOLDER_SRC) {\n if (newValue == null) {\n unsetBackgroundImage(this.image);\n } else {\n setBackgroundImage(this.image, newValue);\n }\n }\n }\n /**\n *\n */\n get placeholderSrc() {\n return getStringAttr(this, Attributes.PLACEHOLDER_SRC);\n }\n set placeholderSrc(value) {\n setStringAttr(this, Attributes.SRC, value);\n }\n /**\n *\n */\n get src() {\n return getStringAttr(this, Attributes.SRC);\n }\n set src(value) {\n setStringAttr(this, Attributes.SRC, value);\n }\n}\nMediaPosterImage.shadowRootOptions = { mode: \"open\" };\nMediaPosterImage.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-poster-image\")) {\n globalThis.customElements.define(\"media-poster-image\", MediaPosterImage);\n}\nvar media_poster_image_default = MediaPosterImage;\nexport {\n Attributes,\n media_poster_image_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _slot;\nimport { MediaTextDisplay } from \"./media-text-display.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIAttributes } from \"./constants.js\";\nimport { getStringAttr, setStringAttr } from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nclass MediaPreviewChapterDisplay extends MediaTextDisplay {\n constructor() {\n super();\n __privateAdd(this, _slot, void 0);\n __privateSet(this, _slot, this.shadowRoot.querySelector(\"slot\"));\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_PREVIEW_CHAPTER,\n MediaUIAttributes.MEDIA_LANG\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_PREVIEW_CHAPTER || attrName === MediaUIAttributes.MEDIA_LANG) {\n if (newValue !== oldValue && newValue != null) {\n __privateGet(this, _slot).textContent = newValue;\n if (newValue !== \"\") {\n const ariaValueText = t(\"chapter: {chapterName}\", {\n chapterName: newValue\n });\n this.setAttribute(\"aria-valuetext\", ariaValueText);\n } else {\n this.removeAttribute(\"aria-valuetext\");\n }\n }\n }\n }\n /**\n * @type {string | undefined} Timeline preview chapter\n */\n get mediaPreviewChapter() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_PREVIEW_CHAPTER);\n }\n set mediaPreviewChapter(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_PREVIEW_CHAPTER, value);\n }\n}\n_slot = new WeakMap();\nif (!globalThis.customElements.get(\"media-preview-chapter-display\")) {\n globalThis.customElements.define(\n \"media-preview-chapter-display\",\n MediaPreviewChapterDisplay\n );\n}\nvar media_preview_chapter_display_default = MediaPreviewChapterDisplay;\nexport {\n media_preview_chapter_display_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _mediaController;\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport {\n MediaUIAttributes,\n MediaStateReceiverAttributes\n} from \"./constants.js\";\nimport {\n getOrInsertCSSRule,\n getStringAttr,\n namedNodeMapToObject,\n setStringAttr\n} from \"./utils/element-utils.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n box-sizing: border-box;\n display: var(--media-control-display, var(--media-preview-thumbnail-display, inline-block));\n overflow: hidden;\n }\n\n img {\n display: none;\n position: relative;\n }\n </style>\n <img crossorigin loading=\"eager\" decoding=\"async\">\n `\n );\n}\nclass MediaPreviewThumbnail extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _mediaController, void 0);\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n }\n static get observedAttributes() {\n return [\n MediaStateReceiverAttributes.MEDIA_CONTROLLER,\n MediaUIAttributes.MEDIA_PREVIEW_IMAGE,\n MediaUIAttributes.MEDIA_PREVIEW_COORDS\n ];\n }\n connectedCallback() {\n var _a, _b, _c;\n const mediaControllerId = this.getAttribute(\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n );\n if (mediaControllerId) {\n __privateSet(\n this,\n _mediaController,\n // @ts-ignore\n (_a = this.getRootNode()) == null ? void 0 : _a.getElementById(mediaControllerId)\n );\n (_c = (_b = __privateGet(this, _mediaController)) == null ? void 0 : _b.associateElement) == null ? void 0 : _c.call(_b, this);\n }\n }\n disconnectedCallback() {\n var _a, _b;\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e;\n if ([\n MediaUIAttributes.MEDIA_PREVIEW_IMAGE,\n MediaUIAttributes.MEDIA_PREVIEW_COORDS\n ].includes(attrName)) {\n this.update();\n }\n if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue));\n (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this);\n }\n }\n }\n /**\n * @type {string | undefined} The url of the preview image\n */\n get mediaPreviewImage() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_PREVIEW_IMAGE);\n }\n set mediaPreviewImage(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_PREVIEW_IMAGE, value);\n }\n /**\n * @type {Array<number> | undefined} Fixed length array [x, y, width, height] or undefined\n */\n get mediaPreviewCoords() {\n const attrVal = this.getAttribute(MediaUIAttributes.MEDIA_PREVIEW_COORDS);\n if (!attrVal)\n return void 0;\n return attrVal.split(/\\s+/).map((coord) => +coord);\n }\n set mediaPreviewCoords(value) {\n if (!value) {\n this.removeAttribute(MediaUIAttributes.MEDIA_PREVIEW_COORDS);\n return;\n }\n this.setAttribute(MediaUIAttributes.MEDIA_PREVIEW_COORDS, value.join(\" \"));\n }\n update() {\n const coords = this.mediaPreviewCoords;\n const previewImage = this.mediaPreviewImage;\n if (!(coords && previewImage))\n return;\n const [x, y, w, h] = coords;\n const src = previewImage.split(\"#\")[0];\n const computedStyle = getComputedStyle(this);\n const { maxWidth, maxHeight, minWidth, minHeight } = computedStyle;\n const objectFit = computedStyle.getPropertyValue(\"--media-preview-thumbnail-object-fit\").trim() || \"contain\";\n let scaleX;\n let scaleY;\n if (objectFit === \"fill\") {\n const maxRatioX = parseInt(maxWidth) / w;\n const maxRatioY = parseInt(maxHeight) / h;\n const minRatioX = parseInt(minWidth) / w;\n const minRatioY = parseInt(minHeight) / h;\n scaleX = maxRatioX < 1 ? maxRatioX : Math.max(maxRatioX, minRatioX);\n scaleY = maxRatioY < 1 ? maxRatioY : Math.max(maxRatioY, minRatioY);\n } else {\n const maxRatio = Math.min(parseInt(maxWidth) / w, parseInt(maxHeight) / h);\n const minRatio = Math.max(parseInt(minWidth) / w, parseInt(minHeight) / h);\n const isScalingDown2 = maxRatio < 1;\n const scale = isScalingDown2 ? maxRatio : minRatio > 1 ? minRatio : 1;\n scaleX = scale;\n scaleY = scale;\n }\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n const imgStyle = getOrInsertCSSRule(this.shadowRoot, \"img\").style;\n const img = this.shadowRoot.querySelector(\"img\");\n const isScalingDown = Math.min(scaleX, scaleY) < 1;\n const extremum = isScalingDown ? \"min\" : \"max\";\n style.setProperty(`${extremum}-width`, \"initial\", \"important\");\n style.setProperty(`${extremum}-height`, \"initial\", \"important\");\n style.width = `${w * scaleX}px`;\n style.height = `${h * scaleY}px`;\n const resize = () => {\n imgStyle.width = `${this.imgWidth * scaleX}px`;\n imgStyle.height = `${this.imgHeight * scaleY}px`;\n imgStyle.display = \"block\";\n };\n if (img.src !== src) {\n img.onload = () => {\n this.imgWidth = img.naturalWidth;\n this.imgHeight = img.naturalHeight;\n resize();\n img.onload = null;\n };\n img.src = src;\n resize();\n }\n resize();\n imgStyle.transform = `translate(-${x * scaleX}px, -${y * scaleY}px)`;\n }\n}\n_mediaController = new WeakMap();\nMediaPreviewThumbnail.shadowRootOptions = { mode: \"open\" };\nMediaPreviewThumbnail.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-preview-thumbnail\")) {\n globalThis.customElements.define(\n \"media-preview-thumbnail\",\n MediaPreviewThumbnail\n );\n}\nvar media_preview_thumbnail_default = MediaPreviewThumbnail;\nexport {\n media_preview_thumbnail_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _slot;\nimport { MediaTextDisplay } from \"./media-text-display.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { formatTime } from \"./utils/time.js\";\nimport { MediaUIAttributes } from \"./constants.js\";\nimport { getNumericAttr, setNumericAttr } from \"./utils/element-utils.js\";\nclass MediaPreviewTimeDisplay extends MediaTextDisplay {\n constructor() {\n super();\n __privateAdd(this, _slot, void 0);\n __privateSet(this, _slot, this.shadowRoot.querySelector(\"slot\"));\n __privateGet(this, _slot).textContent = formatTime(0);\n }\n static get observedAttributes() {\n return [...super.observedAttributes, MediaUIAttributes.MEDIA_PREVIEW_TIME];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_PREVIEW_TIME && newValue != null) {\n __privateGet(this, _slot).textContent = formatTime(parseFloat(newValue));\n }\n }\n /**\n * Timeline preview time\n */\n get mediaPreviewTime() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_PREVIEW_TIME);\n }\n set mediaPreviewTime(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_PREVIEW_TIME, value);\n }\n}\n_slot = new WeakMap();\nif (!globalThis.customElements.get(\"media-preview-time-display\")) {\n globalThis.customElements.define(\n \"media-preview-time-display\",\n MediaPreviewTimeDisplay\n );\n}\nvar media_preview_time_display_default = MediaPreviewTimeDisplay;\nexport {\n media_preview_time_display_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { getNumericAttr, setNumericAttr, getSlotted, updateIconText } from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nconst Attributes = {\n SEEK_OFFSET: \"seekoffset\"\n};\nconst DEFAULT_SEEK_OFFSET = 30;\nconst backwardIcon = (seekOffset) => `\n <svg aria-hidden=\"true\" viewBox=\"0 0 20 24\">\n <defs>\n <style>.text{font-size:8px;font-family:Arial-BoldMT, Arial;font-weight:700;}</style>\n </defs>\n <text class=\"text value\" transform=\"translate(2.18 19.87)\">${seekOffset}</text>\n <path d=\"M10 6V3L4.37 7 10 10.94V8a5.54 5.54 0 0 1 1.9 10.48v2.12A7.5 7.5 0 0 0 10 6Z\"/>\n </svg>`;\nfunction getSlotTemplateHTML(_attrs, props) {\n return (\n /*html*/\n `\n <slot name=\"icon\">${backwardIcon(props.seekOffset)}</slot>\n `\n );\n}\nconst updateAriaLabel = (el, seekOffset) => {\n el.setAttribute(\"aria-label\", t(\"seek back {seekOffset} seconds\", { seekOffset }));\n};\nfunction getTooltipContentHTML() {\n return t(\"Seek backward\");\n}\nconst DEFAULT_TIME = 0;\nclass MediaSeekBackwardButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_CURRENT_TIME,\n Attributes.SEEK_OFFSET\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n this.seekOffset = getNumericAttr(\n this,\n Attributes.SEEK_OFFSET,\n DEFAULT_SEEK_OFFSET\n );\n }\n attributeChangedCallback(attrName, _oldValue, newValue) {\n super.attributeChangedCallback(attrName, _oldValue, newValue);\n updateAriaLabel(this, this.seekOffset);\n if (attrName === Attributes.SEEK_OFFSET) {\n this.seekOffset = getNumericAttr(\n this,\n Attributes.SEEK_OFFSET,\n DEFAULT_SEEK_OFFSET\n );\n }\n }\n // Own props\n /**\n * Seek amount in seconds\n */\n get seekOffset() {\n return getNumericAttr(this, Attributes.SEEK_OFFSET, DEFAULT_SEEK_OFFSET);\n }\n set seekOffset(value) {\n setNumericAttr(this, Attributes.SEEK_OFFSET, value);\n this.setAttribute(\n \"aria-label\",\n t(\"seek back {seekOffset} seconds\", { seekOffset: this.seekOffset })\n );\n updateIconText(getSlotted(this, \"icon\"), this.seekOffset);\n }\n // Props derived from Media UI Attributes\n /**\n * The current time in seconds\n */\n get mediaCurrentTime() {\n return getNumericAttr(\n this,\n MediaUIAttributes.MEDIA_CURRENT_TIME,\n DEFAULT_TIME\n );\n }\n set mediaCurrentTime(time) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_CURRENT_TIME, time);\n }\n handleClick() {\n const detail = Math.max(this.mediaCurrentTime - this.seekOffset, 0);\n const evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_SEEK_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n }\n}\nMediaSeekBackwardButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaSeekBackwardButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-seek-backward-button\")) {\n globalThis.customElements.define(\n \"media-seek-backward-button\",\n MediaSeekBackwardButton\n );\n}\nvar media_seek_backward_button_default = MediaSeekBackwardButton;\nexport {\n Attributes,\n media_seek_backward_button_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { getNumericAttr, setNumericAttr, getSlotted, updateIconText } from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nconst Attributes = {\n SEEK_OFFSET: \"seekoffset\"\n};\nconst DEFAULT_SEEK_OFFSET = 30;\nconst forwardIcon = (seekOffset) => `\n <svg aria-hidden=\"true\" viewBox=\"0 0 20 24\">\n <defs>\n <style>.text{font-size:8px;font-family:Arial-BoldMT, Arial;font-weight:700;}</style>\n </defs>\n <text class=\"text value\" transform=\"translate(8.9 19.87)\">${seekOffset}</text>\n <path d=\"M10 6V3l5.61 4L10 10.94V8a5.54 5.54 0 0 0-1.9 10.48v2.12A7.5 7.5 0 0 1 10 6Z\"/>\n </svg>`;\nfunction getSlotTemplateHTML(_attrs, props) {\n return (\n /*html*/\n `\n <slot name=\"icon\">${forwardIcon(props.seekOffset)}</slot>\n `\n );\n}\nconst updateAriaLabel = (el, seekOffset) => {\n el.setAttribute(\"aria-label\", t(\"seek forward {seekOffset} seconds\", { seekOffset }));\n};\nfunction getTooltipContentHTML() {\n return t(\"Seek forward\");\n}\nconst DEFAULT_TIME = 0;\nclass MediaSeekForwardButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_CURRENT_TIME,\n Attributes.SEEK_OFFSET\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n this.seekOffset = getNumericAttr(\n this,\n Attributes.SEEK_OFFSET,\n DEFAULT_SEEK_OFFSET\n );\n }\n attributeChangedCallback(attrName, _oldValue, newValue) {\n super.attributeChangedCallback(attrName, _oldValue, newValue);\n updateAriaLabel(this, this.seekOffset);\n if (attrName === Attributes.SEEK_OFFSET) {\n this.seekOffset = getNumericAttr(\n this,\n Attributes.SEEK_OFFSET,\n DEFAULT_SEEK_OFFSET\n );\n }\n }\n // Own props\n /**\n * Seek amount in seconds\n */\n get seekOffset() {\n return getNumericAttr(this, Attributes.SEEK_OFFSET, DEFAULT_SEEK_OFFSET);\n }\n set seekOffset(value) {\n setNumericAttr(this, Attributes.SEEK_OFFSET, value);\n this.setAttribute(\n \"aria-label\",\n t(\"seek forward {seekOffset} seconds\", { seekOffset: this.seekOffset })\n );\n updateIconText(getSlotted(this, \"icon\"), this.seekOffset);\n }\n // Props derived from Media UI Attributes\n /**\n * The current time in seconds\n */\n get mediaCurrentTime() {\n return getNumericAttr(\n this,\n MediaUIAttributes.MEDIA_CURRENT_TIME,\n DEFAULT_TIME\n );\n }\n set mediaCurrentTime(time) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_CURRENT_TIME, time);\n }\n handleClick() {\n const detail = this.mediaCurrentTime + this.seekOffset;\n const evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_SEEK_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n }\n}\nMediaSeekForwardButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaSeekForwardButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-seek-forward-button\")) {\n globalThis.customElements.define(\n \"media-seek-forward-button\",\n MediaSeekForwardButton\n );\n}\nvar media_seek_forward_button_default = MediaSeekForwardButton;\nexport {\n Attributes,\n media_seek_forward_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _slot, _keyUpHandler, _keyDownHandler, _setupEventListeners, setupEventListeners_fn, _removeEventListeners, removeEventListeners_fn, _makeInteractive, makeInteractive_fn, _makeNonInteractive, makeNonInteractive_fn;\nimport { MediaTextDisplay } from \"./media-text-display.js\";\nimport {\n getBooleanAttr,\n getNumericAttr,\n getOrInsertCSSRule,\n setBooleanAttr,\n setNumericAttr\n} from \"./utils/element-utils.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { formatAsTimePhrase, formatTime } from \"./utils/time.js\";\nimport { MediaUIAttributes } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nconst Attributes = {\n REMAINING: \"remaining\",\n SHOW_DURATION: \"showduration\",\n NO_TOGGLE: \"notoggle\"\n};\nconst CombinedAttributes = [\n ...Object.values(Attributes),\n MediaUIAttributes.MEDIA_CURRENT_TIME,\n MediaUIAttributes.MEDIA_DURATION,\n MediaUIAttributes.MEDIA_SEEKABLE\n];\nconst ButtonPressedKeys = [\"Enter\", \" \"];\nconst DEFAULT_TIMES_SEP = \"&nbsp;/&nbsp;\";\nconst formatTimesLabel = (el, { timesSep = DEFAULT_TIMES_SEP } = {}) => {\n var _a, _b;\n const currentTime = (_a = el.mediaCurrentTime) != null ? _a : 0;\n const [, seekableEnd] = (_b = el.mediaSeekable) != null ? _b : [];\n let endTime = 0;\n if (Number.isFinite(el.mediaDuration)) {\n endTime = el.mediaDuration;\n } else if (Number.isFinite(seekableEnd)) {\n endTime = seekableEnd;\n }\n const timeLabel = el.remaining ? formatTime(0 - (endTime - currentTime)) : formatTime(currentTime);\n if (!el.showDuration)\n return timeLabel;\n return `${timeLabel}${timesSep}${formatTime(endTime)}`;\n};\nconst updateAriaValueText = (el) => {\n var _a;\n const currentTime = el.mediaCurrentTime;\n const [, seekableEnd] = (_a = el.mediaSeekable) != null ? _a : [];\n let endTime = null;\n if (Number.isFinite(el.mediaDuration)) {\n endTime = el.mediaDuration;\n } else if (Number.isFinite(seekableEnd)) {\n endTime = seekableEnd;\n }\n if (currentTime == null || endTime === null) {\n el.setAttribute(\"aria-valuetext\", t(\"video not loaded, unknown time.\"));\n return;\n }\n const currentTimePhrase = el.remaining ? formatAsTimePhrase(0 - (endTime - currentTime)) : formatAsTimePhrase(currentTime);\n if (!el.showDuration) {\n el.setAttribute(\"aria-valuetext\", currentTimePhrase);\n return;\n }\n const totalTimePhrase = formatAsTimePhrase(endTime);\n const fullPhrase = t(\"{currentTime} of {totalTime}\", {\n currentTime: currentTimePhrase,\n totalTime: totalTimePhrase\n });\n el.setAttribute(\"aria-valuetext\", fullPhrase);\n};\nfunction getSlotTemplateHTML(_attrs, props) {\n return (\n /*html*/\n `\n <slot>${formatTimesLabel(props)}</slot>\n `\n );\n}\nconst updateAriaLabel = (el) => {\n el.setAttribute(\"aria-label\", t(\"playback time\"));\n};\nclass MediaTimeDisplay extends MediaTextDisplay {\n constructor() {\n super();\n __privateAdd(this, _setupEventListeners);\n __privateAdd(this, _removeEventListeners);\n // Makes element clickable and focusable only when not disabled and noToggle is not present\n __privateAdd(this, _makeInteractive);\n // Removes interactivity from the element, making it neither clickable nor focusable\n __privateAdd(this, _makeNonInteractive);\n __privateAdd(this, _slot, void 0);\n __privateAdd(this, _keyUpHandler, null);\n __privateAdd(this, _keyDownHandler, (evt) => {\n const { metaKey, altKey, key } = evt;\n if (metaKey || altKey || !ButtonPressedKeys.includes(key)) {\n this.removeEventListener(\"keyup\", __privateGet(this, _keyUpHandler));\n return;\n }\n this.addEventListener(\"keyup\", __privateGet(this, _keyUpHandler));\n });\n __privateSet(this, _slot, this.shadowRoot.querySelector(\"slot\"));\n __privateGet(this, _slot).innerHTML = `${formatTimesLabel(this)}`;\n }\n static get observedAttributes() {\n return [...super.observedAttributes, ...CombinedAttributes, \"disabled\"];\n }\n connectedCallback() {\n const { style } = getOrInsertCSSRule(\n this.shadowRoot,\n \":host(:hover:not([notoggle]))\"\n );\n style.setProperty(\"cursor\", \"var(--media-cursor, pointer)\");\n style.setProperty(\n \"background\",\n \"var(--media-control-hover-background, rgba(50 50 70 / .7))\"\n );\n this.setAttribute(\"aria-label\", t(\"playback time\"));\n __privateMethod(this, _makeInteractive, makeInteractive_fn).call(this);\n super.connectedCallback();\n }\n toggleTimeDisplay() {\n if (this.noToggle) {\n return;\n }\n if (this.hasAttribute(\"remaining\")) {\n this.removeAttribute(\"remaining\");\n } else {\n this.setAttribute(\"remaining\", \"\");\n }\n }\n disconnectedCallback() {\n this.disable();\n __privateMethod(this, _removeEventListeners, removeEventListeners_fn).call(this);\n super.disconnectedCallback();\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n updateAriaLabel(this);\n if (CombinedAttributes.includes(attrName)) {\n this.update();\n } else if (attrName === \"disabled\" && newValue !== oldValue) {\n if (newValue == null) {\n __privateMethod(this, _makeInteractive, makeInteractive_fn).call(this);\n } else {\n __privateMethod(this, _makeNonInteractive, makeNonInteractive_fn).call(this);\n }\n } else if (attrName === Attributes.NO_TOGGLE && newValue !== oldValue) {\n if (this.noToggle) {\n __privateMethod(this, _makeNonInteractive, makeNonInteractive_fn).call(this);\n } else {\n __privateMethod(this, _makeInteractive, makeInteractive_fn).call(this);\n }\n }\n super.attributeChangedCallback(attrName, oldValue, newValue);\n }\n enable() {\n if (!this.noToggle) {\n this.tabIndex = 0;\n }\n }\n disable() {\n this.tabIndex = -1;\n }\n // Own props\n /**\n * Whether to show the remaining time\n */\n get remaining() {\n return getBooleanAttr(this, Attributes.REMAINING);\n }\n set remaining(show) {\n setBooleanAttr(this, Attributes.REMAINING, show);\n }\n /**\n * Whether to show the duration\n */\n get showDuration() {\n return getBooleanAttr(this, Attributes.SHOW_DURATION);\n }\n set showDuration(show) {\n setBooleanAttr(this, Attributes.SHOW_DURATION, show);\n }\n /**\n * Disable the default behavior that toggles between current and remaining time\n */\n get noToggle() {\n return getBooleanAttr(this, Attributes.NO_TOGGLE);\n }\n set noToggle(noToggle) {\n setBooleanAttr(this, Attributes.NO_TOGGLE, noToggle);\n }\n // Props derived from media UI attributes\n /**\n * Get the duration\n */\n get mediaDuration() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_DURATION);\n }\n set mediaDuration(time) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_DURATION, time);\n }\n /**\n * The current time in seconds\n */\n get mediaCurrentTime() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_CURRENT_TIME);\n }\n set mediaCurrentTime(time) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_CURRENT_TIME, time);\n }\n /**\n * Range of values that can be seeked to.\n * An array of two numbers [start, end]\n */\n get mediaSeekable() {\n const seekable = this.getAttribute(MediaUIAttributes.MEDIA_SEEKABLE);\n if (!seekable)\n return void 0;\n return seekable.split(\":\").map((time) => +time);\n }\n set mediaSeekable(range) {\n if (range == null) {\n this.removeAttribute(MediaUIAttributes.MEDIA_SEEKABLE);\n return;\n }\n this.setAttribute(MediaUIAttributes.MEDIA_SEEKABLE, range.join(\":\"));\n }\n update() {\n const timesLabel = formatTimesLabel(this);\n updateAriaValueText(this);\n if (timesLabel !== __privateGet(this, _slot).innerHTML) {\n __privateGet(this, _slot).innerHTML = timesLabel;\n }\n }\n}\n_slot = new WeakMap();\n_keyUpHandler = new WeakMap();\n_keyDownHandler = new WeakMap();\n_setupEventListeners = new WeakSet();\nsetupEventListeners_fn = function() {\n if (__privateGet(this, _keyUpHandler)) {\n return;\n }\n __privateSet(this, _keyUpHandler, (evt) => {\n const { key } = evt;\n if (!ButtonPressedKeys.includes(key)) {\n this.removeEventListener(\"keyup\", __privateGet(this, _keyUpHandler));\n return;\n }\n this.toggleTimeDisplay();\n });\n this.addEventListener(\"keydown\", __privateGet(this, _keyDownHandler));\n this.addEventListener(\"click\", this.toggleTimeDisplay);\n};\n_removeEventListeners = new WeakSet();\nremoveEventListeners_fn = function() {\n if (__privateGet(this, _keyUpHandler)) {\n this.removeEventListener(\"keyup\", __privateGet(this, _keyUpHandler));\n this.removeEventListener(\"keydown\", __privateGet(this, _keyDownHandler));\n this.removeEventListener(\"click\", this.toggleTimeDisplay);\n __privateSet(this, _keyUpHandler, null);\n }\n};\n_makeInteractive = new WeakSet();\nmakeInteractive_fn = function() {\n if (!this.noToggle && !this.hasAttribute(\"disabled\")) {\n this.setAttribute(\"role\", \"button\");\n this.enable();\n __privateMethod(this, _setupEventListeners, setupEventListeners_fn).call(this);\n }\n};\n_makeNonInteractive = new WeakSet();\nmakeNonInteractive_fn = function() {\n this.removeAttribute(\"role\");\n this.disable();\n __privateMethod(this, _removeEventListeners, removeEventListeners_fn).call(this);\n};\nMediaTimeDisplay.getSlotTemplateHTML = getSlotTemplateHTML;\nif (!globalThis.customElements.get(\"media-time-display\")) {\n globalThis.customElements.define(\"media-time-display\", MediaTimeDisplay);\n}\nvar media_time_display_default = MediaTimeDisplay;\nexport {\n Attributes,\n media_time_display_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateWrapper = (obj, member, setter, getter) => ({\n set _(value) {\n __privateSet(obj, member, value, setter);\n },\n get _() {\n return __privateGet(obj, member, getter);\n }\n});\nvar _range, _startTime, _previousTime, _deltaTime, _frameCount, _updateTimestamp, _updateStartValue, _lastRangeIncrease, _id, _animate;\nclass RangeAnimation {\n constructor(range, callback, fps) {\n __privateAdd(this, _range, void 0);\n __privateAdd(this, _startTime, void 0);\n __privateAdd(this, _previousTime, void 0);\n __privateAdd(this, _deltaTime, void 0);\n __privateAdd(this, _frameCount, void 0);\n __privateAdd(this, _updateTimestamp, void 0);\n __privateAdd(this, _updateStartValue, void 0);\n __privateAdd(this, _lastRangeIncrease, void 0);\n __privateAdd(this, _id, 0);\n __privateAdd(this, _animate, (now = performance.now()) => {\n __privateSet(this, _id, requestAnimationFrame(__privateGet(this, _animate)));\n __privateSet(this, _deltaTime, performance.now() - __privateGet(this, _previousTime));\n const fpsInterval = 1e3 / this.fps;\n if (__privateGet(this, _deltaTime) > fpsInterval) {\n __privateSet(this, _previousTime, now - __privateGet(this, _deltaTime) % fpsInterval);\n const fps = 1e3 / ((now - __privateGet(this, _startTime)) / ++__privateWrapper(this, _frameCount)._);\n const delta = (now - __privateGet(this, _updateTimestamp)) / 1e3 / this.duration;\n let value = __privateGet(this, _updateStartValue) + delta * this.playbackRate;\n const increase = value - __privateGet(this, _range).valueAsNumber;\n if (increase > 0) {\n __privateSet(this, _lastRangeIncrease, this.playbackRate / this.duration / fps);\n } else {\n __privateSet(this, _lastRangeIncrease, 0.995 * __privateGet(this, _lastRangeIncrease));\n value = __privateGet(this, _range).valueAsNumber + __privateGet(this, _lastRangeIncrease);\n }\n this.callback(value);\n }\n });\n __privateSet(this, _range, range);\n this.callback = callback;\n this.fps = fps;\n }\n start() {\n if (__privateGet(this, _id) !== 0)\n return;\n __privateSet(this, _previousTime, performance.now());\n __privateSet(this, _startTime, __privateGet(this, _previousTime));\n __privateSet(this, _frameCount, 0);\n __privateGet(this, _animate).call(this);\n }\n stop() {\n if (__privateGet(this, _id) === 0)\n return;\n cancelAnimationFrame(__privateGet(this, _id));\n __privateSet(this, _id, 0);\n }\n update({ start, duration, playbackRate }) {\n const increase = start - __privateGet(this, _range).valueAsNumber;\n const durationDelta = Math.abs(duration - this.duration);\n if (increase > 0 || increase < -0.03 || durationDelta >= 0.5) {\n this.callback(start);\n }\n __privateSet(this, _updateStartValue, start);\n __privateSet(this, _updateTimestamp, performance.now());\n this.duration = duration;\n this.playbackRate = playbackRate;\n }\n}\n_range = new WeakMap();\n_startTime = new WeakMap();\n_previousTime = new WeakMap();\n_deltaTime = new WeakMap();\n_frameCount = new WeakMap();\n_updateTimestamp = new WeakMap();\n_updateStartValue = new WeakMap();\n_lastRangeIncrease = new WeakMap();\n_id = new WeakMap();\n_animate = new WeakMap();\nexport {\n RangeAnimation\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _rootNode, _animation, _boxes, _previewTime, _previewBox, _currentBox, _boxPaddingLeft, _boxPaddingRight, _mediaChaptersCues, _isPointerDown, _toggleRangeAnimation, _shouldRangeAnimate, shouldRangeAnimate_fn, _updateRange, _getElementRects, getElementRects_fn, _getBoxPosition, getBoxPosition_fn, _getBoxShiftPosition, getBoxShiftPosition_fn, _handlePointerMove, handlePointerMove_fn, _previewRequest, previewRequest_fn, _seekRequest, seekRequest_fn;\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaChromeRange } from \"./media-chrome-range.js\";\nimport \"./media-preview-thumbnail.js\";\nimport \"./media-preview-time-display.js\";\nimport \"./media-preview-chapter-display.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { isValidNumber } from \"./utils/utils.js\";\nimport { formatAsTimePhrase } from \"./utils/time.js\";\nimport { isElementVisible } from \"./utils/element-utils.js\";\nimport { RangeAnimation } from \"./utils/range-animation.js\";\nimport {\n getOrInsertCSSRule,\n containsComposedNode,\n closestComposedNode,\n getBooleanAttr,\n setBooleanAttr,\n getNumericAttr,\n setNumericAttr,\n getStringAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nimport MediaPreviewThumbnail from \"./media-preview-thumbnail.js\";\nconst updateAriaValueText = (el) => {\n const range = el.range;\n const currentTimePhrase = formatAsTimePhrase(+calcTimeFromRangeValue(el));\n const totalTimePhrase = formatAsTimePhrase(+el.mediaSeekableEnd);\n const fullPhrase = !(currentTimePhrase && totalTimePhrase) ? t(\"video not loaded, unknown time.\") : t(\"{currentTime} of {totalTime}\", {\n currentTime: currentTimePhrase,\n totalTime: totalTimePhrase\n });\n range.setAttribute(\"aria-valuetext\", fullPhrase);\n};\nfunction getContainerTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n --media-box-border-radius: 4px;\n --media-box-padding-left: 10px;\n --media-box-padding-right: 10px;\n --media-preview-border-radius: var(--media-box-border-radius);\n --media-box-arrow-offset: var(--media-box-border-radius);\n --_control-background: var(--media-control-background, var(--media-secondary-color, rgb(20 20 30 / .7)));\n --_preview-background: var(--media-preview-background, var(--_control-background));\n\n ${/* 1% rail width trick was off in Safari, contain: layout seems to\n prevent the horizontal overflow as well. */\n \"\"}\n contain: layout;\n }\n\n #buffered {\n background: var(--media-time-range-buffered-color, rgb(255 255 255 / .4));\n position: absolute;\n height: 100%;\n will-change: width;\n }\n\n #preview-rail,\n #current-rail {\n width: 100%;\n position: absolute;\n left: 0;\n bottom: 100%;\n pointer-events: none;\n will-change: transform;\n }\n\n [part~=\"box\"] {\n width: min-content;\n ${/* absolute position is needed here so the box doesn't overflow the bounds */\n \"\"}\n position: absolute;\n bottom: 100%;\n flex-direction: column;\n align-items: center;\n transform: translateX(-50%);\n }\n\n [part~=\"current-box\"] {\n display: var(--media-current-box-display, var(--media-box-display, flex));\n margin: var(--media-current-box-margin, var(--media-box-margin, 0 0 5px));\n visibility: hidden;\n }\n\n [part~=\"preview-box\"] {\n display: var(--media-preview-box-display, var(--media-box-display, flex));\n margin: var(--media-preview-box-margin, var(--media-box-margin, 0 0 5px));\n transition-property: var(--media-preview-transition-property, visibility, opacity);\n transition-duration: var(--media-preview-transition-duration-out, .25s);\n transition-delay: var(--media-preview-transition-delay-out, 0s);\n visibility: hidden;\n opacity: 0;\n }\n\n :host(:is([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}], [${MediaUIAttributes.MEDIA_PREVIEW_TIME}])[dragging]) [part~=\"preview-box\"] {\n transition-duration: var(--media-preview-transition-duration-in, .5s);\n transition-delay: var(--media-preview-transition-delay-in, .25s);\n visibility: visible;\n opacity: 1;\n }\n\n @media (hover: hover) {\n :host(:is([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}], [${MediaUIAttributes.MEDIA_PREVIEW_TIME}]):hover) [part~=\"preview-box\"] {\n transition-duration: var(--media-preview-transition-duration-in, .5s);\n transition-delay: var(--media-preview-transition-delay-in, .25s);\n visibility: visible;\n opacity: 1;\n }\n }\n\n media-preview-thumbnail,\n ::slotted(media-preview-thumbnail) {\n visibility: hidden;\n ${/* delay changing these CSS props until the preview box transition is ended */\n \"\"}\n transition: visibility 0s .25s;\n transition-delay: calc(var(--media-preview-transition-delay-out, 0s) + var(--media-preview-transition-duration-out, .25s));\n background: var(--media-preview-thumbnail-background, var(--_preview-background));\n box-shadow: var(--media-preview-thumbnail-box-shadow, 0 0 4px rgb(0 0 0 / .2));\n max-width: var(--media-preview-thumbnail-max-width, 180px);\n max-height: var(--media-preview-thumbnail-max-height, 160px);\n min-width: var(--media-preview-thumbnail-min-width, 120px);\n min-height: var(--media-preview-thumbnail-min-height, 80px);\n border: var(--media-preview-thumbnail-border);\n border-radius: var(--media-preview-thumbnail-border-radius,\n var(--media-preview-border-radius) var(--media-preview-border-radius) 0 0);\n }\n\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}][dragging]) media-preview-thumbnail,\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}][dragging]) ::slotted(media-preview-thumbnail) {\n transition-delay: var(--media-preview-transition-delay-in, .25s);\n visibility: visible;\n }\n\n @media (hover: hover) {\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]:hover) media-preview-thumbnail,\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]:hover) ::slotted(media-preview-thumbnail) {\n transition-delay: var(--media-preview-transition-delay-in, .25s);\n visibility: visible;\n }\n\n :host([${MediaUIAttributes.MEDIA_PREVIEW_TIME}]:hover) {\n --media-time-range-hover-display: block;\n }\n }\n\n media-preview-chapter-display,\n ::slotted(media-preview-chapter-display) {\n font-size: var(--media-font-size, 13px);\n line-height: 17px;\n min-width: 0;\n visibility: hidden;\n ${/* delay changing these CSS props until the preview box transition is ended */\n \"\"}\n transition: min-width 0s, border-radius 0s, margin 0s, padding 0s, visibility 0s;\n transition-delay: calc(var(--media-preview-transition-delay-out, 0s) + var(--media-preview-transition-duration-out, .25s));\n background: var(--media-preview-chapter-background, var(--_preview-background));\n border-radius: var(--media-preview-chapter-border-radius,\n var(--media-preview-border-radius) var(--media-preview-border-radius)\n var(--media-preview-border-radius) var(--media-preview-border-radius));\n padding: var(--media-preview-chapter-padding, 3.5px 9px);\n margin: var(--media-preview-chapter-margin, 0 0 5px);\n text-shadow: var(--media-preview-chapter-text-shadow, 0 0 4px rgb(0 0 0 / .75));\n }\n\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]) media-preview-chapter-display,\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]) ::slotted(media-preview-chapter-display) {\n transition-delay: var(--media-preview-transition-delay-in, .25s);\n border-radius: var(--media-preview-chapter-border-radius, 0);\n padding: var(--media-preview-chapter-padding, 3.5px 9px 0);\n margin: var(--media-preview-chapter-margin, 0);\n min-width: 100%;\n }\n\n media-preview-chapter-display[${MediaUIAttributes.MEDIA_PREVIEW_CHAPTER}],\n ::slotted(media-preview-chapter-display[${MediaUIAttributes.MEDIA_PREVIEW_CHAPTER}]) {\n visibility: visible;\n }\n\n media-preview-chapter-display:not([aria-valuetext]),\n ::slotted(media-preview-chapter-display:not([aria-valuetext])) {\n display: none;\n }\n\n media-preview-time-display,\n ::slotted(media-preview-time-display),\n media-time-display,\n ::slotted(media-time-display) {\n font-size: var(--media-font-size, 13px);\n line-height: 17px;\n min-width: 0;\n ${/* delay changing these CSS props until the preview box transition is ended */\n \"\"}\n transition: min-width 0s, border-radius 0s;\n transition-delay: calc(var(--media-preview-transition-delay-out, 0s) + var(--media-preview-transition-duration-out, .25s));\n background: var(--media-preview-time-background, var(--_preview-background));\n border-radius: var(--media-preview-time-border-radius,\n var(--media-preview-border-radius) var(--media-preview-border-radius)\n var(--media-preview-border-radius) var(--media-preview-border-radius));\n padding: var(--media-preview-time-padding, 3.5px 9px);\n margin: var(--media-preview-time-margin, 0);\n text-shadow: var(--media-preview-time-text-shadow, 0 0 4px rgb(0 0 0 / .75));\n transform: translateX(min(\n max(calc(50% - var(--_box-width) / 2),\n calc(var(--_box-shift, 0))),\n calc(var(--_box-width) / 2 - 50%)\n ));\n }\n\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]) media-preview-time-display,\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]) ::slotted(media-preview-time-display) {\n transition-delay: var(--media-preview-transition-delay-in, .25s);\n border-radius: var(--media-preview-time-border-radius,\n 0 0 var(--media-preview-border-radius) var(--media-preview-border-radius));\n min-width: 100%;\n }\n\n :host([${MediaUIAttributes.MEDIA_PREVIEW_TIME}]:hover) {\n --media-time-range-hover-display: block;\n }\n\n [part~=\"arrow\"],\n ::slotted([part~=\"arrow\"]) {\n display: var(--media-box-arrow-display, inline-block);\n transform: translateX(min(\n max(calc(50% - var(--_box-width) / 2 + var(--media-box-arrow-offset)),\n calc(var(--_box-shift, 0))),\n calc(var(--_box-width) / 2 - 50% - var(--media-box-arrow-offset))\n ));\n ${/* border-color has to come before border-top-color! */\n \"\"}\n border-color: transparent;\n border-top-color: var(--media-box-arrow-background, var(--_control-background));\n border-width: var(--media-box-arrow-border-width,\n var(--media-box-arrow-height, 5px) var(--media-box-arrow-width, 6px) 0);\n border-style: solid;\n justify-content: center;\n height: 0;\n }\n </style>\n <div id=\"preview-rail\">\n <slot name=\"preview\" part=\"box preview-box\">\n <media-preview-thumbnail>\n <template shadowrootmode=\"${MediaPreviewThumbnail.shadowRootOptions.mode}\">\n ${MediaPreviewThumbnail.getTemplateHTML({})}\n </template>\n </media-preview-thumbnail>\n <media-preview-chapter-display></media-preview-chapter-display>\n <media-preview-time-display></media-preview-time-display>\n <slot name=\"preview-arrow\"><div part=\"arrow\"></div></slot>\n </slot>\n </div>\n <div id=\"current-rail\">\n <slot name=\"current\" part=\"box current-box\">\n ${/* Example: add the current time w/ arrow to the playhead\n <media-time-display slot=\"current\"></media-time-display>\n <div part=\"arrow\" slot=\"current\"></div> */\n \"\"}\n </slot>\n </div>\n `\n );\n}\nconst calcRangeValueFromTime = (el, time = el.mediaCurrentTime) => {\n const startTime = Number.isFinite(el.mediaSeekableStart) ? el.mediaSeekableStart : 0;\n const endTime = Number.isFinite(el.mediaDuration) ? el.mediaDuration : el.mediaSeekableEnd;\n if (Number.isNaN(endTime))\n return 0;\n const value = (time - startTime) / (endTime - startTime);\n return Math.max(0, Math.min(value, 1));\n};\nconst calcTimeFromRangeValue = (el, value = el.range.valueAsNumber) => {\n const startTime = Number.isFinite(el.mediaSeekableStart) ? el.mediaSeekableStart : 0;\n const endTime = Number.isFinite(el.mediaDuration) ? el.mediaDuration : el.mediaSeekableEnd;\n if (Number.isNaN(endTime))\n return 0;\n return value * (endTime - startTime) + startTime;\n};\nclass MediaTimeRange extends MediaChromeRange {\n constructor() {\n super();\n __privateAdd(this, _shouldRangeAnimate);\n __privateAdd(this, _getElementRects);\n /**\n * Get the position, max and min for the box in percentage.\n * It's important this is in percentage so when the player is resized\n * the box will move accordingly.\n */\n __privateAdd(this, _getBoxPosition);\n __privateAdd(this, _getBoxShiftPosition);\n __privateAdd(this, _handlePointerMove);\n __privateAdd(this, _previewRequest);\n __privateAdd(this, _seekRequest);\n __privateAdd(this, _rootNode, null);\n __privateAdd(this, _animation, void 0);\n __privateAdd(this, _boxes, void 0);\n __privateAdd(this, _previewTime, void 0);\n __privateAdd(this, _previewBox, void 0);\n __privateAdd(this, _currentBox, void 0);\n __privateAdd(this, _boxPaddingLeft, void 0);\n __privateAdd(this, _boxPaddingRight, void 0);\n __privateAdd(this, _mediaChaptersCues, void 0);\n __privateAdd(this, _isPointerDown, void 0);\n __privateAdd(this, _toggleRangeAnimation, () => {\n if (__privateMethod(this, _shouldRangeAnimate, shouldRangeAnimate_fn).call(this)) {\n __privateGet(this, _animation).start();\n } else {\n __privateGet(this, _animation).stop();\n }\n });\n __privateAdd(this, _updateRange, (value) => {\n if (this.dragging)\n return;\n if (isValidNumber(value)) {\n this.range.valueAsNumber = value;\n }\n if (!__privateGet(this, _isPointerDown)) {\n this.updateBar();\n }\n });\n const track = this.shadowRoot.querySelector(\"#track\");\n track.insertAdjacentHTML(\n \"afterbegin\",\n '<div id=\"buffered\" part=\"buffered\"></div>'\n );\n __privateSet(this, _boxes, this.shadowRoot.querySelectorAll('[part~=\"box\"]'));\n __privateSet(this, _previewBox, this.shadowRoot.querySelector('[part~=\"preview-box\"]'));\n __privateSet(this, _currentBox, this.shadowRoot.querySelector('[part~=\"current-box\"]'));\n const computedStyle = getComputedStyle(this);\n __privateSet(this, _boxPaddingLeft, parseInt(\n computedStyle.getPropertyValue(\"--media-box-padding-left\")\n ));\n __privateSet(this, _boxPaddingRight, parseInt(\n computedStyle.getPropertyValue(\"--media-box-padding-right\")\n ));\n __privateSet(this, _animation, new RangeAnimation(this.range, __privateGet(this, _updateRange), 60));\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_PAUSED,\n MediaUIAttributes.MEDIA_DURATION,\n MediaUIAttributes.MEDIA_SEEKABLE,\n MediaUIAttributes.MEDIA_CURRENT_TIME,\n MediaUIAttributes.MEDIA_PREVIEW_IMAGE,\n MediaUIAttributes.MEDIA_PREVIEW_TIME,\n MediaUIAttributes.MEDIA_PREVIEW_CHAPTER,\n MediaUIAttributes.MEDIA_BUFFERED,\n MediaUIAttributes.MEDIA_PLAYBACK_RATE,\n MediaUIAttributes.MEDIA_LOADING,\n MediaUIAttributes.MEDIA_ENDED\n ];\n }\n connectedCallback() {\n var _a;\n super.connectedCallback();\n this.range.setAttribute(\"aria-label\", t(\"seek\"));\n __privateGet(this, _toggleRangeAnimation).call(this);\n __privateSet(this, _rootNode, this.getRootNode());\n (_a = __privateGet(this, _rootNode)) == null ? void 0 : _a.addEventListener(\"transitionstart\", this);\n }\n disconnectedCallback() {\n var _a;\n super.disconnectedCallback();\n __privateGet(this, _animation).stop();\n (_a = __privateGet(this, _rootNode)) == null ? void 0 : _a.removeEventListener(\"transitionstart\", this);\n __privateSet(this, _rootNode, null);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (oldValue == newValue)\n return;\n if (attrName === MediaUIAttributes.MEDIA_CURRENT_TIME || attrName === MediaUIAttributes.MEDIA_PAUSED || attrName === MediaUIAttributes.MEDIA_ENDED || attrName === MediaUIAttributes.MEDIA_LOADING || attrName === MediaUIAttributes.MEDIA_DURATION || attrName === MediaUIAttributes.MEDIA_SEEKABLE) {\n __privateGet(this, _animation).update({\n start: calcRangeValueFromTime(this),\n duration: this.mediaSeekableEnd - this.mediaSeekableStart,\n playbackRate: this.mediaPlaybackRate\n });\n __privateGet(this, _toggleRangeAnimation).call(this);\n updateAriaValueText(this);\n } else if (attrName === MediaUIAttributes.MEDIA_BUFFERED) {\n this.updateBufferedBar();\n }\n if (attrName === MediaUIAttributes.MEDIA_DURATION || attrName === MediaUIAttributes.MEDIA_SEEKABLE) {\n this.mediaChaptersCues = __privateGet(this, _mediaChaptersCues);\n this.updateBar();\n }\n }\n get mediaChaptersCues() {\n return __privateGet(this, _mediaChaptersCues);\n }\n set mediaChaptersCues(value) {\n var _a;\n __privateSet(this, _mediaChaptersCues, value);\n this.updateSegments(\n (_a = __privateGet(this, _mediaChaptersCues)) == null ? void 0 : _a.map((c) => ({\n start: calcRangeValueFromTime(this, c.startTime),\n end: calcRangeValueFromTime(this, c.endTime)\n }))\n );\n }\n /**\n * Is the media paused\n */\n get mediaPaused() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED);\n }\n set mediaPaused(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED, value);\n }\n /**\n * Is the media loading\n */\n get mediaLoading() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_LOADING);\n }\n set mediaLoading(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_LOADING, value);\n }\n /**\n *\n */\n get mediaDuration() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_DURATION);\n }\n set mediaDuration(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_DURATION, value);\n }\n /**\n *\n */\n get mediaCurrentTime() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_CURRENT_TIME);\n }\n set mediaCurrentTime(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_CURRENT_TIME, value);\n }\n /**\n *\n */\n get mediaPlaybackRate() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_PLAYBACK_RATE, 1);\n }\n set mediaPlaybackRate(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_PLAYBACK_RATE, value);\n }\n /**\n * An array of ranges, each range being an array of two numbers.\n * e.g. [[1, 2], [3, 4]]\n */\n get mediaBuffered() {\n const buffered = this.getAttribute(MediaUIAttributes.MEDIA_BUFFERED);\n if (!buffered)\n return [];\n return buffered.split(\" \").map((timePair) => timePair.split(\":\").map((timeStr) => +timeStr));\n }\n set mediaBuffered(list) {\n if (!list) {\n this.removeAttribute(MediaUIAttributes.MEDIA_BUFFERED);\n return;\n }\n const strVal = list.map((tuple) => tuple.join(\":\")).join(\" \");\n this.setAttribute(MediaUIAttributes.MEDIA_BUFFERED, strVal);\n }\n /**\n * Range of values that can be seeked to\n * An array of two numbers [start, end]\n */\n get mediaSeekable() {\n const seekable = this.getAttribute(MediaUIAttributes.MEDIA_SEEKABLE);\n if (!seekable)\n return void 0;\n return seekable.split(\":\").map((time) => +time);\n }\n set mediaSeekable(range) {\n if (range == null) {\n this.removeAttribute(MediaUIAttributes.MEDIA_SEEKABLE);\n return;\n }\n this.setAttribute(MediaUIAttributes.MEDIA_SEEKABLE, range.join(\":\"));\n }\n /**\n *\n */\n get mediaSeekableEnd() {\n var _a;\n const [, end = this.mediaDuration] = (_a = this.mediaSeekable) != null ? _a : [];\n return end;\n }\n get mediaSeekableStart() {\n var _a;\n const [start = 0] = (_a = this.mediaSeekable) != null ? _a : [];\n return start;\n }\n /**\n * The url of the preview image\n */\n get mediaPreviewImage() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_PREVIEW_IMAGE);\n }\n set mediaPreviewImage(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_PREVIEW_IMAGE, value);\n }\n /**\n *\n */\n get mediaPreviewTime() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_PREVIEW_TIME);\n }\n set mediaPreviewTime(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_PREVIEW_TIME, value);\n }\n /**\n *\n */\n get mediaEnded() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_ENDED);\n }\n set mediaEnded(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_ENDED, value);\n }\n /* Add a buffered progress bar */\n updateBar() {\n super.updateBar();\n this.updateBufferedBar();\n this.updateCurrentBox();\n }\n updateBufferedBar() {\n var _a;\n const buffered = this.mediaBuffered;\n if (!buffered.length) {\n return;\n }\n let relativeBufferedEnd;\n if (!this.mediaEnded) {\n const currentTime = this.mediaCurrentTime;\n const [, bufferedEnd = this.mediaSeekableStart] = (_a = buffered.find(\n ([start, end]) => start <= currentTime && currentTime <= end\n )) != null ? _a : [];\n relativeBufferedEnd = calcRangeValueFromTime(this, bufferedEnd);\n } else {\n relativeBufferedEnd = 1;\n }\n const { style } = getOrInsertCSSRule(this.shadowRoot, \"#buffered\");\n style.setProperty(\"width\", `${relativeBufferedEnd * 100}%`);\n }\n updateCurrentBox() {\n const currentSlot = this.shadowRoot.querySelector(\n 'slot[name=\"current\"]'\n );\n if (!currentSlot.assignedElements().length)\n return;\n const currentRailRule = getOrInsertCSSRule(\n this.shadowRoot,\n \"#current-rail\"\n );\n const currentBoxRule = getOrInsertCSSRule(\n this.shadowRoot,\n '[part~=\"current-box\"]'\n );\n const rects = __privateMethod(this, _getElementRects, getElementRects_fn).call(this, __privateGet(this, _currentBox));\n const boxPos = __privateMethod(this, _getBoxPosition, getBoxPosition_fn).call(this, rects, this.range.valueAsNumber);\n const boxShift = __privateMethod(this, _getBoxShiftPosition, getBoxShiftPosition_fn).call(this, rects, this.range.valueAsNumber);\n currentRailRule.style.transform = `translateX(${boxPos})`;\n currentRailRule.style.setProperty(\"--_range-width\", `${rects.range.width}`);\n currentBoxRule.style.setProperty(\"--_box-shift\", `${boxShift}`);\n currentBoxRule.style.setProperty(\"--_box-width\", `${rects.box.width}px`);\n currentBoxRule.style.setProperty(\"visibility\", \"initial\");\n }\n handleEvent(evt) {\n super.handleEvent(evt);\n switch (evt.type) {\n case \"input\":\n __privateMethod(this, _seekRequest, seekRequest_fn).call(this);\n break;\n case \"pointermove\":\n __privateMethod(this, _handlePointerMove, handlePointerMove_fn).call(this, evt);\n break;\n case \"pointerup\":\n if (__privateGet(this, _isPointerDown))\n __privateSet(this, _isPointerDown, false);\n break;\n case \"pointerdown\":\n __privateSet(this, _isPointerDown, true);\n break;\n case \"pointerleave\":\n __privateMethod(this, _previewRequest, previewRequest_fn).call(this, null);\n break;\n case \"transitionstart\":\n if (containsComposedNode(evt.target, this)) {\n setTimeout(() => __privateGet(this, _toggleRangeAnimation).call(this), 0);\n }\n break;\n }\n }\n}\n_rootNode = new WeakMap();\n_animation = new WeakMap();\n_boxes = new WeakMap();\n_previewTime = new WeakMap();\n_previewBox = new WeakMap();\n_currentBox = new WeakMap();\n_boxPaddingLeft = new WeakMap();\n_boxPaddingRight = new WeakMap();\n_mediaChaptersCues = new WeakMap();\n_isPointerDown = new WeakMap();\n_toggleRangeAnimation = new WeakMap();\n_shouldRangeAnimate = new WeakSet();\nshouldRangeAnimate_fn = function() {\n return this.isConnected && !this.mediaPaused && !this.mediaLoading && !this.mediaEnded && this.mediaSeekableEnd > 0 && isElementVisible(this);\n};\n_updateRange = new WeakMap();\n_getElementRects = new WeakSet();\ngetElementRects_fn = function(box) {\n var _a;\n const bounds = (_a = this.getAttribute(\"bounds\") ? closestComposedNode(this, `#${this.getAttribute(\"bounds\")}`) : this.parentElement) != null ? _a : this;\n const boundsRect = bounds.getBoundingClientRect();\n const rangeRect = this.range.getBoundingClientRect();\n const width = box.offsetWidth;\n const min = -(rangeRect.left - boundsRect.left - width / 2);\n const max = boundsRect.right - rangeRect.left - width / 2;\n return {\n box: { width, min, max },\n bounds: boundsRect,\n range: rangeRect\n };\n};\n_getBoxPosition = new WeakSet();\ngetBoxPosition_fn = function(rects, ratio) {\n let position = `${ratio * 100}%`;\n const { width, min, max } = rects.box;\n if (!width)\n return position;\n if (!Number.isNaN(min)) {\n const pad = `var(--media-box-padding-left)`;\n const minPos = `calc(1 / var(--_range-width) * 100 * ${min}% + ${pad})`;\n position = `max(${minPos}, ${position})`;\n }\n if (!Number.isNaN(max)) {\n const pad = `var(--media-box-padding-right)`;\n const maxPos = `calc(1 / var(--_range-width) * 100 * ${max}% - ${pad})`;\n position = `min(${position}, ${maxPos})`;\n }\n return position;\n};\n_getBoxShiftPosition = new WeakSet();\ngetBoxShiftPosition_fn = function(rects, ratio) {\n const { width, min, max } = rects.box;\n const pointerX = ratio * rects.range.width;\n if (pointerX < min + __privateGet(this, _boxPaddingLeft)) {\n const offset = rects.range.left - rects.bounds.left - __privateGet(this, _boxPaddingLeft);\n return `${pointerX - width / 2 + offset}px`;\n }\n if (pointerX > max - __privateGet(this, _boxPaddingRight)) {\n const offset = rects.bounds.right - rects.range.right - __privateGet(this, _boxPaddingRight);\n return `${pointerX + width / 2 - offset - rects.range.width}px`;\n }\n return 0;\n};\n_handlePointerMove = new WeakSet();\nhandlePointerMove_fn = function(evt) {\n const isOverBoxes = [...__privateGet(this, _boxes)].some(\n (b) => evt.composedPath().includes(b)\n );\n if (!this.dragging && (isOverBoxes || !evt.composedPath().includes(this))) {\n __privateMethod(this, _previewRequest, previewRequest_fn).call(this, null);\n return;\n }\n const duration = this.mediaSeekableEnd;\n if (!duration)\n return;\n const previewRailRule = getOrInsertCSSRule(\n this.shadowRoot,\n \"#preview-rail\"\n );\n const previewBoxRule = getOrInsertCSSRule(\n this.shadowRoot,\n '[part~=\"preview-box\"]'\n );\n const rects = __privateMethod(this, _getElementRects, getElementRects_fn).call(this, __privateGet(this, _previewBox));\n let pointerRatio = (evt.clientX - rects.range.left) / rects.range.width;\n pointerRatio = Math.max(0, Math.min(1, pointerRatio));\n const boxPos = __privateMethod(this, _getBoxPosition, getBoxPosition_fn).call(this, rects, pointerRatio);\n const boxShift = __privateMethod(this, _getBoxShiftPosition, getBoxShiftPosition_fn).call(this, rects, pointerRatio);\n previewRailRule.style.transform = `translateX(${boxPos})`;\n previewRailRule.style.setProperty(\"--_range-width\", `${rects.range.width}`);\n previewBoxRule.style.setProperty(\"--_box-shift\", `${boxShift}`);\n previewBoxRule.style.setProperty(\"--_box-width\", `${rects.box.width}px`);\n const diff = Math.round(__privateGet(this, _previewTime)) - Math.round(pointerRatio * duration);\n if (Math.abs(diff) < 1 && pointerRatio > 0.01 && pointerRatio < 0.99)\n return;\n __privateSet(this, _previewTime, pointerRatio * duration);\n __privateMethod(this, _previewRequest, previewRequest_fn).call(this, __privateGet(this, _previewTime));\n};\n_previewRequest = new WeakSet();\npreviewRequest_fn = function(detail) {\n this.dispatchEvent(\n new globalThis.CustomEvent(MediaUIEvents.MEDIA_PREVIEW_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n })\n );\n};\n_seekRequest = new WeakSet();\nseekRequest_fn = function() {\n __privateGet(this, _animation).stop();\n const detail = calcTimeFromRangeValue(this);\n this.dispatchEvent(\n new globalThis.CustomEvent(MediaUIEvents.MEDIA_SEEK_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n })\n );\n};\nMediaTimeRange.shadowRootOptions = { mode: \"open\" };\nMediaTimeRange.getContainerTemplateHTML = getContainerTemplateHTML;\nif (!globalThis.customElements.get(\"media-time-range\")) {\n globalThis.customElements.define(\"media-time-range\", MediaTimeRange);\n}\nvar media_time_range_default = MediaTimeRange;\nexport {\n media_time_range_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar _handleRangeInput;\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaChromeRange } from \"./media-chrome-range.js\";\nimport { MediaUIAttributes, MediaUIEvents } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nimport {\n getBooleanAttr,\n getNumericAttr,\n getStringAttr,\n setBooleanAttr,\n setNumericAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nconst DEFAULT_VOLUME = 1;\nconst toVolume = (el) => {\n if (el.mediaMuted)\n return 0;\n return el.mediaVolume;\n};\nconst formatAsPercentString = (value) => `${Math.round(value * 100)}%`;\nclass MediaVolumeRange extends MediaChromeRange {\n constructor() {\n super(...arguments);\n __privateAdd(this, _handleRangeInput, () => {\n const detail = this.range.value;\n const evt = new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_VOLUME_REQUEST,\n {\n composed: true,\n bubbles: true,\n detail\n }\n );\n this.dispatchEvent(evt);\n });\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_VOLUME,\n MediaUIAttributes.MEDIA_MUTED,\n MediaUIAttributes.MEDIA_VOLUME_UNAVAILABLE\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n this.range.setAttribute(\"aria-label\", t(\"volume\"));\n this.range.addEventListener(\"input\", __privateGet(this, _handleRangeInput));\n }\n disconnectedCallback() {\n this.range.removeEventListener(\"input\", __privateGet(this, _handleRangeInput));\n super.disconnectedCallback();\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_VOLUME || attrName === MediaUIAttributes.MEDIA_MUTED) {\n this.range.valueAsNumber = toVolume(this);\n this.range.setAttribute(\n \"aria-valuetext\",\n formatAsPercentString(this.range.valueAsNumber)\n );\n this.updateBar();\n }\n }\n /**\n *\n */\n get mediaVolume() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_VOLUME, DEFAULT_VOLUME);\n }\n set mediaVolume(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_VOLUME, value);\n }\n /**\n * Is the media currently muted\n */\n get mediaMuted() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_MUTED);\n }\n set mediaMuted(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_MUTED, value);\n }\n /**\n * The volume unavailability state\n */\n get mediaVolumeUnavailable() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_VOLUME_UNAVAILABLE);\n }\n set mediaVolumeUnavailable(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_VOLUME_UNAVAILABLE, value);\n }\n}\n_handleRangeInput = new WeakMap();\nif (!globalThis.customElements.get(\"media-volume-range\")) {\n globalThis.customElements.define(\"media-volume-range\", MediaVolumeRange);\n}\nvar media_volume_range_default = MediaVolumeRange;\nexport {\n media_volume_range_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { getBooleanAttr, setBooleanAttr } from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n min-width: 4ch;\n padding: var(--media-button-padding, var(--media-control-padding, 10px 5px));\n width: 100%;\n display: grid;\n grid-template-columns: 1fr auto;\n gap: 1rem;\n font-weight: var(--media-button-font-weight, normal);\n }\n\n #checked-indicator {\n display: none;\n }\n\n :host([${MediaUIAttributes.MEDIA_LOOP}]) #checked-indicator {\n display: block;\n }\n </style>\n \n <span id=\"icon\">\n </span>\n\n <div id=\"checked-indicator\">\n <svg aria-hidden=\"true\" viewBox=\"0 1 24 24\" part=\"checked-indicator indicator\">\n <path d=\"m10 15.17 9.193-9.191 1.414 1.414-10.606 10.606-6.364-6.364 1.414-1.414 4.95 4.95Z\"/>\n </svg>\n </div>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Loop\");\n}\nclass MediaLoopButton extends MediaChromeButton {\n constructor() {\n super(...arguments);\n this.container = null;\n }\n static get observedAttributes() {\n return [...super.observedAttributes, MediaUIAttributes.MEDIA_LOOP];\n }\n connectedCallback() {\n var _a;\n super.connectedCallback();\n this.container = ((_a = this.shadowRoot) == null ? void 0 : _a.querySelector(\"#icon\")) || null;\n if (this.container) {\n this.container.textContent = t(\"Loop\");\n }\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_LOOP && this.container) {\n this.setAttribute(\n \"aria-checked\",\n this.mediaLoop ? \"true\" : \"false\"\n );\n }\n }\n get mediaLoop() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_LOOP);\n }\n set mediaLoop(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_LOOP, value);\n }\n handleClick() {\n const looping = !this.mediaLoop;\n const evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_LOOP_REQUEST, {\n composed: true,\n bubbles: true,\n detail: looping\n });\n this.dispatchEvent(evt);\n }\n}\nMediaLoopButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaLoopButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-loop-button\")) {\n globalThis.customElements.define(\"media-loop-button\", MediaLoopButton);\n}\nvar media_loop_button_default = MediaLoopButton;\nexport {\n media_loop_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _parts, _processor, _items, _value, _element, _attributeName, _namespaceURI, _list, list_get, _parentNode, _nodes;\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nconst ELEMENT = 1;\nconst STRING = 0;\nconst PART = 1;\nconst defaultProcessor = {\n processCallback(instance, parts, state) {\n if (!state)\n return;\n for (const [expression, part] of parts) {\n if (expression in state) {\n const value = state[expression];\n if (typeof value === \"boolean\" && part instanceof AttrPart && typeof part.element[part.attributeName] === \"boolean\") {\n part.booleanValue = value;\n } else if (typeof value === \"function\" && part instanceof AttrPart) {\n part.element[part.attributeName] = value;\n } else {\n part.value = value;\n }\n }\n }\n }\n};\nclass TemplateInstance extends globalThis.DocumentFragment {\n constructor(template, state, processor = defaultProcessor) {\n var _a;\n super();\n __privateAdd(this, _parts, void 0);\n __privateAdd(this, _processor, void 0);\n this.append(template.content.cloneNode(true));\n __privateSet(this, _parts, parse(this));\n __privateSet(this, _processor, processor);\n (_a = processor.createCallback) == null ? void 0 : _a.call(processor, this, __privateGet(this, _parts), state);\n processor.processCallback(this, __privateGet(this, _parts), state);\n }\n update(state) {\n __privateGet(this, _processor).processCallback(this, __privateGet(this, _parts), state);\n }\n}\n_parts = new WeakMap();\n_processor = new WeakMap();\nconst parse = (element, parts = []) => {\n let type, value;\n for (const attr of element.attributes || []) {\n if (attr.value.includes(\"{{\")) {\n const list = new AttrPartList();\n for ([type, value] of tokenize(attr.value)) {\n if (!type)\n list.append(value);\n else {\n const part = new AttrPart(element, attr.name, attr.namespaceURI);\n list.append(part);\n parts.push([value, part]);\n }\n }\n attr.value = list.toString();\n }\n }\n for (const node of element.childNodes) {\n if (node.nodeType === ELEMENT && !(node instanceof HTMLTemplateElement)) {\n parse(node, parts);\n } else {\n const data = node.data;\n if (node.nodeType === ELEMENT || data.includes(\"{{\")) {\n const items = [];\n if (data) {\n for ([type, value] of tokenize(data))\n if (!type)\n items.push(new Text(value));\n else {\n const part = new ChildNodePart(element);\n items.push(part);\n parts.push([value, part]);\n }\n } else if (node instanceof HTMLTemplateElement) {\n const part = new InnerTemplatePart(element, node);\n items.push(part);\n parts.push([part.expression, part]);\n }\n node.replaceWith(\n ...items.flatMap((part) => part.replacementNodes || [part])\n );\n }\n }\n }\n return parts;\n};\nconst mem = {};\nconst tokenize = (text) => {\n let value = \"\", open = 0, tokens = mem[text], i = 0, c;\n if (tokens)\n return tokens;\n else\n tokens = [];\n for (; c = text[i]; i++) {\n if (c === \"{\" && text[i + 1] === \"{\" && text[i - 1] !== \"\\\\\" && text[i + 2] && ++open == 1) {\n if (value)\n tokens.push([STRING, value]);\n value = \"\";\n i++;\n } else if (c === \"}\" && text[i + 1] === \"}\" && text[i - 1] !== \"\\\\\" && !--open) {\n tokens.push([PART, value.trim()]);\n value = \"\";\n i++;\n } else\n value += c || \"\";\n }\n if (value)\n tokens.push([STRING, (open > 0 ? \"{{\" : \"\") + value]);\n return mem[text] = tokens;\n};\nconst FRAGMENT = 11;\nclass Part {\n get value() {\n return \"\";\n }\n set value(val) {\n }\n toString() {\n return this.value;\n }\n}\nconst attrPartToList = /* @__PURE__ */ new WeakMap();\nclass AttrPartList {\n constructor() {\n __privateAdd(this, _items, []);\n }\n [Symbol.iterator]() {\n return __privateGet(this, _items).values();\n }\n get length() {\n return __privateGet(this, _items).length;\n }\n item(index) {\n return __privateGet(this, _items)[index];\n }\n append(...items) {\n for (const item of items) {\n if (item instanceof AttrPart) {\n attrPartToList.set(item, this);\n }\n __privateGet(this, _items).push(item);\n }\n }\n toString() {\n return __privateGet(this, _items).join(\"\");\n }\n}\n_items = new WeakMap();\nclass AttrPart extends Part {\n constructor(element, attributeName, namespaceURI) {\n super();\n __privateAdd(this, _list);\n __privateAdd(this, _value, \"\");\n __privateAdd(this, _element, void 0);\n __privateAdd(this, _attributeName, void 0);\n __privateAdd(this, _namespaceURI, void 0);\n __privateSet(this, _element, element);\n __privateSet(this, _attributeName, attributeName);\n __privateSet(this, _namespaceURI, namespaceURI);\n }\n get attributeName() {\n return __privateGet(this, _attributeName);\n }\n get attributeNamespace() {\n return __privateGet(this, _namespaceURI);\n }\n get element() {\n return __privateGet(this, _element);\n }\n get value() {\n return __privateGet(this, _value);\n }\n set value(newValue) {\n if (__privateGet(this, _value) === newValue)\n return;\n __privateSet(this, _value, newValue);\n if (!__privateGet(this, _list, list_get) || __privateGet(this, _list, list_get).length === 1) {\n if (newValue == null) {\n __privateGet(this, _element).removeAttributeNS(\n __privateGet(this, _namespaceURI),\n __privateGet(this, _attributeName)\n );\n } else {\n __privateGet(this, _element).setAttributeNS(\n __privateGet(this, _namespaceURI),\n __privateGet(this, _attributeName),\n newValue\n );\n }\n } else {\n __privateGet(this, _element).setAttributeNS(\n __privateGet(this, _namespaceURI),\n __privateGet(this, _attributeName),\n __privateGet(this, _list, list_get).toString()\n );\n }\n }\n get booleanValue() {\n return __privateGet(this, _element).hasAttributeNS(\n __privateGet(this, _namespaceURI),\n __privateGet(this, _attributeName)\n );\n }\n set booleanValue(value) {\n if (!__privateGet(this, _list, list_get) || __privateGet(this, _list, list_get).length === 1)\n this.value = value ? \"\" : null;\n else\n throw new DOMException(\"Value is not fully templatized\");\n }\n}\n_value = new WeakMap();\n_element = new WeakMap();\n_attributeName = new WeakMap();\n_namespaceURI = new WeakMap();\n_list = new WeakSet();\nlist_get = function() {\n return attrPartToList.get(this);\n};\nclass ChildNodePart extends Part {\n constructor(parentNode, nodes) {\n super();\n __privateAdd(this, _parentNode, void 0);\n __privateAdd(this, _nodes, void 0);\n __privateSet(this, _parentNode, parentNode);\n __privateSet(this, _nodes, nodes ? [...nodes] : [new Text()]);\n }\n get replacementNodes() {\n return __privateGet(this, _nodes);\n }\n get parentNode() {\n return __privateGet(this, _parentNode);\n }\n get nextSibling() {\n return __privateGet(this, _nodes)[__privateGet(this, _nodes).length - 1].nextSibling;\n }\n get previousSibling() {\n return __privateGet(this, _nodes)[0].previousSibling;\n }\n // FIXME: not sure why do we need string serialization here? Just because parent class has type DOMString?\n get value() {\n return __privateGet(this, _nodes).map((node) => node.textContent).join(\"\");\n }\n set value(newValue) {\n this.replace(newValue);\n }\n replace(...nodes) {\n const normalisedNodes = nodes.flat().flatMap(\n (node) => node == null ? [new Text()] : node.forEach ? [...node] : node.nodeType === FRAGMENT ? [...node.childNodes] : node.nodeType ? [node] : [new Text(node)]\n );\n if (!normalisedNodes.length)\n normalisedNodes.push(new Text());\n __privateSet(this, _nodes, swapdom(\n __privateGet(this, _nodes)[0].parentNode,\n __privateGet(this, _nodes),\n normalisedNodes,\n this.nextSibling\n ));\n }\n}\n_parentNode = new WeakMap();\n_nodes = new WeakMap();\nclass InnerTemplatePart extends ChildNodePart {\n constructor(parentNode, template) {\n const directive = template.getAttribute(\"directive\") || template.getAttribute(\"type\");\n let expression = template.getAttribute(\"expression\") || template.getAttribute(directive) || \"\";\n if (expression.startsWith(\"{{\"))\n expression = expression.trim().slice(2, -2).trim();\n super(parentNode);\n this.expression = expression;\n this.template = template;\n this.directive = directive;\n }\n}\nfunction swapdom(parent, a, b, end = null) {\n let i = 0, cur, next, bi, n = b.length, m = a.length;\n while (i < n && i < m && a[i] == b[i])\n i++;\n while (i < n && i < m && b[n - 1] == a[m - 1])\n end = b[--m, --n];\n if (i == m)\n while (i < n)\n parent.insertBefore(b[i++], end);\n if (i == n)\n while (i < m)\n parent.removeChild(a[i++]);\n else {\n cur = a[i];\n while (i < n) {\n bi = b[i++], next = cur ? cur.nextSibling : end;\n if (cur == bi)\n cur = next;\n else if (i < n && b[i] == next)\n parent.replaceChild(bi, cur), cur = next;\n else\n parent.insertBefore(bi, cur);\n }\n while (cur != end)\n next = cur.nextSibling, parent.removeChild(cur), cur = next;\n }\n return b;\n}\nexport {\n AttrPart,\n AttrPartList,\n ChildNodePart,\n InnerTemplatePart,\n Part,\n TemplateInstance,\n defaultProcessor,\n parse,\n tokenize\n};\n","import {\n AttrPart,\n InnerTemplatePart,\n TemplateInstance\n} from \"./template-parts.js\";\nimport { isNumericString } from \"./utils.js\";\nconst pipeModifiers = {\n string: (value) => String(value)\n};\nclass PartialTemplate {\n constructor(template) {\n this.template = template;\n this.state = void 0;\n }\n}\nconst templates = /* @__PURE__ */ new WeakMap();\nconst templateInstances = /* @__PURE__ */ new WeakMap();\nconst Directives = {\n partial: (part, state) => {\n state[part.expression] = new PartialTemplate(part.template);\n },\n if: (part, state) => {\n var _a;\n if (evaluateExpression(part.expression, state)) {\n if (templates.get(part) !== part.template) {\n templates.set(part, part.template);\n const tpl = new TemplateInstance(part.template, state, processor);\n part.replace(tpl);\n templateInstances.set(part, tpl);\n } else {\n (_a = templateInstances.get(part)) == null ? void 0 : _a.update(state);\n }\n } else {\n part.replace(\"\");\n templates.delete(part);\n templateInstances.delete(part);\n }\n }\n};\nconst DirectiveNames = Object.keys(Directives);\nconst processor = {\n processCallback(instance, parts, state) {\n var _a, _b;\n if (!state)\n return;\n for (const [expression, part] of parts) {\n if (part instanceof InnerTemplatePart) {\n if (!part.directive) {\n const directive = DirectiveNames.find(\n (n) => part.template.hasAttribute(n)\n );\n if (directive) {\n part.directive = directive;\n part.expression = part.template.getAttribute(directive);\n }\n }\n (_a = Directives[part.directive]) == null ? void 0 : _a.call(Directives, part, state);\n continue;\n }\n let value = evaluateExpression(expression, state);\n if (value instanceof PartialTemplate) {\n if (templates.get(part) !== value.template) {\n templates.set(part, value.template);\n value = new TemplateInstance(value.template, value.state, processor);\n part.value = value;\n templateInstances.set(part, value);\n } else {\n (_b = templateInstances.get(part)) == null ? void 0 : _b.update(value.state);\n }\n continue;\n }\n if (value) {\n if (part instanceof AttrPart) {\n if (part.attributeName.startsWith(\"aria-\")) {\n value = String(value);\n }\n }\n if (part instanceof AttrPart) {\n if (typeof value === \"boolean\") {\n part.booleanValue = value;\n } else if (typeof value === \"function\") {\n part.element[part.attributeName] = value;\n } else {\n part.value = value;\n }\n } else {\n part.value = value;\n templates.delete(part);\n templateInstances.delete(part);\n }\n } else {\n if (part instanceof AttrPart) {\n part.value = void 0;\n } else {\n part.value = void 0;\n templates.delete(part);\n templateInstances.delete(part);\n }\n }\n }\n }\n};\nconst operators = {\n \"!\": (a) => !a,\n \"!!\": (a) => !!a,\n \"==\": (a, b) => a == b,\n \"!=\": (a, b) => a != b,\n \">\": (a, b) => a > b,\n \">=\": (a, b) => a >= b,\n \"<\": (a, b) => a < b,\n \"<=\": (a, b) => a <= b,\n \"??\": (a, b) => a != null ? a : b,\n \"|\": (a, b) => {\n var _a;\n return (_a = pipeModifiers[b]) == null ? void 0 : _a.call(pipeModifiers, a);\n }\n};\nfunction tokenizeExpression(expr) {\n return tokenize(expr, {\n boolean: /true|false/,\n number: /-?\\d+\\.?\\d*/,\n string: /([\"'])((?:\\\\.|[^\\\\])*?)\\1/,\n operator: /[!=><][=!]?|\\?\\?|\\|/,\n ws: /\\s+/,\n param: /[$a-z_][$\\w]*/i\n }).filter(({ type }) => type !== \"ws\");\n}\nfunction evaluateExpression(expr, state = {}) {\n var _a, _b, _c, _d, _e, _f, _g;\n const tokens = tokenizeExpression(expr);\n if (tokens.length === 0 || tokens.some(({ type }) => !type)) {\n return invalidExpression(expr);\n }\n if (((_a = tokens[0]) == null ? void 0 : _a.token) === \">\") {\n const partial = state[(_b = tokens[1]) == null ? void 0 : _b.token];\n if (!partial) {\n return invalidExpression(expr);\n }\n const partialState = { ...state };\n partial.state = partialState;\n const args = tokens.slice(2);\n for (let i = 0; i < args.length; i += 3) {\n const name = (_c = args[i]) == null ? void 0 : _c.token;\n const operator = (_d = args[i + 1]) == null ? void 0 : _d.token;\n const value = (_e = args[i + 2]) == null ? void 0 : _e.token;\n if (name && operator === \"=\") {\n partialState[name] = getParamValue(value, state);\n }\n }\n return partial;\n }\n if (tokens.length === 1) {\n if (!isValidParam(tokens[0])) {\n return invalidExpression(expr);\n }\n return getParamValue(tokens[0].token, state);\n }\n if (tokens.length === 2) {\n const operator = (_f = tokens[0]) == null ? void 0 : _f.token;\n const run = operators[operator];\n if (!run || !isValidParam(tokens[1])) {\n return invalidExpression(expr);\n }\n const a = getParamValue(tokens[1].token, state);\n return run(a);\n }\n if (tokens.length === 3) {\n const operator = (_g = tokens[1]) == null ? void 0 : _g.token;\n const run = operators[operator];\n if (!run || !isValidParam(tokens[0]) || !isValidParam(tokens[2])) {\n return invalidExpression(expr);\n }\n const a = getParamValue(tokens[0].token, state);\n if (operator === \"|\") {\n return run(a, tokens[2].token);\n }\n const b = getParamValue(tokens[2].token, state);\n return run(a, b);\n }\n}\nfunction invalidExpression(expr) {\n console.warn(`Warning: invalid expression \\`${expr}\\``);\n return false;\n}\nfunction isValidParam({ type }) {\n return [\"number\", \"boolean\", \"string\", \"param\"].includes(type);\n}\nfunction getParamValue(raw, state) {\n const firstChar = raw[0];\n const lastChar = raw.slice(-1);\n if (raw === \"true\" || raw === \"false\") {\n return raw === \"true\";\n }\n if (firstChar === lastChar && [`'`, `\"`].includes(firstChar)) {\n return raw.slice(1, -1);\n }\n if (isNumericString(raw)) {\n return parseFloat(raw);\n }\n return state[raw];\n}\nfunction tokenize(str, parsers) {\n let len, match, token;\n const tokens = [];\n while (str) {\n token = null;\n len = str.length;\n for (const key in parsers) {\n match = parsers[key].exec(str);\n if (match && match.index < len) {\n token = {\n token: match[0],\n type: key,\n matches: match.slice(1)\n };\n len = match.index;\n }\n }\n if (len) {\n tokens.push({\n token: str.substr(0, len),\n type: void 0\n });\n }\n if (token) {\n tokens.push(token);\n }\n str = str.substr(len + (token ? token.token.length : 0));\n }\n return tokens;\n}\nexport {\n evaluateExpression,\n getParamValue,\n processor,\n tokenizeExpression\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _template, _prevTemplate, _prevTemplateId, _observer, _upgradeProperty, upgradeProperty_fn, _updateTemplate, updateTemplate_fn, _renderBind;\nimport { MediaStateChangeEvents } from \"./constants.js\";\nimport { globalThis, document } from \"./utils/server-safe-globals.js\";\nimport { TemplateInstance } from \"./utils/template-parts.js\";\nimport { processor } from \"./utils/template-processor.js\";\nimport { camelCase, isNumericString } from \"./utils/utils.js\";\nexport * from \"./utils/template-parts.js\";\nconst observedMediaAttributes = {\n mediatargetlivewindow: \"targetlivewindow\",\n mediastreamtype: \"streamtype\"\n};\nconst prependTemplate = document.createElement(\"template\");\nprependTemplate.innerHTML = /*html*/\n`\n <style>\n :host {\n display: inline-block;\n line-height: 0;\n }\n\n media-controller {\n width: 100%;\n height: 100%;\n }\n\n media-captions-button:not([mediasubtitleslist]),\n media-captions-menu:not([mediasubtitleslist]),\n media-captions-menu-button:not([mediasubtitleslist]),\n media-audio-track-menu[mediaaudiotrackunavailable],\n media-audio-track-menu-button[mediaaudiotrackunavailable],\n media-rendition-menu[mediarenditionunavailable],\n media-rendition-menu-button[mediarenditionunavailable],\n media-volume-range[mediavolumeunavailable],\n media-airplay-button[mediaairplayunavailable],\n media-fullscreen-button[mediafullscreenunavailable],\n media-cast-button[mediacastunavailable],\n media-pip-button[mediapipunavailable] {\n display: none;\n }\n </style>\n`;\nclass MediaThemeElement extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _upgradeProperty);\n __privateAdd(this, _updateTemplate);\n __privateAdd(this, _template, void 0);\n __privateAdd(this, _prevTemplate, void 0);\n __privateAdd(this, _prevTemplateId, void 0);\n __privateAdd(this, _observer, void 0);\n __privateAdd(this, _renderBind, void 0);\n if (this.shadowRoot) {\n this.renderRoot = this.shadowRoot;\n } else {\n this.renderRoot = this.attachShadow({ mode: \"open\" });\n this.createRenderer();\n }\n __privateSet(this, _observer, new MutationObserver((mutationList) => {\n var _a;\n if (this.mediaController && !((_a = this.mediaController) == null ? void 0 : _a.breakpointsComputed))\n return;\n if (mutationList.some((mutation) => {\n const target = mutation.target;\n if (target === this)\n return true;\n if (target.localName !== \"media-controller\")\n return false;\n if (observedMediaAttributes[mutation.attributeName])\n return true;\n if (mutation.attributeName.startsWith(\"breakpoint\"))\n return true;\n return false;\n })) {\n this.render();\n }\n }));\n __privateSet(this, _renderBind, this.render.bind(this));\n __privateMethod(this, _upgradeProperty, upgradeProperty_fn).call(this, \"template\");\n }\n /** @type {HTMLElement & { breakpointsComputed?: boolean }} */\n get mediaController() {\n return this.renderRoot.querySelector(\"media-controller\");\n }\n get template() {\n var _a;\n return (_a = __privateGet(this, _template)) != null ? _a : this.constructor.template;\n }\n set template(value) {\n if (value === null) {\n this.removeAttribute(\"template\");\n return;\n }\n if (typeof value === \"string\") {\n this.setAttribute(\"template\", value);\n } else if (value instanceof HTMLTemplateElement) {\n __privateSet(this, _template, value);\n __privateSet(this, _prevTemplateId, null);\n this.createRenderer();\n }\n }\n get props() {\n var _a, _b, _c;\n const observedAttributes = [\n ...Array.from((_b = (_a = this.mediaController) == null ? void 0 : _a.attributes) != null ? _b : []).filter(\n ({ name }) => {\n return observedMediaAttributes[name] || name.startsWith(\"breakpoint\");\n }\n ),\n ...Array.from(this.attributes)\n ];\n const props = {};\n for (const attr of observedAttributes) {\n const name = (_c = observedMediaAttributes[attr.name]) != null ? _c : camelCase(attr.name);\n let { value } = attr;\n if (value != null) {\n if (isNumericString(value)) {\n value = parseFloat(value);\n }\n props[name] = value === \"\" ? true : value;\n } else {\n props[name] = false;\n }\n }\n return props;\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n if (attrName === \"template\" && oldValue != newValue) {\n __privateMethod(this, _updateTemplate, updateTemplate_fn).call(this);\n }\n }\n connectedCallback() {\n this.addEventListener(\n MediaStateChangeEvents.BREAKPOINTS_COMPUTED,\n __privateGet(this, _renderBind)\n );\n __privateGet(this, _observer).observe(this, { attributes: true });\n __privateGet(this, _observer).observe(this.renderRoot, {\n attributes: true,\n subtree: true\n });\n __privateMethod(this, _updateTemplate, updateTemplate_fn).call(this);\n }\n disconnectedCallback() {\n this.removeEventListener(\n MediaStateChangeEvents.BREAKPOINTS_COMPUTED,\n __privateGet(this, _renderBind)\n );\n __privateGet(this, _observer).disconnect();\n }\n createRenderer() {\n if (this.template instanceof HTMLTemplateElement && this.template !== __privateGet(this, _prevTemplate)) {\n __privateSet(this, _prevTemplate, this.template);\n this.renderer = new TemplateInstance(\n this.template,\n this.props,\n // @ts-ignore\n this.constructor.processor\n );\n this.renderRoot.textContent = \"\";\n this.renderRoot.append(\n prependTemplate.content.cloneNode(true),\n this.renderer\n );\n }\n }\n render() {\n var _a;\n (_a = this.renderer) == null ? void 0 : _a.update(this.props);\n }\n}\n_template = new WeakMap();\n_prevTemplate = new WeakMap();\n_prevTemplateId = new WeakMap();\n_observer = new WeakMap();\n_upgradeProperty = new WeakSet();\nupgradeProperty_fn = function(prop) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n const value = this[prop];\n delete this[prop];\n this[prop] = value;\n }\n};\n_updateTemplate = new WeakSet();\nupdateTemplate_fn = function() {\n var _a;\n const templateId = this.getAttribute(\"template\");\n if (!templateId || templateId === __privateGet(this, _prevTemplateId))\n return;\n const rootNode = this.getRootNode();\n const template = (_a = rootNode == null ? void 0 : rootNode.getElementById) == null ? void 0 : _a.call(\n rootNode,\n templateId\n );\n if (template) {\n __privateSet(this, _prevTemplateId, templateId);\n __privateSet(this, _template, template);\n this.createRenderer();\n return;\n }\n if (isValidUrl(templateId)) {\n __privateSet(this, _prevTemplateId, templateId);\n request(templateId).then((data) => {\n const template2 = document.createElement(\"template\");\n template2.innerHTML = data;\n __privateSet(this, _template, template2);\n this.createRenderer();\n }).catch(console.error);\n }\n};\n_renderBind = new WeakMap();\nMediaThemeElement.observedAttributes = [\"template\"];\nMediaThemeElement.processor = processor;\nfunction isValidUrl(url) {\n if (!/^(\\/|\\.\\/|https?:\\/\\/)/.test(url))\n return false;\n const base = /^https?:\\/\\//.test(url) ? void 0 : location.origin;\n try {\n new URL(url, base);\n } catch (e) {\n return false;\n }\n return true;\n}\nasync function request(resource) {\n const response = await fetch(resource);\n if (response.status !== 200) {\n throw new Error(\n `Failed to load resource: the server responded with a status of ${response.status}`\n );\n }\n return response.text();\n}\nif (!globalThis.customElements.get(\"media-theme\")) {\n globalThis.customElements.define(\"media-theme\", MediaThemeElement);\n}\nexport {\n MediaThemeElement\n};\n","function computePosition({\n anchor,\n floating,\n placement\n}) {\n const rects = getElementRects({ anchor, floating });\n const { x, y } = computeCoordsFromPlacement(rects, placement);\n return { x, y };\n}\nfunction getElementRects({\n anchor,\n floating\n}) {\n return {\n anchor: getRectRelativeToOffsetParent(anchor, floating.offsetParent),\n floating: {\n x: 0,\n y: 0,\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }\n };\n}\nfunction getRectRelativeToOffsetParent(element, offsetParent) {\n var _a;\n const rect = element.getBoundingClientRect();\n const offsetRect = (_a = offsetParent == null ? void 0 : offsetParent.getBoundingClientRect()) != null ? _a : { x: 0, y: 0 };\n return {\n x: rect.x - offsetRect.x,\n y: rect.y - offsetRect.y,\n width: rect.width,\n height: rect.height\n };\n}\nfunction computeCoordsFromPlacement({ anchor, floating }, placement) {\n const alignmentAxis = getSideAxis(placement) === \"x\" ? \"y\" : \"x\";\n const alignLength = alignmentAxis === \"y\" ? \"height\" : \"width\";\n const side = getSide(placement);\n const commonX = anchor.x + anchor.width / 2 - floating.width / 2;\n const commonY = anchor.y + anchor.height / 2 - floating.height / 2;\n const commonAlign = anchor[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case \"top\":\n coords = { x: commonX, y: anchor.y - floating.height };\n break;\n case \"bottom\":\n coords = { x: commonX, y: anchor.y + anchor.height };\n break;\n case \"right\":\n coords = { x: anchor.x + anchor.width, y: commonY };\n break;\n case \"left\":\n coords = { x: anchor.x - floating.width, y: commonY };\n break;\n default:\n coords = { x: anchor.x, y: anchor.y };\n }\n switch (placement.split(\"-\")[1]) {\n case \"start\":\n coords[alignmentAxis] -= commonAlign;\n break;\n case \"end\":\n coords[alignmentAxis] += commonAlign;\n break;\n }\n return coords;\n}\nfunction getSide(placement) {\n return placement.split(\"-\")[0];\n}\nfunction getSideAxis(placement) {\n return [\"top\", \"bottom\"].includes(getSide(placement)) ? \"y\" : \"x\";\n}\nexport {\n computePosition\n};\n","class InvokeEvent extends Event {\n /**\n * @param init - The event options.\n */\n constructor({ action = \"auto\", relatedTarget, ...options }) {\n super(\"invoke\", options);\n this.action = action;\n this.relatedTarget = relatedTarget;\n }\n}\nclass ToggleEvent extends Event {\n /**\n * @param init - The event options.\n */\n constructor({ newState, oldState, ...options }) {\n super(\"toggle\", options);\n this.newState = newState;\n this.oldState = oldState;\n }\n}\nexport {\n InvokeEvent,\n ToggleEvent\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _mediaController, _previouslyFocused, _invokerElement, _previousItems, _mutationObserver, _isPopover, _cssRule, _handleSlotChange, handleSlotChange_fn, _toggleHeader, toggleHeader_fn, _handleMenuItems, _updateLayoutStyle, updateLayoutStyle_fn, _handleInvoke, handleInvoke_fn, _handleOpen, handleOpen_fn, _handleClosed, handleClosed_fn, _handleBoundsResize, _handleMenuResize, _positionMenu, positionMenu_fn, _resizeMenu, resizeMenu_fn, _handleClick, handleClick_fn, _backButtonElement, backButtonElement_get, _handleToggle, handleToggle_fn, _checkSubmenuHasExpanded, checkSubmenuHasExpanded_fn, _handleFocusOut, handleFocusOut_fn, _handleKeyDown, handleKeyDown_fn, _getItem, getItem_fn, _getTabItem, getTabItem_fn, _setTabItem, setTabItem_fn, _selectItem, selectItem_fn;\nimport { MediaStateReceiverAttributes } from \"../constants.js\";\nimport { globalThis, document } from \"../utils/server-safe-globals.js\";\nimport { computePosition } from \"../utils/anchor-utils.js\";\nimport { observeResize, unobserveResize } from \"../utils/resize-observer.js\";\nimport { ToggleEvent, InvokeEvent } from \"../utils/events.js\";\nimport {\n getActiveElement,\n containsComposedNode,\n closestComposedNode,\n insertCSSRule,\n getMediaController,\n getAttributeMediaController,\n getDocumentOrShadowRoot,\n namedNodeMapToObject\n} from \"../utils/element-utils.js\";\nfunction createMenuItem({\n type,\n text,\n value,\n checked\n}) {\n const item = document.createElement(\n \"media-chrome-menu-item\"\n );\n item.type = type != null ? type : \"\";\n item.part.add(\"menu-item\");\n if (type)\n item.part.add(type);\n item.value = value;\n item.checked = checked;\n const label = document.createElement(\"span\");\n label.textContent = text;\n item.append(label);\n return item;\n}\nfunction createIndicator(el, name) {\n let customIndicator = el.querySelector(`:scope > [slot=\"${name}\"]`);\n if ((customIndicator == null ? void 0 : customIndicator.nodeName) == \"SLOT\")\n customIndicator = customIndicator.assignedElements({ flatten: true })[0];\n if (customIndicator) {\n customIndicator = customIndicator.cloneNode(true);\n return customIndicator;\n }\n const fallbackIndicator = el.shadowRoot.querySelector(\n `[name=\"${name}\"] > svg`\n );\n if (fallbackIndicator) {\n return fallbackIndicator.cloneNode(true);\n }\n return \"\";\n}\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n font: var(--media-font,\n var(--media-font-weight, normal)\n var(--media-font-size, 14px) /\n var(--media-text-content-height, var(--media-control-height, 24px))\n var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));\n color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));\n --_menu-bg: rgb(20 20 30 / .8);\n background: var(--media-menu-background, var(--media-control-background, var(--media-secondary-color, var(--_menu-bg))));\n border-radius: var(--media-menu-border-radius);\n border: var(--media-menu-border, none);\n display: var(--media-menu-display, inline-flex) !important;\n ${/* ^^Prevent override by Tailwind CSS causing the menu to not hide properly. */\n \"\"}\n transition: var(--media-menu-transition-in,\n visibility 0s,\n opacity .2s ease-out,\n transform .15s ease-out,\n left .2s ease-in-out,\n min-width .2s ease-in-out,\n min-height .2s ease-in-out\n ) !important;\n ${/* ^^Prevent transition override by media-container */\n \"\"}\n visibility: var(--media-menu-visibility, visible);\n opacity: var(--media-menu-opacity, 1);\n max-height: var(--media-menu-max-height, var(--_menu-max-height, 300px));\n transform: var(--media-menu-transform-in, translateY(0) scale(1));\n flex-direction: column;\n ${/* Prevent overflowing a flex container */\n \"\"}\n min-height: 0;\n position: relative;\n bottom: var(--_menu-bottom);\n box-sizing: border-box;\n } \n\n @-moz-document url-prefix() {\n :host{\n --_menu-bg: rgb(20 20 30);\n }\n }\n\n :host([hidden]) {\n transition: var(--media-menu-transition-out,\n visibility .15s ease-in,\n opacity .15s ease-in,\n transform .15s ease-in\n ) !important;\n visibility: var(--media-menu-hidden-visibility, hidden);\n opacity: var(--media-menu-hidden-opacity, 0);\n max-height: var(--media-menu-hidden-max-height,\n var(--media-menu-max-height, var(--_menu-max-height, 300px)));\n transform: var(--media-menu-transform-out, translateY(2px) scale(.99));\n pointer-events: none;\n }\n\n :host([slot=\"submenu\"]) {\n background: none;\n width: 100%;\n min-height: 100%;\n position: absolute;\n bottom: 0;\n right: -100%;\n }\n\n #container {\n display: flex;\n flex-direction: column;\n min-height: 0;\n transition: transform .2s ease-out;\n transform: translate(0, 0);\n }\n\n #container.has-expanded {\n transition: transform .2s ease-in;\n transform: translate(-100%, 0);\n }\n\n button {\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n outline: inherit;\n display: inline-flex;\n align-items: center;\n }\n\n slot[name=\"header\"][hidden] {\n display: none;\n }\n\n slot[name=\"header\"] > *,\n slot[name=\"header\"]::slotted(*) {\n padding: .4em .7em;\n border-bottom: 1px solid rgb(255 255 255 / .25);\n cursor: var(--media-cursor, default);\n }\n\n slot[name=\"header\"] > button[part~=\"back\"],\n slot[name=\"header\"]::slotted(button[part~=\"back\"]) {\n cursor: var(--media-cursor, pointer);\n }\n\n svg[part~=\"back\"] {\n height: var(--media-menu-icon-height, var(--media-control-height, 24px));\n fill: var(--media-icon-color, var(--media-primary-color, rgb(238 238 238)));\n display: block;\n margin-right: .5ch;\n }\n\n slot:not([name]) {\n gap: var(--media-menu-gap);\n flex-direction: var(--media-menu-flex-direction, column);\n overflow: var(--media-menu-overflow, hidden auto);\n display: flex;\n min-height: 0;\n }\n\n :host([role=\"menu\"]) slot:not([name]) {\n padding-block: .4em;\n }\n\n slot:not([name])::slotted([role=\"menu\"]) {\n background: none;\n }\n\n media-chrome-menu-item > span {\n margin-right: .5ch;\n max-width: var(--media-menu-item-max-width);\n text-overflow: ellipsis;\n overflow: hidden;\n }\n </style>\n <style id=\"layout-row\" media=\"width:0\">\n\n slot[name=\"header\"] > *,\n slot[name=\"header\"]::slotted(*) {\n padding: .4em .5em;\n }\n\n slot:not([name]) {\n gap: var(--media-menu-gap, .25em);\n flex-direction: var(--media-menu-flex-direction, row);\n padding-inline: .5em;\n }\n\n media-chrome-menu-item {\n padding: .3em .5em;\n }\n\n media-chrome-menu-item[aria-checked=\"true\"] {\n background: var(--media-menu-item-checked-background, rgb(255 255 255 / .2));\n }\n\n ${/* In row layout hide the checked indicator completely. */\n \"\"}\n media-chrome-menu-item::part(checked-indicator) {\n display: var(--media-menu-item-checked-indicator-display, none);\n }\n </style>\n <div id=\"container\" part=\"container\">\n <slot name=\"header\" hidden>\n <button part=\"back button\" aria-label=\"Back to previous menu\">\n <slot name=\"back-icon\">\n <svg aria-hidden=\"true\" viewBox=\"0 0 20 24\" part=\"back indicator\">\n <path d=\"m11.88 17.585.742-.669-4.2-4.665 4.2-4.666-.743-.669-4.803 5.335 4.803 5.334Z\"/>\n </svg>\n </slot>\n <slot name=\"title\"></slot>\n </button>\n </slot>\n <slot></slot>\n </div>\n <slot name=\"checked-indicator\" hidden></slot>\n `\n );\n}\nconst Attributes = {\n STYLE: \"style\",\n HIDDEN: \"hidden\",\n DISABLED: \"disabled\",\n ANCHOR: \"anchor\"\n};\nclass MediaChromeMenu extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _handleSlotChange);\n __privateAdd(this, _toggleHeader);\n /**\n * Sets the layout style for the menu.\n * It can be a row or column layout. e.g. playback-rate-menu\n */\n __privateAdd(this, _updateLayoutStyle);\n __privateAdd(this, _handleInvoke);\n __privateAdd(this, _handleOpen);\n __privateAdd(this, _handleClosed);\n /**\n * Updates the popover menu position based on the anchor element.\n * @param {number} [menuWidth]\n */\n __privateAdd(this, _positionMenu);\n /**\n * Resize this menu to fit the submenu.\n * @param {boolean} animate\n */\n __privateAdd(this, _resizeMenu);\n __privateAdd(this, _handleClick);\n __privateAdd(this, _backButtonElement);\n /**\n * Handle the toggle event of submenus.\n * Closes all other open submenus when opening a submenu.\n * Resizes this menu to fit the submenu.\n *\n * @param {ToggleEvent} event\n */\n __privateAdd(this, _handleToggle);\n /**\n * Check if any submenu is expanded and update the container class accordingly.\n * When the CSS :has() selector is supported, this can be done with CSS only.\n */\n __privateAdd(this, _checkSubmenuHasExpanded);\n __privateAdd(this, _handleFocusOut);\n __privateAdd(this, _handleKeyDown);\n __privateAdd(this, _getItem);\n __privateAdd(this, _getTabItem);\n __privateAdd(this, _setTabItem);\n __privateAdd(this, _selectItem);\n __privateAdd(this, _mediaController, null);\n __privateAdd(this, _previouslyFocused, null);\n __privateAdd(this, _invokerElement, null);\n __privateAdd(this, _previousItems, /* @__PURE__ */ new Set());\n __privateAdd(this, _mutationObserver, void 0);\n __privateAdd(this, _isPopover, false);\n __privateAdd(this, _cssRule, null);\n /**\n * Fires an event when a menu item is added or removed.\n * This is needed to update the description slot of an ancestor menu item.\n */\n __privateAdd(this, _handleMenuItems, () => {\n const previousItems = __privateGet(this, _previousItems);\n const currentItems = new Set(this.items);\n for (const item of previousItems) {\n if (!currentItems.has(item)) {\n this.dispatchEvent(new CustomEvent(\"removemenuitem\", { detail: item }));\n }\n }\n for (const item of currentItems) {\n if (!previousItems.has(item)) {\n this.dispatchEvent(new CustomEvent(\"addmenuitem\", { detail: item }));\n }\n }\n __privateSet(this, _previousItems, currentItems);\n });\n __privateAdd(this, _handleBoundsResize, () => {\n __privateMethod(this, _positionMenu, positionMenu_fn).call(this);\n __privateMethod(this, _resizeMenu, resizeMenu_fn).call(this, false);\n });\n __privateAdd(this, _handleMenuResize, () => {\n __privateMethod(this, _positionMenu, positionMenu_fn).call(this);\n });\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n this.container = this.shadowRoot.querySelector(\"#container\");\n this.defaultSlot = this.shadowRoot.querySelector(\n \"slot:not([name])\"\n );\n __privateSet(this, _mutationObserver, new MutationObserver(__privateGet(this, _handleMenuItems)));\n }\n static get observedAttributes() {\n return [\n Attributes.DISABLED,\n Attributes.HIDDEN,\n Attributes.STYLE,\n Attributes.ANCHOR,\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n ];\n }\n static formatMenuItemText(text, _data) {\n return text;\n }\n enable() {\n this.addEventListener(\"click\", this);\n this.addEventListener(\"focusout\", this);\n this.addEventListener(\"keydown\", this);\n this.addEventListener(\"invoke\", this);\n this.addEventListener(\"toggle\", this);\n }\n disable() {\n this.removeEventListener(\"click\", this);\n this.removeEventListener(\"focusout\", this);\n this.removeEventListener(\"keyup\", this);\n this.removeEventListener(\"invoke\", this);\n this.removeEventListener(\"toggle\", this);\n }\n handleEvent(event) {\n switch (event.type) {\n case \"slotchange\":\n __privateMethod(this, _handleSlotChange, handleSlotChange_fn).call(this, event);\n break;\n case \"invoke\":\n __privateMethod(this, _handleInvoke, handleInvoke_fn).call(this, event);\n break;\n case \"click\":\n __privateMethod(this, _handleClick, handleClick_fn).call(this, event);\n break;\n case \"toggle\":\n __privateMethod(this, _handleToggle, handleToggle_fn).call(this, event);\n break;\n case \"focusout\":\n __privateMethod(this, _handleFocusOut, handleFocusOut_fn).call(this, event);\n break;\n case \"keydown\":\n __privateMethod(this, _handleKeyDown, handleKeyDown_fn).call(this, event);\n break;\n }\n }\n connectedCallback() {\n var _a, _b;\n __privateGet(this, _mutationObserver).observe(this.defaultSlot, { childList: true });\n __privateSet(this, _cssRule, insertCSSRule(this.shadowRoot, \":host\"));\n __privateMethod(this, _updateLayoutStyle, updateLayoutStyle_fn).call(this);\n if (!this.hasAttribute(\"disabled\")) {\n this.enable();\n }\n if (!this.role) {\n this.role = \"menu\";\n }\n __privateSet(this, _mediaController, getAttributeMediaController(this));\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.associateElement) == null ? void 0 : _b.call(_a, this);\n if (!this.hidden) {\n observeResize(getBoundsElement(this), __privateGet(this, _handleBoundsResize));\n observeResize(this, __privateGet(this, _handleMenuResize));\n }\n __privateMethod(this, _toggleHeader, toggleHeader_fn).call(this);\n this.shadowRoot.addEventListener(\"slotchange\", this);\n }\n disconnectedCallback() {\n var _a, _b;\n __privateGet(this, _mutationObserver).disconnect();\n unobserveResize(getBoundsElement(this), __privateGet(this, _handleBoundsResize));\n unobserveResize(this, __privateGet(this, _handleMenuResize));\n this.disable();\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n __privateSet(this, _previouslyFocused, null);\n __privateSet(this, _invokerElement, null);\n this.shadowRoot.removeEventListener(\"slotchange\", this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d;\n if (attrName === Attributes.HIDDEN && newValue !== oldValue) {\n if (!__privateGet(this, _isPopover))\n __privateSet(this, _isPopover, true);\n if (this.hidden) {\n __privateMethod(this, _handleClosed, handleClosed_fn).call(this);\n } else {\n __privateMethod(this, _handleOpen, handleOpen_fn).call(this);\n }\n this.dispatchEvent(\n new ToggleEvent({\n oldState: this.hidden ? \"open\" : \"closed\",\n newState: this.hidden ? \"closed\" : \"open\",\n bubbles: true\n })\n );\n } else if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, getAttributeMediaController(this));\n (_d = (_c = __privateGet(this, _mediaController)) == null ? void 0 : _c.associateElement) == null ? void 0 : _d.call(_c, this);\n }\n } else if (attrName === Attributes.DISABLED && newValue !== oldValue) {\n if (newValue == null) {\n this.enable();\n } else {\n this.disable();\n }\n } else if (attrName === Attributes.STYLE && newValue !== oldValue) {\n __privateMethod(this, _updateLayoutStyle, updateLayoutStyle_fn).call(this);\n }\n }\n formatMenuItemText(text, data) {\n return this.constructor.formatMenuItemText(\n text,\n data\n );\n }\n get anchor() {\n return this.getAttribute(\"anchor\");\n }\n set anchor(value) {\n this.setAttribute(\"anchor\", `${value}`);\n }\n /**\n * Returns the anchor element when it is a floating menu.\n */\n get anchorElement() {\n var _a;\n if (this.anchor) {\n return (_a = getDocumentOrShadowRoot(this)) == null ? void 0 : _a.querySelector(\n `#${this.anchor}`\n );\n }\n return null;\n }\n /**\n * Returns the menu items.\n */\n get items() {\n return this.defaultSlot.assignedElements({ flatten: true }).filter(isMenuItem);\n }\n get radioGroupItems() {\n return this.items.filter((item) => item.role === \"menuitemradio\");\n }\n get checkedItems() {\n return this.items.filter((item) => item.checked);\n }\n get value() {\n var _a, _b;\n return (_b = (_a = this.checkedItems[0]) == null ? void 0 : _a.value) != null ? _b : \"\";\n }\n set value(newValue) {\n const item = this.items.find((item2) => item2.value === newValue);\n if (!item)\n return;\n __privateMethod(this, _selectItem, selectItem_fn).call(this, item);\n }\n focus() {\n __privateSet(this, _previouslyFocused, getActiveElement());\n if (this.items.length) {\n __privateMethod(this, _setTabItem, setTabItem_fn).call(this, this.items[0]);\n this.items[0].focus();\n return;\n }\n const focusable = this.querySelector(\n '[autofocus], [tabindex]:not([tabindex=\"-1\"]), [role=\"menu\"]'\n );\n focusable == null ? void 0 : focusable.focus();\n }\n handleSelect(event) {\n var _a;\n const item = __privateMethod(this, _getItem, getItem_fn).call(this, event);\n if (!item)\n return;\n __privateMethod(this, _selectItem, selectItem_fn).call(this, item, item.type === \"checkbox\");\n if (__privateGet(this, _invokerElement) && !this.hidden) {\n (_a = __privateGet(this, _previouslyFocused)) == null ? void 0 : _a.focus();\n this.hidden = true;\n }\n }\n get keysUsed() {\n return [\n \"Enter\",\n \"Escape\",\n \"Tab\",\n \" \",\n \"ArrowDown\",\n \"ArrowUp\",\n \"Home\",\n \"End\"\n ];\n }\n handleMove(event) {\n var _a, _b;\n const { key } = event;\n const items = this.items;\n const currentItem = (_b = (_a = __privateMethod(this, _getItem, getItem_fn).call(this, event)) != null ? _a : __privateMethod(this, _getTabItem, getTabItem_fn).call(this)) != null ? _b : items[0];\n const currentIndex = items.indexOf(currentItem);\n let index = Math.max(0, currentIndex);\n if (key === \"ArrowDown\") {\n index++;\n } else if (key === \"ArrowUp\") {\n index--;\n } else if (event.key === \"Home\") {\n index = 0;\n } else if (event.key === \"End\") {\n index = items.length - 1;\n }\n if (index < 0) {\n index = items.length - 1;\n }\n if (index > items.length - 1) {\n index = 0;\n }\n __privateMethod(this, _setTabItem, setTabItem_fn).call(this, items[index]);\n items[index].focus();\n }\n}\n_mediaController = new WeakMap();\n_previouslyFocused = new WeakMap();\n_invokerElement = new WeakMap();\n_previousItems = new WeakMap();\n_mutationObserver = new WeakMap();\n_isPopover = new WeakMap();\n_cssRule = new WeakMap();\n_handleSlotChange = new WeakSet();\nhandleSlotChange_fn = function(event) {\n const slot = event.target;\n for (const node of slot.assignedNodes({ flatten: true })) {\n if (node.nodeType === 3 && node.textContent.trim() === \"\") {\n node.remove();\n }\n }\n if ([\"header\", \"title\"].includes(slot.name)) {\n __privateMethod(this, _toggleHeader, toggleHeader_fn).call(this);\n }\n if (!slot.name) {\n __privateGet(this, _handleMenuItems).call(this);\n }\n};\n_toggleHeader = new WeakSet();\ntoggleHeader_fn = function() {\n const header = this.shadowRoot.querySelector(\n 'slot[name=\"header\"]'\n );\n const title = this.shadowRoot.querySelector(\n 'slot[name=\"title\"]'\n );\n header.hidden = title.assignedNodes().length === 0 && header.assignedNodes().length === 0;\n};\n_handleMenuItems = new WeakMap();\n_updateLayoutStyle = new WeakSet();\nupdateLayoutStyle_fn = function() {\n var _a;\n const layoutRowStyle = this.shadowRoot.querySelector(\"#layout-row\");\n const menuLayout = (_a = getComputedStyle(this).getPropertyValue(\"--media-menu-layout\")) == null ? void 0 : _a.trim();\n layoutRowStyle.setAttribute(\"media\", menuLayout === \"row\" ? \"\" : \"width:0\");\n};\n_handleInvoke = new WeakSet();\nhandleInvoke_fn = function(event) {\n __privateSet(this, _invokerElement, event.relatedTarget);\n if (!containsComposedNode(this, event.relatedTarget)) {\n this.hidden = !this.hidden;\n }\n};\n_handleOpen = new WeakSet();\nhandleOpen_fn = function() {\n var _a;\n (_a = __privateGet(this, _invokerElement)) == null ? void 0 : _a.setAttribute(\"aria-expanded\", \"true\");\n this.addEventListener(\"transitionend\", () => this.focus(), { once: true });\n observeResize(getBoundsElement(this), __privateGet(this, _handleBoundsResize));\n observeResize(this, __privateGet(this, _handleMenuResize));\n};\n_handleClosed = new WeakSet();\nhandleClosed_fn = function() {\n var _a;\n (_a = __privateGet(this, _invokerElement)) == null ? void 0 : _a.setAttribute(\"aria-expanded\", \"false\");\n unobserveResize(getBoundsElement(this), __privateGet(this, _handleBoundsResize));\n unobserveResize(this, __privateGet(this, _handleMenuResize));\n};\n_handleBoundsResize = new WeakMap();\n_handleMenuResize = new WeakMap();\n_positionMenu = new WeakSet();\npositionMenu_fn = function(menuWidth) {\n if (this.hasAttribute(\"mediacontroller\") && !this.anchor)\n return;\n if (this.hidden || !this.anchorElement)\n return;\n const { x, y } = computePosition({\n anchor: this.anchorElement,\n floating: this,\n placement: \"top-start\"\n });\n menuWidth != null ? menuWidth : menuWidth = this.offsetWidth;\n const bounds = getBoundsElement(this);\n const boundsRect = bounds.getBoundingClientRect();\n const right = boundsRect.width - x - menuWidth;\n const bottom = boundsRect.height - y - this.offsetHeight;\n const { style } = __privateGet(this, _cssRule);\n style.setProperty(\"position\", \"absolute\");\n style.setProperty(\"right\", `${Math.max(0, right)}px`);\n style.setProperty(\"--_menu-bottom\", `${bottom}px`);\n const computedStyle = getComputedStyle(this);\n const isBottomCalc = style.getPropertyValue(\"--_menu-bottom\") === computedStyle.bottom;\n const realBottom = isBottomCalc ? bottom : parseFloat(computedStyle.bottom);\n const maxHeight = boundsRect.height - realBottom - parseFloat(computedStyle.marginBottom);\n this.style.setProperty(\"--_menu-max-height\", `${maxHeight}px`);\n};\n_resizeMenu = new WeakSet();\nresizeMenu_fn = function(animate) {\n const expandedMenuItem = this.querySelector(\n '[role=\"menuitem\"][aria-haspopup][aria-expanded=\"true\"]'\n );\n const expandedSubmenu = expandedMenuItem == null ? void 0 : expandedMenuItem.querySelector(\n '[role=\"menu\"]'\n );\n const { style } = __privateGet(this, _cssRule);\n if (!animate) {\n style.setProperty(\"--media-menu-transition-in\", \"none\");\n }\n if (expandedSubmenu) {\n const height = expandedSubmenu.offsetHeight;\n const width = Math.max(\n expandedSubmenu.offsetWidth,\n expandedMenuItem.offsetWidth\n );\n this.style.setProperty(\"min-width\", `${width}px`);\n this.style.setProperty(\"min-height\", `${height}px`);\n __privateMethod(this, _positionMenu, positionMenu_fn).call(this, width);\n } else {\n this.style.removeProperty(\"min-width\");\n this.style.removeProperty(\"min-height\");\n __privateMethod(this, _positionMenu, positionMenu_fn).call(this);\n }\n style.removeProperty(\"--media-menu-transition-in\");\n};\n_handleClick = new WeakSet();\nhandleClick_fn = function(event) {\n var _a;\n event.stopPropagation();\n if (event.composedPath().includes(__privateGet(this, _backButtonElement, backButtonElement_get))) {\n (_a = __privateGet(this, _previouslyFocused)) == null ? void 0 : _a.focus();\n this.hidden = true;\n return;\n }\n const item = __privateMethod(this, _getItem, getItem_fn).call(this, event);\n if (!item || item.hasAttribute(\"disabled\"))\n return;\n __privateMethod(this, _setTabItem, setTabItem_fn).call(this, item);\n this.handleSelect(event);\n};\n_backButtonElement = new WeakSet();\nbackButtonElement_get = function() {\n var _a;\n const headerSlot = this.shadowRoot.querySelector(\n 'slot[name=\"header\"]'\n );\n return (_a = headerSlot.assignedElements({ flatten: true })) == null ? void 0 : _a.find((el) => el.matches('button[part~=\"back\"]'));\n};\n_handleToggle = new WeakSet();\nhandleToggle_fn = function(event) {\n if (event.target === this)\n return;\n __privateMethod(this, _checkSubmenuHasExpanded, checkSubmenuHasExpanded_fn).call(this);\n const menuItemsWithSubmenu = Array.from(\n this.querySelectorAll('[role=\"menuitem\"][aria-haspopup]')\n );\n for (const item of menuItemsWithSubmenu) {\n if (item.invokeTargetElement == event.target)\n continue;\n if (event.newState == \"open\" && item.getAttribute(\"aria-expanded\") == \"true\" && !item.invokeTargetElement.hidden) {\n item.invokeTargetElement.dispatchEvent(\n new InvokeEvent({ relatedTarget: item })\n );\n }\n }\n for (const item of menuItemsWithSubmenu) {\n item.setAttribute(\"aria-expanded\", `${!item.submenuElement.hidden}`);\n }\n __privateMethod(this, _resizeMenu, resizeMenu_fn).call(this, true);\n};\n_checkSubmenuHasExpanded = new WeakSet();\ncheckSubmenuHasExpanded_fn = function() {\n const selector = '[role=\"menuitem\"] > [role=\"menu\"]:not([hidden])';\n const expandedMenuItem = this.querySelector(selector);\n this.container.classList.toggle(\"has-expanded\", !!expandedMenuItem);\n};\n_handleFocusOut = new WeakSet();\nhandleFocusOut_fn = function(event) {\n var _a;\n if (!containsComposedNode(this, event.relatedTarget)) {\n if (__privateGet(this, _isPopover)) {\n (_a = __privateGet(this, _previouslyFocused)) == null ? void 0 : _a.focus();\n }\n if (__privateGet(this, _invokerElement) && __privateGet(this, _invokerElement) !== event.relatedTarget && !this.hidden) {\n this.hidden = true;\n }\n }\n};\n_handleKeyDown = new WeakSet();\nhandleKeyDown_fn = function(event) {\n var _a, _b, _c, _d, _e;\n const { key, ctrlKey, altKey, metaKey } = event;\n if (ctrlKey || altKey || metaKey) {\n return;\n }\n if (!this.keysUsed.includes(key)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n if (key === \"Tab\") {\n if (__privateGet(this, _isPopover)) {\n this.hidden = true;\n return;\n }\n if (event.shiftKey) {\n (_b = (_a = this.previousElementSibling) == null ? void 0 : _a.focus) == null ? void 0 : _b.call(_a);\n } else {\n (_d = (_c = this.nextElementSibling) == null ? void 0 : _c.focus) == null ? void 0 : _d.call(_c);\n }\n this.blur();\n } else if (key === \"Escape\") {\n (_e = __privateGet(this, _previouslyFocused)) == null ? void 0 : _e.focus();\n if (__privateGet(this, _isPopover)) {\n this.hidden = true;\n }\n } else if (key === \"Enter\" || key === \" \") {\n this.handleSelect(event);\n } else {\n this.handleMove(event);\n }\n};\n_getItem = new WeakSet();\ngetItem_fn = function(event) {\n return event.composedPath().find((el) => {\n return [\"menuitemradio\", \"menuitemcheckbox\"].includes(\n el.role\n );\n });\n};\n_getTabItem = new WeakSet();\ngetTabItem_fn = function() {\n return this.items.find((item) => item.tabIndex === 0);\n};\n_setTabItem = new WeakSet();\nsetTabItem_fn = function(tabItem) {\n for (const item of this.items) {\n item.tabIndex = item === tabItem ? 0 : -1;\n }\n};\n_selectItem = new WeakSet();\nselectItem_fn = function(item, toggle) {\n const oldCheckedItems = [...this.checkedItems];\n if (item.type === \"radio\") {\n this.radioGroupItems.forEach((el) => el.checked = false);\n }\n if (toggle) {\n item.checked = !item.checked;\n } else {\n item.checked = true;\n }\n if (this.checkedItems.some((opt, i) => opt != oldCheckedItems[i])) {\n this.dispatchEvent(\n new Event(\"change\", { bubbles: true, composed: true })\n );\n }\n};\nMediaChromeMenu.shadowRootOptions = { mode: \"open\" };\nMediaChromeMenu.getTemplateHTML = getTemplateHTML;\nfunction isMenuItem(element) {\n return [\"menuitem\", \"menuitemradio\", \"menuitemcheckbox\"].includes(\n element == null ? void 0 : element.role\n );\n}\nfunction getBoundsElement(host) {\n var _a;\n return (_a = host.getAttribute(\"bounds\") ? closestComposedNode(host, `#${host.getAttribute(\"bounds\")}`) : getMediaController(host) || host.parentElement) != null ? _a : host;\n}\nif (!globalThis.customElements.get(\"media-chrome-menu\")) {\n globalThis.customElements.define(\"media-chrome-menu\", MediaChromeMenu);\n}\nvar media_chrome_menu_default = MediaChromeMenu;\nexport {\n Attributes,\n MediaChromeMenu,\n createIndicator,\n createMenuItem,\n media_chrome_menu_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _dirty, _ownerElement, _handleSlotChange, handleSlotChange_fn, _submenuConnected, submenuConnected_fn, _submenuDisconnected, submenuDisconnected_fn, _handleMenuItem, _handleKeyUp, _handleKeyDown, _reset, reset_fn;\nimport { globalThis, document } from \"../utils/server-safe-globals.js\";\nimport { InvokeEvent } from \"../utils/events.js\";\nimport {\n getDocumentOrShadowRoot,\n containsComposedNode,\n namedNodeMapToObject\n} from \"../utils/element-utils.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n transition: var(--media-menu-item-transition,\n background .15s linear,\n opacity .2s ease-in-out\n );\n outline: var(--media-menu-item-outline, 0);\n outline-offset: var(--media-menu-item-outline-offset, -1px);\n cursor: var(--media-cursor, pointer);\n display: flex;\n align-items: center;\n align-self: stretch;\n justify-self: stretch;\n white-space: nowrap;\n white-space-collapse: collapse;\n text-wrap: nowrap;\n padding: .4em .8em .4em 1em;\n }\n\n :host(:focus-visible) {\n box-shadow: var(--media-menu-item-focus-shadow, inset 0 0 0 2px rgb(27 127 204 / .9));\n outline: var(--media-menu-item-hover-outline, 0);\n outline-offset: var(--media-menu-item-hover-outline-offset, var(--media-menu-item-outline-offset, -1px));\n }\n\n :host(:hover) {\n cursor: var(--media-cursor, pointer);\n background: var(--media-menu-item-hover-background, rgb(92 92 102 / .5));\n outline: var(--media-menu-item-hover-outline);\n outline-offset: var(--media-menu-item-hover-outline-offset, var(--media-menu-item-outline-offset, -1px));\n }\n\n :host([aria-checked=\"true\"]) {\n background: var(--media-menu-item-checked-background);\n }\n\n :host([hidden]) {\n display: none;\n }\n\n :host([disabled]) {\n pointer-events: none;\n color: rgba(255, 255, 255, .3);\n }\n\n slot:not([name]) {\n width: 100%;\n }\n\n slot:not([name=\"submenu\"]) {\n display: inline-flex;\n align-items: center;\n transition: inherit;\n opacity: var(--media-menu-item-opacity, 1);\n }\n\n slot[name=\"description\"] {\n justify-content: end;\n }\n\n slot[name=\"description\"] > span {\n display: inline-block;\n margin-inline: 1em .2em;\n max-width: var(--media-menu-item-description-max-width, 100px);\n text-overflow: ellipsis;\n overflow: hidden;\n font-size: .8em;\n font-weight: 400;\n text-align: right;\n position: relative;\n top: .04em;\n }\n\n slot[name=\"checked-indicator\"] {\n display: none;\n }\n\n :host(:is([role=\"menuitemradio\"],[role=\"menuitemcheckbox\"])) slot[name=\"checked-indicator\"] {\n display: var(--media-menu-item-checked-indicator-display, inline-block);\n }\n\n ${/* For all slotted icons in prefix and suffix. */\n \"\"}\n svg, img, ::slotted(svg), ::slotted(img) {\n height: var(--media-menu-item-icon-height, var(--media-control-height, 24px));\n fill: var(--media-icon-color, var(--media-primary-color, rgb(238 238 238)));\n display: block;\n }\n\n ${/* Only for indicator icons like checked-indicator or captions-indicator. */\n \"\"}\n [part~=\"indicator\"],\n ::slotted([part~=\"indicator\"]) {\n fill: var(--media-menu-item-indicator-fill,\n var(--media-icon-color, var(--media-primary-color, rgb(238 238 238))));\n height: var(--media-menu-item-indicator-height, 1.25em);\n margin-right: .5ch;\n }\n\n [part~=\"checked-indicator\"] {\n visibility: hidden;\n }\n\n :host([aria-checked=\"true\"]) [part~=\"checked-indicator\"] {\n visibility: visible;\n }\n </style>\n <slot name=\"checked-indicator\">\n <svg aria-hidden=\"true\" viewBox=\"0 1 24 24\" part=\"checked-indicator indicator\">\n <path d=\"m10 15.17 9.193-9.191 1.414 1.414-10.606 10.606-6.364-6.364 1.414-1.414 4.95 4.95Z\"/>\n </svg>\n </slot>\n <slot name=\"prefix\"></slot>\n <slot></slot>\n <slot name=\"description\"></slot>\n <slot name=\"suffix\">\n ${this.getSuffixSlotInnerHTML(_attrs)}\n </slot>\n <slot name=\"submenu\"></slot>\n `\n );\n}\nfunction getSuffixSlotInnerHTML(_attrs) {\n return \"\";\n}\nconst Attributes = {\n TYPE: \"type\",\n VALUE: \"value\",\n CHECKED: \"checked\",\n DISABLED: \"disabled\"\n};\nclass MediaChromeMenuItem extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _handleSlotChange);\n __privateAdd(this, _submenuConnected);\n __privateAdd(this, _submenuDisconnected);\n __privateAdd(this, _reset);\n __privateAdd(this, _dirty, false);\n __privateAdd(this, _ownerElement, void 0);\n /**\n * If there is a slotted submenu the fallback content of the description slot\n * is populated with the text of the first checked item.\n */\n __privateAdd(this, _handleMenuItem, () => {\n var _a, _b;\n if (this.submenuElement.items) {\n this.setAttribute(\"submenusize\", `${this.submenuElement.items.length}`);\n }\n const descriptionSlot = this.shadowRoot.querySelector(\n 'slot[name=\"description\"]'\n );\n const checkedItem = (_a = this.submenuElement.checkedItems) == null ? void 0 : _a[0];\n const description = (_b = checkedItem == null ? void 0 : checkedItem.dataset.description) != null ? _b : checkedItem == null ? void 0 : checkedItem.text;\n const span = document.createElement(\"span\");\n span.textContent = description != null ? description : \"\";\n descriptionSlot.replaceChildren(span);\n });\n __privateAdd(this, _handleKeyUp, (event) => {\n const { key } = event;\n if (!this.keysUsed.includes(key)) {\n this.removeEventListener(\"keyup\", __privateGet(this, _handleKeyUp));\n return;\n }\n this.handleClick(event);\n });\n __privateAdd(this, _handleKeyDown, (event) => {\n const { metaKey, altKey, key } = event;\n if (metaKey || altKey || !this.keysUsed.includes(key)) {\n this.removeEventListener(\"keyup\", __privateGet(this, _handleKeyUp));\n return;\n }\n this.addEventListener(\"keyup\", __privateGet(this, _handleKeyUp), { once: true });\n });\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n }\n static get observedAttributes() {\n return [\n Attributes.TYPE,\n Attributes.DISABLED,\n Attributes.CHECKED,\n Attributes.VALUE\n ];\n }\n enable() {\n if (!this.hasAttribute(\"tabindex\")) {\n this.setAttribute(\"tabindex\", \"-1\");\n }\n if (isCheckable(this) && !this.hasAttribute(\"aria-checked\")) {\n this.setAttribute(\"aria-checked\", \"false\");\n }\n this.addEventListener(\"click\", this);\n this.addEventListener(\"keydown\", this);\n }\n disable() {\n this.removeAttribute(\"tabindex\");\n this.removeEventListener(\"click\", this);\n this.removeEventListener(\"keydown\", this);\n this.removeEventListener(\"keyup\", this);\n }\n handleEvent(event) {\n switch (event.type) {\n case \"slotchange\":\n __privateMethod(this, _handleSlotChange, handleSlotChange_fn).call(this, event);\n break;\n case \"click\":\n this.handleClick(event);\n break;\n case \"keydown\":\n __privateGet(this, _handleKeyDown).call(this, event);\n break;\n case \"keyup\":\n __privateGet(this, _handleKeyUp).call(this, event);\n break;\n }\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n if (attrName === Attributes.CHECKED && isCheckable(this) && !__privateGet(this, _dirty)) {\n this.setAttribute(\"aria-checked\", newValue != null ? \"true\" : \"false\");\n } else if (attrName === Attributes.TYPE && newValue !== oldValue) {\n this.role = \"menuitem\" + newValue;\n } else if (attrName === Attributes.DISABLED && newValue !== oldValue) {\n if (newValue == null) {\n this.enable();\n } else {\n this.disable();\n }\n }\n }\n connectedCallback() {\n if (!this.hasAttribute(Attributes.DISABLED)) {\n this.enable();\n }\n this.role = \"menuitem\" + this.type;\n __privateSet(this, _ownerElement, closestMenuItemsContainer(this, this.parentNode));\n __privateMethod(this, _reset, reset_fn).call(this);\n if (this.submenuElement) {\n __privateMethod(this, _submenuConnected, submenuConnected_fn).call(this);\n }\n this.shadowRoot.addEventListener(\"slotchange\", this);\n }\n disconnectedCallback() {\n this.disable();\n __privateMethod(this, _reset, reset_fn).call(this);\n __privateSet(this, _ownerElement, null);\n this.shadowRoot.removeEventListener(\"slotchange\", this);\n }\n get invokeTarget() {\n return this.getAttribute(\"invoketarget\");\n }\n set invokeTarget(value) {\n this.setAttribute(\"invoketarget\", `${value}`);\n }\n /**\n * Returns the element with the id specified by the `invoketarget` attribute\n * or the slotted submenu element.\n */\n get invokeTargetElement() {\n var _a;\n if (this.invokeTarget) {\n return (_a = getDocumentOrShadowRoot(this)) == null ? void 0 : _a.querySelector(\n `#${this.invokeTarget}`\n );\n }\n return this.submenuElement;\n }\n /**\n * Returns the slotted submenu element.\n */\n get submenuElement() {\n const submenuSlot = this.shadowRoot.querySelector(\n 'slot[name=\"submenu\"]'\n );\n return submenuSlot.assignedElements({\n flatten: true\n })[0];\n }\n get type() {\n var _a;\n return (_a = this.getAttribute(Attributes.TYPE)) != null ? _a : \"\";\n }\n set type(val) {\n this.setAttribute(Attributes.TYPE, `${val}`);\n }\n get value() {\n var _a;\n return (_a = this.getAttribute(Attributes.VALUE)) != null ? _a : this.text;\n }\n set value(val) {\n this.setAttribute(Attributes.VALUE, val);\n }\n get text() {\n var _a;\n return ((_a = this.textContent) != null ? _a : \"\").trim();\n }\n get checked() {\n if (!isCheckable(this))\n return void 0;\n return this.getAttribute(\"aria-checked\") === \"true\";\n }\n set checked(value) {\n if (!isCheckable(this))\n return;\n __privateSet(this, _dirty, true);\n this.setAttribute(\"aria-checked\", value ? \"true\" : \"false\");\n if (value) {\n this.part.add(\"checked\");\n } else {\n this.part.remove(\"checked\");\n }\n }\n handleClick(event) {\n if (isCheckable(this))\n return;\n if (this.invokeTargetElement && containsComposedNode(this, event.target)) {\n this.invokeTargetElement.dispatchEvent(\n new InvokeEvent({ relatedTarget: this })\n );\n }\n }\n get keysUsed() {\n return [\"Enter\", \" \"];\n }\n}\n_dirty = new WeakMap();\n_ownerElement = new WeakMap();\n_handleSlotChange = new WeakSet();\nhandleSlotChange_fn = function(event) {\n const slot = event.target;\n const isDefaultSlot = !(slot == null ? void 0 : slot.name);\n if (isDefaultSlot) {\n for (const node of slot.assignedNodes({ flatten: true })) {\n if (node instanceof Text && node.textContent.trim() === \"\") {\n node.remove();\n }\n }\n }\n if (slot.name === \"submenu\") {\n if (this.submenuElement) {\n __privateMethod(this, _submenuConnected, submenuConnected_fn).call(this);\n } else {\n __privateMethod(this, _submenuDisconnected, submenuDisconnected_fn).call(this);\n }\n }\n};\n_submenuConnected = new WeakSet();\nsubmenuConnected_fn = async function() {\n this.setAttribute(\"aria-haspopup\", \"menu\");\n this.setAttribute(\"aria-expanded\", `${!this.submenuElement.hidden}`);\n this.submenuElement.addEventListener(\"change\", __privateGet(this, _handleMenuItem));\n this.submenuElement.addEventListener(\"addmenuitem\", __privateGet(this, _handleMenuItem));\n this.submenuElement.addEventListener(\n \"removemenuitem\",\n __privateGet(this, _handleMenuItem)\n );\n __privateGet(this, _handleMenuItem).call(this);\n};\n_submenuDisconnected = new WeakSet();\nsubmenuDisconnected_fn = function() {\n this.removeAttribute(\"aria-haspopup\");\n this.removeAttribute(\"aria-expanded\");\n this.submenuElement.removeEventListener(\"change\", __privateGet(this, _handleMenuItem));\n this.submenuElement.removeEventListener(\n \"addmenuitem\",\n __privateGet(this, _handleMenuItem)\n );\n this.submenuElement.removeEventListener(\n \"removemenuitem\",\n __privateGet(this, _handleMenuItem)\n );\n __privateGet(this, _handleMenuItem).call(this);\n};\n_handleMenuItem = new WeakMap();\n_handleKeyUp = new WeakMap();\n_handleKeyDown = new WeakMap();\n_reset = new WeakSet();\nreset_fn = function() {\n var _a;\n const items = (_a = __privateGet(this, _ownerElement)) == null ? void 0 : _a.radioGroupItems;\n if (!items)\n return;\n let checkedItem = items.filter((item) => item.getAttribute(\"aria-checked\") === \"true\").pop();\n if (!checkedItem)\n checkedItem = items[0];\n for (const item of items) {\n item.setAttribute(\"aria-checked\", \"false\");\n }\n checkedItem == null ? void 0 : checkedItem.setAttribute(\"aria-checked\", \"true\");\n};\nMediaChromeMenuItem.shadowRootOptions = { mode: \"open\" };\nMediaChromeMenuItem.getTemplateHTML = getTemplateHTML;\nMediaChromeMenuItem.getSuffixSlotInnerHTML = getSuffixSlotInnerHTML;\nfunction isCheckable(item) {\n return item.type === \"radio\" || item.type === \"checkbox\";\n}\nfunction closestMenuItemsContainer(childNode, parentNode) {\n if (!childNode)\n return null;\n const { host } = childNode.getRootNode();\n if (!parentNode && host)\n return closestMenuItemsContainer(childNode, host);\n if (parentNode == null ? void 0 : parentNode.items)\n return parentNode;\n return closestMenuItemsContainer(parentNode, parentNode == null ? void 0 : parentNode.parentNode);\n}\nif (!globalThis.customElements.get(\"media-chrome-menu-item\")) {\n globalThis.customElements.define(\n \"media-chrome-menu-item\",\n MediaChromeMenuItem\n );\n}\nvar media_chrome_menu_item_default = MediaChromeMenuItem;\nexport {\n Attributes,\n MediaChromeMenuItem,\n media_chrome_menu_item_default as default\n};\n","import { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaChromeMenu } from \"./media-chrome-menu.js\";\nimport { getMediaController } from \"../utils/element-utils.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n ${MediaChromeMenu.getTemplateHTML(_attrs)}\n <style>\n :host {\n --_menu-bg: rgb(20 20 30 / .8);\n background: var(--media-settings-menu-background,\n var(--media-menu-background,\n var(--media-control-background,\n var(--media-secondary-color, var(--_menu-bg)))));\n min-width: var(--media-settings-menu-min-width, 170px);\n border-radius: 2px 2px 0 0;\n overflow: hidden;\n }\n\n @-moz-document url-prefix() {\n :host{\n --_menu-bg: rgb(20 20 30);\n }\n }\n\n :host([role=\"menu\"]) {\n ${/* Bottom fix setting menu items for animation when the height expands. */\n \"\"}\n justify-content: end;\n }\n\n slot:not([name]) {\n justify-content: var(--media-settings-menu-justify-content);\n flex-direction: var(--media-settings-menu-flex-direction, column);\n overflow: visible;\n }\n\n #container.has-expanded {\n --media-settings-menu-item-opacity: 0;\n }\n </style>\n `\n );\n}\nclass MediaSettingsMenu extends MediaChromeMenu {\n /**\n * Returns the anchor element when it is a floating menu.\n */\n get anchorElement() {\n if (this.anchor !== \"auto\")\n return super.anchorElement;\n return getMediaController(this).querySelector(\n \"media-settings-menu-button\"\n );\n }\n}\nMediaSettingsMenu.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-settings-menu\")) {\n globalThis.customElements.define(\"media-settings-menu\", MediaSettingsMenu);\n}\nvar media_settings_menu_default = MediaSettingsMenu;\nexport {\n MediaSettingsMenu,\n media_settings_menu_default as default\n};\n","import { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaChromeMenuItem } from \"./media-chrome-menu-item.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n ${MediaChromeMenuItem.getTemplateHTML.call(this, _attrs)}\n <style>\n slot:not([name=\"submenu\"]) {\n opacity: var(--media-settings-menu-item-opacity, var(--media-menu-item-opacity));\n }\n\n :host([aria-expanded=\"true\"]:hover) {\n background: transparent;\n }\n </style>\n `\n );\n}\nfunction getSuffixSlotInnerHTML(_attrs) {\n return (\n /*html*/\n `\n <svg aria-hidden=\"true\" viewBox=\"0 0 20 24\">\n <path d=\"m8.12 17.585-.742-.669 4.2-4.665-4.2-4.666.743-.669 4.803 5.335-4.803 5.334Z\"/>\n </svg>\n `\n );\n}\nclass MediaSettingsMenuItem extends MediaChromeMenuItem {\n}\nMediaSettingsMenuItem.shadowRootOptions = { mode: \"open\" };\nMediaSettingsMenuItem.getTemplateHTML = getTemplateHTML;\nMediaSettingsMenuItem.getSuffixSlotInnerHTML = getSuffixSlotInnerHTML;\nif (!globalThis.customElements.get(\"media-settings-menu-item\")) {\n globalThis.customElements.define(\n \"media-settings-menu-item\",\n MediaSettingsMenuItem\n );\n}\nvar media_settings_menu_item_default = MediaSettingsMenuItem;\nexport {\n MediaSettingsMenuItem,\n media_settings_menu_item_default as default\n};\n","import { MediaChromeButton } from \"../media-chrome-button.js\";\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport { InvokeEvent } from \"../utils/events.js\";\nimport { getDocumentOrShadowRoot } from \"../utils/element-utils.js\";\nclass MediaChromeMenuButton extends MediaChromeButton {\n connectedCallback() {\n super.connectedCallback();\n if (this.invokeTargetElement) {\n this.setAttribute(\"aria-haspopup\", \"menu\");\n }\n }\n get invokeTarget() {\n return this.getAttribute(\"invoketarget\");\n }\n set invokeTarget(value) {\n this.setAttribute(\"invoketarget\", `${value}`);\n }\n /**\n * Returns the element with the id specified by the `invoketarget` attribute.\n * @return {HTMLElement | null}\n */\n get invokeTargetElement() {\n var _a;\n if (this.invokeTarget) {\n return (_a = getDocumentOrShadowRoot(this)) == null ? void 0 : _a.querySelector(\n `#${this.invokeTarget}`\n );\n }\n return null;\n }\n handleClick() {\n var _a;\n (_a = this.invokeTargetElement) == null ? void 0 : _a.dispatchEvent(\n new InvokeEvent({ relatedTarget: this })\n );\n }\n}\nif (!globalThis.customElements.get(\"media-chrome-menu-button\")) {\n globalThis.customElements.define(\n \"media-chrome-menu-button\",\n MediaChromeMenuButton\n );\n}\nvar media_chrome_menu_button_default = MediaChromeMenuButton;\nexport {\n MediaChromeMenuButton,\n media_chrome_menu_button_default as default\n};\n","import { MediaChromeMenuButton } from \"./media-chrome-menu-button.js\";\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport { getMediaController } from \"../utils/element-utils.js\";\nimport { t } from \"../utils/i18n.js\";\nfunction getSlotTemplateHTML() {\n return (\n /*html*/\n `\n <style>\n :host([aria-expanded=\"true\"]) slot[name=tooltip] {\n display: none;\n }\n </style>\n <slot name=\"icon\">\n <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"M4.5 14.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Zm7.5 0a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Zm7.5 0a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z\"/>\n </svg>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Settings\");\n}\nclass MediaSettingsMenuButton extends MediaChromeMenuButton {\n static get observedAttributes() {\n return [...super.observedAttributes, \"target\"];\n }\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"aria-label\", t(\"settings\"));\n }\n /**\n * Returns the element with the id specified by the `invoketarget` attribute.\n * @return {HTMLElement | null}\n */\n get invokeTargetElement() {\n if (this.invokeTarget != void 0)\n return super.invokeTargetElement;\n return getMediaController(this).querySelector(\"media-settings-menu\");\n }\n}\nMediaSettingsMenuButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaSettingsMenuButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-settings-menu-button\")) {\n globalThis.customElements.define(\n \"media-settings-menu-button\",\n MediaSettingsMenuButton\n );\n}\nvar media_settings_menu_button_default = MediaSettingsMenuButton;\nexport {\n MediaSettingsMenuButton,\n media_settings_menu_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _audioTrackList, _prevState, _render, render_fn, _onChange, onChange_fn;\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaUIAttributes, MediaUIEvents } from \"../constants.js\";\nimport { parseAudioTrackList } from \"../utils/utils.js\";\nimport {\n MediaChromeMenu,\n createMenuItem,\n createIndicator\n} from \"./media-chrome-menu.js\";\nimport {\n getStringAttr,\n setStringAttr,\n getMediaController\n} from \"../utils/element-utils.js\";\nclass MediaAudioTrackMenu extends MediaChromeMenu {\n constructor() {\n super(...arguments);\n __privateAdd(this, _render);\n __privateAdd(this, _onChange);\n __privateAdd(this, _audioTrackList, []);\n __privateAdd(this, _prevState, void 0);\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_AUDIO_TRACK_LIST,\n MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED,\n MediaUIAttributes.MEDIA_AUDIO_TRACK_UNAVAILABLE\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED && oldValue !== newValue) {\n this.value = newValue;\n } else if (attrName === MediaUIAttributes.MEDIA_AUDIO_TRACK_LIST && oldValue !== newValue) {\n __privateSet(this, _audioTrackList, parseAudioTrackList(newValue != null ? newValue : \"\"));\n __privateMethod(this, _render, render_fn).call(this);\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n /**\n * Returns the anchor element when it is a floating menu.\n */\n get anchorElement() {\n var _a;\n if (this.anchor !== \"auto\")\n return super.anchorElement;\n return (_a = getMediaController(this)) == null ? void 0 : _a.querySelector(\n \"media-audio-track-menu-button\"\n );\n }\n get mediaAudioTrackList() {\n return __privateGet(this, _audioTrackList);\n }\n set mediaAudioTrackList(list) {\n __privateSet(this, _audioTrackList, list);\n __privateMethod(this, _render, render_fn).call(this);\n }\n /**\n * Get enabled audio track id.\n */\n get mediaAudioTrackEnabled() {\n var _a;\n return (_a = getStringAttr(this, MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED)) != null ? _a : \"\";\n }\n set mediaAudioTrackEnabled(id) {\n setStringAttr(this, MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED, id);\n }\n}\n_audioTrackList = new WeakMap();\n_prevState = new WeakMap();\n_render = new WeakSet();\nrender_fn = function() {\n if (__privateGet(this, _prevState) === JSON.stringify(this.mediaAudioTrackList))\n return;\n __privateSet(this, _prevState, JSON.stringify(this.mediaAudioTrackList));\n const audioTrackList = this.mediaAudioTrackList;\n this.defaultSlot.textContent = \"\";\n audioTrackList.sort((a, b) => a.id.localeCompare(b.id, void 0, { numeric: true }));\n for (const audioTrack of audioTrackList) {\n const text = this.formatMenuItemText(audioTrack.label, audioTrack);\n const item = createMenuItem({\n type: \"radio\",\n text,\n value: `${audioTrack.id}`,\n checked: audioTrack.enabled\n });\n item.prepend(createIndicator(this, \"checked-indicator\"));\n this.defaultSlot.append(item);\n }\n};\n_onChange = new WeakSet();\nonChange_fn = function() {\n if (this.value == null)\n return;\n const event = new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_AUDIO_TRACK_REQUEST,\n {\n composed: true,\n bubbles: true,\n detail: this.value\n }\n );\n this.dispatchEvent(event);\n};\nif (!globalThis.customElements.get(\"media-audio-track-menu\")) {\n globalThis.customElements.define(\n \"media-audio-track-menu\",\n MediaAudioTrackMenu\n );\n}\nvar media_audio_track_menu_default = MediaAudioTrackMenu;\nexport {\n MediaAudioTrackMenu,\n media_audio_track_menu_default as default\n};\n","import { MediaUIAttributes } from \"../constants.js\";\nimport { MediaChromeMenuButton } from \"./media-chrome-menu-button.js\";\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport {\n getStringAttr,\n setStringAttr,\n getMediaController\n} from \"../utils/element-utils.js\";\nimport { t } from \"../utils/i18n.js\";\nconst audioTrackIcon = (\n /*html*/\n `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"M11 17H9.5V7H11v10Zm-3-3H6.5v-4H8v4Zm6-5h-1.5v6H14V9Zm3 7h-1.5V8H17v8Z\"/>\n <path d=\"M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10Zm-2 0a8 8 0 1 0-16 0 8 8 0 0 0 16 0Z\"/>\n</svg>`\n);\nfunction getSlotTemplateHTML() {\n return (\n /*html*/\n `\n <style>\n :host([aria-expanded=\"true\"]) slot[name=tooltip] {\n display: none;\n }\n </style>\n <slot name=\"icon\">${audioTrackIcon}</slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Audio\");\n}\nconst updateAriaLabel = (el) => {\n const label = t(\"Audio\");\n el.setAttribute(\"aria-label\", label);\n};\nclass MediaAudioTrackMenuButton extends MediaChromeMenuButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED,\n MediaUIAttributes.MEDIA_AUDIO_TRACK_UNAVAILABLE\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n }\n attributeChangedCallback(attrName, _oldValue, newValue) {\n super.attributeChangedCallback(attrName, _oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_LANG) {\n updateAriaLabel(this);\n }\n }\n /**\n * Returns the element with the id specified by the `invoketarget` attribute.\n * @return {HTMLElement | null}\n */\n get invokeTargetElement() {\n var _a;\n if (this.invokeTarget != void 0)\n return super.invokeTargetElement;\n return (_a = getMediaController(this)) == null ? void 0 : _a.querySelector(\"media-audio-track-menu\");\n }\n /**\n * Get enabled audio track id.\n * @return {string}\n */\n get mediaAudioTrackEnabled() {\n var _a;\n return (_a = getStringAttr(this, MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED)) != null ? _a : \"\";\n }\n set mediaAudioTrackEnabled(id) {\n setStringAttr(this, MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED, id);\n }\n}\nMediaAudioTrackMenuButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaAudioTrackMenuButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-audio-track-menu-button\")) {\n globalThis.customElements.define(\n \"media-audio-track-menu-button\",\n MediaAudioTrackMenuButton\n );\n}\nvar media_audio_track_menu_button_default = MediaAudioTrackMenuButton;\nexport {\n MediaAudioTrackMenuButton,\n media_audio_track_menu_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _prevState, _render, render_fn, _onChange, onChange_fn;\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaUIAttributes, MediaUIEvents } from \"../constants.js\";\nimport { getMediaController } from \"../utils/element-utils.js\";\nimport {\n MediaChromeMenu,\n createMenuItem,\n createIndicator\n} from \"./media-chrome-menu.js\";\nimport {\n parseTextTracksStr,\n stringifyTextTrackList,\n formatTextTrackObj\n} from \"../utils/captions.js\";\nimport { t } from \"../utils/i18n.js\";\nconst ccIcon = (\n /*html*/\n `\n <svg aria-hidden=\"true\" viewBox=\"0 0 26 24\" part=\"captions-indicator indicator\">\n <path d=\"M22.83 5.68a2.58 2.58 0 0 0-2.3-2.5c-3.62-.24-11.44-.24-15.06 0a2.58 2.58 0 0 0-2.3 2.5c-.23 4.21-.23 8.43 0 12.64a2.58 2.58 0 0 0 2.3 2.5c3.62.24 11.44.24 15.06 0a2.58 2.58 0 0 0 2.3-2.5c.23-4.21.23-8.43 0-12.64Zm-11.39 9.45a3.07 3.07 0 0 1-1.91.57 3.06 3.06 0 0 1-2.34-1 3.75 3.75 0 0 1-.92-2.67 3.92 3.92 0 0 1 .92-2.77 3.18 3.18 0 0 1 2.43-1 2.94 2.94 0 0 1 2.13.78c.364.359.62.813.74 1.31l-1.43.35a1.49 1.49 0 0 0-1.51-1.17 1.61 1.61 0 0 0-1.29.58 2.79 2.79 0 0 0-.5 1.89 3 3 0 0 0 .49 1.93 1.61 1.61 0 0 0 1.27.58 1.48 1.48 0 0 0 1-.37 2.1 2.1 0 0 0 .59-1.14l1.4.44a3.23 3.23 0 0 1-1.07 1.69Zm7.22 0a3.07 3.07 0 0 1-1.91.57 3.06 3.06 0 0 1-2.34-1 3.75 3.75 0 0 1-.92-2.67 3.88 3.88 0 0 1 .93-2.77 3.14 3.14 0 0 1 2.42-1 3 3 0 0 1 2.16.82 2.8 2.8 0 0 1 .73 1.31l-1.43.35a1.49 1.49 0 0 0-1.51-1.21 1.61 1.61 0 0 0-1.29.58A2.79 2.79 0 0 0 15 12a3 3 0 0 0 .49 1.93 1.61 1.61 0 0 0 1.27.58 1.44 1.44 0 0 0 1-.37 2.1 2.1 0 0 0 .6-1.15l1.4.44a3.17 3.17 0 0 1-1.1 1.7Z\"/>\n </svg>`\n);\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n ${MediaChromeMenu.getTemplateHTML(_attrs)}\n <slot name=\"captions-indicator\" hidden>${ccIcon}</slot>\n `\n );\n}\nclass MediaCaptionsMenu extends MediaChromeMenu {\n constructor() {\n super(...arguments);\n __privateAdd(this, _render);\n __privateAdd(this, _onChange);\n __privateAdd(this, _prevState, void 0);\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_SUBTITLES_LIST,\n MediaUIAttributes.MEDIA_SUBTITLES_SHOWING\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_SUBTITLES_LIST && oldValue !== newValue) {\n __privateMethod(this, _render, render_fn).call(this);\n } else if (attrName === MediaUIAttributes.MEDIA_SUBTITLES_SHOWING && oldValue !== newValue) {\n this.value = newValue || \"\";\n __privateMethod(this, _render, render_fn).call(this);\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n /**\n * Returns the anchor element when it is a floating menu.\n */\n get anchorElement() {\n if (this.anchor !== \"auto\")\n return super.anchorElement;\n return getMediaController(this).querySelector(\"media-captions-menu-button\");\n }\n /**\n * @type {Array<object>} An array of TextTrack-like objects.\n * Objects must have the properties: kind, language, and label.\n */\n get mediaSubtitlesList() {\n return getSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_LIST);\n }\n set mediaSubtitlesList(list) {\n setSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_LIST, list);\n }\n /**\n * An array of TextTrack-like objects.\n * Objects must have the properties: kind, language, and label.\n */\n get mediaSubtitlesShowing() {\n return getSubtitlesListAttr(\n this,\n MediaUIAttributes.MEDIA_SUBTITLES_SHOWING\n );\n }\n set mediaSubtitlesShowing(list) {\n setSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_SHOWING, list);\n }\n}\n_prevState = new WeakMap();\n_render = new WeakSet();\nrender_fn = function() {\n var _a;\n const hasListChanged = __privateGet(this, _prevState) !== JSON.stringify(this.mediaSubtitlesList);\n const hasShowingChanged = this.value !== this.getAttribute(MediaUIAttributes.MEDIA_SUBTITLES_SHOWING);\n if (!hasListChanged && !hasShowingChanged)\n return;\n __privateSet(this, _prevState, JSON.stringify(this.mediaSubtitlesList));\n this.defaultSlot.textContent = \"\";\n const isOff = !this.value;\n const item = createMenuItem({\n type: \"radio\",\n text: this.formatMenuItemText(t(\"Off\")),\n value: \"off\",\n checked: isOff\n });\n item.prepend(createIndicator(this, \"checked-indicator\"));\n this.defaultSlot.append(item);\n const subtitlesList = this.mediaSubtitlesList;\n for (const subs of subtitlesList) {\n const item2 = createMenuItem({\n type: \"radio\",\n text: this.formatMenuItemText(subs.label, subs),\n value: formatTextTrackObj(subs),\n checked: this.value == formatTextTrackObj(subs)\n });\n item2.prepend(createIndicator(this, \"checked-indicator\"));\n const type = (_a = subs.kind) != null ? _a : \"subs\";\n if (type === \"captions\") {\n item2.append(createIndicator(this, \"captions-indicator\"));\n }\n this.defaultSlot.append(item2);\n }\n};\n_onChange = new WeakSet();\nonChange_fn = function() {\n const showingSubs = this.mediaSubtitlesShowing;\n const showingSubsStr = this.getAttribute(\n MediaUIAttributes.MEDIA_SUBTITLES_SHOWING\n );\n const localStateChange = this.value !== showingSubsStr;\n if ((showingSubs == null ? void 0 : showingSubs.length) && localStateChange) {\n this.dispatchEvent(\n new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_DISABLE_SUBTITLES_REQUEST,\n {\n composed: true,\n bubbles: true,\n detail: showingSubs\n }\n )\n );\n }\n if (!this.value || !localStateChange)\n return;\n const event = new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_SHOW_SUBTITLES_REQUEST,\n {\n composed: true,\n bubbles: true,\n detail: this.value\n }\n );\n this.dispatchEvent(event);\n};\nMediaCaptionsMenu.getTemplateHTML = getTemplateHTML;\nconst getSubtitlesListAttr = (el, attrName) => {\n const attrVal = el.getAttribute(attrName);\n return attrVal ? parseTextTracksStr(attrVal) : [];\n};\nconst setSubtitlesListAttr = (el, attrName, list) => {\n if (!(list == null ? void 0 : list.length)) {\n el.removeAttribute(attrName);\n return;\n }\n const newValStr = stringifyTextTrackList(list);\n const oldVal = el.getAttribute(attrName);\n if (oldVal === newValStr)\n return;\n el.setAttribute(attrName, newValStr);\n};\nif (!globalThis.customElements.get(\"media-captions-menu\")) {\n globalThis.customElements.define(\"media-captions-menu\", MediaCaptionsMenu);\n}\nvar media_captions_menu_default = MediaCaptionsMenu;\nexport {\n MediaCaptionsMenu,\n media_captions_menu_default as default\n};\n","import { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaUIAttributes } from \"../constants.js\";\nimport { MediaChromeMenuButton } from \"./media-chrome-menu-button.js\";\nimport { getMediaController } from \"../utils/element-utils.js\";\nimport {\n areSubsOn,\n parseTextTracksStr,\n stringifyTextTrackList\n} from \"../utils/captions.js\";\nimport { t } from \"../utils/i18n.js\";\nconst ccIconOn = `<svg aria-hidden=\"true\" viewBox=\"0 0 26 24\">\n <path d=\"M22.83 5.68a2.58 2.58 0 0 0-2.3-2.5c-3.62-.24-11.44-.24-15.06 0a2.58 2.58 0 0 0-2.3 2.5c-.23 4.21-.23 8.43 0 12.64a2.58 2.58 0 0 0 2.3 2.5c3.62.24 11.44.24 15.06 0a2.58 2.58 0 0 0 2.3-2.5c.23-4.21.23-8.43 0-12.64Zm-11.39 9.45a3.07 3.07 0 0 1-1.91.57 3.06 3.06 0 0 1-2.34-1 3.75 3.75 0 0 1-.92-2.67 3.92 3.92 0 0 1 .92-2.77 3.18 3.18 0 0 1 2.43-1 2.94 2.94 0 0 1 2.13.78c.364.359.62.813.74 1.31l-1.43.35a1.49 1.49 0 0 0-1.51-1.17 1.61 1.61 0 0 0-1.29.58 2.79 2.79 0 0 0-.5 1.89 3 3 0 0 0 .49 1.93 1.61 1.61 0 0 0 1.27.58 1.48 1.48 0 0 0 1-.37 2.1 2.1 0 0 0 .59-1.14l1.4.44a3.23 3.23 0 0 1-1.07 1.69Zm7.22 0a3.07 3.07 0 0 1-1.91.57 3.06 3.06 0 0 1-2.34-1 3.75 3.75 0 0 1-.92-2.67 3.88 3.88 0 0 1 .93-2.77 3.14 3.14 0 0 1 2.42-1 3 3 0 0 1 2.16.82 2.8 2.8 0 0 1 .73 1.31l-1.43.35a1.49 1.49 0 0 0-1.51-1.21 1.61 1.61 0 0 0-1.29.58A2.79 2.79 0 0 0 15 12a3 3 0 0 0 .49 1.93 1.61 1.61 0 0 0 1.27.58 1.44 1.44 0 0 0 1-.37 2.1 2.1 0 0 0 .6-1.15l1.4.44a3.17 3.17 0 0 1-1.1 1.7Z\"/>\n</svg>`;\nconst ccIconOff = `<svg aria-hidden=\"true\" viewBox=\"0 0 26 24\">\n <path d=\"M17.73 14.09a1.4 1.4 0 0 1-1 .37 1.579 1.579 0 0 1-1.27-.58A3 3 0 0 1 15 12a2.8 2.8 0 0 1 .5-1.85 1.63 1.63 0 0 1 1.29-.57 1.47 1.47 0 0 1 1.51 1.2l1.43-.34A2.89 2.89 0 0 0 19 9.07a3 3 0 0 0-2.14-.78 3.14 3.14 0 0 0-2.42 1 3.91 3.91 0 0 0-.93 2.78 3.74 3.74 0 0 0 .92 2.66 3.07 3.07 0 0 0 2.34 1 3.07 3.07 0 0 0 1.91-.57 3.17 3.17 0 0 0 1.07-1.74l-1.4-.45c-.083.43-.3.822-.62 1.12Zm-7.22 0a1.43 1.43 0 0 1-1 .37 1.58 1.58 0 0 1-1.27-.58A3 3 0 0 1 7.76 12a2.8 2.8 0 0 1 .5-1.85 1.63 1.63 0 0 1 1.29-.57 1.47 1.47 0 0 1 1.51 1.2l1.43-.34a2.81 2.81 0 0 0-.74-1.32 2.94 2.94 0 0 0-2.13-.78 3.18 3.18 0 0 0-2.43 1 4 4 0 0 0-.92 2.78 3.74 3.74 0 0 0 .92 2.66 3.07 3.07 0 0 0 2.34 1 3.07 3.07 0 0 0 1.91-.57 3.23 3.23 0 0 0 1.07-1.74l-1.4-.45a2.06 2.06 0 0 1-.6 1.07Zm12.32-8.41a2.59 2.59 0 0 0-2.3-2.51C18.72 3.05 15.86 3 13 3c-2.86 0-5.72.05-7.53.17a2.59 2.59 0 0 0-2.3 2.51c-.23 4.207-.23 8.423 0 12.63a2.57 2.57 0 0 0 2.3 2.5c1.81.13 4.67.19 7.53.19 2.86 0 5.72-.06 7.53-.19a2.57 2.57 0 0 0 2.3-2.5c.23-4.207.23-8.423 0-12.63Zm-1.49 12.53a1.11 1.11 0 0 1-.91 1.11c-1.67.11-4.45.18-7.43.18-2.98 0-5.76-.07-7.43-.18a1.11 1.11 0 0 1-.91-1.11c-.21-4.14-.21-8.29 0-12.43a1.11 1.11 0 0 1 .91-1.11C7.24 4.56 10 4.49 13 4.49s5.76.07 7.43.18a1.11 1.11 0 0 1 .91 1.11c.21 4.14.21 8.29 0 12.43Z\"/>\n</svg>`;\nfunction getSlotTemplateHTML() {\n return (\n /*html*/\n `\n <style>\n :host([data-captions-enabled=\"true\"]) slot[name=off] {\n display: none !important;\n }\n\n ${/* Double negative, but safer if display doesn't equal 'block' */\n \"\"}\n :host(:not([data-captions-enabled=\"true\"])) slot[name=on] {\n display: none !important;\n }\n\n :host([aria-expanded=\"true\"]) slot[name=tooltip] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"on\">${ccIconOn}</slot>\n <slot name=\"off\">${ccIconOff}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Captions\");\n}\nconst updateAriaChecked = (el) => {\n el.setAttribute(\"data-captions-enabled\", areSubsOn(el).toString());\n};\nconst updateAriaLabel = (el) => {\n el.setAttribute(\"aria-label\", t(\"closed captions\"));\n};\nclass MediaCaptionsMenuButton extends MediaChromeMenuButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_SUBTITLES_LIST,\n MediaUIAttributes.MEDIA_SUBTITLES_SHOWING,\n MediaUIAttributes.MEDIA_LANG\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n updateAriaChecked(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_SUBTITLES_SHOWING) {\n updateAriaChecked(this);\n } else if (attrName === MediaUIAttributes.MEDIA_LANG) {\n updateAriaLabel(this);\n }\n }\n /**\n * Returns the element with the id specified by the `invoketarget` attribute.\n * @return {HTMLElement | null}\n */\n get invokeTargetElement() {\n var _a;\n if (this.invokeTarget != void 0)\n return super.invokeTargetElement;\n return (_a = getMediaController(this)) == null ? void 0 : _a.querySelector(\"media-captions-menu\");\n }\n /**\n * An array of TextTrack-like objects.\n * Objects must have the properties: kind, language, and label.\n */\n get mediaSubtitlesList() {\n return getSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_LIST);\n }\n set mediaSubtitlesList(list) {\n setSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_LIST, list);\n }\n /**\n * An array of TextTrack-like objects.\n * Objects must have the properties: kind, language, and label.\n */\n get mediaSubtitlesShowing() {\n return getSubtitlesListAttr(\n this,\n MediaUIAttributes.MEDIA_SUBTITLES_SHOWING\n );\n }\n set mediaSubtitlesShowing(list) {\n setSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_SHOWING, list);\n }\n}\nMediaCaptionsMenuButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaCaptionsMenuButton.getTooltipContentHTML = getTooltipContentHTML;\nconst getSubtitlesListAttr = (el, attrName) => {\n const attrVal = el.getAttribute(attrName);\n return attrVal ? parseTextTracksStr(attrVal) : [];\n};\nconst setSubtitlesListAttr = (el, attrName, list) => {\n if (!(list == null ? void 0 : list.length)) {\n el.removeAttribute(attrName);\n return;\n }\n const newValStr = stringifyTextTrackList(list);\n const oldVal = el.getAttribute(attrName);\n if (oldVal === newValStr)\n return;\n el.setAttribute(attrName, newValStr);\n};\nif (!globalThis.customElements.get(\"media-captions-menu-button\")) {\n globalThis.customElements.define(\n \"media-captions-menu-button\",\n MediaCaptionsMenuButton\n );\n}\nvar media_captions_menu_button_default = MediaCaptionsMenuButton;\nexport {\n MediaCaptionsMenuButton,\n media_captions_menu_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _rates, _render, render_fn, _onChange, onChange_fn;\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaUIAttributes, MediaUIEvents } from \"../constants.js\";\nimport { AttributeTokenList } from \"../utils/attribute-token-list.js\";\nimport {\n getNumericAttr,\n setNumericAttr,\n getMediaController\n} from \"../utils/element-utils.js\";\nimport { DEFAULT_RATES, DEFAULT_RATE } from \"../media-playback-rate-button.js\";\nimport {\n MediaChromeMenu,\n createMenuItem,\n createIndicator\n} from \"./media-chrome-menu.js\";\nconst Attributes = {\n RATES: \"rates\"\n};\nclass MediaPlaybackRateMenu extends MediaChromeMenu {\n constructor() {\n super();\n __privateAdd(this, _render);\n __privateAdd(this, _onChange);\n __privateAdd(this, _rates, new AttributeTokenList(this, Attributes.RATES, {\n defaultValue: DEFAULT_RATES\n }));\n __privateMethod(this, _render, render_fn).call(this);\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_PLAYBACK_RATE,\n Attributes.RATES\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_PLAYBACK_RATE && oldValue != newValue) {\n this.value = newValue;\n __privateMethod(this, _render, render_fn).call(this);\n } else if (attrName === Attributes.RATES && oldValue != newValue) {\n __privateGet(this, _rates).value = newValue;\n __privateMethod(this, _render, render_fn).call(this);\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n /**\n * Returns the anchor element when it is a floating menu.\n */\n get anchorElement() {\n if (this.anchor !== \"auto\")\n return super.anchorElement;\n return getMediaController(this).querySelector(\n \"media-playback-rate-menu-button\"\n );\n }\n /**\n * Get the playback rates for the button.\n */\n get rates() {\n return __privateGet(this, _rates);\n }\n /**\n * Set the playback rates for the button.\n * For React 19+ compatibility, accept a string of space-separated rates.\n */\n set rates(value) {\n if (!value) {\n __privateGet(this, _rates).value = \"\";\n } else if (Array.isArray(value)) {\n __privateGet(this, _rates).value = value.join(\" \");\n } else if (typeof value === \"string\") {\n __privateGet(this, _rates).value = value;\n }\n __privateMethod(this, _render, render_fn).call(this);\n }\n /**\n * The current playback rate\n */\n get mediaPlaybackRate() {\n return getNumericAttr(\n this,\n MediaUIAttributes.MEDIA_PLAYBACK_RATE,\n DEFAULT_RATE\n );\n }\n set mediaPlaybackRate(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_PLAYBACK_RATE, value);\n }\n}\n_rates = new WeakMap();\n_render = new WeakSet();\nrender_fn = function() {\n this.defaultSlot.textContent = \"\";\n const currentRate = this.mediaPlaybackRate;\n const ratesSet = new Set(Array.from(__privateGet(this, _rates)).map((rate) => Number(rate)));\n if (currentRate > 0 && !ratesSet.has(currentRate)) {\n ratesSet.add(currentRate);\n }\n const sortedRates = Array.from(ratesSet).sort((a, b) => a - b);\n for (const rate of sortedRates) {\n const item = createMenuItem({\n type: \"radio\",\n text: this.formatMenuItemText(`${rate}x`, rate),\n value: rate.toString(),\n checked: currentRate === rate\n });\n item.prepend(createIndicator(this, \"checked-indicator\"));\n this.defaultSlot.append(item);\n }\n};\n_onChange = new WeakSet();\nonChange_fn = function() {\n if (!this.value)\n return;\n const event = new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST,\n {\n composed: true,\n bubbles: true,\n detail: this.value\n }\n );\n this.dispatchEvent(event);\n};\nif (!globalThis.customElements.get(\"media-playback-rate-menu\")) {\n globalThis.customElements.define(\n \"media-playback-rate-menu\",\n MediaPlaybackRateMenu\n );\n}\nvar media_playback_rate_menu_default = MediaPlaybackRateMenu;\nexport {\n Attributes,\n MediaPlaybackRateMenu,\n media_playback_rate_menu_default as default\n};\n","import { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaUIAttributes } from \"../constants.js\";\nimport { MediaChromeMenuButton } from \"./media-chrome-menu-button.js\";\nimport {\n getNumericAttr,\n setNumericAttr,\n getMediaController\n} from \"../utils/element-utils.js\";\nimport { t } from \"../utils/i18n.js\";\nconst DEFAULT_RATE = 1;\nfunction getSlotTemplateHTML(attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n min-width: 5ch;\n padding: var(--media-button-padding, var(--media-control-padding, 10px 5px));\n }\n \n :host([aria-expanded=\"true\"]) slot {\n display: block;\n }\n\n :host([aria-expanded=\"true\"]) slot[name=tooltip] {\n display: none;\n }\n </style>\n <slot name=\"icon\">${attrs[\"mediaplaybackrate\"] || DEFAULT_RATE}x</slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Playback rate\");\n}\nclass MediaPlaybackRateMenuButton extends MediaChromeMenuButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_PLAYBACK_RATE\n ];\n }\n constructor() {\n var _a;\n super();\n this.container = this.shadowRoot.querySelector('slot[name=\"icon\"]');\n this.container.innerHTML = `${(_a = this.mediaPlaybackRate) != null ? _a : DEFAULT_RATE}x`;\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_PLAYBACK_RATE) {\n const newPlaybackRate = newValue ? +newValue : Number.NaN;\n const playbackRate = !Number.isNaN(newPlaybackRate) ? newPlaybackRate : DEFAULT_RATE;\n this.container.innerHTML = `${playbackRate}x`;\n this.setAttribute(\n \"aria-label\",\n t(\"Playback rate {playbackRate}\", { playbackRate })\n );\n }\n }\n /**\n * Returns the element with the id specified by the `invoketarget` attribute.\n */\n get invokeTargetElement() {\n if (this.invokeTarget != void 0)\n return super.invokeTargetElement;\n return getMediaController(this).querySelector(\"media-playback-rate-menu\");\n }\n /**\n * The current playback rate\n */\n get mediaPlaybackRate() {\n return getNumericAttr(\n this,\n MediaUIAttributes.MEDIA_PLAYBACK_RATE,\n DEFAULT_RATE\n );\n }\n set mediaPlaybackRate(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_PLAYBACK_RATE, value);\n }\n}\nMediaPlaybackRateMenuButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaPlaybackRateMenuButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-playback-rate-menu-button\")) {\n globalThis.customElements.define(\n \"media-playback-rate-menu-button\",\n MediaPlaybackRateMenuButton\n );\n}\nvar media_playback_rate_menu_button_default = MediaPlaybackRateMenuButton;\nexport {\n DEFAULT_RATE,\n MediaPlaybackRateMenuButton,\n media_playback_rate_menu_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _renditionList, _prevState, _render, render_fn, _onChange, onChange_fn;\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaUIAttributes, MediaUIEvents } from \"../constants.js\";\nimport {\n getMediaController,\n getStringAttr,\n setStringAttr,\n getNumericAttr,\n setNumericAttr\n} from \"../utils/element-utils.js\";\nimport { parseRenditionList } from \"../utils/utils.js\";\nimport {\n MediaChromeMenu,\n createMenuItem,\n createIndicator\n} from \"./media-chrome-menu.js\";\nimport { t } from \"../utils/i18n.js\";\nclass MediaRenditionMenu extends MediaChromeMenu {\n constructor() {\n super(...arguments);\n __privateAdd(this, _render);\n __privateAdd(this, _onChange);\n __privateAdd(this, _renditionList, []);\n __privateAdd(this, _prevState, {});\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_RENDITION_LIST,\n MediaUIAttributes.MEDIA_RENDITION_SELECTED,\n MediaUIAttributes.MEDIA_RENDITION_UNAVAILABLE,\n MediaUIAttributes.MEDIA_HEIGHT\n ];\n }\n static formatMenuItemText(text, rendition) {\n return super.formatMenuItemText(text, rendition);\n }\n static formatRendition(rendition, { showBitrate = false } = {}) {\n const renditionText = `${Math.min(\n rendition.width,\n rendition.height\n )}p`;\n if (showBitrate && rendition.bitrate) {\n const mbps = rendition.bitrate / 1e6;\n const bitrateText = `${mbps.toFixed(mbps < 1 ? 1 : 0)} Mbps`;\n return `${renditionText} (${bitrateText})`;\n }\n return this.formatMenuItemText(renditionText, rendition);\n }\n static compareRendition(a, b) {\n var _a, _b;\n return b.height === a.height ? ((_a = b.bitrate) != null ? _a : 0) - ((_b = a.bitrate) != null ? _b : 0) : b.height - a.height;\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_RENDITION_SELECTED && oldValue !== newValue) {\n this.value = newValue != null ? newValue : \"auto\";\n __privateMethod(this, _render, render_fn).call(this);\n } else if (attrName === MediaUIAttributes.MEDIA_RENDITION_LIST && oldValue !== newValue) {\n __privateSet(this, _renditionList, parseRenditionList(newValue));\n __privateMethod(this, _render, render_fn).call(this);\n } else if (attrName === MediaUIAttributes.MEDIA_HEIGHT && oldValue !== newValue) {\n __privateMethod(this, _render, render_fn).call(this);\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n /**\n * Returns the anchor element when it is a floating menu.\n */\n get anchorElement() {\n if (this.anchor !== \"auto\")\n return super.anchorElement;\n return getMediaController(this).querySelector(\n \"media-rendition-menu-button\"\n );\n }\n get mediaRenditionList() {\n return __privateGet(this, _renditionList);\n }\n set mediaRenditionList(list) {\n __privateSet(this, _renditionList, list);\n __privateMethod(this, _render, render_fn).call(this);\n }\n /**\n * Get selected rendition id.\n */\n get mediaRenditionSelected() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_RENDITION_SELECTED);\n }\n set mediaRenditionSelected(id) {\n setStringAttr(this, MediaUIAttributes.MEDIA_RENDITION_SELECTED, id);\n }\n get mediaHeight() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_HEIGHT);\n }\n set mediaHeight(height) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_HEIGHT, height);\n }\n compareRendition(a, b) {\n const ctor = this.constructor;\n return ctor.compareRendition(a, b);\n }\n formatMenuItemText(text, rendition) {\n const ctor = this.constructor;\n return ctor.formatMenuItemText(text, rendition);\n }\n formatRendition(rendition, options) {\n const ctor = this.constructor;\n return ctor.formatRendition(rendition, options);\n }\n showRenditionBitrate(rendition) {\n return this.mediaRenditionList.some(\n (r) => r !== rendition && r.height === rendition.height && r.bitrate !== rendition.bitrate\n );\n }\n}\n_renditionList = new WeakMap();\n_prevState = new WeakMap();\n_render = new WeakSet();\nrender_fn = function() {\n if (__privateGet(this, _prevState).mediaRenditionList === JSON.stringify(this.mediaRenditionList) && __privateGet(this, _prevState).mediaHeight === this.mediaHeight)\n return;\n __privateGet(this, _prevState).mediaRenditionList = JSON.stringify(\n this.mediaRenditionList\n );\n __privateGet(this, _prevState).mediaHeight = this.mediaHeight;\n const renditionList = this.mediaRenditionList.sort(\n this.compareRendition.bind(this)\n );\n const selectedRendition = renditionList.find(\n (rendition) => rendition.id === this.mediaRenditionSelected\n );\n for (const rendition of renditionList) {\n rendition.selected = rendition === selectedRendition;\n }\n this.defaultSlot.textContent = \"\";\n const isAuto = !this.mediaRenditionSelected;\n for (const rendition of renditionList) {\n const text = this.formatRendition(rendition, {\n showBitrate: this.showRenditionBitrate(rendition)\n });\n const item2 = createMenuItem({\n type: \"radio\",\n text,\n value: `${rendition.id}`,\n checked: rendition.selected && !isAuto\n });\n item2.prepend(createIndicator(this, \"checked-indicator\"));\n this.defaultSlot.append(item2);\n }\n const showSelectedBitrate = selectedRendition && this.showRenditionBitrate(selectedRendition);\n const autoText = isAuto ? (\n // Auto • 1080p (4 Mbps)\n selectedRendition ? this.formatMenuItemText(\n `${t(\"Auto\")} \\u2022 ${this.formatRendition(selectedRendition, {\n showBitrate: showSelectedBitrate\n })}`,\n selectedRendition\n ) : this.formatMenuItemText(`${t(\"Auto\")} (${this.mediaHeight}p)`)\n ) : this.formatMenuItemText(t(\"Auto\"));\n const item = createMenuItem({\n type: \"radio\",\n text: autoText,\n value: \"auto\",\n checked: isAuto\n });\n item.dataset.description = autoText;\n item.prepend(createIndicator(this, \"checked-indicator\"));\n this.defaultSlot.append(item);\n};\n_onChange = new WeakSet();\nonChange_fn = function() {\n if (this.value == null)\n return;\n const event = new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_RENDITION_REQUEST,\n {\n composed: true,\n bubbles: true,\n detail: this.value\n }\n );\n this.dispatchEvent(event);\n};\nif (!globalThis.customElements.get(\"media-rendition-menu\")) {\n globalThis.customElements.define(\"media-rendition-menu\", MediaRenditionMenu);\n}\nvar media_rendition_menu_default = MediaRenditionMenu;\nexport {\n MediaRenditionMenu,\n media_rendition_menu_default as default\n};\n","import { MediaUIAttributes } from \"../constants.js\";\nimport { MediaChromeMenuButton } from \"./media-chrome-menu-button.js\";\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport {\n getStringAttr,\n setStringAttr,\n getMediaController,\n getNumericAttr,\n setNumericAttr\n} from \"../utils/element-utils.js\";\nimport { t } from \"../utils/i18n.js\";\nconst renditionIcon = (\n /*html*/\n `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"M13.5 2.5h2v6h-2v-2h-11v-2h11v-2Zm4 2h4v2h-4v-2Zm-12 4h2v6h-2v-2h-3v-2h3v-2Zm4 2h12v2h-12v-2Zm1 4h2v6h-2v-2h-8v-2h8v-2Zm4 2h7v2h-7v-2Z\" />\n</svg>`\n);\nfunction getSlotTemplateHTML() {\n return (\n /*html*/\n `\n <style>\n :host([aria-expanded=\"true\"]) slot[name=tooltip] {\n display: none;\n }\n </style>\n <slot name=\"icon\">${renditionIcon}</slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Quality\");\n}\nclass MediaRenditionMenuButton extends MediaChromeMenuButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_RENDITION_SELECTED,\n MediaUIAttributes.MEDIA_RENDITION_UNAVAILABLE,\n MediaUIAttributes.MEDIA_HEIGHT\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"aria-label\", t(\"quality\"));\n }\n /**\n * Returns the element with the id specified by the `invoketarget` attribute.\n */\n get invokeTargetElement() {\n if (this.invokeTarget != void 0)\n return super.invokeTargetElement;\n return getMediaController(this).querySelector(\"media-rendition-menu\");\n }\n /**\n * Get selected rendition id.\n */\n get mediaRenditionSelected() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_RENDITION_SELECTED);\n }\n set mediaRenditionSelected(id) {\n setStringAttr(this, MediaUIAttributes.MEDIA_RENDITION_SELECTED, id);\n }\n get mediaHeight() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_HEIGHT);\n }\n set mediaHeight(height) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_HEIGHT, height);\n }\n}\nMediaRenditionMenuButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaRenditionMenuButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-rendition-menu-button\")) {\n globalThis.customElements.define(\n \"media-rendition-menu-button\",\n MediaRenditionMenuButton\n );\n}\nvar media_rendition_menu_button_default = MediaRenditionMenuButton;\nexport {\n MediaRenditionMenuButton,\n media_rendition_menu_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _isContextMenuOpen, _updateVisibility, updateVisibility_fn, _closeContextMenu, closeContextMenu_fn, _closeOtherContextMenus, closeOtherContextMenus_fn, _isVideoContainer, isVideoContainer_fn, _onControllerContextMenu, _onContextMenu, onContextMenu_fn, _onDocumentClick, _onKeyDown, _onMenuClick;\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaChromeMenu } from \"./media-chrome-menu.js\";\nimport { getMediaController } from \"../utils/element-utils.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n ${MediaChromeMenu.getTemplateHTML(_attrs)}\n <style>\n :host {\n --_menu-bg: rgb(20 20 30 / .8);\n background: var(--media-settings-menu-background,\n var(--media-menu-background,\n var(--media-control-background,\n var(--media-secondary-color, var(--_menu-bg)))));\n min-width: var(--media-settings-menu-min-width, 170px);\n border-radius: 2px;\n overflow: hidden;\n }\n </style>\n `\n );\n}\nclass MediaContextMenu extends MediaChromeMenu {\n constructor() {\n super();\n __privateAdd(this, _updateVisibility);\n __privateAdd(this, _closeContextMenu);\n __privateAdd(this, _closeOtherContextMenus);\n __privateAdd(this, _isVideoContainer);\n __privateAdd(this, _onContextMenu);\n __privateAdd(this, _isContextMenuOpen, false);\n __privateAdd(this, _onControllerContextMenu, (event) => {\n const target = event.target;\n const isVideoElement = (target == null ? void 0 : target.nodeName) === \"VIDEO\";\n const isVideoContainer = __privateMethod(this, _isVideoContainer, isVideoContainer_fn).call(this, target);\n if (isVideoElement || isVideoContainer) {\n if (!__privateGet(this, _isContextMenuOpen)) {\n __privateMethod(this, _onContextMenu, onContextMenu_fn).call(this, event);\n } else {\n __privateMethod(this, _closeContextMenu, closeContextMenu_fn).call(this);\n }\n }\n });\n __privateAdd(this, _onDocumentClick, (event) => {\n const target = event.target;\n const isInsideMenu = this.contains(target);\n const isRightClick = event.button === 2;\n const isVideo = (target == null ? void 0 : target.nodeName) === \"VIDEO\";\n const isVideoContainer = __privateMethod(this, _isVideoContainer, isVideoContainer_fn).call(this, target);\n if (isInsideMenu) {\n return;\n }\n const isRightClickOnVideo = isRightClick && (isVideo || isVideoContainer);\n if (isRightClickOnVideo) {\n return;\n }\n __privateMethod(this, _closeContextMenu, closeContextMenu_fn).call(this);\n });\n __privateAdd(this, _onKeyDown, (event) => {\n if (event.key === \"Escape\") {\n __privateMethod(this, _closeContextMenu, closeContextMenu_fn).call(this);\n }\n });\n __privateAdd(this, _onMenuClick, (event) => {\n var _a, _b;\n const target = event.target;\n if ((_a = target.matches) == null ? void 0 : _a.call(target, 'button[invoke=\"copy\"]')) {\n const input = (_b = target.closest(\"media-context-menu-item\")) == null ? void 0 : _b.querySelector('input[slot=\"copy\"]');\n input && navigator.clipboard.writeText(input.value);\n }\n __privateMethod(this, _closeContextMenu, closeContextMenu_fn).call(this);\n });\n this.setAttribute(\"noautohide\", \"\");\n __privateMethod(this, _updateVisibility, updateVisibility_fn).call(this);\n }\n connectedCallback() {\n super.connectedCallback();\n getMediaController(this).addEventListener(\n \"contextmenu\",\n __privateGet(this, _onControllerContextMenu)\n );\n this.addEventListener(\"click\", __privateGet(this, _onMenuClick));\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n getMediaController(this).removeEventListener(\n \"contextmenu\",\n __privateGet(this, _onControllerContextMenu)\n );\n this.removeEventListener(\"click\", __privateGet(this, _onMenuClick));\n document.removeEventListener(\"mousedown\", __privateGet(this, _onDocumentClick));\n document.removeEventListener(\"keydown\", __privateGet(this, _onKeyDown));\n }\n}\n_isContextMenuOpen = new WeakMap();\n_updateVisibility = new WeakSet();\nupdateVisibility_fn = function() {\n this.hidden = !__privateGet(this, _isContextMenuOpen);\n};\n_closeContextMenu = new WeakSet();\ncloseContextMenu_fn = function() {\n __privateSet(this, _isContextMenuOpen, false);\n __privateMethod(this, _updateVisibility, updateVisibility_fn).call(this);\n};\n_closeOtherContextMenus = new WeakSet();\ncloseOtherContextMenus_fn = function() {\n const allContextMenus = document.querySelectorAll(\"media-context-menu\");\n allContextMenus.forEach((menu) => {\n var _a;\n if (menu !== this) {\n __privateMethod(_a = menu, _closeContextMenu, closeContextMenu_fn).call(_a);\n }\n });\n};\n_isVideoContainer = new WeakSet();\nisVideoContainer_fn = function(element) {\n if (!element)\n return false;\n if (element.hasAttribute(\"slot\") && element.getAttribute(\"slot\") === \"media\") {\n return true;\n }\n if (element.nodeName.includes(\"-\") && element.tagName.includes(\"-\")) {\n const hasVideoAttributes = element.hasAttribute(\"src\") || element.hasAttribute(\"poster\") || element.hasAttribute(\"preload\") || element.hasAttribute(\"playsinline\");\n return hasVideoAttributes;\n }\n return false;\n};\n_onControllerContextMenu = new WeakMap();\n_onContextMenu = new WeakSet();\nonContextMenu_fn = function(event) {\n event.preventDefault();\n __privateMethod(this, _closeOtherContextMenus, closeOtherContextMenus_fn).call(this);\n __privateSet(this, _isContextMenuOpen, true);\n this.style.position = \"fixed\";\n this.style.left = `${event.clientX}px`;\n this.style.top = `${event.clientY}px`;\n __privateMethod(this, _updateVisibility, updateVisibility_fn).call(this);\n document.addEventListener(\"mousedown\", __privateGet(this, _onDocumentClick), {\n once: true\n });\n document.addEventListener(\"keydown\", __privateGet(this, _onKeyDown), { once: true });\n};\n_onDocumentClick = new WeakMap();\n_onKeyDown = new WeakMap();\n_onMenuClick = new WeakMap();\nMediaContextMenu.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-context-menu\")) {\n globalThis.customElements.define(\"media-context-menu\", MediaContextMenu);\n}\nvar media_context_menu_default = MediaContextMenu;\nexport {\n MediaContextMenu,\n media_context_menu_default as default\n};\n","import { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaChromeMenuItem } from \"./media-chrome-menu-item.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n ${MediaChromeMenuItem.getTemplateHTML.call(this, _attrs)}\n <style>\n ::slotted(*) {\n color: var(--media-text-color, white);\n text-decoration: none;\n border: none;\n background: none;\n cursor: pointer;\n padding: 0;\n min-height: var(--media-control-height, 24px);\n }\n </style>\n `\n );\n}\nclass MediaContextMenuItem extends MediaChromeMenuItem {\n}\nMediaContextMenuItem.shadowRootOptions = { mode: \"open\" };\nMediaContextMenuItem.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-context-menu-item\")) {\n globalThis.customElements.define(\n \"media-context-menu-item\",\n MediaContextMenuItem\n );\n}\nvar media_context_menu_item_default = MediaContextMenuItem;\nexport {\n MediaContextMenuItem,\n media_context_menu_item_default as default\n};\n","var st=t=>{throw TypeError(t)};var Ae=(t,a,e)=>a.has(t)||st(\"Cannot \"+e);var l=(t,a,e)=>(Ae(t,a,\"read from private field\"),e?e.call(t):a.get(t)),h=(t,a,e)=>a.has(t)?st(\"Cannot add the same private member more than once\"):a instanceof WeakSet?a.add(t):a.set(t,e),f=(t,a,e,i)=>(Ae(t,a,\"write to private field\"),i?i.call(t,e):a.set(t,e),e),p=(t,a,e)=>(Ae(t,a,\"access private method\"),e);var Y=class{addEventListener(){}removeEventListener(){}dispatchEvent(a){return!0}};if(typeof DocumentFragment==\"undefined\"){class t extends Y{}globalThis.DocumentFragment=t}var Q=class extends Y{},Ce=class extends Y{},Wt={get(t){},define(t,a,e){},getName(t){return null},upgrade(t){},whenDefined(t){return Promise.resolve(Q)}},J,ke=class{constructor(a,e={}){h(this,J);f(this,J,e==null?void 0:e.detail)}get detail(){return l(this,J)}initCustomEvent(){}};J=new WeakMap;function Zt(t,a){return new Q}var dt={document:{createElement:Zt},DocumentFragment,customElements:Wt,CustomEvent:ke,EventTarget:Y,HTMLElement:Q,HTMLVideoElement:Ce},lt=typeof window==\"undefined\"||typeof globalThis.customElements==\"undefined\",_=lt?dt:globalThis,w=lt?dt.document:globalThis.document;import{MediaController as Ca,MediaErrorDialog as Bt}from\"media-chrome\";import{Attributes as we}from\"media-chrome/dist/media-container.js\";import{MediaStateChangeEvents as Nt,MediaUIAttributes as ve,MediaUIEvents as It}from\"media-chrome/dist/constants.js\";import\"media-chrome/dist/experimental/index.js\";import{MediaError as Ee,Attributes as s}from\"@mux/mux-video/base\";import{StreamTypes as L,PlaybackTypes as Te,addTextTrack as ka,removeTextTrack as _a,CmcdTypeValues as Pt,i18n as B,parseJwt as De,MuxJWTAud as Ue,generatePlayerInitTime as Ra}from\"@mux/playback-core\";import{i18n as qt}from\"@mux/playback-core\";import{StreamTypes as xe,parseJwt as mt}from\"@mux/playback-core\";function ut(t){let a=\"\";return Object.entries(t).forEach(([e,i])=>{i!=null&&(a+=`${me(e)}: ${i}; `)}),a?a.trim():void 0}function me(t){return t.replace(/([a-z])([A-Z])/g,\"$1-$2\").toLowerCase()}function ce(t){return t.replace(/[-_]([a-z])/g,(a,e)=>e.toUpperCase())}function A(t){if(t==null)return;let a=+t;return Number.isNaN(a)?void 0:a}function _e(t){let a=Gt(t).toString();return a?\"?\"+a:\"\"}function Gt(t){let a={};for(let e in t)t[e]!=null&&(a[e]=t[e]);return new URLSearchParams(a)}var Re=(t,a)=>!t||!a?!1:t.contains(a)?!0:Re(t,a.getRootNode().host);var ct=\"mux.com\",jt=()=>{try{return\"3.11.7\"}catch{}return\"UNKNOWN\"},zt=jt(),be=()=>zt,pt=(t,{token:a,customDomain:e=ct,thumbnailTime:i,programTime:r}={})=>{var u;let n=a==null?i:void 0,{aud:d}=(u=mt(a))!=null?u:{};if(!(a&&d!==\"t\"))return`https://image.${e}/${t}/thumbnail.webp${_e({token:a,time:n,program_time:r})}`},bt=(t,{token:a,customDomain:e=ct,programStartTime:i,programEndTime:r}={})=>{var d;let{aud:n}=(d=mt(a))!=null?d:{};if(!(a&&n!==\"s\"))return`https://image.${e}/${t}/storyboard.vtt${_e({token:a,format:\"webp\",program_start_time:i,program_end_time:r})}`},ee=t=>{if(t){if([xe.LIVE,xe.ON_DEMAND].includes(t))return t;if(t!=null&&t.includes(\"live\"))return xe.LIVE}};var Xt={crossorigin:\"crossOrigin\",playsinline:\"playsInline\"};function ht(t){var a;return(a=Xt[t])!=null?a:ce(t)}var D,U,C,pe=class{constructor(a,e){h(this,D);h(this,U);h(this,C,[]);f(this,D,a),f(this,U,e)}[Symbol.iterator](){return l(this,C).values()}get length(){return l(this,C).length}get value(){var a;return(a=l(this,C).join(\" \"))!=null?a:\"\"}set value(a){var e;a!==this.value&&(f(this,C,[]),this.add(...(e=a==null?void 0:a.split(\" \"))!=null?e:[]))}toString(){return this.value}item(a){return l(this,C)[a]}values(){return l(this,C).values()}keys(){return l(this,C).keys()}forEach(a){l(this,C).forEach(a)}add(...a){var e,i;a.forEach(r=>{this.contains(r)||l(this,C).push(r)}),!(this.value===\"\"&&!((e=l(this,D))!=null&&e.hasAttribute(`${l(this,U)}`)))&&((i=l(this,D))==null||i.setAttribute(`${l(this,U)}`,`${this.value}`))}remove(...a){var e;a.forEach(i=>{l(this,C).splice(l(this,C).indexOf(i),1)}),(e=l(this,D))==null||e.setAttribute(`${l(this,U)}`,`${this.value}`)}contains(a){return l(this,C).includes(a)}toggle(a,e){return typeof e!=\"undefined\"?e?(this.add(a),!0):(this.remove(a),!1):this.contains(a)?(this.remove(a),!1):(this.add(a),!0)}replace(a,e){this.remove(a),this.add(e)}};D=new WeakMap,U=new WeakMap,C=new WeakMap;var gt=`[mux-player ${be()}]`;function O(...t){console.warn(gt,...t)}function k(...t){console.error(gt,...t)}function Oe(t){var e;let a=(e=t.message)!=null?e:\"\";t.context&&(a+=` ${t.context}`),t.file&&(a+=` ${qt(\"Read more: \")}\nhttps://github.com/muxinc/elements/blob/main/errors/${t.file}`),O(a)}var y={AUTOPLAY:\"autoplay\",CROSSORIGIN:\"crossorigin\",LOOP:\"loop\",MUTED:\"muted\",PLAYSINLINE:\"playsinline\",PRELOAD:\"preload\"},I={VOLUME:\"volume\",PLAYBACKRATE:\"playbackrate\",MUTED:\"muted\"},ja={...y,...I},yt=Object.freeze({length:0,start(t){let a=t>>>0;if(a>=this.length)throw new DOMException(`Failed to execute 'start' on 'TimeRanges': The index provided (${a}) is greater than or equal to the maximum bound (${this.length}).`);return 0},end(t){let a=t>>>0;if(a>=this.length)throw new DOMException(`Failed to execute 'end' on 'TimeRanges': The index provided (${a}) is greater than or equal to the maximum bound (${this.length}).`);return 0}}),Qt=Object.values(y).filter(t=>y.PLAYSINLINE!==t),Jt=Object.values(I),ea=[...Qt,...Jt],Le=class extends _.HTMLElement{static get observedAttributes(){return ea}constructor(){super()}attributeChangedCallback(a,e,i){var r,n;switch(a){case I.MUTED:{this.media&&(this.media.muted=i!=null,this.media.defaultMuted=i!=null);return}case I.VOLUME:{let d=(r=A(i))!=null?r:1;this.media&&(this.media.volume=d);return}case I.PLAYBACKRATE:{let d=(n=A(i))!=null?n:1;this.media&&(this.media.playbackRate=d,this.media.defaultPlaybackRate=d);return}}}play(){var a,e;return(e=(a=this.media)==null?void 0:a.play())!=null?e:Promise.reject()}pause(){var a;(a=this.media)==null||a.pause()}load(){var a;(a=this.media)==null||a.load()}get media(){var a;return(a=this.shadowRoot)==null?void 0:a.querySelector(\"mux-video\")}get audioTracks(){return this.media.audioTracks}get videoTracks(){return this.media.videoTracks}get audioRenditions(){return this.media.audioRenditions}get videoRenditions(){return this.media.videoRenditions}get paused(){var a,e;return(e=(a=this.media)==null?void 0:a.paused)!=null?e:!0}get duration(){var a,e;return(e=(a=this.media)==null?void 0:a.duration)!=null?e:NaN}get ended(){var a,e;return(e=(a=this.media)==null?void 0:a.ended)!=null?e:!1}get buffered(){var a,e;return(e=(a=this.media)==null?void 0:a.buffered)!=null?e:yt}get seekable(){var a,e;return(e=(a=this.media)==null?void 0:a.seekable)!=null?e:yt}get readyState(){var a,e;return(e=(a=this.media)==null?void 0:a.readyState)!=null?e:0}get videoWidth(){var a,e;return(e=(a=this.media)==null?void 0:a.videoWidth)!=null?e:0}get videoHeight(){var a,e;return(e=(a=this.media)==null?void 0:a.videoHeight)!=null?e:0}get currentSrc(){var a,e;return(e=(a=this.media)==null?void 0:a.currentSrc)!=null?e:\"\"}get currentTime(){var a,e;return(e=(a=this.media)==null?void 0:a.currentTime)!=null?e:0}set currentTime(a){this.media&&(this.media.currentTime=Number(a))}get volume(){var a,e;return(e=(a=this.media)==null?void 0:a.volume)!=null?e:1}set volume(a){this.media&&(this.media.volume=Number(a))}get playbackRate(){var a,e;return(e=(a=this.media)==null?void 0:a.playbackRate)!=null?e:1}set playbackRate(a){this.media&&(this.media.playbackRate=Number(a))}get defaultPlaybackRate(){var a;return(a=A(this.getAttribute(I.PLAYBACKRATE)))!=null?a:1}set defaultPlaybackRate(a){a!=null?this.setAttribute(I.PLAYBACKRATE,`${a}`):this.removeAttribute(I.PLAYBACKRATE)}get crossOrigin(){return te(this,y.CROSSORIGIN)}set crossOrigin(a){this.setAttribute(y.CROSSORIGIN,`${a}`)}get autoplay(){return te(this,y.AUTOPLAY)!=null}set autoplay(a){a?this.setAttribute(y.AUTOPLAY,typeof a==\"string\"?a:\"\"):this.removeAttribute(y.AUTOPLAY)}get loop(){return te(this,y.LOOP)!=null}set loop(a){a?this.setAttribute(y.LOOP,\"\"):this.removeAttribute(y.LOOP)}get muted(){var a,e;return(e=(a=this.media)==null?void 0:a.muted)!=null?e:!1}set muted(a){this.media&&(this.media.muted=!!a)}get defaultMuted(){return te(this,y.MUTED)!=null}set defaultMuted(a){a?this.setAttribute(y.MUTED,\"\"):this.removeAttribute(y.MUTED)}get playsInline(){return te(this,y.PLAYSINLINE)!=null}set playsInline(a){k(\"playsInline is set to true by default and is not currently supported as a setter.\")}get preload(){return this.media?this.media.preload:this.getAttribute(\"preload\")}set preload(a){[\"\",\"none\",\"metadata\",\"auto\"].includes(a)?this.setAttribute(y.PRELOAD,a):this.removeAttribute(y.PRELOAD)}};function te(t,a){return t.media?t.media.getAttribute(a):t.getAttribute(a)}var Me=Le;import\"media-chrome/dist/media-theme-element.js\";var vt=`:host {\n --media-control-display: var(--controls);\n --media-loading-indicator-display: var(--loading-indicator);\n --media-dialog-display: var(--dialog);\n --media-play-button-display: var(--play-button);\n --media-live-button-display: var(--live-button);\n --media-seek-backward-button-display: var(--seek-backward-button);\n --media-seek-forward-button-display: var(--seek-forward-button);\n --media-mute-button-display: var(--mute-button);\n --media-captions-button-display: var(--captions-button);\n --media-captions-menu-button-display: var(--captions-menu-button, var(--media-captions-button-display));\n --media-rendition-menu-button-display: var(--rendition-menu-button);\n --media-audio-track-menu-button-display: var(--audio-track-menu-button);\n --media-airplay-button-display: var(--airplay-button);\n --media-pip-button-display: var(--pip-button);\n --media-fullscreen-button-display: var(--fullscreen-button);\n --media-cast-button-display: var(--cast-button, var(--_cast-button-drm-display));\n --media-playback-rate-button-display: var(--playback-rate-button);\n --media-playback-rate-menu-button-display: var(--playback-rate-menu-button);\n --media-volume-range-display: var(--volume-range);\n --media-time-range-display: var(--time-range);\n --media-time-display-display: var(--time-display);\n --media-duration-display-display: var(--duration-display);\n --media-title-display-display: var(--title-display);\n\n display: inline-block;\n line-height: 0;\n width: 100%;\n}\n\na {\n color: #fff;\n font-size: 0.9em;\n text-decoration: underline;\n}\n\nmedia-theme {\n display: inline-block;\n line-height: 0;\n width: 100%;\n height: 100%;\n direction: ltr;\n}\n\nmedia-poster-image {\n display: inline-block;\n line-height: 0;\n width: 100%;\n height: 100%;\n}\n\nmedia-poster-image:not([src]):not([placeholdersrc]) {\n display: none;\n}\n\n::part(top),\n[part~='top'] {\n --media-control-display: var(--controls, var(--top-controls));\n --media-play-button-display: var(--play-button, var(--top-play-button));\n --media-live-button-display: var(--live-button, var(--top-live-button));\n --media-seek-backward-button-display: var(--seek-backward-button, var(--top-seek-backward-button));\n --media-seek-forward-button-display: var(--seek-forward-button, var(--top-seek-forward-button));\n --media-mute-button-display: var(--mute-button, var(--top-mute-button));\n --media-captions-button-display: var(--captions-button, var(--top-captions-button));\n --media-captions-menu-button-display: var(\n --captions-menu-button,\n var(--media-captions-button-display, var(--top-captions-menu-button))\n );\n --media-rendition-menu-button-display: var(--rendition-menu-button, var(--top-rendition-menu-button));\n --media-audio-track-menu-button-display: var(--audio-track-menu-button, var(--top-audio-track-menu-button));\n --media-airplay-button-display: var(--airplay-button, var(--top-airplay-button));\n --media-pip-button-display: var(--pip-button, var(--top-pip-button));\n --media-fullscreen-button-display: var(--fullscreen-button, var(--top-fullscreen-button));\n --media-cast-button-display: var(--cast-button, var(--top-cast-button, var(--_cast-button-drm-display)));\n --media-playback-rate-button-display: var(--playback-rate-button, var(--top-playback-rate-button));\n --media-playback-rate-menu-button-display: var(\n --captions-menu-button,\n var(--media-playback-rate-button-display, var(--top-playback-rate-menu-button))\n );\n --media-volume-range-display: var(--volume-range, var(--top-volume-range));\n --media-time-range-display: var(--time-range, var(--top-time-range));\n --media-time-display-display: var(--time-display, var(--top-time-display));\n --media-duration-display-display: var(--duration-display, var(--top-duration-display));\n --media-title-display-display: var(--title-display, var(--top-title-display));\n}\n\n::part(center),\n[part~='center'] {\n --media-control-display: var(--controls, var(--center-controls));\n --media-play-button-display: var(--play-button, var(--center-play-button));\n --media-live-button-display: var(--live-button, var(--center-live-button));\n --media-seek-backward-button-display: var(--seek-backward-button, var(--center-seek-backward-button));\n --media-seek-forward-button-display: var(--seek-forward-button, var(--center-seek-forward-button));\n --media-mute-button-display: var(--mute-button, var(--center-mute-button));\n --media-captions-button-display: var(--captions-button, var(--center-captions-button));\n --media-captions-menu-button-display: var(\n --captions-menu-button,\n var(--media-captions-button-display, var(--center-captions-menu-button))\n );\n --media-rendition-menu-button-display: var(--rendition-menu-button, var(--center-rendition-menu-button));\n --media-audio-track-menu-button-display: var(--audio-track-menu-button, var(--center-audio-track-menu-button));\n --media-airplay-button-display: var(--airplay-button, var(--center-airplay-button));\n --media-pip-button-display: var(--pip-button, var(--center-pip-button));\n --media-fullscreen-button-display: var(--fullscreen-button, var(--center-fullscreen-button));\n --media-cast-button-display: var(--cast-button, var(--center-cast-button, var(--_cast-button-drm-display)));\n --media-playback-rate-button-display: var(--playback-rate-button, var(--center-playback-rate-button));\n --media-playback-rate-menu-button-display: var(\n --playback-rate-menu-button,\n var(--media-playback-rate-button-display, var(--center-playback-rate-menu-button))\n );\n --media-volume-range-display: var(--volume-range, var(--center-volume-range));\n --media-time-range-display: var(--time-range, var(--center-time-range));\n --media-time-display-display: var(--time-display, var(--center-time-display));\n --media-duration-display-display: var(--duration-display, var(--center-duration-display));\n}\n\n::part(bottom),\n[part~='bottom'] {\n --media-control-display: var(--controls, var(--bottom-controls));\n --media-play-button-display: var(--play-button, var(--bottom-play-button));\n --media-live-button-display: var(--live-button, var(--bottom-live-button));\n --media-seek-backward-button-display: var(--seek-backward-button, var(--bottom-seek-backward-button));\n --media-seek-forward-button-display: var(--seek-forward-button, var(--bottom-seek-forward-button));\n --media-mute-button-display: var(--mute-button, var(--bottom-mute-button));\n --media-captions-button-display: var(--captions-button, var(--bottom-captions-button));\n --media-captions-menu-button-display: var(\n --captions-menu-button,\n var(--media-captions-button-display, var(--bottom-captions-menu-button))\n );\n --media-rendition-menu-button-display: var(--rendition-menu-button, var(--bottom-rendition-menu-button));\n --media-audio-track-menu-button-display: var(--audio-track-menu-button, var(--bottom-audio-track-menu-button));\n --media-airplay-button-display: var(--airplay-button, var(--bottom-airplay-button));\n --media-pip-button-display: var(--pip-button, var(--bottom-pip-button));\n --media-fullscreen-button-display: var(--fullscreen-button, var(--bottom-fullscreen-button));\n --media-cast-button-display: var(--cast-button, var(--bottom-cast-button, var(--_cast-button-drm-display)));\n --media-playback-rate-button-display: var(--playback-rate-button, var(--bottom-playback-rate-button));\n --media-playback-rate-menu-button-display: var(\n --playback-rate-menu-button,\n var(--media-playback-rate-button-display, var(--bottom-playback-rate-menu-button))\n );\n --media-volume-range-display: var(--volume-range, var(--bottom-volume-range));\n --media-time-range-display: var(--time-range, var(--bottom-time-range));\n --media-time-display-display: var(--time-display, var(--bottom-time-display));\n --media-duration-display-display: var(--duration-display, var(--bottom-duration-display));\n --media-title-display-display: var(--title-display, var(--bottom-title-display));\n}\n\n:host([no-tooltips]) {\n --media-tooltip-display: none;\n}\n`;import{TemplateInstance as aa,ChildNodePart as ge,AttrPart as fe}from\"media-chrome/dist/media-theme-element.js\";var ae=new WeakMap,Ne=class t{constructor(a,e){this.element=a;this.type=e;this.element.addEventListener(this.type,this);let i=ae.get(this.element);i&&i.set(this.type,this)}set(a){if(typeof a==\"function\")this.handleEvent=a.bind(this.element);else if(typeof a==\"object\"&&typeof a.handleEvent==\"function\")this.handleEvent=a.handleEvent.bind(a);else{this.element.removeEventListener(this.type,this);let e=ae.get(this.element);e&&e.delete(this.type)}}static for(a){ae.has(a.element)||ae.set(a.element,new Map);let e=a.attributeName.slice(2),i=ae.get(a.element);return i&&i.has(e)?i.get(e):new t(a.element,e)}};function ia(t,a){return t instanceof fe&&t.attributeName.startsWith(\"on\")?(Ne.for(t).set(a),t.element.removeAttributeNS(t.attributeNamespace,t.attributeName),!0):!1}function ra(t,a){return a instanceof he&&t instanceof ge?(a.renderInto(t),!0):!1}function oa(t,a){return a instanceof DocumentFragment&&t instanceof ge?(a.childNodes.length&&t.replace(...a.childNodes),!0):!1}function na(t,a){if(t instanceof fe){let e=t.attributeNamespace,i=t.element.getAttributeNS(e,t.attributeName);return String(a)!==i&&(t.value=String(a)),!0}return t.value=String(a),!0}function sa(t,a){if(t instanceof fe&&a instanceof Element){let e=t.element;return e[t.attributeName]!==a&&(t.element.removeAttributeNS(t.attributeNamespace,t.attributeName),e[t.attributeName]=a),!0}return!1}function da(t,a){if(typeof a==\"boolean\"&&t instanceof fe){let e=t.attributeNamespace,i=t.element.hasAttributeNS(e,t.attributeName);return a!==i&&(t.booleanValue=a),!0}return!1}function la(t,a){return a===!1&&t instanceof ge?(t.replace(\"\"),!0):!1}function ua(t,a){sa(t,a)||da(t,a)||ia(t,a)||la(t,a)||ra(t,a)||oa(t,a)||na(t,a)}var Se=new Map,Tt=new WeakMap,Et=new WeakMap,he=class{constructor(a,e,i){this.strings=a;this.values=e;this.processor=i;this.stringsKey=this.strings.join(\"\u0001\")}get template(){if(Se.has(this.stringsKey))return Se.get(this.stringsKey);{let a=w.createElement(\"template\"),e=this.strings.length-1;return a.innerHTML=this.strings.reduce((i,r,n)=>i+r+(n<e?`{{ ${n} }}`:\"\"),\"\"),Se.set(this.stringsKey,a),a}}renderInto(a){var r;let e=this.template;if(Tt.get(a)!==e){Tt.set(a,e);let n=new aa(e,this.values,this.processor);Et.set(a,n),a instanceof ge?a.replace(...n.children):a.appendChild(n);return}let i=Et.get(a);(r=i==null?void 0:i.update)==null||r.call(i,this.values)}},ma={processCallback(t,a,e){var i;if(e){for(let[r,n]of a)if(r in e){let d=(i=e[r])!=null?i:\"\";ua(n,d)}}}};function ie(t,...a){return new he(t,a,ma)}function At(t,a){t.renderInto(a)}import{StreamTypes as ca,toMuxVideoURL as Ct}from\"@mux/playback-core\";var pa=t=>{let{tokens:a}=t;return a.drm?\":host(:not([cast-receiver])) { --_cast-button-drm-display: none; }\":\"\"},kt=t=>ie`\n <style>\n ${pa(t)}\n ${vt}\n </style>\n ${fa(t)}\n`,ba=t=>{let a=t.hotKeys?`${t.hotKeys}`:\"\";return ee(t.streamType)===\"live\"&&(a+=\" noarrowleft noarrowright\"),a},ha={TOP:\"top\",CENTER:\"center\",BOTTOM:\"bottom\",LAYER:\"layer\",MEDIA_LAYER:\"media-layer\",POSTER_LAYER:\"poster-layer\",VERTICAL_LAYER:\"vertical-layer\",CENTERED_LAYER:\"centered-layer\",GESTURE_LAYER:\"gesture-layer\",CONTROLLER_LAYER:\"controller\",BUTTON:\"button\",RANGE:\"range\",THUMB:\"thumb\",DISPLAY:\"display\",CONTROL_BAR:\"control-bar\",MENU_BUTTON:\"menu-button\",MENU:\"menu\",MENU_ITEM:\"menu-item\",OPTION:\"option\",POSTER:\"poster\",LIVE:\"live\",PLAY:\"play\",PRE_PLAY:\"pre-play\",SEEK_BACKWARD:\"seek-backward\",SEEK_FORWARD:\"seek-forward\",MUTE:\"mute\",CAPTIONS:\"captions\",AIRPLAY:\"airplay\",PIP:\"pip\",FULLSCREEN:\"fullscreen\",CAST:\"cast\",PLAYBACK_RATE:\"playback-rate\",VOLUME:\"volume\",TIME:\"time\",TITLE:\"title\",AUDIO_TRACK:\"audio-track\",RENDITION:\"rendition\"},ga=Object.values(ha).join(\", \"),fa=t=>{var a,e,i,r,n,d,u,b,R,j,z,E,v,x,F,g,ue,X,q,Ke,$e,Fe,Ye,We,Ze,Ge,je,ze,Xe,qe,Qe,Je,et,tt,at,it,rt,ot,nt;return ie`\n <media-theme\n template=\"${t.themeTemplate||!1}\"\n defaultstreamtype=\"${(a=t.defaultStreamType)!=null?a:!1}\"\n hotkeys=\"${ba(t)||!1}\"\n nohotkeys=\"${t.noHotKeys||!t.hasSrc||!1}\"\n noautoseektolive=\"${!!((e=t.streamType)!=null&&e.includes(ca.LIVE))&&t.targetLiveWindow!==0}\"\n novolumepref=\"${t.novolumepref||!1}\"\n nomutedpref=\"${t.nomutedpref||!1}\"\n disabled=\"${!t.hasSrc||t.isDialogOpen}\"\n audio=\"${(i=t.audio)!=null?i:!1}\"\n style=\"${(r=ut({\"--media-primary-color\":t.primaryColor,\"--media-secondary-color\":t.secondaryColor,\"--media-accent-color\":t.accentColor}))!=null?r:!1}\"\n defaultsubtitles=\"${!t.defaultHiddenCaptions}\"\n forwardseekoffset=\"${(n=t.forwardSeekOffset)!=null?n:!1}\"\n backwardseekoffset=\"${(d=t.backwardSeekOffset)!=null?d:!1}\"\n playbackrates=\"${(u=t.playbackRates)!=null?u:!1}\"\n defaultshowremainingtime=\"${(b=t.defaultShowRemainingTime)!=null?b:!1}\"\n defaultduration=\"${(R=t.defaultDuration)!=null?R:!1}\"\n hideduration=\"${(j=t.hideDuration)!=null?j:!1}\"\n title=\"${(z=t.title)!=null?z:!1}\"\n videotitle=\"${(E=t.videoTitle)!=null?E:!1}\"\n proudlydisplaymuxbadge=\"${(v=t.proudlyDisplayMuxBadge)!=null?v:!1}\"\n exportparts=\"${ga}\"\n onclose=\"${t.onCloseErrorDialog}\"\n onfocusin=\"${t.onFocusInErrorDialog}\"\n >\n <mux-video\n slot=\"media\"\n inert=\"${(x=t.noHotKeys)!=null?x:!1}\"\n target-live-window=\"${(F=t.targetLiveWindow)!=null?F:!1}\"\n stream-type=\"${(g=ee(t.streamType))!=null?g:!1}\"\n crossorigin=\"${(ue=t.crossOrigin)!=null?ue:\"\"}\"\n playsinline\n autoplay=\"${(X=t.autoplay)!=null?X:!1}\"\n muted=\"${(q=t.muted)!=null?q:!1}\"\n loop=\"${(Ke=t.loop)!=null?Ke:!1}\"\n preload=\"${($e=t.preload)!=null?$e:!1}\"\n debug=\"${(Fe=t.debug)!=null?Fe:!1}\"\n prefer-cmcd=\"${(Ye=t.preferCmcd)!=null?Ye:!1}\"\n disable-tracking=\"${(We=t.disableTracking)!=null?We:!1}\"\n disable-cookies=\"${(Ze=t.disableCookies)!=null?Ze:!1}\"\n prefer-playback=\"${(Ge=t.preferPlayback)!=null?Ge:!1}\"\n start-time=\"${t.startTime!=null?t.startTime:!1}\"\n beacon-collection-domain=\"${(je=t.beaconCollectionDomain)!=null?je:!1}\"\n player-init-time=\"${(ze=t.playerInitTime)!=null?ze:!1}\"\n player-software-name=\"${(Xe=t.playerSoftwareName)!=null?Xe:!1}\"\n player-software-version=\"${(qe=t.playerSoftwareVersion)!=null?qe:!1}\"\n env-key=\"${(Qe=t.envKey)!=null?Qe:!1}\"\n custom-domain=\"${(Je=t.customDomain)!=null?Je:!1}\"\n src=\"${t.src?t.src:t.playbackId?Ct(t):!1}\"\n cast-src=\"${t.src?t.src:t.playbackId?Ct(t):!1}\"\n cast-receiver=\"${(et=t.castReceiver)!=null?et:!1}\"\n drm-token=\"${(at=(tt=t.tokens)==null?void 0:tt.drm)!=null?at:!1}\"\n exportparts=\"video\"\n disable-pseudo-ended=\"${(it=t.disablePseudoEnded)!=null?it:!1}\"\n max-auto-resolution=\"${(rt=t.maxAutoResolution)!=null?rt:!1}\"\n cap-rendition-to-player-size=\"${(ot=t.capRenditionToPlayerSize)!=null?ot:!1}\"\n >\n ${t.storyboard?ie`<track label=\"thumbnails\" default kind=\"metadata\" src=\"${t.storyboard}\" />`:ie``}\n <slot></slot>\n </mux-video>\n <slot name=\"poster\" slot=\"poster\">\n <media-poster-image\n part=\"poster\"\n exportparts=\"poster, img\"\n src=\"${t.poster?t.poster:!1}\"\n placeholdersrc=\"${(nt=t.placeholder)!=null?nt:!1}\"\n ></media-poster-image>\n </slot>\n </media-theme>\n`};import{errorCategoryToTokenNameOrPrefix as _t,i18n as T,MediaError as M,MuxErrorCategory as Rt,MuxErrorCode as c}from\"@mux/playback-core\";var xt=t=>t.charAt(0).toUpperCase()+t.slice(1),ya=(t,a=!1)=>{var e,i;if(t.muxCode){let r=xt((e=t.errorCategory)!=null?e:\"video\"),n=_t((i=t.errorCategory)!=null?i:Rt.VIDEO);if(t.muxCode===c.NETWORK_OFFLINE)return T(\"Your device appears to be offline\",a);if(t.muxCode===c.NETWORK_TOKEN_EXPIRED)return T(\"{category} URL has expired\",a).format({category:r});if([c.NETWORK_TOKEN_SUB_MISMATCH,c.NETWORK_TOKEN_AUD_MISMATCH,c.NETWORK_TOKEN_AUD_MISSING,c.NETWORK_TOKEN_MALFORMED].includes(t.muxCode))return T(\"{category} URL is formatted incorrectly\",a).format({category:r});if(t.muxCode===c.NETWORK_TOKEN_MISSING)return T(\"Invalid {categoryName} URL\",a).format({categoryName:n});if(t.muxCode===c.NETWORK_NOT_FOUND)return T(\"{category} does not exist\",a).format({category:r});if(t.muxCode===c.NETWORK_NOT_READY){let d=t.streamType===\"live\"?\"Live stream\":\"Video\";return T(\"{mediaType} is not currently available\",a).format({mediaType:d})}}if(t.code){if(t.code===M.MEDIA_ERR_NETWORK)return T(\"Network Error\",a);if(t.code===M.MEDIA_ERR_DECODE)return T(\"Media Error\",a);if(t.code===M.MEDIA_ERR_SRC_NOT_SUPPORTED)return T(\"Source Not Supported\",a)}return T(\"Error\",a)},va=(t,a=!1)=>{var e,i;if(t.muxCode){let r=xt((e=t.errorCategory)!=null?e:\"video\"),n=_t((i=t.errorCategory)!=null?i:Rt.VIDEO);return t.muxCode===c.NETWORK_OFFLINE?T(\"Check your internet connection and try reloading this video.\",a):t.muxCode===c.NETWORK_TOKEN_EXPIRED?T(\"The video\\u2019s secured {tokenNamePrefix}-token has expired.\",a).format({tokenNamePrefix:n}):t.muxCode===c.NETWORK_TOKEN_SUB_MISMATCH?T(\"The video\\u2019s playback ID does not match the one encoded in the {tokenNamePrefix}-token.\",a).format({tokenNamePrefix:n}):t.muxCode===c.NETWORK_TOKEN_MALFORMED?T(\"{category} URL is formatted incorrectly\",a).format({category:r}):[c.NETWORK_TOKEN_AUD_MISMATCH,c.NETWORK_TOKEN_AUD_MISSING].includes(t.muxCode)?T(\"The {tokenNamePrefix}-token is formatted with incorrect information.\",a).format({tokenNamePrefix:n}):[c.NETWORK_TOKEN_MISSING,c.NETWORK_INVALID_URL].includes(t.muxCode)?T(\"The video URL or {tokenNamePrefix}-token are formatted with incorrect or incomplete information.\",a).format({tokenNamePrefix:n}):t.muxCode===c.NETWORK_NOT_FOUND?\"\":t.message}return t.code&&(t.code===M.MEDIA_ERR_NETWORK||t.code===M.MEDIA_ERR_DECODE||t.code===M.MEDIA_ERR_SRC_NOT_SUPPORTED),t.message},Ot=(t,a=!1)=>{let e=ya(t,a).toString(),i=va(t,a).toString();return{title:e,message:i}},Ta=t=>{if(t.muxCode){if(t.muxCode===c.NETWORK_TOKEN_EXPIRED)return\"403-expired-token.md\";if(t.muxCode===c.NETWORK_TOKEN_MALFORMED)return\"403-malformatted-token.md\";if([c.NETWORK_TOKEN_AUD_MISMATCH,c.NETWORK_TOKEN_AUD_MISSING].includes(t.muxCode))return\"403-incorrect-aud-value.md\";if(t.muxCode===c.NETWORK_TOKEN_SUB_MISMATCH)return\"403-playback-id-mismatch.md\";if(t.muxCode===c.NETWORK_TOKEN_MISSING)return\"missing-signed-tokens.md\";if(t.muxCode===c.NETWORK_NOT_FOUND)return\"404-not-found.md\";if(t.muxCode===c.NETWORK_NOT_READY)return\"412-not-playable.md\"}if(t.code){if(t.code===M.MEDIA_ERR_NETWORK)return\"\";if(t.code===M.MEDIA_ERR_DECODE)return\"media-decode-error.md\";if(t.code===M.MEDIA_ERR_SRC_NOT_SUPPORTED)return\"media-src-not-supported.md\"}return\"\"},Ie=(t,a)=>{let e=Ta(t);return{message:t.message,context:t.context,file:e}};var Lt=`<template id=\"media-theme-gerwig\">\n <style>\n @keyframes pre-play-hide {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n\n 30% {\n transform: scale(0.7);\n }\n\n 100% {\n transform: scale(1.5);\n opacity: 0;\n }\n }\n\n :host {\n --_primary-color: var(--media-primary-color, #fff);\n --_secondary-color: var(--media-secondary-color, transparent);\n --_accent-color: var(--media-accent-color, #fa50b5);\n --_text-color: var(--media-text-color, #000);\n\n --media-icon-color: var(--_primary-color);\n --media-control-background: var(--_secondary-color);\n --media-control-hover-background: var(--_accent-color);\n --media-time-buffered-color: rgba(255, 255, 255, 0.4);\n --media-preview-time-text-shadow: none;\n --media-control-height: 14px;\n --media-control-padding: 6px;\n --media-tooltip-container-margin: 6px;\n --media-tooltip-distance: 18px;\n\n color: var(--_primary-color);\n display: inline-block;\n width: 100%;\n height: 100%;\n }\n\n :host([audio]) {\n --_secondary-color: var(--media-secondary-color, black);\n --media-preview-time-text-shadow: none;\n }\n\n :host([audio]) ::slotted([slot='media']) {\n height: 0px;\n }\n\n :host([audio]) media-loading-indicator {\n display: none;\n }\n\n :host([audio]) media-controller {\n background: transparent;\n }\n\n :host([audio]) media-controller::part(vertical-layer) {\n background: transparent;\n }\n\n :host([audio]) media-control-bar {\n width: 100%;\n background-color: var(--media-control-background);\n }\n\n /*\n * 0.433s is the transition duration for VTT Regions.\n * Borrowed here, so the captions don't move too fast.\n */\n media-controller {\n --media-webkit-text-track-transform: translateY(0) scale(0.98);\n --media-webkit-text-track-transition: transform 0.433s ease-out 0.3s;\n }\n media-controller:is([mediapaused], :not([userinactive])) {\n --media-webkit-text-track-transform: translateY(-50px) scale(0.98);\n --media-webkit-text-track-transition: transform 0.15s ease;\n }\n\n /*\n * CSS specific to iOS devices.\n * See: https://stackoverflow.com/questions/30102792/css-media-query-to-target-only-ios-devices/60220757#60220757\n */\n @supports (-webkit-touch-callout: none) {\n /* Disable subtitle adjusting for iOS Safari */\n media-controller[mediaisfullscreen] {\n --media-webkit-text-track-transform: unset;\n --media-webkit-text-track-transition: unset;\n }\n }\n\n media-time-range {\n --media-box-padding-left: 6px;\n --media-box-padding-right: 6px;\n --media-range-bar-color: var(--_accent-color);\n --media-time-range-buffered-color: var(--_primary-color);\n --media-range-track-color: transparent;\n --media-range-track-background: rgba(255, 255, 255, 0.4);\n --media-range-thumb-background: radial-gradient(\n circle,\n #000 0%,\n #000 25%,\n var(--_accent-color) 25%,\n var(--_accent-color)\n );\n --media-range-thumb-width: 12px;\n --media-range-thumb-height: 12px;\n --media-range-thumb-transform: scale(0);\n --media-range-thumb-transition: transform 0.3s;\n --media-range-thumb-opacity: 1;\n --media-preview-background: var(--_primary-color);\n --media-box-arrow-background: var(--_primary-color);\n --media-preview-thumbnail-border: 5px solid var(--_primary-color);\n --media-preview-border-radius: 5px;\n --media-text-color: var(--_text-color);\n --media-control-hover-background: transparent;\n --media-preview-chapter-text-shadow: none;\n color: var(--_accent-color);\n padding: 0 6px;\n }\n\n :host([audio]) media-time-range {\n --media-preview-time-padding: 1.5px 6px;\n --media-preview-box-margin: 0 0 -5px;\n }\n\n media-time-range:hover {\n --media-range-thumb-transform: scale(1);\n }\n\n media-preview-thumbnail {\n border-bottom-width: 0;\n }\n\n [part~='menu'] {\n border-radius: 2px;\n border: 1px solid rgba(0, 0, 0, 0.1);\n bottom: 50px;\n padding: 2.5px 10px;\n }\n\n [part~='menu']::part(indicator) {\n fill: var(--_accent-color);\n }\n\n [part~='menu']::part(menu-item) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n padding: 6px 10px;\n min-height: 34px;\n }\n\n [part~='menu']::part(checked) {\n font-weight: 700;\n }\n\n media-captions-menu,\n media-rendition-menu,\n media-audio-track-menu,\n media-playback-rate-menu {\n position: absolute; /* ensure they don't take up space in DOM on load */\n --media-menu-background: var(--_primary-color);\n --media-menu-item-checked-background: transparent;\n --media-text-color: var(--_text-color);\n --media-menu-item-hover-background: transparent;\n --media-menu-item-hover-outline: var(--_accent-color) solid 1px;\n }\n\n media-rendition-menu {\n min-width: 140px;\n }\n\n /* The icon is a circle so make it 16px high instead of 14px for more balance. */\n media-audio-track-menu-button {\n --media-control-padding: 5px;\n --media-control-height: 16px;\n }\n\n media-playback-rate-menu-button {\n --media-control-padding: 6px 3px;\n min-width: 4.4ch;\n }\n\n media-playback-rate-menu {\n --media-menu-flex-direction: row;\n --media-menu-item-checked-background: var(--_accent-color);\n --media-menu-item-checked-indicator-display: none;\n margin-right: 6px;\n padding: 0;\n --media-menu-gap: 0.25em;\n }\n\n media-playback-rate-menu[part~='menu']::part(menu-item) {\n padding: 6px 6px 6px 8px;\n }\n\n media-playback-rate-menu[part~='menu']::part(checked) {\n color: #fff;\n }\n\n :host(:not([audio])) media-time-range {\n /* Adding px is required here for calc() */\n --media-range-padding: 0px;\n background: transparent;\n z-index: 10;\n height: 10px;\n bottom: -3px;\n width: 100%;\n }\n\n media-control-bar :is([role='button'], [role='switch'], button) {\n line-height: 0;\n }\n\n media-control-bar :is([part*='button'], [part*='range'], [part*='display']) {\n border-radius: 3px;\n }\n\n .spacer {\n flex-grow: 1;\n background-color: var(--media-control-background, rgba(20, 20, 30, 0.7));\n }\n\n media-control-bar[slot~='top-chrome'] {\n min-height: 42px;\n pointer-events: none;\n }\n\n media-control-bar {\n --gradient-steps:\n hsl(0 0% 0% / 0) 0%, hsl(0 0% 0% / 0.013) 8.1%, hsl(0 0% 0% / 0.049) 15.5%, hsl(0 0% 0% / 0.104) 22.5%,\n hsl(0 0% 0% / 0.175) 29%, hsl(0 0% 0% / 0.259) 35.3%, hsl(0 0% 0% / 0.352) 41.2%, hsl(0 0% 0% / 0.45) 47.1%,\n hsl(0 0% 0% / 0.55) 52.9%, hsl(0 0% 0% / 0.648) 58.8%, hsl(0 0% 0% / 0.741) 64.7%, hsl(0 0% 0% / 0.825) 71%,\n hsl(0 0% 0% / 0.896) 77.5%, hsl(0 0% 0% / 0.951) 84.5%, hsl(0 0% 0% / 0.987) 91.9%, hsl(0 0% 0%) 100%;\n }\n\n :host([title]) media-control-bar[slot='top-chrome']::before,\n :host([videotitle]) media-control-bar[slot='top-chrome']::before {\n content: '';\n position: absolute;\n width: 100%;\n padding-bottom: min(100px, 25%);\n background: linear-gradient(to top, var(--gradient-steps));\n opacity: 0.8;\n pointer-events: none;\n }\n\n :host(:not([audio])) media-control-bar[part~='bottom']::before {\n content: '';\n position: absolute;\n width: 100%;\n bottom: 0;\n left: 0;\n padding-bottom: min(100px, 25%);\n background: linear-gradient(to bottom, var(--gradient-steps));\n opacity: 0.8;\n z-index: 1;\n pointer-events: none;\n }\n\n media-control-bar[part~='bottom'] > * {\n z-index: 20;\n }\n\n media-control-bar[part~='bottom'] {\n padding: 6px 6px;\n }\n\n media-control-bar[slot~='top-chrome'] > * {\n --media-control-background: transparent;\n --media-control-hover-background: transparent;\n position: relative;\n }\n\n media-controller::part(vertical-layer) {\n transition: background-color 1s;\n }\n\n media-controller:is([mediapaused], :not([userinactive]))::part(vertical-layer) {\n background-color: var(--controls-backdrop-color, var(--controls, transparent));\n transition: background-color 0.25s;\n }\n\n .center-controls {\n --media-button-icon-width: 100%;\n --media-button-icon-height: auto;\n --media-tooltip-display: none;\n pointer-events: none;\n width: 100%;\n display: flex;\n flex-flow: row;\n align-items: center;\n justify-content: center;\n paint-order: stroke;\n stroke: rgba(102, 102, 102, 1);\n stroke-width: 0.3px;\n text-shadow:\n 0 0 2px rgb(0 0 0 / 0.25),\n 0 0 6px rgb(0 0 0 / 0.25);\n }\n\n .center-controls media-play-button {\n --media-control-background: transparent;\n --media-control-hover-background: transparent;\n --media-control-padding: 0;\n width: 40px;\n filter: drop-shadow(0 0 2px rgb(0 0 0 / 0.25)) drop-shadow(0 0 6px rgb(0 0 0 / 0.25));\n }\n\n [breakpointsm] .center-controls media-play-button {\n width: 90px;\n height: 90px;\n border-radius: 50%;\n transition: background 0.4s;\n padding: 24px;\n --media-control-background: #000;\n --media-control-hover-background: var(--_accent-color);\n }\n\n .center-controls media-seek-backward-button,\n .center-controls media-seek-forward-button {\n --media-control-background: transparent;\n --media-control-hover-background: transparent;\n padding: 0;\n margin: 0 20px;\n width: max(33px, min(8%, 40px));\n text-shadow:\n 0 0 2px rgb(0 0 0 / 0.25),\n 0 0 6px rgb(0 0 0 / 0.25);\n }\n\n [breakpointsm]:not([audio]) .center-controls.pre-playback {\n display: grid;\n align-items: initial;\n justify-content: initial;\n height: 100%;\n overflow: hidden;\n }\n\n [breakpointsm]:not([audio]) .center-controls.pre-playback media-play-button {\n place-self: var(--_pre-playback-place, center);\n grid-area: 1 / 1;\n margin: 16px;\n }\n\n /* Show and hide controls or pre-playback state */\n\n [breakpointsm]:is([mediahasplayed], :not([mediapaused])):not([audio])\n .center-controls.pre-playback\n media-play-button {\n /* Using \\`forwards\\` would lead to a laggy UI after the animation got in the end state */\n animation: 0.3s linear pre-play-hide;\n opacity: 0;\n pointer-events: none;\n }\n\n .autoplay-unmute {\n --media-control-hover-background: transparent;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n filter: drop-shadow(0 0 2px rgb(0 0 0 / 0.25)) drop-shadow(0 0 6px rgb(0 0 0 / 0.25));\n }\n\n .autoplay-unmute-btn {\n --media-control-height: 16px;\n border-radius: 8px;\n background: #000;\n color: var(--_primary-color);\n display: flex;\n align-items: center;\n padding: 8px 16px;\n font-size: 18px;\n font-weight: 500;\n cursor: pointer;\n }\n\n .autoplay-unmute-btn:hover {\n background: var(--_accent-color);\n }\n\n [breakpointsm] .autoplay-unmute-btn {\n --media-control-height: 30px;\n padding: 14px 24px;\n font-size: 26px;\n }\n\n .autoplay-unmute-btn svg {\n margin: 0 6px 0 0;\n }\n\n [breakpointsm] .autoplay-unmute-btn svg {\n margin: 0 10px 0 0;\n }\n\n media-controller:not([audio]):not([mediahasplayed]) *:is(media-control-bar, media-time-range) {\n display: none;\n }\n\n media-error-dialog:not([mediaerrorcode]) {\n opacity: 0;\n }\n\n media-loading-indicator {\n --media-loading-icon-width: 100%;\n --media-button-icon-height: auto;\n display: var(--media-control-display, var(--media-loading-indicator-display, flex));\n pointer-events: none;\n position: absolute;\n width: min(15%, 150px);\n flex-flow: row;\n align-items: center;\n justify-content: center;\n }\n\n /* Intentionally don't target the div for transition but the children\n of the div. Prevents messing with media-chrome's autohide feature. */\n media-loading-indicator + div * {\n transition: opacity 0.15s;\n opacity: 1;\n }\n\n media-loading-indicator[medialoading]:not([mediapaused]) ~ div > * {\n opacity: 0;\n transition-delay: 400ms;\n }\n\n media-volume-range {\n width: min(100%, 100px);\n --media-range-padding-left: 10px;\n --media-range-padding-right: 10px;\n --media-range-thumb-width: 12px;\n --media-range-thumb-height: 12px;\n --media-range-thumb-background: radial-gradient(\n circle,\n #000 0%,\n #000 25%,\n var(--_primary-color) 25%,\n var(--_primary-color)\n );\n --media-control-hover-background: none;\n }\n\n media-time-display {\n white-space: nowrap;\n }\n\n /* Generic style for explicitly disabled controls */\n media-control-bar[part~='bottom'] [disabled],\n media-control-bar[part~='bottom'] [aria-disabled='true'] {\n opacity: 60%;\n cursor: not-allowed;\n }\n\n media-text-display {\n --media-font-size: 16px;\n --media-control-padding: 14px;\n font-weight: 500;\n }\n\n media-play-button.animated *:is(g, path) {\n transition: all 0.3s;\n }\n\n media-play-button.animated[mediapaused] .pause-icon-pt1 {\n opacity: 0;\n }\n\n media-play-button.animated[mediapaused] .pause-icon-pt2 {\n transform-origin: center center;\n transform: scaleY(0);\n }\n\n media-play-button.animated[mediapaused] .play-icon {\n clip-path: inset(0 0 0 0);\n }\n\n media-play-button.animated:not([mediapaused]) .play-icon {\n clip-path: inset(0 0 0 100%);\n }\n\n media-seek-forward-button,\n media-seek-backward-button {\n --media-font-weight: 400;\n }\n\n .mute-icon {\n display: inline-block;\n }\n\n .mute-icon :is(path, g) {\n transition: opacity 0.5s;\n }\n\n .muted {\n opacity: 0;\n }\n\n media-mute-button[mediavolumelevel='low'] :is(.volume-medium, .volume-high),\n media-mute-button[mediavolumelevel='medium'] :is(.volume-high) {\n opacity: 0;\n }\n\n media-mute-button[mediavolumelevel='off'] .unmuted {\n opacity: 0;\n }\n\n media-mute-button[mediavolumelevel='off'] .muted {\n opacity: 1;\n }\n\n /**\n * Our defaults for these buttons are to hide them at small sizes\n * users can override this with CSS\n */\n media-controller:not([breakpointsm]):not([audio]) {\n --bottom-play-button: none;\n --bottom-seek-backward-button: none;\n --bottom-seek-forward-button: none;\n --bottom-time-display: none;\n --bottom-playback-rate-menu-button: none;\n --bottom-pip-button: none;\n }\n\n [part='mux-badge'] {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n opacity: 0.6;\n transition:\n opacity 0.2s ease-in-out,\n bottom 0.2s ease-in-out;\n }\n\n [part='mux-badge']:hover {\n opacity: 1;\n }\n\n [part='mux-badge'] a {\n font-size: 14px;\n font-family: var(--_font-family);\n color: var(--_primary-color);\n text-decoration: none;\n display: flex;\n align-items: center;\n gap: 5px;\n }\n\n [part='mux-badge'] .mux-badge-text {\n transition: opacity 0.5s ease-in-out;\n opacity: 0;\n }\n\n [part='mux-badge'] .mux-badge-logo {\n width: 40px;\n height: auto;\n display: inline-block;\n }\n\n [part='mux-badge'] .mux-badge-logo svg {\n width: 100%;\n height: 100%;\n fill: white;\n }\n\n media-controller:not([userinactive]):not([mediahasplayed]) [part='mux-badge'],\n media-controller:not([userinactive]) [part='mux-badge'],\n media-controller[mediahasplayed][mediapaused] [part='mux-badge'] {\n transition: bottom 0.1s ease-in-out;\n }\n\n media-controller[userinactive]:not([mediapaused]) [part='mux-badge'] {\n transition: bottom 0.2s ease-in-out 0.62s;\n }\n\n media-controller:not([userinactive]) [part='mux-badge'] .mux-badge-text,\n media-controller[mediahasplayed][mediapaused] [part='mux-badge'] .mux-badge-text {\n opacity: 1;\n }\n\n media-controller[userinactive]:not([mediapaused]) [part='mux-badge'] .mux-badge-text {\n opacity: 0;\n }\n\n media-controller[userinactive]:not([mediapaused]) [part='mux-badge'] {\n bottom: 10px;\n }\n\n media-controller:not([userinactive]):not([mediahasplayed]) [part='mux-badge'] {\n bottom: 10px;\n }\n\n media-controller:not([userinactive])[mediahasplayed] [part='mux-badge'],\n media-controller[mediahasplayed][mediapaused] [part='mux-badge'] {\n bottom: calc(28px + var(--media-control-height, 0px) + var(--media-control-padding, 0px) * 2);\n }\n </style>\n\n <template partial=\"TitleDisplay\">\n <template if=\"videotitle\">\n <template if=\"videotitle != true\">\n <media-text-display part=\"top title display\" class=\"title-display\">{{videotitle}}</media-text-display>\n </template>\n </template>\n <template if=\"!videotitle\">\n <template if=\"title\">\n <media-text-display part=\"top title display\" class=\"title-display\">{{title}}</media-text-display>\n </template>\n </template>\n </template>\n\n <template partial=\"PlayButton\">\n <media-play-button\n part=\"{{section ?? 'bottom'}} play button\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n class=\"animated\"\n >\n <svg aria-hidden=\"true\" viewBox=\"0 0 18 14\" slot=\"icon\">\n <g class=\"play-icon\">\n <path\n d=\"M15.5987 6.2911L3.45577 0.110898C2.83667 -0.204202 2.06287 0.189698 2.06287 0.819798V13.1802C2.06287 13.8103 2.83667 14.2042 3.45577 13.8891L15.5987 7.7089C16.2178 7.3938 16.2178 6.6061 15.5987 6.2911Z\"\n />\n </g>\n <g class=\"pause-icon\">\n <path\n class=\"pause-icon-pt1\"\n d=\"M5.90709 0H2.96889C2.46857 0 2.06299 0.405585 2.06299 0.9059V13.0941C2.06299 13.5944 2.46857 14 2.96889 14H5.90709C6.4074 14 6.81299 13.5944 6.81299 13.0941V0.9059C6.81299 0.405585 6.4074 0 5.90709 0Z\"\n />\n <path\n class=\"pause-icon-pt2\"\n d=\"M15.1571 0H12.2189C11.7186 0 11.313 0.405585 11.313 0.9059V13.0941C11.313 13.5944 11.7186 14 12.2189 14H15.1571C15.6574 14 16.063 13.5944 16.063 13.0941V0.9059C16.063 0.405585 15.6574 0 15.1571 0Z\"\n />\n </g>\n </svg>\n </media-play-button>\n </template>\n\n <template partial=\"PrePlayButton\">\n <media-play-button\n part=\"{{section ?? 'center'}} play button pre-play\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n >\n <svg aria-hidden=\"true\" viewBox=\"0 0 18 14\" slot=\"icon\" style=\"transform: translate(3px, 0)\">\n <path\n d=\"M15.5987 6.2911L3.45577 0.110898C2.83667 -0.204202 2.06287 0.189698 2.06287 0.819798V13.1802C2.06287 13.8103 2.83667 14.2042 3.45577 13.8891L15.5987 7.7089C16.2178 7.3938 16.2178 6.6061 15.5987 6.2911Z\"\n />\n </svg>\n </media-play-button>\n </template>\n\n <template partial=\"SeekBackwardButton\">\n <media-seek-backward-button\n seekoffset=\"{{backwardseekoffset}}\"\n part=\"{{section ?? 'bottom'}} seek-backward button\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n >\n <svg viewBox=\"0 0 22 14\" aria-hidden=\"true\" slot=\"icon\">\n <path\n d=\"M3.65 2.07888L0.0864 6.7279C-0.0288 6.87812 -0.0288 7.12188 0.0864 7.2721L3.65 11.9211C3.7792 12.0896 4 11.9703 4 11.7321V2.26787C4 2.02968 3.7792 1.9104 3.65 2.07888Z\"\n />\n <text transform=\"translate(6 12)\" style=\"font-size: 14px; font-family: 'ArialMT', 'Arial'\">\n {{backwardseekoffset}}\n </text>\n </svg>\n </media-seek-backward-button>\n </template>\n\n <template partial=\"SeekForwardButton\">\n <media-seek-forward-button\n seekoffset=\"{{forwardseekoffset}}\"\n part=\"{{section ?? 'bottom'}} seek-forward button\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n >\n <svg viewBox=\"0 0 22 14\" aria-hidden=\"true\" slot=\"icon\">\n <g>\n <text transform=\"translate(-1 12)\" style=\"font-size: 14px; font-family: 'ArialMT', 'Arial'\">\n {{forwardseekoffset}}\n </text>\n <path\n d=\"M18.35 11.9211L21.9136 7.2721C22.0288 7.12188 22.0288 6.87812 21.9136 6.7279L18.35 2.07888C18.2208 1.91041 18 2.02968 18 2.26787V11.7321C18 11.9703 18.2208 12.0896 18.35 11.9211Z\"\n />\n </g>\n </svg>\n </media-seek-forward-button>\n </template>\n\n <template partial=\"MuteButton\">\n <media-mute-button part=\"bottom mute button\" disabled=\"{{disabled}}\" aria-disabled=\"{{disabled}}\">\n <svg viewBox=\"0 0 18 14\" slot=\"icon\" class=\"mute-icon\" aria-hidden=\"true\">\n <g class=\"unmuted\">\n <path\n d=\"M6.76786 1.21233L3.98606 3.98924H1.19937C0.593146 3.98924 0.101743 4.51375 0.101743 5.1607V6.96412L0 6.99998L0.101743 7.03583V8.83926C0.101743 9.48633 0.593146 10.0108 1.19937 10.0108H3.98606L6.76773 12.7877C7.23561 13.2547 8 12.9007 8 12.2171V1.78301C8 1.09925 7.23574 0.745258 6.76786 1.21233Z\"\n />\n <path\n class=\"volume-low\"\n d=\"M10 3.54781C10.7452 4.55141 11.1393 5.74511 11.1393 6.99991C11.1393 8.25471 10.7453 9.44791 10 10.4515L10.7988 11.0496C11.6734 9.87201 12.1356 8.47161 12.1356 6.99991C12.1356 5.52821 11.6735 4.12731 10.7988 2.94971L10 3.54781Z\"\n />\n <path\n class=\"volume-medium\"\n d=\"M12.3778 2.40086C13.2709 3.76756 13.7428 5.35806 13.7428 7.00026C13.7428 8.64246 13.2709 10.233 12.3778 11.5992L13.2106 12.1484C14.2107 10.6185 14.739 8.83796 14.739 7.00016C14.739 5.16236 14.2107 3.38236 13.2106 1.85156L12.3778 2.40086Z\"\n />\n <path\n class=\"volume-high\"\n d=\"M15.5981 0.75L14.7478 1.2719C15.7937 2.9919 16.3468 4.9723 16.3468 7C16.3468 9.0277 15.7937 11.0082 14.7478 12.7281L15.5981 13.25C16.7398 11.3722 17.343 9.211 17.343 7C17.343 4.789 16.7398 2.6268 15.5981 0.75Z\"\n />\n </g>\n <g class=\"muted\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.39976 4.98924H1.19937C1.19429 4.98924 1.17777 4.98961 1.15296 5.01609C1.1271 5.04369 1.10174 5.09245 1.10174 5.1607V8.83926C1.10174 8.90761 1.12714 8.95641 1.15299 8.984C1.17779 9.01047 1.1943 9.01084 1.19937 9.01084H4.39977L7 11.6066V2.39357L4.39976 4.98924ZM7.47434 1.92006C7.4743 1.9201 7.47439 1.92002 7.47434 1.92006V1.92006ZM6.76773 12.7877L3.98606 10.0108H1.19937C0.593146 10.0108 0.101743 9.48633 0.101743 8.83926V7.03583L0 6.99998L0.101743 6.96412V5.1607C0.101743 4.51375 0.593146 3.98924 1.19937 3.98924H3.98606L6.76786 1.21233C7.23574 0.745258 8 1.09925 8 1.78301V12.2171C8 12.9007 7.23561 13.2547 6.76773 12.7877Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15.2677 9.30323C15.463 9.49849 15.7796 9.49849 15.9749 9.30323C16.1701 9.10796 16.1701 8.79138 15.9749 8.59612L14.2071 6.82841L15.9749 5.06066C16.1702 4.8654 16.1702 4.54882 15.9749 4.35355C15.7796 4.15829 15.4631 4.15829 15.2678 4.35355L13.5 6.1213L11.7322 4.35348C11.537 4.15822 11.2204 4.15822 11.0251 4.35348C10.8298 4.54874 10.8298 4.86532 11.0251 5.06058L12.7929 6.82841L11.0251 8.59619C10.8299 8.79146 10.8299 9.10804 11.0251 9.3033C11.2204 9.49856 11.537 9.49856 11.7323 9.3033L13.5 7.53552L15.2677 9.30323Z\"\n />\n </g>\n </svg>\n </media-mute-button>\n </template>\n\n <template partial=\"PipButton\">\n <media-pip-button part=\"bottom pip button\" disabled=\"{{disabled}}\" aria-disabled=\"{{disabled}}\">\n <svg viewBox=\"0 0 18 14\" aria-hidden=\"true\" slot=\"icon\">\n <path\n d=\"M15.9891 0H2.011C0.9004 0 0 0.9003 0 2.0109V11.989C0 13.0996 0.9004 14 2.011 14H15.9891C17.0997 14 18 13.0997 18 11.9891V2.0109C18 0.9003 17.0997 0 15.9891 0ZM17 11.9891C17 12.5465 16.5465 13 15.9891 13H2.011C1.4536 13 1.0001 12.5465 1.0001 11.9891V2.0109C1.0001 1.4535 1.4536 0.9999 2.011 0.9999H15.9891C16.5465 0.9999 17 1.4535 17 2.0109V11.9891Z\"\n />\n <path\n d=\"M15.356 5.67822H8.19523C8.03253 5.67822 7.90063 5.81012 7.90063 5.97282V11.3836C7.90063 11.5463 8.03253 11.6782 8.19523 11.6782H15.356C15.5187 11.6782 15.6506 11.5463 15.6506 11.3836V5.97282C15.6506 5.81012 15.5187 5.67822 15.356 5.67822Z\"\n />\n </svg>\n </media-pip-button>\n </template>\n\n <template partial=\"CaptionsMenu\">\n <media-captions-menu-button part=\"bottom captions button\">\n <svg aria-hidden=\"true\" viewBox=\"0 0 18 14\" slot=\"on\">\n <path\n d=\"M15.989 0H2.011C0.9004 0 0 0.9003 0 2.0109V11.9891C0 13.0997 0.9004 14 2.011 14H15.989C17.0997 14 18 13.0997 18 11.9891V2.0109C18 0.9003 17.0997 0 15.989 0ZM4.2292 8.7639C4.5954 9.1902 5.0935 9.4031 5.7233 9.4031C6.1852 9.4031 6.5544 9.301 6.8302 9.0969C7.1061 8.8933 7.2863 8.614 7.3702 8.26H8.4322C8.3062 8.884 8.0093 9.3733 7.5411 9.7273C7.0733 10.0813 6.4703 10.2581 5.732 10.2581C5.108 10.2581 4.5699 10.1219 4.1168 9.8489C3.6637 9.5759 3.3141 9.1946 3.0685 8.7058C2.8224 8.2165 2.6994 7.6511 2.6994 7.009C2.6994 6.3611 2.8224 5.7927 3.0685 5.3034C3.3141 4.8146 3.6637 4.4323 4.1168 4.1559C4.5699 3.88 5.108 3.7418 5.732 3.7418C6.4703 3.7418 7.0733 3.922 7.5411 4.2818C8.0094 4.6422 8.3062 5.1461 8.4322 5.794H7.3702C7.2862 5.4283 7.106 5.1368 6.8302 4.921C6.5544 4.7052 6.1852 4.5968 5.7233 4.5968C5.0934 4.5968 4.5954 4.8116 4.2292 5.2404C3.8635 5.6696 3.6804 6.259 3.6804 7.009C3.6804 7.7531 3.8635 8.3381 4.2292 8.7639ZM11.0974 8.7639C11.4636 9.1902 11.9617 9.4031 12.5915 9.4031C13.0534 9.4031 13.4226 9.301 13.6984 9.0969C13.9743 8.8933 14.1545 8.614 14.2384 8.26H15.3004C15.1744 8.884 14.8775 9.3733 14.4093 9.7273C13.9415 10.0813 13.3385 10.2581 12.6002 10.2581C11.9762 10.2581 11.4381 10.1219 10.985 9.8489C10.5319 9.5759 10.1823 9.1946 9.9367 8.7058C9.6906 8.2165 9.5676 7.6511 9.5676 7.009C9.5676 6.3611 9.6906 5.7927 9.9367 5.3034C10.1823 4.8146 10.5319 4.4323 10.985 4.1559C11.4381 3.88 11.9762 3.7418 12.6002 3.7418C13.3385 3.7418 13.9415 3.922 14.4093 4.2818C14.8776 4.6422 15.1744 5.1461 15.3004 5.794H14.2384C14.1544 5.4283 13.9742 5.1368 13.6984 4.921C13.4226 4.7052 13.0534 4.5968 12.5915 4.5968C11.9616 4.5968 11.4636 4.8116 11.0974 5.2404C10.7317 5.6696 10.5486 6.259 10.5486 7.009C10.5486 7.7531 10.7317 8.3381 11.0974 8.7639Z\"\n />\n </svg>\n <svg aria-hidden=\"true\" viewBox=\"0 0 18 14\" slot=\"off\">\n <path\n d=\"M5.73219 10.258C5.10819 10.258 4.57009 10.1218 4.11699 9.8488C3.66389 9.5758 3.31429 9.1945 3.06869 8.7057C2.82259 8.2164 2.69958 7.651 2.69958 7.0089C2.69958 6.361 2.82259 5.7926 3.06869 5.3033C3.31429 4.8145 3.66389 4.4322 4.11699 4.1558C4.57009 3.8799 5.10819 3.7417 5.73219 3.7417C6.47049 3.7417 7.07348 3.9219 7.54128 4.2817C8.00958 4.6421 8.30638 5.146 8.43238 5.7939H7.37039C7.28639 5.4282 7.10618 5.1367 6.83039 4.9209C6.55459 4.7051 6.18538 4.5967 5.72348 4.5967C5.09358 4.5967 4.59559 4.8115 4.22939 5.2403C3.86369 5.6695 3.68058 6.2589 3.68058 7.0089C3.68058 7.753 3.86369 8.338 4.22939 8.7638C4.59559 9.1901 5.09368 9.403 5.72348 9.403C6.18538 9.403 6.55459 9.3009 6.83039 9.0968C7.10629 8.8932 7.28649 8.6139 7.37039 8.2599H8.43238C8.30638 8.8839 8.00948 9.3732 7.54128 9.7272C7.07348 10.0812 6.47049 10.258 5.73219 10.258Z\"\n />\n <path\n d=\"M12.6003 10.258C11.9763 10.258 11.4382 10.1218 10.9851 9.8488C10.532 9.5758 10.1824 9.1945 9.93685 8.7057C9.69075 8.2164 9.56775 7.651 9.56775 7.0089C9.56775 6.361 9.69075 5.7926 9.93685 5.3033C10.1824 4.8145 10.532 4.4322 10.9851 4.1558C11.4382 3.8799 11.9763 3.7417 12.6003 3.7417C13.3386 3.7417 13.9416 3.9219 14.4094 4.2817C14.8777 4.6421 15.1745 5.146 15.3005 5.7939H14.2385C14.1545 5.4282 13.9743 5.1367 13.6985 4.9209C13.4227 4.7051 13.0535 4.5967 12.5916 4.5967C11.9617 4.5967 11.4637 4.8115 11.0975 5.2403C10.7318 5.6695 10.5487 6.2589 10.5487 7.0089C10.5487 7.753 10.7318 8.338 11.0975 8.7638C11.4637 9.1901 11.9618 9.403 12.5916 9.403C13.0535 9.403 13.4227 9.3009 13.6985 9.0968C13.9744 8.8932 14.1546 8.6139 14.2385 8.2599H15.3005C15.1745 8.8839 14.8776 9.3732 14.4094 9.7272C13.9416 10.0812 13.3386 10.258 12.6003 10.258Z\"\n />\n <path\n d=\"M15.9891 1C16.5465 1 17 1.4535 17 2.011V11.9891C17 12.5465 16.5465 13 15.9891 13H2.0109C1.4535 13 1 12.5465 1 11.9891V2.0109C1 1.4535 1.4535 0.9999 2.0109 0.9999L15.9891 1ZM15.9891 0H2.0109C0.9003 0 0 0.9003 0 2.0109V11.9891C0 13.0997 0.9003 14 2.0109 14H15.9891C17.0997 14 18 13.0997 18 11.9891V2.0109C18 0.9003 17.0997 0 15.9891 0Z\"\n />\n </svg>\n </media-captions-menu-button>\n <media-captions-menu\n hidden\n anchor=\"auto\"\n part=\"bottom captions menu\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n exportparts=\"menu-item\"\n >\n <div slot=\"checked-indicator\">\n <style>\n .indicator {\n position: relative;\n top: 1px;\n width: 0.9em;\n height: auto;\n fill: var(--_accent-color);\n margin-right: 5px;\n }\n\n [aria-checked='false'] .indicator {\n display: none;\n }\n </style>\n <svg viewBox=\"0 0 14 18\" class=\"indicator\">\n <path\n d=\"M12.252 3.48c-.115.033-.301.161-.425.291-.059.063-1.407 1.815-2.995 3.894s-2.897 3.79-2.908 3.802c-.013.014-.661-.616-1.672-1.624-.908-.905-1.702-1.681-1.765-1.723-.401-.27-.783-.211-1.176.183a1.285 1.285 0 0 0-.261.342.582.582 0 0 0-.082.35c0 .165.01.205.08.35.075.153.213.296 2.182 2.271 1.156 1.159 2.17 2.159 2.253 2.222.189.143.338.196.539.194.203-.003.412-.104.618-.299.205-.193 6.7-8.693 6.804-8.903a.716.716 0 0 0 .085-.345c.01-.179.005-.203-.062-.339-.124-.252-.45-.531-.746-.639a.784.784 0 0 0-.469-.027\"\n fill-rule=\"evenodd\"\n />\n </svg></div\n ></media-captions-menu>\n </template>\n\n <template partial=\"AirplayButton\">\n <media-airplay-button part=\"bottom airplay button\" disabled=\"{{disabled}}\" aria-disabled=\"{{disabled}}\">\n <svg viewBox=\"0 0 18 14\" aria-hidden=\"true\" slot=\"icon\">\n <path\n d=\"M16.1383 0H1.8618C0.8335 0 0 0.8335 0 1.8617V10.1382C0 11.1664 0.8335 12 1.8618 12H3.076C3.1204 11.9433 3.1503 11.8785 3.2012 11.826L4.004 11H1.8618C1.3866 11 1 10.6134 1 10.1382V1.8617C1 1.3865 1.3866 0.9999 1.8618 0.9999H16.1383C16.6135 0.9999 17.0001 1.3865 17.0001 1.8617V10.1382C17.0001 10.6134 16.6135 11 16.1383 11H13.9961L14.7989 11.826C14.8499 11.8785 14.8798 11.9432 14.9241 12H16.1383C17.1665 12 18.0001 11.1664 18.0001 10.1382V1.8617C18 0.8335 17.1665 0 16.1383 0Z\"\n />\n <path\n d=\"M9.55061 8.21903C9.39981 8.06383 9.20001 7.98633 9.00011 7.98633C8.80021 7.98633 8.60031 8.06383 8.44951 8.21903L4.09771 12.697C3.62471 13.1838 3.96961 13.9998 4.64831 13.9998H13.3518C14.0304 13.9998 14.3754 13.1838 13.9023 12.697L9.55061 8.21903Z\"\n />\n </svg>\n </media-airplay-button>\n </template>\n\n <template partial=\"FullscreenButton\">\n <media-fullscreen-button part=\"bottom fullscreen button\" disabled=\"{{disabled}}\" aria-disabled=\"{{disabled}}\">\n <svg viewBox=\"0 0 18 14\" aria-hidden=\"true\" slot=\"enter\">\n <path\n d=\"M1.00745 4.39539L1.01445 1.98789C1.01605 1.43049 1.47085 0.978289 2.02835 0.979989L6.39375 0.992589L6.39665 -0.007411L2.03125 -0.020011C0.920646 -0.023211 0.0176463 0.874489 0.0144463 1.98509L0.00744629 4.39539H1.00745Z\"\n />\n <path\n d=\"M17.0144 2.03431L17.0076 4.39541H18.0076L18.0144 2.03721C18.0176 0.926712 17.1199 0.0237125 16.0093 0.0205125L11.6439 0.0078125L11.641 1.00781L16.0064 1.02041C16.5638 1.02201 17.016 1.47681 17.0144 2.03431Z\"\n />\n <path\n d=\"M16.9925 9.60498L16.9855 12.0124C16.9839 12.5698 16.5291 13.022 15.9717 13.0204L11.6063 13.0078L11.6034 14.0078L15.9688 14.0204C17.0794 14.0236 17.9823 13.1259 17.9855 12.0153L17.9925 9.60498H16.9925Z\"\n />\n <path\n d=\"M0.985626 11.9661L0.992426 9.60498H-0.0074737L-0.0142737 11.9632C-0.0174737 13.0738 0.880226 13.9767 1.99083 13.98L6.35623 13.9926L6.35913 12.9926L1.99373 12.98C1.43633 12.9784 0.983926 12.5236 0.985626 11.9661Z\"\n />\n </svg>\n <svg viewBox=\"0 0 18 14\" aria-hidden=\"true\" slot=\"exit\">\n <path\n d=\"M5.39655 -0.0200195L5.38955 2.38748C5.38795 2.94488 4.93315 3.39708 4.37565 3.39538L0.0103463 3.38278L0.00744629 4.38278L4.37285 4.39538C5.48345 4.39858 6.38635 3.50088 6.38965 2.39028L6.39665 -0.0200195H5.39655Z\"\n />\n <path\n d=\"M12.6411 2.36891L12.6479 0.0078125H11.6479L11.6411 2.36601C11.6379 3.47651 12.5356 4.37951 13.6462 4.38271L18.0116 4.39531L18.0145 3.39531L13.6491 3.38271C13.0917 3.38111 12.6395 2.92641 12.6411 2.36891Z\"\n />\n <path\n d=\"M12.6034 14.0204L12.6104 11.613C12.612 11.0556 13.0668 10.6034 13.6242 10.605L17.9896 10.6176L17.9925 9.61759L13.6271 9.60499C12.5165 9.60179 11.6136 10.4995 11.6104 11.6101L11.6034 14.0204H12.6034Z\"\n />\n <path\n d=\"M5.359 11.6315L5.3522 13.9926H6.3522L6.359 11.6344C6.3622 10.5238 5.4645 9.62088 4.3539 9.61758L-0.0115043 9.60498L-0.0144043 10.605L4.351 10.6176C4.9084 10.6192 5.3607 11.074 5.359 11.6315Z\"\n />\n </svg>\n </media-fullscreen-button>\n </template>\n\n <template partial=\"CastButton\">\n <media-cast-button part=\"bottom cast button\" disabled=\"{{disabled}}\" aria-disabled=\"{{disabled}}\">\n <svg viewBox=\"0 0 18 14\" aria-hidden=\"true\" slot=\"enter\">\n <path\n d=\"M16.0072 0H2.0291C0.9185 0 0.0181 0.9003 0.0181 2.011V5.5009C0.357 5.5016 0.6895 5.5275 1.0181 5.5669V2.011C1.0181 1.4536 1.4716 1 2.029 1H16.0072C16.5646 1 17.0181 1.4536 17.0181 2.011V11.9891C17.0181 12.5465 16.5646 13 16.0072 13H8.4358C8.4746 13.3286 8.4999 13.6611 8.4999 13.9999H16.0071C17.1177 13.9999 18.018 13.0996 18.018 11.989V2.011C18.0181 0.9003 17.1178 0 16.0072 0ZM0 6.4999V7.4999C3.584 7.4999 6.5 10.4159 6.5 13.9999H7.5C7.5 9.8642 4.1357 6.4999 0 6.4999ZM0 8.7499V9.7499C2.3433 9.7499 4.25 11.6566 4.25 13.9999H5.25C5.25 11.1049 2.895 8.7499 0 8.7499ZM0.0181 11V14H3.0181C3.0181 12.3431 1.675 11 0.0181 11Z\"\n />\n </svg>\n <svg viewBox=\"0 0 18 14\" aria-hidden=\"true\" slot=\"exit\">\n <path\n d=\"M15.9891 0H2.01103C0.900434 0 3.35947e-05 0.9003 3.35947e-05 2.011V5.5009C0.338934 5.5016 0.671434 5.5275 1.00003 5.5669V2.011C1.00003 1.4536 1.45353 1 2.01093 1H15.9891C16.5465 1 17 1.4536 17 2.011V11.9891C17 12.5465 16.5465 13 15.9891 13H8.41773C8.45653 13.3286 8.48183 13.6611 8.48183 13.9999H15.989C17.0996 13.9999 17.9999 13.0996 17.9999 11.989V2.011C18 0.9003 17.0997 0 15.9891 0ZM-0.0180664 6.4999V7.4999C3.56593 7.4999 6.48193 10.4159 6.48193 13.9999H7.48193C7.48193 9.8642 4.11763 6.4999 -0.0180664 6.4999ZM-0.0180664 8.7499V9.7499C2.32523 9.7499 4.23193 11.6566 4.23193 13.9999H5.23193C5.23193 11.1049 2.87693 8.7499 -0.0180664 8.7499ZM3.35947e-05 11V14H3.00003C3.00003 12.3431 1.65693 11 3.35947e-05 11Z\"\n />\n <path d=\"M2.15002 5.634C5.18352 6.4207 7.57252 8.8151 8.35282 11.8499H15.8501V2.1499H2.15002V5.634Z\" />\n </svg>\n </media-cast-button>\n </template>\n\n <template partial=\"LiveButton\">\n <media-live-button part=\"{{section ?? 'top'}} live button\" disabled=\"{{disabled}}\" aria-disabled=\"{{disabled}}\">\n <span slot=\"text\">Live</span>\n </media-live-button>\n </template>\n\n <template partial=\"PlaybackRateMenu\">\n <media-playback-rate-menu-button part=\"bottom playback-rate button\"></media-playback-rate-menu-button>\n <media-playback-rate-menu\n hidden\n anchor=\"auto\"\n rates=\"{{playbackrates}}\"\n exportparts=\"menu-item\"\n part=\"bottom playback-rate menu\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n ></media-playback-rate-menu>\n </template>\n\n <template partial=\"VolumeRange\">\n <media-volume-range\n part=\"bottom volume range\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n ></media-volume-range>\n </template>\n\n <template partial=\"TimeDisplay\">\n <media-time-display\n remaining=\"{{defaultshowremainingtime}}\"\n showduration=\"{{!hideduration}}\"\n part=\"bottom time display\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n ></media-time-display>\n </template>\n\n <template partial=\"TimeRange\">\n <media-time-range part=\"bottom time range\" disabled=\"{{disabled}}\" aria-disabled=\"{{disabled}}\" exportparts=\"thumb\">\n <media-preview-thumbnail slot=\"preview\"></media-preview-thumbnail>\n <media-preview-chapter-display slot=\"preview\"></media-preview-chapter-display>\n <media-preview-time-display slot=\"preview\"></media-preview-time-display>\n <div slot=\"preview\" part=\"arrow\"></div>\n </media-time-range>\n </template>\n\n <template partial=\"AudioTrackMenu\">\n <media-audio-track-menu-button part=\"bottom audio-track button\">\n <svg aria-hidden=\"true\" slot=\"icon\" viewBox=\"0 0 18 16\">\n <path d=\"M9 15A7 7 0 1 1 9 1a7 7 0 0 1 0 14Zm0 1A8 8 0 1 0 9 0a8 8 0 0 0 0 16Z\" />\n <path\n d=\"M5.2 6.3a.5.5 0 0 1 .5.5v2.4a.5.5 0 1 1-1 0V6.8a.5.5 0 0 1 .5-.5Zm2.4-2.4a.5.5 0 0 1 .5.5v7.2a.5.5 0 0 1-1 0V4.4a.5.5 0 0 1 .5-.5ZM10 5.5a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm2.4-.8a.5.5 0 0 1 .5.5v5.6a.5.5 0 0 1-1 0V5.2a.5.5 0 0 1 .5-.5Z\"\n />\n </svg>\n </media-audio-track-menu-button>\n <media-audio-track-menu\n hidden\n anchor=\"auto\"\n part=\"bottom audio-track menu\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n exportparts=\"menu-item\"\n >\n <div slot=\"checked-indicator\">\n <style>\n .indicator {\n position: relative;\n top: 1px;\n width: 0.9em;\n height: auto;\n fill: var(--_accent-color);\n margin-right: 5px;\n }\n\n [aria-checked='false'] .indicator {\n display: none;\n }\n </style>\n <svg viewBox=\"0 0 14 18\" class=\"indicator\">\n <path\n d=\"M12.252 3.48c-.115.033-.301.161-.425.291-.059.063-1.407 1.815-2.995 3.894s-2.897 3.79-2.908 3.802c-.013.014-.661-.616-1.672-1.624-.908-.905-1.702-1.681-1.765-1.723-.401-.27-.783-.211-1.176.183a1.285 1.285 0 0 0-.261.342.582.582 0 0 0-.082.35c0 .165.01.205.08.35.075.153.213.296 2.182 2.271 1.156 1.159 2.17 2.159 2.253 2.222.189.143.338.196.539.194.203-.003.412-.104.618-.299.205-.193 6.7-8.693 6.804-8.903a.716.716 0 0 0 .085-.345c.01-.179.005-.203-.062-.339-.124-.252-.45-.531-.746-.639a.784.784 0 0 0-.469-.027\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </div>\n </media-audio-track-menu>\n </template>\n\n <template partial=\"RenditionMenu\">\n <media-rendition-menu-button part=\"bottom rendition button\">\n <svg aria-hidden=\"true\" slot=\"icon\" viewBox=\"0 0 18 14\">\n <path\n d=\"M2.25 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4ZM9 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm6.75 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z\"\n />\n </svg>\n </media-rendition-menu-button>\n <media-rendition-menu\n hidden\n anchor=\"auto\"\n part=\"bottom rendition menu\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n >\n <div slot=\"checked-indicator\">\n <style>\n .indicator {\n position: relative;\n top: 1px;\n width: 0.9em;\n height: auto;\n fill: var(--_accent-color);\n margin-right: 5px;\n }\n\n [aria-checked='false'] .indicator {\n opacity: 0;\n }\n </style>\n <svg viewBox=\"0 0 14 18\" class=\"indicator\">\n <path\n d=\"M12.252 3.48c-.115.033-.301.161-.425.291-.059.063-1.407 1.815-2.995 3.894s-2.897 3.79-2.908 3.802c-.013.014-.661-.616-1.672-1.624-.908-.905-1.702-1.681-1.765-1.723-.401-.27-.783-.211-1.176.183a1.285 1.285 0 0 0-.261.342.582.582 0 0 0-.082.35c0 .165.01.205.08.35.075.153.213.296 2.182 2.271 1.156 1.159 2.17 2.159 2.253 2.222.189.143.338.196.539.194.203-.003.412-.104.618-.299.205-.193 6.7-8.693 6.804-8.903a.716.716 0 0 0 .085-.345c.01-.179.005-.203-.062-.339-.124-.252-.45-.531-.746-.639a.784.784 0 0 0-.469-.027\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </div>\n </media-rendition-menu>\n </template>\n\n <template partial=\"MuxBadge\">\n <div part=\"mux-badge\">\n <a href=\"https://www.mux.com/player\" target=\"_blank\">\n <span class=\"mux-badge-text\">Powered by</span>\n <div class=\"mux-badge-logo\">\n <svg\n viewBox=\"0 0 1600 500\"\n style=\"fill-rule: evenodd; clip-rule: evenodd; stroke-linejoin: round; stroke-miterlimit: 2\"\n >\n <g>\n <path\n d=\"M994.287,93.486c-17.121,-0 -31,-13.879 -31,-31c0,-17.121 13.879,-31 31,-31c17.121,-0 31,13.879 31,31c0,17.121 -13.879,31 -31,31m0,-93.486c-34.509,-0 -62.484,27.976 -62.484,62.486l0,187.511c0,68.943 -56.09,125.033 -125.032,125.033c-68.942,-0 -125.03,-56.09 -125.03,-125.033l0,-187.511c0,-34.51 -27.976,-62.486 -62.485,-62.486c-34.509,-0 -62.484,27.976 -62.484,62.486l0,187.511c0,137.853 112.149,250.003 249.999,250.003c137.851,-0 250.001,-112.15 250.001,-250.003l0,-187.511c0,-34.51 -27.976,-62.486 -62.485,-62.486\"\n style=\"fill-rule: nonzero\"\n ></path>\n <path\n d=\"M1537.51,468.511c-17.121,-0 -31,-13.879 -31,-31c0,-17.121 13.879,-31 31,-31c17.121,-0 31,13.879 31,31c0,17.121 -13.879,31 -31,31m-275.883,-218.509l-143.33,143.329c-24.402,24.402 -24.402,63.966 0,88.368c24.402,24.402 63.967,24.402 88.369,-0l143.33,-143.329l143.328,143.329c24.402,24.4 63.967,24.402 88.369,-0c24.403,-24.402 24.403,-63.966 0.001,-88.368l-143.33,-143.329l0.001,-0.004l143.329,-143.329c24.402,-24.402 24.402,-63.965 0,-88.367c-24.402,-24.402 -63.967,-24.402 -88.369,-0l-143.329,143.328l-143.329,-143.328c-24.402,-24.401 -63.967,-24.402 -88.369,-0c-24.402,24.402 -24.402,63.965 0,88.367l143.329,143.329l0,0.004Z\"\n style=\"fill-rule: nonzero\"\n ></path>\n <path\n d=\"M437.511,468.521c-17.121,-0 -31,-13.879 -31,-31c0,-17.121 13.879,-31 31,-31c17.121,-0 31,13.879 31,31c0,17.121 -13.879,31 -31,31m23.915,-463.762c-23.348,-9.672 -50.226,-4.327 -68.096,13.544l-143.331,143.329l-143.33,-143.329c-17.871,-17.871 -44.747,-23.216 -68.096,-13.544c-23.349,9.671 -38.574,32.455 -38.574,57.729l0,375.026c0,34.51 27.977,62.486 62.487,62.486c34.51,-0 62.486,-27.976 62.486,-62.486l0,-224.173l80.843,80.844c24.404,24.402 63.965,24.402 88.369,-0l80.843,-80.844l0,224.173c0,34.51 27.976,62.486 62.486,62.486c34.51,-0 62.486,-27.976 62.486,-62.486l0,-375.026c0,-25.274 -15.224,-48.058 -38.573,-57.729\"\n style=\"fill-rule: nonzero\"\n ></path>\n </g>\n </svg>\n </div>\n </a>\n </div>\n </template>\n\n <media-controller\n part=\"controller\"\n defaultstreamtype=\"{{defaultstreamtype ?? 'on-demand'}}\"\n breakpoints=\"sm:470\"\n gesturesdisabled=\"{{disabled}}\"\n hotkeys=\"{{hotkeys}}\"\n nohotkeys=\"{{nohotkeys}}\"\n novolumepref=\"{{novolumepref}}\"\n audio=\"{{audio}}\"\n noautoseektolive=\"{{noautoseektolive}}\"\n defaultsubtitles=\"{{defaultsubtitles}}\"\n defaultduration=\"{{defaultduration ?? false}}\"\n keyboardforwardseekoffset=\"{{forwardseekoffset}}\"\n keyboardbackwardseekoffset=\"{{backwardseekoffset}}\"\n exportparts=\"layer, media-layer, poster-layer, vertical-layer, centered-layer, gesture-layer\"\n style=\"--_pre-playback-place:{{preplaybackplace ?? 'center'}}\"\n >\n <slot name=\"media\" slot=\"media\"></slot>\n <slot name=\"poster\" slot=\"poster\"></slot>\n\n <media-loading-indicator slot=\"centered-chrome\" noautohide></media-loading-indicator>\n\n <template if=\"!audio\">\n <media-error-dialog slot=\"dialog\" noautohide></media-error-dialog>\n <!-- Pre-playback UI -->\n <!-- same for both on-demand and live -->\n <div slot=\"centered-chrome\" class=\"center-controls pre-playback\">\n <template if=\"!breakpointsm\">{{>PlayButton section=\"center\"}}</template>\n <template if=\"breakpointsm\">{{>PrePlayButton section=\"center\"}}</template>\n </div>\n\n <!-- Mux Badge -->\n <template if=\"proudlydisplaymuxbadge\"> {{>MuxBadge}} </template>\n\n <!-- Autoplay centered unmute button -->\n <!--\n todo: figure out how show this with available state variables\n needs to show when:\n - autoplay is enabled\n - playback has been successful\n - audio is muted\n - in place / instead of the pre-plaback play button\n - not to show again after user has interacted with this button\n - OR user has interacted with the mute button in the control bar\n -->\n <!--\n There should be a >MuteButton to the left of the \"Unmute\" text, but a templating bug\n makes it appear even if commented out in the markup, add it back when code is un-commented\n -->\n <!-- <div slot=\"centered-chrome\" class=\"autoplay-unmute\">\n <div role=\"button\" class=\"autoplay-unmute-btn\">Unmute</div>\n </div> -->\n\n <template if=\"streamtype == 'on-demand'\">\n <template if=\"breakpointsm\">\n <media-control-bar part=\"control-bar top\" slot=\"top-chrome\">{{>TitleDisplay}} </media-control-bar>\n </template>\n {{>TimeRange}}\n <media-control-bar part=\"control-bar bottom\">\n {{>PlayButton}} {{>SeekBackwardButton}} {{>SeekForwardButton}} {{>TimeDisplay}} {{>MuteButton}}\n {{>VolumeRange}}\n <div class=\"spacer\"></div>\n {{>RenditionMenu}} {{>PlaybackRateMenu}} {{>AudioTrackMenu}} {{>CaptionsMenu}} {{>AirplayButton}}\n {{>CastButton}} {{>PipButton}} {{>FullscreenButton}}\n </media-control-bar>\n </template>\n\n <template if=\"streamtype == 'live'\">\n <media-control-bar part=\"control-bar top\" slot=\"top-chrome\">\n {{>LiveButton}}\n <template if=\"breakpointsm\"> {{>TitleDisplay}} </template>\n </media-control-bar>\n <template if=\"targetlivewindow > 0\">{{>TimeRange}}</template>\n <media-control-bar part=\"control-bar bottom\">\n {{>PlayButton}}\n <template if=\"targetlivewindow > 0\">{{>SeekBackwardButton}} {{>SeekForwardButton}}</template>\n {{>MuteButton}} {{>VolumeRange}}\n <div class=\"spacer\"></div>\n {{>RenditionMenu}} {{>AudioTrackMenu}} {{>CaptionsMenu}} {{>AirplayButton}} {{>CastButton}} {{>PipButton}}\n {{>FullscreenButton}}\n </media-control-bar>\n </template>\n </template>\n\n <template if=\"audio\">\n <template if=\"streamtype == 'on-demand'\">\n <template if=\"title\">\n <media-control-bar part=\"control-bar top\">{{>TitleDisplay}}</media-control-bar>\n </template>\n <media-control-bar part=\"control-bar bottom\">\n {{>PlayButton}}\n <template if=\"breakpointsm\"> {{>SeekBackwardButton}} {{>SeekForwardButton}} </template>\n {{>MuteButton}}\n <template if=\"breakpointsm\">{{>VolumeRange}}</template>\n {{>TimeDisplay}} {{>TimeRange}}\n <template if=\"breakpointsm\">{{>PlaybackRateMenu}}</template>\n {{>AirplayButton}} {{>CastButton}}\n </media-control-bar>\n </template>\n\n <template if=\"streamtype == 'live'\">\n <template if=\"title\">\n <media-control-bar part=\"control-bar top\">{{>TitleDisplay}}</media-control-bar>\n </template>\n <media-control-bar part=\"control-bar bottom\">\n {{>PlayButton}} {{>LiveButton section=\"bottom\"}} {{>MuteButton}}\n <template if=\"breakpointsm\">\n {{>VolumeRange}}\n <template if=\"targetlivewindow > 0\"> {{>SeekBackwardButton}} {{>SeekForwardButton}} </template>\n </template>\n <template if=\"targetlivewindow > 0\"> {{>TimeDisplay}} {{>TimeRange}} </template>\n <template if=\"!targetlivewindow\"><div class=\"spacer\"></div></template>\n {{>AirplayButton}} {{>CastButton}}\n </media-control-bar>\n </template>\n </template>\n\n <slot></slot>\n </media-controller>\n</template>\n`;import{MediaThemeElement as Aa}from\"media-chrome/dist/media-theme-element.js\";import\"media-chrome/dist/menu\";var Pe=w.createElement(\"template\");\"innerHTML\"in Pe&&(Pe.innerHTML=Lt);var Mt,St,ye=class extends Aa{};ye.template=(St=(Mt=Pe.content)==null?void 0:Mt.children)==null?void 0:St[0];_.customElements.get(\"media-theme-gerwig\")||_.customElements.define(\"media-theme-gerwig\",ye);var xa=\"gerwig\",S={SRC:\"src\",POSTER:\"poster\"},o={STYLE:\"style\",DEFAULT_HIDDEN_CAPTIONS:\"default-hidden-captions\",PRIMARY_COLOR:\"primary-color\",SECONDARY_COLOR:\"secondary-color\",ACCENT_COLOR:\"accent-color\",FORWARD_SEEK_OFFSET:\"forward-seek-offset\",BACKWARD_SEEK_OFFSET:\"backward-seek-offset\",PLAYBACK_TOKEN:\"playback-token\",THUMBNAIL_TOKEN:\"thumbnail-token\",STORYBOARD_TOKEN:\"storyboard-token\",FULLSCREEN_ELEMENT:\"fullscreen-element\",DRM_TOKEN:\"drm-token\",STORYBOARD_SRC:\"storyboard-src\",THUMBNAIL_TIME:\"thumbnail-time\",AUDIO:\"audio\",NOHOTKEYS:\"nohotkeys\",HOTKEYS:\"hotkeys\",PLAYBACK_RATES:\"playbackrates\",DEFAULT_SHOW_REMAINING_TIME:\"default-show-remaining-time\",DEFAULT_DURATION:\"default-duration\",TITLE:\"title\",VIDEO_TITLE:\"video-title\",PLACEHOLDER:\"placeholder\",THEME:\"theme\",DEFAULT_STREAM_TYPE:\"default-stream-type\",TARGET_LIVE_WINDOW:\"target-live-window\",EXTRA_SOURCE_PARAMS:\"extra-source-params\",NO_VOLUME_PREF:\"no-volume-pref\",NO_MUTED_PREF:\"no-muted-pref\",CAST_RECEIVER:\"cast-receiver\",NO_TOOLTIPS:\"no-tooltips\",PROUDLY_DISPLAY_MUX_BADGE:\"proudly-display-mux-badge\",DISABLE_PSEUDO_ENDED:\"disable-pseudo-ended\"},Ve=[\"audio\",\"backwardseekoffset\",\"defaultduration\",\"defaultshowremainingtime\",\"defaultsubtitles\",\"noautoseektolive\",\"disabled\",\"exportparts\",\"forwardseekoffset\",\"hideduration\",\"hotkeys\",\"nohotkeys\",\"playbackrates\",\"defaultstreamtype\",\"streamtype\",\"style\",\"targetlivewindow\",\"template\",\"title\",\"videotitle\",\"novolumepref\",\"nomutedpref\",\"proudlydisplaymuxbadge\"];function Oa(t,a){var i,r,n;return{src:!t.playbackId&&t.src,playbackId:t.playbackId,hasSrc:!!t.playbackId||!!t.src||!!t.currentSrc,poster:t.poster,storyboard:((i=t.media)==null?void 0:i.currentSrc)&&t.storyboard,storyboardSrc:t.getAttribute(o.STORYBOARD_SRC),fullscreenElement:t.getAttribute(o.FULLSCREEN_ELEMENT),placeholder:t.getAttribute(\"placeholder\"),themeTemplate:Ma(t),thumbnailTime:!t.tokens.thumbnail&&t.thumbnailTime,autoplay:t.autoplay,crossOrigin:t.crossOrigin,loop:t.loop,noHotKeys:t.hasAttribute(o.NOHOTKEYS),hotKeys:t.getAttribute(o.HOTKEYS),muted:t.muted,paused:t.paused,preload:t.preload,envKey:t.envKey,preferCmcd:t.preferCmcd,debug:t.debug,disableTracking:t.disableTracking,disableCookies:t.disableCookies,tokens:t.tokens,beaconCollectionDomain:t.beaconCollectionDomain,maxResolution:t.maxResolution,minResolution:t.minResolution,maxAutoResolution:t.maxAutoResolution,programStartTime:t.programStartTime,programEndTime:t.programEndTime,assetStartTime:t.assetStartTime,assetEndTime:t.assetEndTime,renditionOrder:t.renditionOrder,metadata:t.metadata,playerInitTime:t.playerInitTime,playerSoftwareName:t.playerSoftwareName,playerSoftwareVersion:t.playerSoftwareVersion,startTime:t.startTime,preferPlayback:t.preferPlayback,audio:t.audio,defaultStreamType:t.defaultStreamType,targetLiveWindow:t.getAttribute(s.TARGET_LIVE_WINDOW),streamType:ee(t.getAttribute(s.STREAM_TYPE)),primaryColor:t.getAttribute(o.PRIMARY_COLOR),secondaryColor:t.getAttribute(o.SECONDARY_COLOR),accentColor:t.getAttribute(o.ACCENT_COLOR),forwardSeekOffset:t.forwardSeekOffset,backwardSeekOffset:t.backwardSeekOffset,defaultHiddenCaptions:t.defaultHiddenCaptions,defaultDuration:t.defaultDuration,defaultShowRemainingTime:t.defaultShowRemainingTime,hideDuration:Sa(t),playbackRates:t.getAttribute(o.PLAYBACK_RATES),customDomain:(r=t.getAttribute(s.CUSTOM_DOMAIN))!=null?r:void 0,title:t.getAttribute(o.TITLE),videoTitle:(n=t.getAttribute(o.VIDEO_TITLE))!=null?n:t.getAttribute(o.TITLE),novolumepref:t.hasAttribute(o.NO_VOLUME_PREF),nomutedpref:t.hasAttribute(o.NO_MUTED_PREF),proudlyDisplayMuxBadge:t.hasAttribute(o.PROUDLY_DISPLAY_MUX_BADGE),castReceiver:t.castReceiver,disablePseudoEnded:t.hasAttribute(o.DISABLE_PSEUDO_ENDED),capRenditionToPlayerSize:t.capRenditionToPlayerSize,...a,extraSourceParams:t.extraSourceParams}}var La=Bt.formatErrorMessage;Bt.formatErrorMessage=t=>{var a,e;if(t instanceof Ee){let i=Ot(t,!1);return`\n ${i!=null&&i.title?`<h3>${i.title}</h3>`:\"\"}\n ${i!=null&&i.message||i!=null&&i.linkUrl?`<p>\n ${i==null?void 0:i.message}\n ${i!=null&&i.linkUrl?`<a\n href=\"${i.linkUrl}\"\n target=\"_blank\"\n rel=\"external noopener\"\n aria-label=\"${(a=i.linkText)!=null?a:\"\"} ${B(\"(opens in a new window)\")}\"\n >${(e=i.linkText)!=null?e:i.linkUrl}</a\n >`:\"\"}\n </p>`:\"\"}\n `}return La(t)};function Ma(t){var e,i;let a=t.theme;if(a){let r=(i=(e=t.getRootNode())==null?void 0:e.getElementById)==null?void 0:i.call(e,a);if(r&&r instanceof HTMLTemplateElement)return r;a.startsWith(\"media-theme-\")||(a=`media-theme-${a}`);let n=_.customElements.get(a);if(n!=null&&n.template)return n.template}}function Sa(t){var e;let a=(e=t.mediaController)==null?void 0:e.querySelector(\"media-time-display\");return a&&getComputedStyle(a).getPropertyValue(\"--media-duration-display-display\").trim()===\"none\"}function wt(t){let a=t.videoTitle?{video_title:t.videoTitle}:{};return t.getAttributeNames().filter(e=>e.startsWith(\"metadata-\")).reduce((e,i)=>{let r=t.getAttribute(i);return r!==null&&(e[i.replace(/^metadata-/,\"\").replace(/-/g,\"_\")]=r),e},a)}var Na=Object.values(s),Ia=Object.values(S),Pa=Object.values(o),Dt=be(),Ut=\"mux-player\",Vt={isDialogOpen:!1},wa={redundant_streams:!0},re,W,oe,P,ne,Z,se,de,K,G,$,le,m,N,Ht,He,H,Kt,$t,Ft,Yt,Be=class extends Me{constructor(){super();h(this,m);h(this,re);h(this,W,!1);h(this,oe,{});h(this,P,!0);h(this,ne,new pe(this,\"hotkeys\"));h(this,Z);h(this,se,()=>p(this,m,H).call(this));h(this,de,()=>p(this,m,H).call(this));h(this,K,()=>p(this,m,H).call(this));h(this,G);h(this,$,{...Vt,onCloseErrorDialog:e=>{var r;((r=e.composedPath()[0])==null?void 0:r.localName)===\"media-error-dialog\"&&p(this,m,He).call(this,{isDialogOpen:!1})},onFocusInErrorDialog:e=>{var n;if(((n=e.composedPath()[0])==null?void 0:n.localName)!==\"media-error-dialog\")return;Re(this,w.activeElement)||e.preventDefault()}});h(this,le,e=>{var n;let i=(n=this.media)==null?void 0:n.error;if(!(i instanceof Ee)){let{message:d,code:u}=i!=null?i:{};i=new Ee(d,u)}if(!(i!=null&&i.fatal)){O(i),i.data&&O(`${i.name} data:`,i.data);return}let r=Ie(i,!1);r.message&&Oe(r),k(i),i.data&&k(`${i.name} data:`,i.data),p(this,m,He).call(this,{isDialogOpen:!0})});f(this,re,Ra()),this.attachShadow({mode:\"open\"}),p(this,m,Ht).call(this),this.isConnected&&p(this,m,N).call(this)}static get NAME(){return Ut}static get VERSION(){return Dt}static get observedAttributes(){var e;return[...(e=Me.observedAttributes)!=null?e:[],...Ia,...Na,...Pa]}get mediaTheme(){var e;return(e=this.shadowRoot)==null?void 0:e.querySelector(\"media-theme\")}get mediaController(){var e,i;return(i=(e=this.mediaTheme)==null?void 0:e.shadowRoot)==null?void 0:i.querySelector(\"media-controller\")}connectedCallback(){p(this,m,N).call(this);let e=this.media;e&&(e.metadata=wt(this))}disconnectedCallback(){var e,i,r,n,d,u,b,R;(e=l(this,Z))==null||e.disconnect(),(i=this.media)==null||i.removeEventListener(\"streamtypechange\",l(this,se)),(r=this.media)==null||r.removeEventListener(\"loadstart\",l(this,de)),this.removeEventListener(\"error\",l(this,le)),this.media&&(this.media.errorTranslator=void 0),(d=(n=this.media)==null?void 0:n.textTracks)==null||d.removeEventListener(\"addtrack\",l(this,K)),(b=(u=this.media)==null?void 0:u.textTracks)==null||b.removeEventListener(\"removetrack\",l(this,K)),(R=l(this,G))==null||R.call(this),f(this,G,void 0),f(this,W,!1)}attributeChangedCallback(e,i,r){switch(p(this,m,N).call(this),super.attributeChangedCallback(e,i,r),e){case o.HOTKEYS:l(this,ne).value=r;break;case o.THUMBNAIL_TIME:{r!=null&&this.tokens.thumbnail&&O(B(\"Use of thumbnail-time with thumbnail-token is currently unsupported. Ignore thumbnail-time.\").toString());break}case o.THUMBNAIL_TOKEN:{if(r){let d=De(r);if(d){let{aud:u}=d,b=Ue.THUMBNAIL;u!==b&&O(B(\"The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.\").format({aud:u,expectedAud:b,tokenNamePrefix:\"thumbnail\"}))}}break}case o.STORYBOARD_TOKEN:{if(r){let d=De(r);if(d){let{aud:u}=d,b=Ue.STORYBOARD;u!==b&&O(B(\"The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.\").format({aud:u,expectedAud:b,tokenNamePrefix:\"storyboard\"}))}}break}case o.DRM_TOKEN:{if(r){let d=De(r);if(d){let{aud:u}=d,b=Ue.DRM;u!==b&&O(B(\"The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.\").format({aud:u,expectedAud:b,tokenNamePrefix:\"drm\"}))}}break}case s.PLAYBACK_ID:{r!=null&&r.includes(\"?token\")&&k(B(\"The specificed playback ID {playbackId} contains a token which must be provided via the playback-token attribute.\").format({playbackId:r}));break}case s.STREAM_TYPE:{r&&![L.LIVE,L.ON_DEMAND,L.UNKNOWN].includes(r)?[\"ll-live\",\"live:dvr\",\"ll-live:dvr\"].includes(this.streamType)?this.targetLiveWindow=r.includes(\"dvr\")?Number.POSITIVE_INFINITY:0:Oe({file:\"invalid-stream-type.md\",message:B(\"Invalid stream-type value supplied: `{streamType}`. Please provide stream-type as either: `on-demand` or `live`\").format({streamType:this.streamType})}):r===L.LIVE?this.getAttribute(o.TARGET_LIVE_WINDOW)==null&&(this.targetLiveWindow=0):this.targetLiveWindow=Number.NaN;break}case o.FULLSCREEN_ELEMENT:{if(r!=null||r!==i){let d=w.getElementById(r),u=d==null?void 0:d.querySelector(\"mux-player\");this.mediaController&&d&&u&&(this.mediaController.fullscreenElement=d)}break}case s.CAP_RENDITION_TO_PLAYER_SIZE:{(r==null||r!==i)&&(this.capRenditionToPlayerSize=r!=null?!0:void 0);break}}[s.PLAYBACK_ID,S.SRC,o.PLAYBACK_TOKEN].includes(e)&&i!==r&&f(this,$,{...l(this,$),...Vt}),p(this,m,H).call(this,{[ht(e)]:r})}async requestFullscreen(e){var i;if(!(!this.mediaController||this.mediaController.hasAttribute(ve.MEDIA_IS_FULLSCREEN)))return(i=this.mediaController)==null||i.dispatchEvent(new _.CustomEvent(It.MEDIA_ENTER_FULLSCREEN_REQUEST,{composed:!0,bubbles:!0})),new Promise((r,n)=>{var d;(d=this.mediaController)==null||d.addEventListener(Nt.MEDIA_IS_FULLSCREEN,()=>r(),{once:!0})})}async exitFullscreen(){var e;if(!(!this.mediaController||!this.mediaController.hasAttribute(ve.MEDIA_IS_FULLSCREEN)))return(e=this.mediaController)==null||e.dispatchEvent(new _.CustomEvent(It.MEDIA_EXIT_FULLSCREEN_REQUEST,{composed:!0,bubbles:!0})),new Promise((i,r)=>{var n;(n=this.mediaController)==null||n.addEventListener(Nt.MEDIA_IS_FULLSCREEN,()=>i(),{once:!0})})}get preferCmcd(){var e;return(e=this.getAttribute(s.PREFER_CMCD))!=null?e:void 0}set preferCmcd(e){e!==this.preferCmcd&&(e?Pt.includes(e)?this.setAttribute(s.PREFER_CMCD,e):O(`Invalid value for preferCmcd. Must be one of ${Pt.join()}`):this.removeAttribute(s.PREFER_CMCD))}get hasPlayed(){var e,i;return(i=(e=this.mediaController)==null?void 0:e.hasAttribute(ve.MEDIA_HAS_PLAYED))!=null?i:!1}get inLiveWindow(){var e;return(e=this.mediaController)==null?void 0:e.hasAttribute(ve.MEDIA_TIME_IS_LIVE)}get _hls(){var e;return(e=this.media)==null?void 0:e._hls}get mux(){var e;return(e=this.media)==null?void 0:e.mux}get theme(){var e;return(e=this.getAttribute(o.THEME))!=null?e:xa}set theme(e){this.setAttribute(o.THEME,`${e}`)}get themeProps(){let e=this.mediaTheme;if(!e)return;let i={};for(let r of e.getAttributeNames()){if(Ve.includes(r))continue;let n=e.getAttribute(r);i[ce(r)]=n===\"\"?!0:n}return i}set themeProps(e){var r,n;p(this,m,N).call(this);let i={...this.themeProps,...e};for(let d in i){if(Ve.includes(d))continue;let u=e==null?void 0:e[d];typeof u==\"boolean\"||u==null?(r=this.mediaTheme)==null||r.toggleAttribute(me(d),!!u):(n=this.mediaTheme)==null||n.setAttribute(me(d),u)}}get playbackId(){var e;return(e=this.getAttribute(s.PLAYBACK_ID))!=null?e:void 0}set playbackId(e){e?this.setAttribute(s.PLAYBACK_ID,e):this.removeAttribute(s.PLAYBACK_ID)}get src(){var e,i;return this.playbackId?(e=V(this,S.SRC))!=null?e:void 0:(i=this.getAttribute(S.SRC))!=null?i:void 0}set src(e){e?this.setAttribute(S.SRC,e):this.removeAttribute(S.SRC)}get poster(){var r;let e=this.getAttribute(S.POSTER);if(e!=null)return e;let{tokens:i}=this;if(i.playback&&!i.thumbnail){O(\"Missing expected thumbnail token. No poster image will be shown\");return}if(this.playbackId&&!this.audio)return pt(this.playbackId,{customDomain:this.customDomain,thumbnailTime:(r=this.thumbnailTime)!=null?r:this.startTime,programTime:this.programStartTime,token:i.thumbnail})}set poster(e){e||e===\"\"?this.setAttribute(S.POSTER,e):this.removeAttribute(S.POSTER)}get storyboardSrc(){var e;return(e=this.getAttribute(o.STORYBOARD_SRC))!=null?e:void 0}set storyboardSrc(e){e?this.setAttribute(o.STORYBOARD_SRC,e):this.removeAttribute(o.STORYBOARD_SRC)}get storyboard(){let{tokens:e}=this;if(this.storyboardSrc&&!e.storyboard)return this.storyboardSrc;if(!(this.audio||!this.playbackId||!this.streamType||[L.LIVE,L.UNKNOWN].includes(this.streamType)||e.playback&&!e.storyboard))return bt(this.playbackId,{customDomain:this.customDomain,token:e.storyboard,programStartTime:this.programStartTime,programEndTime:this.programEndTime})}get audio(){return this.hasAttribute(o.AUDIO)}set audio(e){if(!e){this.removeAttribute(o.AUDIO);return}this.setAttribute(o.AUDIO,\"\")}get hotkeys(){return l(this,ne)}get nohotkeys(){return this.hasAttribute(o.NOHOTKEYS)}set nohotkeys(e){if(!e){this.removeAttribute(o.NOHOTKEYS);return}this.setAttribute(o.NOHOTKEYS,\"\")}get thumbnailTime(){return A(this.getAttribute(o.THUMBNAIL_TIME))}set thumbnailTime(e){this.setAttribute(o.THUMBNAIL_TIME,`${e}`)}get videoTitle(){var e,i;return(i=(e=this.getAttribute(o.VIDEO_TITLE))!=null?e:this.getAttribute(o.TITLE))!=null?i:\"\"}set videoTitle(e){e!==this.videoTitle&&(e?this.setAttribute(o.VIDEO_TITLE,e):this.removeAttribute(o.VIDEO_TITLE))}get placeholder(){var e;return(e=V(this,o.PLACEHOLDER))!=null?e:\"\"}set placeholder(e){this.setAttribute(o.PLACEHOLDER,`${e}`)}get primaryColor(){var i,r;let e=this.getAttribute(o.PRIMARY_COLOR);if(e!=null||this.mediaTheme&&(e=(r=(i=_.getComputedStyle(this.mediaTheme))==null?void 0:i.getPropertyValue(\"--_primary-color\"))==null?void 0:r.trim(),e))return e}set primaryColor(e){this.setAttribute(o.PRIMARY_COLOR,`${e}`)}get secondaryColor(){var i,r;let e=this.getAttribute(o.SECONDARY_COLOR);if(e!=null||this.mediaTheme&&(e=(r=(i=_.getComputedStyle(this.mediaTheme))==null?void 0:i.getPropertyValue(\"--_secondary-color\"))==null?void 0:r.trim(),e))return e}set secondaryColor(e){this.setAttribute(o.SECONDARY_COLOR,`${e}`)}get accentColor(){var i,r;let e=this.getAttribute(o.ACCENT_COLOR);if(e!=null||this.mediaTheme&&(e=(r=(i=_.getComputedStyle(this.mediaTheme))==null?void 0:i.getPropertyValue(\"--_accent-color\"))==null?void 0:r.trim(),e))return e}set accentColor(e){this.setAttribute(o.ACCENT_COLOR,`${e}`)}get defaultShowRemainingTime(){return this.hasAttribute(o.DEFAULT_SHOW_REMAINING_TIME)}set defaultShowRemainingTime(e){e?this.setAttribute(o.DEFAULT_SHOW_REMAINING_TIME,\"\"):this.removeAttribute(o.DEFAULT_SHOW_REMAINING_TIME)}get playbackRates(){if(this.hasAttribute(o.PLAYBACK_RATES))return this.getAttribute(o.PLAYBACK_RATES).trim().split(/\\s*,?\\s+/).map(e=>Number(e)).filter(e=>!Number.isNaN(e)).sort((e,i)=>e-i)}set playbackRates(e){if(!e){this.removeAttribute(o.PLAYBACK_RATES);return}this.setAttribute(o.PLAYBACK_RATES,e.join(\" \"))}get forwardSeekOffset(){var e;return(e=A(this.getAttribute(o.FORWARD_SEEK_OFFSET)))!=null?e:10}set forwardSeekOffset(e){this.setAttribute(o.FORWARD_SEEK_OFFSET,`${e}`)}get backwardSeekOffset(){var e;return(e=A(this.getAttribute(o.BACKWARD_SEEK_OFFSET)))!=null?e:10}set backwardSeekOffset(e){this.setAttribute(o.BACKWARD_SEEK_OFFSET,`${e}`)}get defaultHiddenCaptions(){return this.hasAttribute(o.DEFAULT_HIDDEN_CAPTIONS)}set defaultHiddenCaptions(e){e?this.setAttribute(o.DEFAULT_HIDDEN_CAPTIONS,\"\"):this.removeAttribute(o.DEFAULT_HIDDEN_CAPTIONS)}get defaultDuration(){return A(this.getAttribute(o.DEFAULT_DURATION))}set defaultDuration(e){e==null?this.removeAttribute(o.DEFAULT_DURATION):this.setAttribute(o.DEFAULT_DURATION,`${e}`)}get playerInitTime(){return this.hasAttribute(s.PLAYER_INIT_TIME)?A(this.getAttribute(s.PLAYER_INIT_TIME)):l(this,re)}set playerInitTime(e){e!=this.playerInitTime&&(e==null?this.removeAttribute(s.PLAYER_INIT_TIME):this.setAttribute(s.PLAYER_INIT_TIME,`${+e}`))}get playerSoftwareName(){var e;return(e=this.getAttribute(s.PLAYER_SOFTWARE_NAME))!=null?e:Ut}get playerSoftwareVersion(){var e;return(e=this.getAttribute(s.PLAYER_SOFTWARE_VERSION))!=null?e:Dt}get beaconCollectionDomain(){var e;return(e=this.getAttribute(s.BEACON_COLLECTION_DOMAIN))!=null?e:void 0}set beaconCollectionDomain(e){e!==this.beaconCollectionDomain&&(e?this.setAttribute(s.BEACON_COLLECTION_DOMAIN,e):this.removeAttribute(s.BEACON_COLLECTION_DOMAIN))}get maxResolution(){var e;return(e=this.getAttribute(s.MAX_RESOLUTION))!=null?e:void 0}set maxResolution(e){e!==this.maxResolution&&(e?this.setAttribute(s.MAX_RESOLUTION,e):this.removeAttribute(s.MAX_RESOLUTION))}get minResolution(){var e;return(e=this.getAttribute(s.MIN_RESOLUTION))!=null?e:void 0}set minResolution(e){e!==this.minResolution&&(e?this.setAttribute(s.MIN_RESOLUTION,e):this.removeAttribute(s.MIN_RESOLUTION))}get maxAutoResolution(){var e;return(e=this.getAttribute(s.MAX_AUTO_RESOLUTION))!=null?e:void 0}set maxAutoResolution(e){e==null?this.removeAttribute(s.MAX_AUTO_RESOLUTION):this.setAttribute(s.MAX_AUTO_RESOLUTION,e)}get renditionOrder(){var e;return(e=this.getAttribute(s.RENDITION_ORDER))!=null?e:void 0}set renditionOrder(e){e!==this.renditionOrder&&(e?this.setAttribute(s.RENDITION_ORDER,e):this.removeAttribute(s.RENDITION_ORDER))}get programStartTime(){return A(this.getAttribute(s.PROGRAM_START_TIME))}set programStartTime(e){e==null?this.removeAttribute(s.PROGRAM_START_TIME):this.setAttribute(s.PROGRAM_START_TIME,`${e}`)}get programEndTime(){return A(this.getAttribute(s.PROGRAM_END_TIME))}set programEndTime(e){e==null?this.removeAttribute(s.PROGRAM_END_TIME):this.setAttribute(s.PROGRAM_END_TIME,`${e}`)}get assetStartTime(){return A(this.getAttribute(s.ASSET_START_TIME))}set assetStartTime(e){e==null?this.removeAttribute(s.ASSET_START_TIME):this.setAttribute(s.ASSET_START_TIME,`${e}`)}get assetEndTime(){return A(this.getAttribute(s.ASSET_END_TIME))}set assetEndTime(e){e==null?this.removeAttribute(s.ASSET_END_TIME):this.setAttribute(s.ASSET_END_TIME,`${e}`)}get extraSourceParams(){return this.hasAttribute(o.EXTRA_SOURCE_PARAMS)?[...new URLSearchParams(this.getAttribute(o.EXTRA_SOURCE_PARAMS)).entries()].reduce((e,[i,r])=>(e[i]=r,e),{}):wa}set extraSourceParams(e){e==null?this.removeAttribute(o.EXTRA_SOURCE_PARAMS):this.setAttribute(o.EXTRA_SOURCE_PARAMS,new URLSearchParams(e).toString())}get customDomain(){var e;return(e=this.getAttribute(s.CUSTOM_DOMAIN))!=null?e:void 0}set customDomain(e){e!==this.customDomain&&(e?this.setAttribute(s.CUSTOM_DOMAIN,e):this.removeAttribute(s.CUSTOM_DOMAIN))}get envKey(){var e;return(e=V(this,s.ENV_KEY))!=null?e:void 0}set envKey(e){this.setAttribute(s.ENV_KEY,`${e}`)}get noVolumePref(){return this.hasAttribute(o.NO_VOLUME_PREF)}set noVolumePref(e){e?this.setAttribute(o.NO_VOLUME_PREF,\"\"):this.removeAttribute(o.NO_VOLUME_PREF)}get noMutedPref(){return this.hasAttribute(o.NO_MUTED_PREF)}set noMutedPref(e){e?this.setAttribute(o.NO_MUTED_PREF,\"\"):this.removeAttribute(o.NO_MUTED_PREF)}get debug(){return V(this,s.DEBUG)!=null}set debug(e){e?this.setAttribute(s.DEBUG,\"\"):this.removeAttribute(s.DEBUG)}get disableTracking(){return V(this,s.DISABLE_TRACKING)!=null}set disableTracking(e){this.toggleAttribute(s.DISABLE_TRACKING,!!e)}get disableCookies(){return V(this,s.DISABLE_COOKIES)!=null}set disableCookies(e){e?this.setAttribute(s.DISABLE_COOKIES,\"\"):this.removeAttribute(s.DISABLE_COOKIES)}get streamType(){var e,i,r;return(r=(i=this.getAttribute(s.STREAM_TYPE))!=null?i:(e=this.media)==null?void 0:e.streamType)!=null?r:L.UNKNOWN}set streamType(e){this.setAttribute(s.STREAM_TYPE,`${e}`)}get defaultStreamType(){var e,i,r;return(r=(i=this.getAttribute(o.DEFAULT_STREAM_TYPE))!=null?i:(e=this.mediaController)==null?void 0:e.getAttribute(o.DEFAULT_STREAM_TYPE))!=null?r:L.ON_DEMAND}set defaultStreamType(e){e?this.setAttribute(o.DEFAULT_STREAM_TYPE,e):this.removeAttribute(o.DEFAULT_STREAM_TYPE)}get targetLiveWindow(){var e,i;return this.hasAttribute(o.TARGET_LIVE_WINDOW)?+this.getAttribute(o.TARGET_LIVE_WINDOW):(i=(e=this.media)==null?void 0:e.targetLiveWindow)!=null?i:Number.NaN}set targetLiveWindow(e){e==this.targetLiveWindow||Number.isNaN(e)&&Number.isNaN(this.targetLiveWindow)||(e==null?this.removeAttribute(o.TARGET_LIVE_WINDOW):this.setAttribute(o.TARGET_LIVE_WINDOW,`${+e}`))}get liveEdgeStart(){var e;return(e=this.media)==null?void 0:e.liveEdgeStart}get startTime(){return A(V(this,s.START_TIME))}set startTime(e){this.setAttribute(s.START_TIME,`${e}`)}get preferPlayback(){let e=this.getAttribute(s.PREFER_PLAYBACK);if(e===Te.MSE||e===Te.NATIVE)return e}set preferPlayback(e){e!==this.preferPlayback&&(e===Te.MSE||e===Te.NATIVE?this.setAttribute(s.PREFER_PLAYBACK,e):this.removeAttribute(s.PREFER_PLAYBACK))}get metadata(){var e;return(e=this.media)==null?void 0:e.metadata}set metadata(e){if(p(this,m,N).call(this),!this.media){k(\"underlying media element missing when trying to set metadata. metadata will not be set.\");return}this.media.metadata={...wt(this),...e}}get _hlsConfig(){var e;return(e=this.media)==null?void 0:e._hlsConfig}set _hlsConfig(e){if(p(this,m,N).call(this),!this.media){k(\"underlying media element missing when trying to set _hlsConfig. _hlsConfig will not be set.\");return}this.media._hlsConfig=e}async addCuePoints(e){var i;if(p(this,m,N).call(this),!this.media){k(\"underlying media element missing when trying to addCuePoints. cuePoints will not be added.\");return}return(i=this.media)==null?void 0:i.addCuePoints(e)}get activeCuePoint(){var e;return(e=this.media)==null?void 0:e.activeCuePoint}get cuePoints(){var e,i;return(i=(e=this.media)==null?void 0:e.cuePoints)!=null?i:[]}addChapters(e){var i;if(p(this,m,N).call(this),!this.media){k(\"underlying media element missing when trying to addChapters. chapters will not be added.\");return}return(i=this.media)==null?void 0:i.addChapters(e)}get activeChapter(){var e;return(e=this.media)==null?void 0:e.activeChapter}get chapters(){var e,i;return(i=(e=this.media)==null?void 0:e.chapters)!=null?i:[]}getStartDate(){var e;return(e=this.media)==null?void 0:e.getStartDate()}get currentPdt(){var e;return(e=this.media)==null?void 0:e.currentPdt}get tokens(){let e=this.getAttribute(o.PLAYBACK_TOKEN),i=this.getAttribute(o.DRM_TOKEN),r=this.getAttribute(o.THUMBNAIL_TOKEN),n=this.getAttribute(o.STORYBOARD_TOKEN);return{...l(this,oe),...e!=null?{playback:e}:{},...i!=null?{drm:i}:{},...r!=null?{thumbnail:r}:{},...n!=null?{storyboard:n}:{}}}set tokens(e){f(this,oe,e!=null?e:{})}get playbackToken(){var e;return(e=this.getAttribute(o.PLAYBACK_TOKEN))!=null?e:void 0}set playbackToken(e){this.setAttribute(o.PLAYBACK_TOKEN,`${e}`)}get drmToken(){var e;return(e=this.getAttribute(o.DRM_TOKEN))!=null?e:void 0}set drmToken(e){this.setAttribute(o.DRM_TOKEN,`${e}`)}get thumbnailToken(){var e;return(e=this.getAttribute(o.THUMBNAIL_TOKEN))!=null?e:void 0}set thumbnailToken(e){this.setAttribute(o.THUMBNAIL_TOKEN,`${e}`)}get storyboardToken(){var e;return(e=this.getAttribute(o.STORYBOARD_TOKEN))!=null?e:void 0}set storyboardToken(e){this.setAttribute(o.STORYBOARD_TOKEN,`${e}`)}addTextTrack(e,i,r,n){var u;let d=(u=this.media)==null?void 0:u.nativeEl;if(d)return ka(d,e,i,r,n)}removeTextTrack(e){var r;let i=(r=this.media)==null?void 0:r.nativeEl;if(i)return _a(i,e)}get textTracks(){var e;return(e=this.media)==null?void 0:e.textTracks}get castReceiver(){var e;return(e=this.getAttribute(o.CAST_RECEIVER))!=null?e:void 0}set castReceiver(e){e!==this.castReceiver&&(e?this.setAttribute(o.CAST_RECEIVER,e):this.removeAttribute(o.CAST_RECEIVER))}get castCustomData(){var e;return(e=this.media)==null?void 0:e.castCustomData}set castCustomData(e){if(!this.media){k(\"underlying media element missing when trying to set castCustomData. castCustomData will not be set.\");return}this.media.castCustomData=e}get noTooltips(){return this.hasAttribute(o.NO_TOOLTIPS)}set noTooltips(e){if(!e){this.removeAttribute(o.NO_TOOLTIPS);return}this.setAttribute(o.NO_TOOLTIPS,\"\")}get proudlyDisplayMuxBadge(){return this.hasAttribute(o.PROUDLY_DISPLAY_MUX_BADGE)}set proudlyDisplayMuxBadge(e){e?this.setAttribute(o.PROUDLY_DISPLAY_MUX_BADGE,\"\"):this.removeAttribute(o.PROUDLY_DISPLAY_MUX_BADGE)}get capRenditionToPlayerSize(){var e;return(e=this.media)==null?void 0:e.capRenditionToPlayerSize}set capRenditionToPlayerSize(e){if(!this.media){k(\"underlying media element missing when trying to set capRenditionToPlayerSize\");return}this.media.capRenditionToPlayerSize=e}};re=new WeakMap,W=new WeakMap,oe=new WeakMap,P=new WeakMap,ne=new WeakMap,Z=new WeakMap,se=new WeakMap,de=new WeakMap,K=new WeakMap,G=new WeakMap,$=new WeakMap,le=new WeakMap,m=new WeakSet,N=function(){var e,i,r,n;if(!l(this,W)){f(this,W,!0),p(this,m,H).call(this);try{if(customElements.upgrade(this.mediaTheme),!(this.mediaTheme instanceof _.HTMLElement))throw\"\"}catch{k(\"<media-theme> failed to upgrade!\")}try{customElements.upgrade(this.media)}catch{k(\"underlying media element failed to upgrade!\")}try{if(customElements.upgrade(this.mediaController),!(this.mediaController instanceof Ca))throw\"\"}catch{k(\"<media-controller> failed to upgrade!\")}p(this,m,Kt).call(this),p(this,m,$t).call(this),p(this,m,Ft).call(this),f(this,P,(i=(e=this.mediaController)==null?void 0:e.hasAttribute(we.USER_INACTIVE))!=null?i:!0),p(this,m,Yt).call(this),(r=this.media)==null||r.addEventListener(\"streamtypechange\",l(this,se)),(n=this.media)==null||n.addEventListener(\"loadstart\",l(this,de))}},Ht=function(){var e,i;try{(e=window==null?void 0:window.CSS)==null||e.registerProperty({name:\"--media-primary-color\",syntax:\"<color>\",inherits:!0}),(i=window==null?void 0:window.CSS)==null||i.registerProperty({name:\"--media-secondary-color\",syntax:\"<color>\",inherits:!0})}catch{}},He=function(e){Object.assign(l(this,$),e),p(this,m,H).call(this)},H=function(e={}){At(kt(Oa(this,{...l(this,$),...e})),this.shadowRoot)},Kt=function(){let e=i=>{var d,u;if(!(i!=null&&i.startsWith(\"theme-\")))return;let r=i.replace(/^theme-/,\"\");if(Ve.includes(r))return;let n=this.getAttribute(i);n!=null?(d=this.mediaTheme)==null||d.setAttribute(r,n):(u=this.mediaTheme)==null||u.removeAttribute(r)};f(this,Z,new MutationObserver(i=>{for(let{attributeName:r}of i)e(r)})),l(this,Z).observe(this,{attributes:!0}),this.getAttributeNames().forEach(e)},$t=function(){this.addEventListener(\"error\",l(this,le)),this.media&&(this.media.errorTranslator=(e={})=>{var r,n,d;if(!(((r=this.media)==null?void 0:r.error)instanceof Ee))return e;let i=Ie((n=this.media)==null?void 0:n.error,!1);return{player_error_code:(d=this.media)==null?void 0:d.error.code,player_error_message:i.message?String(i.message):e.player_error_message,player_error_context:i.context?String(i.context):e.player_error_context}})},Ft=function(){var e,i,r,n;(i=(e=this.media)==null?void 0:e.textTracks)==null||i.addEventListener(\"addtrack\",l(this,K)),(n=(r=this.media)==null?void 0:r.textTracks)==null||n.addEventListener(\"removetrack\",l(this,K))},Yt=function(){var j,z;if(!/Firefox/i.test(navigator.userAgent))return;let i,r=new WeakMap,n=()=>this.streamType===L.LIVE&&!this.secondaryColor&&this.offsetWidth>=800,d=(E,v,x=!1)=>{if(n())return;Array.from(E&&E.activeCues||[]).forEach(g=>{if(!(!g.snapToLines||g.line<-5||g.line>=0&&g.line<10))if(!v||this.paused){let ue=g.text.split(`\n`).length,X=-3;this.streamType===L.LIVE&&(X=-2);let q=X-ue;if(g.line===q&&!x)return;r.has(g)||r.set(g,g.line),g.line=q}else setTimeout(()=>{g.line=r.get(g)||\"auto\"},500)})},u=()=>{var E,v;d(i,(v=(E=this.mediaController)==null?void 0:E.hasAttribute(we.USER_INACTIVE))!=null?v:!1)},b=()=>{var x,F;let v=Array.from(((F=(x=this.mediaController)==null?void 0:x.media)==null?void 0:F.textTracks)||[]).filter(g=>[\"subtitles\",\"captions\"].includes(g.kind)&&g.mode===\"showing\")[0];v!==i&&(i==null||i.removeEventListener(\"cuechange\",u)),i=v,i==null||i.addEventListener(\"cuechange\",u),d(i,l(this,P))};b(),(j=this.textTracks)==null||j.addEventListener(\"change\",b),(z=this.textTracks)==null||z.addEventListener(\"addtrack\",b);let R=()=>{var v,x;let E=(x=(v=this.mediaController)==null?void 0:v.hasAttribute(we.USER_INACTIVE))!=null?x:!0;l(this,P)!==E&&(f(this,P,E),d(i,l(this,P)))};this.addEventListener(\"userinactivechange\",R),f(this,G,()=>{var E,v;i==null||i.removeEventListener(\"cuechange\",u),(E=this.textTracks)==null||E.removeEventListener(\"change\",b),(v=this.textTracks)==null||v.removeEventListener(\"addtrack\",b),this.removeEventListener(\"userinactivechange\",R)})};function V(t,a){return t.media?t.media.getAttribute(a):t.getAttribute(a)}var Si=Be;export{Ee as MediaError,Si as default,Ra as generatePlayerInitTime,V as getVideoAttribute,Ut as playerSoftwareName,Dt as playerSoftwareVersion};\n","var c=e=>{throw TypeError(e)};var d=(e,t,n)=>t.has(e)||c(\"Cannot \"+n);var g=(e,t,n)=>(d(e,t,\"read from private field\"),n?n.call(e):t.get(e)),p=(e,t,n)=>t.has(e)?c(\"Cannot add the same private member more than once\"):t instanceof WeakSet?t.add(e):t.set(e,n),f=(e,t,n,i)=>(d(e,t,\"write to private field\"),i?i.call(e,n):t.set(e,n),n);var o=class{addEventListener(){}removeEventListener(){}dispatchEvent(t){return!0}};if(typeof DocumentFragment==\"undefined\"){class e extends o{}globalThis.DocumentFragment=e}var s=class extends o{},a=class extends o{},b={get(e){},define(e,t,n){},getName(e){return null},upgrade(e){},whenDefined(e){return Promise.resolve(s)}},r,m=class{constructor(t,n={}){p(this,r);f(this,r,n==null?void 0:n.detail)}get detail(){return g(this,r)}initCustomEvent(){}};r=new WeakMap;function y(e,t){return new s}var h={document:{createElement:y},DocumentFragment,customElements:b,CustomEvent:m,EventTarget:o,HTMLElement:s,HTMLVideoElement:a},E=typeof window==\"undefined\"||typeof globalThis.customElements==\"undefined\",l=E?h:globalThis,x=E?h.document:globalThis.document;import\"@mux/mux-video\";import u from\"@mux/mux-player/base\";export*from\"@mux/mux-player/base\";l.customElements.get(\"mux-player\")||(l.customElements.define(\"mux-player\",u),l.MuxPlayerElement=u);var F=u;export{F as default};\n","\"use client\";import m,{useState as pe,useRef as Ee}from\"react\";import{MaxResolution as Le,MinResolution as Ae,RenditionOrder as Ie,generatePlayerInitTime as Me}from\"@mux/playback-core\";import{MediaError as Ke}from\"@mux/mux-player\";import X from\"react\";var M=parseInt(X.version)>=19,E={className:\"class\",classname:\"class\",htmlFor:\"for\",crossOrigin:\"crossorigin\",viewBox:\"viewBox\",playsInline:\"playsinline\",autoPlay:\"autoplay\",playbackRate:\"playbackrate\"},B=e=>e==null,ee=(e,t)=>B(t)?!1:e in t,te=e=>e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`),ne=(e,t)=>{if(!(!M&&typeof t==\"boolean\"&&!t)){if(ee(e,E))return E[e];if(typeof t!=\"undefined\")return/[A-Z]/.test(e)?te(e):e}};var ae=(e,t)=>!M&&typeof e==\"boolean\"?\"\":e,P=(e={})=>{let{ref:t,...n}=e;return Object.entries(n).reduce((o,[a,l])=>{let i=ne(a,l);if(!i)return o;let c=ae(l,a);return o[i]=c,o},{})};import*as d from\"react\";function x(e,t){if(typeof e==\"function\")return e(t);e!=null&&(e.current=t)}function re(...e){return t=>{let n=!1,o=e.map(a=>{let l=x(a,t);return!n&&typeof l==\"function\"&&(n=!0),l});if(n)return()=>{for(let a=0;a<o.length;a++){let l=o[a];typeof l==\"function\"?l():x(e[a],null)}}}}function f(...e){return d.useCallback(re(...e),e)}import{useEffect as le}from\"react\";var oe=Object.prototype.hasOwnProperty,ue=(e,t)=>{if(Object.is(e,t))return!0;if(typeof e!=\"object\"||e===null||typeof t!=\"object\"||t===null)return!1;if(Array.isArray(e))return!Array.isArray(t)||e.length!==t.length?!1:e.some((a,l)=>t[l]===a);let n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let a=0;a<n.length;a++)if(!oe.call(t,n[a])||!Object.is(e[n[a]],t[n[a]]))return!1;return!0},p=(e,t,n)=>!ue(t,e[n]),se=(e,t,n)=>{e[n]=t},ie=(e,t,n,o=se,a=p)=>le(()=>{let l=n==null?void 0:n.current;l&&a(l,t,e)&&o(l,t,e)},[n==null?void 0:n.current,t]),u=ie;var ye=()=>{try{return\"3.11.7\"}catch{}return\"UNKNOWN\"},me=ye(),g=()=>me;import{useEffect as ce}from\"react\";var r=(e,t,n)=>ce(()=>{let o=t==null?void 0:t.current;if(!o||!n)return;let a=e,l=n;return o.addEventListener(a,l),()=>{o.removeEventListener(a,l)}},[t==null?void 0:t.current,n,e]);var Pe=m.forwardRef(({children:e,...t},n)=>m.createElement(\"mux-player\",{suppressHydrationWarning:!0,...P(t),ref:n},e)),xe=(e,t)=>{let{onAbort:n,onCanPlay:o,onCanPlayThrough:a,onEmptied:l,onLoadStart:i,onLoadedData:c,onLoadedMetadata:v,onProgress:R,onDurationChange:T,onVolumeChange:h,onRateChange:b,onResize:C,onWaiting:k,onPlay:O,onPlaying:S,onTimeUpdate:w,onPause:N,onSeeking:L,onSeeked:A,onStalled:I,onSuspend:_,onEnded:K,onError:H,onCuePointChange:D,onChapterChange:V,metadata:W,tokens:U,paused:z,playbackId:F,playbackRates:G,currentTime:Z,themeProps:j,extraSourceParams:q,castCustomData:J,_hlsConfig:Y,...$}=t;return u(\"tokens\",U,e),u(\"playbackId\",F,e),u(\"playbackRates\",G,e),u(\"metadata\",W,e),u(\"extraSourceParams\",q,e),u(\"_hlsConfig\",Y,e),u(\"themeProps\",j,e),u(\"castCustomData\",J,e),u(\"paused\",z,e,(s,y)=>{y!=null&&(y?s.pause():s.play())},(s,y,Q)=>s.hasAttribute(\"autoplay\")&&!s.hasPlayed?!1:p(s,y,Q)),u(\"currentTime\",Z,e,(s,y)=>{y!=null&&(s.currentTime=y)}),r(\"abort\",e,n),r(\"canplay\",e,o),r(\"canplaythrough\",e,a),r(\"emptied\",e,l),r(\"loadstart\",e,i),r(\"loadeddata\",e,c),r(\"loadedmetadata\",e,v),r(\"progress\",e,R),r(\"durationchange\",e,T),r(\"volumechange\",e,h),r(\"ratechange\",e,b),r(\"resize\",e,C),r(\"waiting\",e,k),r(\"play\",e,O),r(\"playing\",e,S),r(\"timeupdate\",e,w),r(\"pause\",e,N),r(\"seeking\",e,L),r(\"seeked\",e,A),r(\"stalled\",e,I),r(\"suspend\",e,_),r(\"ended\",e,K),r(\"error\",e,H),r(\"cuepointchange\",e,D),r(\"chapterchange\",e,V),[$]},de=g(),fe=\"mux-player-react\",ge=m.forwardRef((e,t)=>{var i;let n=Ee(null),o=f(n,t),[a]=xe(n,e),[l]=pe((i=e.playerInitTime)!=null?i:Me());return m.createElement(Pe,{ref:o,defaultHiddenCaptions:e.defaultHiddenCaptions,playerSoftwareName:fe,playerSoftwareVersion:de,playerInitTime:l,...a})}),ze=ge;export{Le as MaxResolution,Ke as MediaError,Ae as MinResolution,Ie as RenditionOrder,ze as default,Me as generatePlayerInitTime,fe as playerSoftwareName,de as playerSoftwareVersion};\n//# sourceMappingURL=index.mjs.map\n"],"names":["ea","_t","ta","ra","aa","ia","ft","r","B","na","t","i","a","o","s","u","G","Q","Zi","ht","xe","U","te","Ne","Qe","Ye","qs","cr","dr","Na","e","fr","Ps","_r","ve","mr","Ls","pr","ae","n","Xe","Is","vr","Ca","$e","Ns","hr","Ma","Ze","Cs","yr","Ha","Tr","Hs","wr","gr","Ba","et","Ua","Wa","ja","Fa","Va","br","Ga","rt","Us","Er","tt","Ja","Qa","za","Ka","kr","I","Sr","Vs","xr","at","K","Dr","js","Rr","it","Ar","Gs","qr","Ya","Xa","$a","De","Za","ei","ti","ri","ai","Ue","j","Or","Js","Pr","ii","nt","Qs","Ir","Lr","ni","qe","pt","mt","vt","Ee","Pe","H","be","Je","yt","oa","P","ee","f","h","Oe","J","se","gt","bt","wt","V","Y","Tt","E","y","c","w","x","v","p","q","Le","ce","b","S","kt","N","l","X","Et","Se","Ie","xt","St","Rt","Dt","qt","At","F","re","Ce","sa","_e","O","ue","ua","fe","la","Pt","da","pe","le","ca","Me","He","Re","Ot","m","_","d","g","T","k","D","L","C","W","oe","A","R","Z","we","Te","Lt","It","_a","fa","pa","Nt","ke","z","je","We","Ge","Yr","Xr","$r","Zr","Ct","Mt","ma","Ht","Be","va","Bt","ha","Ut","ya","Ft","ga","Vt","ba","jt","Wt","wa","Gt","Ta","Jt","ka","Qt","Ea","zt","xa","Sa","Kt","Yt","Ra","Da","Xt","qa","$t","Fe","ze","Zt","Aa","Pa","er","tr","rr","ar","Ke","ir","nr","or","sr","Oa","La","lr","Ia","ur","me","ie","Nr","oi","si","ui","li","$","Cr","di","Mr","ci","_i","fi","pi","mi","Hr","vi","Br","hi","yi","Ur","gi","bi","wi","Fr","Vr","Ti","ki","jr","Ei","Wr","xi","Si","Ri","Gr","he","Ae","Di","qi","ot","st","ge","ye","ut","lt","de","Ve","Li","ct","dt","Ii","Jr","Oi","Pi","Ai","Qr","Ni","zr","Ci","Kr","Mi","Hi","Bi","M","ne","Ui","jl","Tn","mn","En","gn","Mn","bn","privateProps","InvalidStateError","NotSupportedError","HLS_RESPONSE_HEADERS","IterableWeakSet","el","fn","ref","value","onCastApiAvailable","callback","_b","_c","requiresCastFramework","loadCastFramework","sdkUrl","script","castContext","currentSession","currentMedia","editTracksInfo","request","resolve","reject","getMediaStatus","setCastOptions","options","getDefaultCastOptions","getFormat","segment","regex","match","parsePlaylistUrls","playlistContent","lines","urls","nextLine","parseSegment","line","isHls","url","contentType","header","err","getPlaylistSegmentFormat","mainManifestContent","availableChunksContent","playlists","chosenPlaylistUrl","remoteInstances","castElementRef","cf","_d","remotePlaybackCallbackIdCount","RemotePlayback","media","__privateAdd","_RemotePlayback_instances","_media","_isInit","_remotePlayer","_remoteListeners","_state","_available","_callbacks","_callbackIds","_onTextTrackChange","__privateMethod","updateRemoteTextTrack_fn","__privateSet","init_fn","onCastStateChanged_fn","onSessionStateChanged_fn","__privateGet","castPlayer_get","event","listener","hasDevicesAvailable_fn","willDisconnect","disconnect_fn","castState","SESSION_RESUMED","error","onRemoteMediaLoaded_fn","remoteSubtitles","type","localSubtitles","kind","subtitles","language","name","trackId","mode","local","hiddenTrackIds","showingSubtitle","activeTrackIds","requestTrackIds","id","CastableMediaMixin","superclass","_CastableMedia_instances","_localState","_castOptions","_castCustomData","_remote","loadOnPrompt_fn","attrName","oldValue","newValue","mediaInfo","src","textTrackIdCount","trackEl","track","segmentFormat","val","valType","__superGet","__publicField","MediaUIEvents","MediaStateReceiverAttributes","MediaUIProps","MediaUIPropsEntries","MediaUIAttributes","dictObj","key","propName","AdditionalStateChangeEvents","MediaStateChangeEvents","mapObj","eventType","AttributeToStateChangeEventMap","evtType","TextTrackKinds","TextTrackModes","PointerTypes","AvailabilityStates","StreamTypes","WebkitPresentationModes","stringifyRenditionList","renditions","stringifyRendition","parseRenditionList","parseRendition","rendition","width","height","stringifyAudioTrackList","audioTracks","stringifyAudioTrack","parseAudioTrackList","parseAudioTrack","audioTrack","label","camelCase","$0","$1","isValidNumber","isNumericString","str","delay","ms","translations","currentLang","setLanguage","langCode","resolveTranslation","_a2","base","vars","UnitLabels","toTimeUnitPhrase","timeUnitValue","unitIndex","unitLabel","formatAsTimePhrase","seconds","positiveSeconds","negative","secondsDateTime","timeString","index","formatTime","guide","gm","gh","EventTarget$1","Node","EventTarget","ResizeObserver","documentShim","globalThisShim","_event","Element","_key","_value","string","_contentType","isServer","isShimmed","GlobalThis","Document","callbacksMap","getCallbacks","element","callbacks","observer","globalThis","entries","entry","observeResize","unobserveResize","namedNodeMapToObject","namedNodeMap","obj","attr","getMediaController","host","getAttributeMediaController","closestComposedNode","MEDIA_CONTROLLER","mediaControllerId","getDocumentOrShadowRoot","updateIconText","svg","selector","node","getAllSlotted","slotSelector","slot","getSlotted","containsComposedNode","rootNode","childNode","closest","getActiveElement","root","activeEl","isElementVisible","depth","checkOpacity","checkVisibilityCSS","style","getPointProgressOnLine","p1","p2","dx","dy","lengthSquared","projection","getOrInsertCSSRule","styleParent","selectorText","cssRule","getCSSRule","insertCSSRule","predicate","cssRules","rule","styles","cssRuleId","getNumericAttr","defaultValue","attrVal","setNumericAttr","nextNumericValue","getBooleanAttr","setBooleanAttr","getStringAttr","setStringAttr","nextValue","__accessCheck","member","msg","getter","setter","_mediaController","getTemplateHTML","_attrs","MediaGestureReceiver","attrs","getMediaControllerEl","composedTarget","clientX","clientY","left","top","pointerType","eventName","controlEl","media_gesture_receiver_default","method","_mutationObserver","_pointerDownTimeStamp","_currentMedia","_inactiveTimeout","_autohide","_handleMutation","_isResizePending","_handleResize","_handlePointerMove","handlePointerMove_fn","_handlePointerUp","handlePointerUp_fn","_setInactive","setInactive_fn","_setActive","setActive_fn","_scheduleInactive","scheduleInactive_fn","_chainedSlot","_handleSlotChange","Attributes","MEDIA_UI_ATTRIBUTE_NAMES","defaultBreakpoints","resizeCallback","setBreakpoints","container","breakpoints","ranges","createBreakpointMap","activeBreakpoints","getBreakpoints","changed","evt","pairs","pair","MediaContainer","mutationsList","mutation","removedNodes","previousSibling","wasFirst","html","_oldValue","isAudioChrome","chainedSlot","parsedSeconds","autohideOverControls","controlsVisible","autohide","_el","_attr","_defaultSet","_tokenSet","_tokens","tokens_get","AttributeTokenList","thisArg","tokens","token","force","oldToken","newToken","splitTextTracksStr","textTracksStr","parseTextTrackStr","textTrackStr","encodedLabel","parseTextTracksStr","textTrackLikeObj","textTrackObj","parseTracks","trackOrTracks","trackObjOrStr","formatTextTrackObj","stringifyTextTrackList","textTracks","isMatchingPropOf","textTrackObjAsPred","filterObj","preds","textTrack","pred","updateTracksModeTo","tracks","tracksToUpdate","isTrackToUpdate","getTextTracksList","filterPredOrObj","filterPred","areSubsOn","enterFullscreen","stateOwners","fullscreenElement","enterFullscreenKey","maybePromise","exitFullscreenKey","document","exitFullscreen","documentElement","fullscreenElementKey","getFullscreenElement","docFullscreenElement","isFullscreen","currentFullscreenElement","currentRoot","fullscreenEnabledKey","isFullscreenEnabled","testMediaEl","getTestMediaEl","hasVolumeSupportAsync","mediaEl","prevVolume","abortController","volumeSupported","dispatchedVolumeChange","volumeChanged","signal","isSafari","hasPipSupport","hasFullscreenSupport","fullscreenSupported","pipSupported","airplaySupported","castSupported","getSubtitleTracks","getShowingSubtitleTracks","toggleSubtitleTracks","showingSubitleTracks","subtitlesShowing","subTrack","subtitlesPref","userLangPrefs","preferredAvailableSubs","lang","textTrackA","textTrackB","idxA","idxB","areValuesEq","areArraysEq","xs","ys","xIsArray","yIsArray","StreamTypeValues","volumeSupportPromise","supported","prepareStateOwners","stateOwner","classDef","domParser","parseHtmlToText","text","stateMediator","noMutedPref","hasLocalStoragePrefMuted","hasMutedAttribute","handler","mutedPref","noVolumePref","volumePref","defaultDuration","start","end","timeRanges","defaultStreamType","usedDefaultStreamType","streamType","duration","targetLiveWindow","liveEdgeOffset","seekable","liveEdgeStart","_handler","updateDefaultSubtitlesCallback","_b2","chaptersTrack","startTime","endTime","shadowChaptersTrack","warnNotReady","cleanup","tryPip","videoRendition","renditionId","audioTrackId","availability","availabilityBool","_stateOwners","mediaLang","requestMap","detail","mediaPreviewTime","mediaPreviewImage","mediaPreviewCoords","cue","cs","numStr","mediaDuration","mediaPreviewChapter","isLive","canAutoSeekToLive","isDVR","seekableEnd","seekToLiveOffset","liveEdgeTime","_stateMediator","preferredLanguage","createMediaStore","defaultStateMediator","defaultRequestMap","monitorStateOwnersOnlyWithSubscriptions","state","updateState","nextStateDelta","cb","updateStateFromFacade","nextState","nextState2","stateName","get","stateUpdateHandlers","nextStateOwners","updateStateOwners","nextStateOwnersDelta","nextSubscriberCount","_f","_g","_h","_j","_k","_l","_m","_n","_o","_p","pendingUpdate","shouldTeardownFromSubscriberCount","mediaChanged","textTracksChanged","videoRenditionsChanged","audioTracksChanged","remoteChanged","rootNodeChanged","teardownMedia","teardownTextTracks","teardownVideoRenditions","teardownAudioTracks","teardownRemote","teardownRootNode","teardownSomething","shouldSetupFromSubscriberCount","setupMedia","setupTextTracks","setupVideoRenditions","setupAudioTracks","setupRemote","setupRootNode","setupSomething","stateOwnerName","mediaEvents","textTracksEvents","videoRenditionsEvents","audioTracksEvents","remoteEvents","rootEvents","stateOwnersUpdateHandlers","prevHandler","prevHandlerTeardowns","teardown","newTeardowns","action","optionName","optionValue","idx","_hotKeys","_fullscreenElement","_mediaStore","_keyboardShortcutsDialog","_mediaStateCallback","_mediaStoreUnsubscribe","_mediaStateEventHandler","_subtitlesState","_setupDefaultStore","setupDefaultStore_fn","_keyUpHandler","_keyDownHandler","keyDownHandler_fn","_showKeyboardShortcutsDialog","showKeyboardShortcutsDialog_fn","ButtonPressedKeys","DEFAULT_SEEK_OFFSET","DEFAULT_VOLUME_STEP","DEFAULT_PLAYBACK_RATE_STEP","MIN_PLAYBACK_RATE","MAX_PLAYBACK_RATE","MediaController","shiftKey","prevState","stateValue","_c2","currentState","propagateMediaState","associatedElementSubscriptions","registerMediaStateReceiver","unregisterMediaStateReceiver","unsubscribe","monitorForMediaStateReceivers","els","target","offsetValue","step","playbackRate","metaKey","altKey","isShiftSlash","isRangeInput","MEDIA_UI_PROP_NAMES","getMediaUIAttributesFrom","child","observedAttributes","mediaChromeAttributesList","hasMediaUIProps","mediaStateReceiverCandidate","isMediaStateReceiver","serializeTuple","tuple","CustomAttrSerializer","tuples","coords","setAttr","attrValue","isMediaSlotElementDescendant","traverseForMediaStateReceivers","mediaStateReceiverCallback","traverseForMediaStateReceiversSync","rootNode2","mediaStateReceiverCallback2","children","shadowChildren","relevantAttrs","registerMediaStateReceiverHandler","unregisterMediaStateReceiverHandler","mutationCallback","mutationRecord","addedNodes","attributeName","prevSlotted","slotChangeHandler","slotEl","media_controller_default","MediaTooltip","placement","tooltipStyle","containingEl","containerX","containerWidth","tooltipX","tooltipWidth","tooltipRight","containerRight","offsetXVal","currOffsetX","marginVal","currMargin","leftDiff","rightDiff","media_tooltip_default","_clickListener","_positionTooltip","_keyupListener","_keydownListener","_setupTooltip","setupTooltip_fn","_props","getSlotTemplateHTML","getTooltipContentHTML","MediaChromeButton","initialPlacement","airplayIcon","updateAriaLabel","MediaAirplayButton","ccIconOn","ccIconOff","updateAriaChecked","MediaCaptionsButton","getSubtitlesListAttr","list","setSubtitlesListAttr","newValStr","enterIcon","exitIcon","MediaCastButton","_previouslyFocused","_invokerElement","_init","_handleOpen","handleOpen_fn","_handleClosed","handleClosed_fn","_handleInvoke","handleInvoke_fn","_handleFocusOut","handleFocusOut_fn","_handleKeyDown","handleKeyDown_fn","MediaChromeDialog","focusCancelled","focusInCancelled","focusable","ctrlKey","_isInputTarget","_startpoint","_endpoint","_cssRules","_segments","_onFocusIn","_onFocusOut","_updateComputedStyles","_updateActiveSegment","updateActiveSegment_fn","_enableUserEvents","enableUserEvents_fn","_disableUserEvents","disableUserEvents_fn","_handlePointerDown","handlePointerDown_fn","_handlePointerEnter","handlePointerEnter_fn","_handlePointerLeave","handlePointerLeave_fn","getContainerTemplateHTML","MediaChromeRange","clipping","rangePercent","segments","normalized","lastMarker","marker","isFirst","isLast","segmentEl","pointerRatio","arr","MediaControlBar","MediaTextDisplay","_slot","props","MediaDurationDisplay","time","defaultErrorTitles","defaultErrorMessages","formatError","_mediaError","formatErrorMessage","shouldOpenErrorDialog","title","message","MediaErrorDialog","mediaError","media_error_dialog_default","_clickHandler","formatKeyboardShortcuts","keys","description","MediaKeyboardShortcutsDialog","content","path","isClickOnHost","isClickInsideContent","_lastActionEvent","enterFullscreenIcon","exitFullscreenIcon","MediaFullscreenButton","isPointerEvent","MEDIA_TIME_IS_LIVE","MEDIA_PAUSED","MEDIA_SEEK_TO_LIVE_REQUEST","MEDIA_PLAY_REQUEST","indicatorSVG","updateAriaAttributes","isPausedOrNotLive","textSlot","MediaLiveButton","_delay","DEFAULT_LOADING_DELAY","loadingIndicatorIcon","MediaLoadingIndicator","offIcon","lowIcon","highIcon","muted","MediaMuteButton","pipIcon","MediaPipButton","_rates","DEFAULT_RATES","DEFAULT_RATE","MediaPlaybackRateButton","newPlaybackRate","availableRates","playIcon","pauseIcon","MediaPlayButton","unsetBackgroundImage","setBackgroundImage","image","MediaPosterImage","MediaPreviewChapterDisplay","ariaValueText","MediaPreviewThumbnail","coord","previewImage","computedStyle","maxWidth","maxHeight","minWidth","minHeight","objectFit","scaleX","scaleY","maxRatioX","maxRatioY","minRatioX","minRatioY","maxRatio","minRatio","scale","imgStyle","img","extremum","resize","media_preview_thumbnail_default","MediaPreviewTimeDisplay","backwardIcon","seekOffset","DEFAULT_TIME","MediaSeekBackwardButton","forwardIcon","MediaSeekForwardButton","_setupEventListeners","setupEventListeners_fn","_removeEventListeners","removeEventListeners_fn","_makeInteractive","makeInteractive_fn","_makeNonInteractive","makeNonInteractive_fn","CombinedAttributes","DEFAULT_TIMES_SEP","formatTimesLabel","timesSep","currentTime","timeLabel","updateAriaValueText","currentTimePhrase","totalTimePhrase","fullPhrase","MediaTimeDisplay","show","noToggle","range","timesLabel","__privateWrapper","_range","_startTime","_previousTime","_deltaTime","_frameCount","_updateTimestamp","_updateStartValue","_lastRangeIncrease","_id","_animate","RangeAnimation","fps","now","fpsInterval","delta","increase","durationDelta","_rootNode","_animation","_boxes","_previewTime","_previewBox","_currentBox","_boxPaddingLeft","_boxPaddingRight","_mediaChaptersCues","_isPointerDown","_toggleRangeAnimation","_shouldRangeAnimate","shouldRangeAnimate_fn","_updateRange","_getElementRects","getElementRects_fn","_getBoxPosition","getBoxPosition_fn","_getBoxShiftPosition","getBoxShiftPosition_fn","_previewRequest","previewRequest_fn","_seekRequest","seekRequest_fn","calcTimeFromRangeValue","calcRangeValueFromTime","MediaTimeRange","buffered","timePair","timeStr","strVal","relativeBufferedEnd","bufferedEnd","currentRailRule","currentBoxRule","rects","boxPos","boxShift","box","boundsRect","rangeRect","min","max","ratio","position","maxPos","pointerX","offset","isOverBoxes","previewRailRule","previewBoxRule","diff","_handleRangeInput","DEFAULT_VOLUME","toVolume","formatAsPercentString","MediaVolumeRange","MediaLoopButton","looping","_parts","_processor","_items","_element","_attributeName","_namespaceURI","_list","list_get","_parentNode","_nodes","ELEMENT","STRING","PART","defaultProcessor","instance","parts","expression","part","AttrPart","TemplateInstance","template","processor","parse","AttrPartList","tokenize","data","items","ChildNodePart","InnerTemplatePart","mem","open","FRAGMENT","Part","attrPartToList","item","namespaceURI","parentNode","nodes","normalisedNodes","swapdom","directive","parent","cur","next","pipeModifiers","PartialTemplate","templates","templateInstances","Directives","evaluateExpression","tpl","DirectiveNames","operators","tokenizeExpression","expr","invalidExpression","partial","partialState","args","operator","getParamValue","isValidParam","run","raw","firstChar","lastChar","parsers","len","_template","_prevTemplate","_prevTemplateId","_observer","_upgradeProperty","upgradeProperty_fn","_updateTemplate","updateTemplate_fn","_renderBind","observedMediaAttributes","prependTemplate","MediaThemeElement","mutationList","prop","templateId","isValidUrl","template2","resource","response","computePosition","anchor","floating","getElementRects","computeCoordsFromPlacement","getRectRelativeToOffsetParent","offsetParent","rect","offsetRect","alignmentAxis","getSideAxis","alignLength","side","getSide","commonX","commonY","commonAlign","InvokeEvent","relatedTarget","ToggleEvent","newState","oldState","_previousItems","_isPopover","_cssRule","handleSlotChange_fn","_toggleHeader","toggleHeader_fn","_handleMenuItems","_updateLayoutStyle","updateLayoutStyle_fn","_handleBoundsResize","_handleMenuResize","_positionMenu","positionMenu_fn","_resizeMenu","resizeMenu_fn","_handleClick","handleClick_fn","_backButtonElement","backButtonElement_get","_handleToggle","handleToggle_fn","_checkSubmenuHasExpanded","checkSubmenuHasExpanded_fn","_getItem","getItem_fn","_getTabItem","getTabItem_fn","_setTabItem","setTabItem_fn","_selectItem","selectItem_fn","createMenuItem","checked","createIndicator","customIndicator","fallbackIndicator","MediaChromeMenu","previousItems","currentItems","_data","getBoundsElement","isMenuItem","item2","currentItem","currentIndex","layoutRowStyle","menuLayout","menuWidth","right","bottom","realBottom","animate","expandedMenuItem","expandedSubmenu","menuItemsWithSubmenu","tabItem","toggle","oldCheckedItems","opt","_dirty","_ownerElement","_submenuConnected","submenuConnected_fn","_submenuDisconnected","submenuDisconnected_fn","_handleMenuItem","_handleKeyUp","_reset","reset_fn","getSuffixSlotInnerHTML","MediaChromeMenuItem","descriptionSlot","checkedItem","span","isCheckable","closestMenuItemsContainer","MediaSettingsMenu","MediaSettingsMenuItem","MediaChromeMenuButton","MediaSettingsMenuButton","_audioTrackList","_prevState","_render","render_fn","_onChange","onChange_fn","MediaAudioTrackMenu","audioTrackList","audioTrackIcon","MediaAudioTrackMenuButton","ccIcon","MediaCaptionsMenu","hasListChanged","hasShowingChanged","isOff","subtitlesList","subs","showingSubs","showingSubsStr","localStateChange","MediaCaptionsMenuButton","MediaPlaybackRateMenu","currentRate","ratesSet","rate","sortedRates","MediaPlaybackRateMenuButton","_renditionList","MediaRenditionMenu","showBitrate","renditionText","mbps","bitrateText","renditionList","selectedRendition","isAuto","showSelectedBitrate","autoText","renditionIcon","MediaRenditionMenuButton","_isContextMenuOpen","_updateVisibility","updateVisibility_fn","_closeContextMenu","closeContextMenu_fn","_closeOtherContextMenus","closeOtherContextMenus_fn","_isVideoContainer","isVideoContainer_fn","_onControllerContextMenu","_onContextMenu","onContextMenu_fn","_onDocumentClick","_onKeyDown","_onMenuClick","MediaContextMenu","isVideoElement","isVideoContainer","isInsideMenu","isRightClick","isVideo","input","menu","MediaContextMenuItem"],"mappings":";;;;;;;;;;;;;;AAAA,IAAIA,KAAG,OAAO,QAAWC,KAAG,OAAO,gBAAmBC,KAAG,OAAO,0BAA6BC,KAAG,OAAO,qBAAwBC,KAAG,OAAO,gBAAeC,KAAG,OAAO,UAAU,gBAAmBC,KAAG,SAASC,GAAE,GAAE;AAAC,SAAO,WAAU;AAAC,WAAOA,MAAI,IAAEA,EAAEA,IAAE,CAAC,IAAG;AAAA,EAAC;AAAC,GAAMC,KAAE,SAASD,GAAE,GAAE;AAAC,SAAO,WAAU;AAAC,WAAO,KAAGA,GAAG,IAAE,EAAC,SAAQ,CAAA,EAAE,GAAG,SAAQ,CAAC,GAAE,EAAE;AAAA,EAAO;AAAC,GAAME,KAAG,SAASF,GAAE,GAAEG,GAAEC,GAAE;AAAC,MAAG,KAAG,OAAO,KAAG,YAAU,OAAO,KAAG,WAAW,UAAQC,IAAET,GAAG,CAAC,GAAE,IAAE,GAAEU,IAAED,EAAE,QAAOE,GAAE,IAAED,GAAE,IAAI,CAAAC,IAAEF,EAAE,CAAC,GAAE,CAACP,GAAG,KAAKE,GAAEO,CAAC,KAAGA,MAAIJ,KAAGT,GAAGM,GAAEO,GAAE,EAAC,MAAI,SAASC,GAAE;AAAC,WAAO,EAAEA,CAAC;AAAA,EAAC,GAAE,KAAK,MAAKD,CAAC,GAAE,YAAW,EAAEH,IAAET,GAAG,GAAEY,CAAC,MAAIH,EAAE,WAAU,CAAC;AAAE,SAAOJ;AAAC,GAAMS,KAAE,SAAST,GAAE,GAAEG,GAAE;AAAC,SAAOA,IAAEH,KAAG,OAAKP,GAAGI,GAAGG,CAAC,CAAC,IAAE,CAAA,GAAGE,GAAM,CAACF,KAAG,CAACA,EAAE,aAAWN,GAAGS,GAAE,WAAU,EAAC,OAAMH,GAAE,YAAW,GAAE,CAAC,IAAEG,GAAEH,CAAC;AAAC,GAAMU,KAAET,GAAE,SAASU,GAAGC,GAAG;AAAC,MAAIC;AAAG,SAAO,SAAQ,MAAYA,IAAG,SAAO,OAAO,SAAQ,MAAYA,IAAG,SAAO,OAAO,OAAM,MAAYA,IAAG,OAAKA,IAAG,IAAGD,EAAG,UAAQC;AAAE,CAAC;AAAE,SAASC,GAAEd,GAAE,GAAE;AAAC,SAAO,KAAG,QAAM,OAAO,SAAQ,OAAa,EAAE,OAAO,WAAW,IAAE,CAAC,CAAC,EAAE,OAAO,WAAW,EAAEA,CAAC,IAAEc,GAAEd,GAAE,CAAC;AAAC;AAAC,IAAIe,KAAGhB,GAAG,WAAU;AAACgB,EAAAA,GAAE;AAAE,CAAC;AAAE,SAASC,GAAGhB,GAAE;AAAC;AAAwB,SAAOA,KAAG,OAAO,SAAQ,OAAaA,EAAE,gBAAc,SAAO,WAAS,OAAOA;AAAC;AAAC,IAAIiB,KAAGlB,GAAG,WAAU;AAAC,CAAC,GAAMmB,KAAGjB,GAAE,SAASkB,GAAGC,GAAG;AAAC,MAAIC,IAAG,MAAM,UAAU;AAAM,EAAAD,EAAG,UAAQE;AAAG,WAASA,EAAG,GAAEC,GAAE;AAAC,UAAK,YAAW,OAAK,IAAE,CAAC,CAAC,IAAG,IAAEF,EAAG,KAAK,CAAC,GAAE,EAAE,UAAQ;AAAC,UAAIlB,IAAE,EAAE,MAAK,GAAGC,IAAEmB,EAAEpB,CAAC;AAAE,UAAGC,EAAE,QAAOA;AAAE,MAAAD,EAAE,cAAYA,EAAE,WAAW,WAAS,IAAEkB,EAAG,KAAKlB,EAAE,UAAU,EAAE,OAAO,CAAC;AAAA,IAAE;AAAA,EAAC;AAAC,CAAC,GAAMqB,KAAGvB,GAAE,SAASwB,GAAGC,GAAG;AAACX,EAAAA,GAAE,GAAGW,EAAG,UAAQC;AAAG,WAASA,EAAG3B,GAAEuB,GAAE;AAAC,QAAG,CAACT,GAAE,MAAKa,CAAE,EAAE,QAAO,IAAIA,EAAG3B,GAAEuB,CAAC;AAAE,SAAK,OAAKvB,GAAE,KAAK,YAAUA,GAAE,KAAK,SAAOA,EAAE,QAAO,KAAK,gBAAcuB,KAAG;AAAA,EAAI;AAAC,EAAAI,EAAG,UAAU,WAAS,GAAEA,EAAG,UAAU,WAAS,YAAWA,EAAG,UAAU,WAAS,WAAU;AAAC,WAAM;AAAA,EAAkB;AAAC,CAAC,GAAMC,KAAG3B,GAAE,SAAS4B,GAAGC,GAAG;AAACf,EAAAA,GAAE,GAAGe,EAAG,UAAQC;AAAG,WAASA,EAAG/B,GAAEuB,GAAE;AAAC,QAAG,CAACT,GAAE,MAAKiB,CAAE,EAAE,QAAO,IAAIA,EAAG/B,CAAC;AAAE,SAAK,OAAKA,KAAG,IAAG,KAAK,SAAO,KAAK,KAAK,QAAO,KAAK,gBAAcuB,KAAG;AAAA,EAAI;AAAC,EAAAQ,EAAG,UAAU,OAAK,eAAcA,EAAG,UAAU,WAAS,GAAEA,EAAG,UAAU,WAAS,SAAQA,EAAG,UAAU,WAAS,WAAU;AAAC,WAAO,KAAK;AAAA,EAAI,GAAEA,EAAG,UAAU,cAAY,SAASR,GAAEpB,GAAEC,GAAE;AAAC,QAAIC,IAAE,KAAK,MAAK2B,IAAE3B,EAAE,UAAU,GAAEkB,CAAC,GAAEjB,IAAED,EAAE,UAAUkB,IAAEpB,GAAEE,EAAE,MAAM;AAAE,SAAK,OAAK2B,IAAE5B,IAAEE,GAAE,KAAK,SAAO,KAAK,KAAK;AAAA,EAAM;AAAC,CAAC,GAAM2B,KAAGhC,GAAE,SAASiC,GAAGC,GAAG;AAAC,EAAAA,EAAG,UAAQC;AAAG,WAASA,EAAGpC,GAAE;AAAC,QAAIuB,IAAE,MAAKpB,IAAEH,EAAE;AAAK,IAAAA,EAAE,WAASA,EAAE,SAAOuB,IAAGA,EAAE,cAAYA,EAAE,YAAU,CAAA;AAAI,QAAInB,IAAEmB,EAAE,UAAUpB,CAAC;AAAE,QAAGC,EAAE,QAAOA,EAAE,QAAQ,SAASC,GAAE;AAAC,MAAAL,EAAE,gBAAcuB,GAAE,OAAOlB,KAAG,aAAWA,EAAEL,CAAC,IAAEK,EAAE,YAAYL,CAAC;AAAA,IAAC,CAAC;AAAE,IAAAuB,EAAE,cAAYA,EAAE,WAAW,cAAcvB,CAAC;AAAA,EAAC;AAAC,CAAC,GAAMqC,KAAGpC,GAAE,SAASqC,GAAGC,GAAG;AAAC,EAAAA,EAAG,UAAQC;AAAG,WAASA,EAAGxC,GAAEuB,GAAE;AAAC,QAAIpB,IAAE;AAAK,IAAAA,EAAE,cAAYA,EAAE,YAAU,CAAA,IAAIA,EAAE,UAAUH,CAAC,MAAIG,EAAE,UAAUH,CAAC,IAAE,CAAA,IAAIG,EAAE,UAAUH,CAAC,EAAE,QAAQuB,CAAC,MAAI,MAAIpB,EAAE,UAAUH,CAAC,EAAE,KAAKuB,CAAC;AAAA,EAAC;AAAC,CAAC,GAAMkB,KAAGxC,GAAE,SAASyC,GAAGC,GAAG;AAAC,EAAAA,EAAG,UAAQC;AAAG,WAASA,EAAG5C,GAAEuB,GAAE;AAAC,QAAIpB,IAAE;AAAK,QAAGA,EAAE,aAAWA,EAAE,UAAUH,CAAC,GAAE;AAAC,UAAII,IAAED,EAAE,UAAUH,CAAC,GAAEK,IAAED,EAAE,QAAQmB,CAAC;AAAE,MAAAlB,MAAI,MAAID,EAAE,OAAOC,GAAE,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,CAAC,GAAMwC,KAAG5C,GAAE,SAAS6C,GAAGC,GAAG;AAAC9B,EAAAA,GAAE,GAAG8B,EAAG,UAAQC;AAAG,MAAIC,IAAG,CAAC,QAAO,QAAO,MAAK,OAAM,SAAQ,MAAK,OAAM,SAAQ,UAAS,QAAO,YAAW,QAAO,SAAQ,UAAS,SAAQ,KAAK;AAAE,WAASD,EAAGhD,GAAE;AAAC,YAAOA,EAAE,UAAQ;AAAA,MAAE,KAAK;AAAE,eAAOkD,EAAGlD,EAAE,IAAI;AAAA,MAAE,KAAK;AAAE,eAAM,SAAOA,EAAE,OAAK;AAAA,MAAM;AAAQ,eAAOmD,EAAGnD,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,WAASmD,EAAGnD,GAAE;AAAC,QAAIuB,IAAE,CAAA,GAAGpB,IAAEH,EAAE;AAAQ,WAAOA,EAAE,iBAAe,mCAAiCG,IAAEA,EAAE,gBAAeoB,EAAE,KAAK,MAAIpB,IAAEiD,EAAGpD,CAAC,IAAEqD,EAAGrD,CAAC,CAAC,GAAEiD,EAAG,QAAQ9C,CAAC,IAAE,KAAGoB,EAAE,KAAK,KAAK,KAAGA,EAAE,KAAK,GAAG,GAAEvB,EAAE,WAAW,SAAOuB,EAAE,KAAK,MAAMA,GAAEvB,EAAE,WAAW,IAAIgD,CAAE,CAAC,IAAEhD,EAAE,eAAaA,EAAE,YAAUuB,EAAE,KAAK2B,EAAGlD,EAAE,eAAaA,EAAE,SAAS,CAAC,IAAEA,EAAE,aAAWuB,EAAE,KAAKvB,EAAE,SAAS,GAAEuB,EAAE,KAAK,OAAKpB,IAAE,GAAG,IAAGoB,EAAE,KAAK,EAAE;AAAA,EAAC;AAAC,WAAS+B,EAAGtD,GAAEuB,GAAE;AAAC,QAAIpB,IAAEa,GAAGhB,EAAEuB,CAAC,CAAC;AAAE,WAAOA,MAAI,WAAS,OAAO,KAAKvB,EAAE,KAAK,EAAE,SAAO,IAAE,KAAGA,EAAE,eAAeuB,CAAC,MAAIpB,MAAI,YAAUA,MAAI,aAAWA,MAAI,aAAWoB,MAAI,cAAYA,MAAI,eAAaA,MAAI,aAAWA,MAAI,iBAAeA,MAAI,eAAaA,MAAI,kBAAgBA,MAAI;AAAA,EAAW;AAAC,WAASgC,EAAGvD,GAAE;AAAC,QAAG,OAAOA,KAAG,SAAS,QAAOA;AAAE,QAAIuB,IAAE;AAAG,WAAO,OAAO,KAAKvB,CAAC,EAAE,QAAQ,SAASG,GAAE;AAAC,UAAIC,IAAEJ,EAAEG,CAAC;AAAE,MAAAA,IAAEA,EAAE,QAAQ,UAAS,SAASE,GAAE;AAAC,eAAM,MAAIA,EAAE,YAAW;AAAA,MAAE,CAAC,GAAEkB,KAAGpB,IAAE,MAAIC,IAAE;AAAA,IAAG,CAAC,GAAEmB;AAAA,EAAC;AAAC,WAAS8B,EAAGrD,GAAE;AAAC,QAAIuB,IAAEvB,EAAE,SAAQG,IAAE,CAAA;AAAG,aAAQC,KAAKmB,EAAE,CAAApB,EAAE,KAAK,EAAC,MAAK,UAAQC,GAAE,OAAMmB,EAAEnB,CAAC,EAAC,CAAC;AAAE,WAAOD,EAAE,SAAOqD,EAAGrD,CAAC,IAAE;AAAA,EAAE;AAAC,WAASqD,EAAGxD,GAAE;AAAC,QAAIuB,IAAE,CAAA;AAAG,WAAOvB,EAAE,QAAQ,SAASG,GAAE;AAAC,UAAIC,IAAED,EAAE,MAAKE,IAAEF,EAAE;AAAM,MAAAC,MAAI,YAAUC,IAAEkD,EAAGlD,CAAC,IAAGkB,EAAE,KAAKnB,IAAE,OAAKqD,EAAGpD,CAAC,IAAE,GAAG;AAAA,IAAC,CAAC,GAAEkB,EAAE,SAAO,MAAIA,EAAE,KAAK,GAAG,IAAE;AAAA,EAAE;AAAC,WAAS6B,EAAGpD,GAAE;AAAC,QAAIuB,IAAE,CAAA;AAAG,aAAQpB,KAAKH,EAAE,CAAAsD,EAAGtD,GAAEG,CAAC,KAAGoB,EAAE,KAAK,EAAC,MAAKpB,GAAE,OAAMH,EAAEG,CAAC,EAAC,CAAC;AAAE,aAAQC,KAAKJ,EAAE,YAAY,UAAQK,KAAKL,EAAE,YAAYI,CAAC,GAAE;AAAC,UAAI4B,IAAEhC,EAAE,YAAYI,CAAC,EAAEC,CAAC,GAAEC,KAAG0B,EAAE,SAAOA,EAAE,SAAO,MAAI,MAAI3B;AAAE,MAAAkB,EAAE,KAAK,EAAC,MAAKjB,GAAE,OAAM0B,EAAE,MAAK,CAAC;AAAA,IAAC;AAAC,WAAOhC,EAAE,aAAWuB,EAAE,KAAK,EAAC,MAAK,SAAQ,OAAMvB,EAAE,UAAS,CAAC,GAAEuB,EAAE,SAAOiC,EAAGjC,CAAC,IAAE;AAAA,EAAE;AAAC,WAAS2B,EAAGlD,GAAE;AAAC,QAAIuB,IAAE;AAAG,WAAO,OAAOvB,KAAG,WAASuB,IAAEvB,IAAEA,MAAIuB,IAAEvB,EAAE,SAAQ,IAAIuB,EAAE,QAAQ,MAAK,OAAO,EAAE,QAAQ,MAAK,MAAM,EAAE,QAAQ,MAAK,MAAM;AAAA,EAAC;AAAC,WAASkC,EAAGzD,GAAE;AAAC,WAAOkD,EAAGlD,CAAC,EAAE,QAAQ,MAAK,QAAQ;AAAA,EAAC;AAAC,CAAC,GAAM0D,KAAGzD,GAAE,SAAS0D,GAAGC,GAAG;AAAC7C,EAAAA,GAAE;AAAG,MAAI8C,IAAG3C,MAAK4C,IAAG7B,GAAE,GAAG8B,IAAG1B,GAAE,GAAG2B,IAAGvB,MAAKwB,IAAGpB,GAAE,GAAGqB,IAAG;AAA+B,EAAAN,EAAG,UAAQO;AAAE,WAASA,EAAEnE,GAAEuB,GAAEpB,GAAE;AAAC,QAAG,CAACW,GAAE,MAAKqD,CAAC,EAAE,QAAO,IAAIA,EAAEnE,CAAC;AAAE,QAAII,IAAED,MAAI,SAAO+D,IAAG/D,KAAG;AAAK,SAAK,UAAQC,MAAI8D,IAAG,OAAOlE,CAAC,EAAE,YAAW,IAAGA,GAAE,KAAK,WAAS,KAAK,SAAQ,KAAK,YAAU,IAAG,KAAK,UAAQ,CAAA,GAAG,KAAK,aAAW,CAAA,GAAG,KAAK,aAAW,MAAK,KAAK,QAAM,CAAA,GAAG,KAAK,gBAAcuB,KAAG,MAAK,KAAK,eAAanB,GAAE,KAAK,cAAY,CAAA,GAAG,KAAK,YAAU,YAAU,KAAK,OAAK;AAAA,EAAO;AAAC,EAAA+D,EAAE,UAAU,OAAK,cAAaA,EAAE,UAAU,WAAS,GAAEA,EAAE,UAAU,cAAY,SAAS5C,GAAE;AAAC,WAAOA,EAAE,cAAYA,EAAE,WAAW,YAAYA,CAAC,GAAE,KAAK,WAAW,KAAKA,CAAC,GAAEA,EAAE,aAAW,MAAKA;AAAA,EAAC,GAAE4C,EAAE,UAAU,eAAa,SAAS5C,GAAEpB,GAAE;AAAC,IAAAoB,EAAE,cAAYA,EAAE,WAAW,YAAYA,CAAC;AAAE,QAAInB,IAAE,KAAK,WAAW,QAAQD,CAAC;AAAE,WAAOA,EAAE,aAAW,MAAK,KAAK,WAAWC,CAAC,IAAEmB,GAAEA,EAAE,aAAW,MAAKpB;AAAA,EAAC,GAAEgE,EAAE,UAAU,cAAY,SAAS5C,GAAE;AAAC,QAAIpB,IAAE,KAAK,WAAW,QAAQoB,CAAC;AAAE,WAAO,KAAK,WAAW,OAAOpB,GAAE,CAAC,GAAEoB,EAAE,aAAW,MAAKA;AAAA,EAAC,GAAE4C,EAAE,UAAU,eAAa,SAAS5C,GAAEpB,GAAE;AAAC,IAAAoB,EAAE,cAAYA,EAAE,WAAW,YAAYA,CAAC;AAAE,QAAInB,IAAED,KAAG,OAAK,KAAG,KAAK,WAAW,QAAQA,CAAC;AAAE,WAAOC,IAAE,KAAG,KAAK,WAAW,OAAOA,GAAE,GAAEmB,CAAC,IAAE,KAAK,WAAW,KAAKA,CAAC,GAAEA,EAAE,aAAW,MAAKA;AAAA,EAAC,GAAE4C,EAAE,UAAU,iBAAe,SAAS5C,GAAEpB,GAAEC,GAAE;AAAC,QAAIC,IAAE,MAAK2B,IAAE7B,GAAEG,IAAEH,EAAE,QAAQ,GAAG;AAAE,QAAGG,IAAE,OAAKD,IAAEF,EAAE,OAAO,GAAEG,CAAC,GAAE0B,IAAE7B,EAAE,OAAOG,IAAE,CAAC,IAAG,KAAK,YAAU,WAASH,MAAI,OAAO,MAAK,OAAKC;AAAA,SAAM;AAAC,UAAIG,IAAE,KAAK,YAAYgB,CAAC,MAAI,KAAK,YAAYA,CAAC,IAAE,CAAA;AAAI,MAAAhB,EAAEyB,CAAC,IAAE,EAAC,OAAM5B,GAAE,QAAOC,EAAC;AAAA,IAAC;AAAA,EAAC,GAAE8D,EAAE,UAAU,iBAAe,SAAS5C,GAAEpB,GAAE;AAAC,QAAIC,IAAE,KAAK,YAAYmB,CAAC,GAAElB,IAAED,KAAGA,EAAED,CAAC,KAAGC,EAAED,CAAC,EAAE;AAAM,WAAO,KAAK,YAAU,WAASA,MAAI,SAAO,KAAK,OAAK,OAAOE,KAAG,WAAS,OAAKA;AAAA,EAAC,GAAE8D,EAAE,UAAU,oBAAkB,SAAS5C,GAAEpB,GAAE;AAAC,QAAIC,IAAE,KAAK,YAAYmB,CAAC;AAAE,IAAAnB,KAAG,OAAOA,EAAED,CAAC;AAAA,EAAC,GAAEgE,EAAE,UAAU,iBAAe,SAAS5C,GAAEpB,GAAE;AAAC,QAAIC,IAAE,KAAK,YAAYmB,CAAC;AAAE,WAAM,CAAC,CAACnB,KAAGD,KAAKC;AAAA,EAAC,GAAE+D,EAAE,UAAU,eAAa,SAAS5C,GAAEpB,GAAE;AAAC,WAAO,KAAK,eAAe,MAAKoB,GAAEpB,CAAC;AAAA,EAAC,GAAEgE,EAAE,UAAU,eAAa,SAAS5C,GAAE;AAAC,WAAO,KAAK,eAAe,MAAKA,CAAC;AAAA,EAAC,GAAE4C,EAAE,UAAU,kBAAgB,SAAS5C,GAAE;AAAC,WAAO,KAAK,kBAAkB,MAAKA,CAAC;AAAA,EAAC,GAAE4C,EAAE,UAAU,eAAa,SAAS5C,GAAE;AAAC,WAAO,KAAK,eAAe,MAAKA,CAAC;AAAA,EAAC,GAAE4C,EAAE,UAAU,sBAAoBH,GAAGG,EAAE,UAAU,mBAAiBJ,GAAGI,EAAE,UAAU,gBAAcL,GAAGK,EAAE,UAAU,QAAM,WAAU;AAAA,EAAC,GAAEA,EAAE,UAAU,WAAS,WAAU;AAAC,WAAOF,EAAG,IAAI;AAAA,EAAC,GAAEE,EAAE,UAAU,yBAAuB,SAAS5C,GAAE;AAAC,QAAIpB,IAAEoB,EAAE,MAAM,GAAG,GAAEnB,IAAE,CAAA;AAAG,WAAOyD,EAAG,MAAK,SAASxD,GAAE;AAAC,UAAGA,EAAE,aAAW,GAAE;AAAC,YAAI2B,IAAE3B,EAAE,aAAW,IAAGC,IAAE0B,EAAE,MAAM,GAAG;AAAE,QAAA7B,EAAE,MAAM,SAASI,GAAE;AAAC,iBAAOD,EAAE,QAAQC,CAAC,MAAI;AAAA,QAAE,CAAC,KAAGH,EAAE,KAAKC,CAAC;AAAA,MAAC;AAAA,IAAC,CAAC,GAAED;AAAA,EAAC,GAAE+D,EAAE,UAAU,uBAAqB,SAAS5C,GAAE;AAAC,IAAAA,IAAEA,EAAE,YAAW;AAAG,QAAIpB,IAAE,CAAA;AAAG,WAAO0D,EAAG,KAAK,YAAW,SAASzD,GAAE;AAAC,MAAAA,EAAE,aAAW,MAAImB,MAAI,OAAKnB,EAAE,QAAQ,YAAW,MAAKmB,MAAIpB,EAAE,KAAKC,CAAC;AAAA,IAAC,CAAC,GAAED;AAAA,EAAC,GAAEgE,EAAE,UAAU,WAAS,SAAS5C,GAAE;AAAC,WAAOsC,EAAG,MAAK,SAAS1D,GAAE;AAAC,aAAOoB,MAAIpB;AAAA,IAAC,CAAC,KAAG;AAAA,EAAE;AAAC,CAAC,GAAMiE,KAAGnE,GAAE,SAASoE,GAAGC,GAAG;AAACvD,EAAAA,GAAE;AAAG,MAAIwD,IAAGb,GAAE;AAAG,EAAAY,EAAG,UAAQE;AAAE,WAASA,EAAE,GAAE;AAAC,QAAG,CAAC1D,GAAE,MAAK0D,CAAC,EAAE,QAAO,IAAIA;AAAE,SAAK,aAAW,CAAA,GAAG,KAAK,aAAW,MAAK,KAAK,gBAAc,KAAG;AAAA,EAAI;AAAC,EAAAA,EAAE,UAAU,OAAK,oBAAmBA,EAAE,UAAU,WAAS,IAAGA,EAAE,UAAU,WAAS,sBAAqBA,EAAE,UAAU,cAAYD,EAAG,UAAU,aAAYC,EAAE,UAAU,eAAaD,EAAG,UAAU,cAAaC,EAAE,UAAU,cAAYD,EAAG,UAAU,aAAYC,EAAE,UAAU,WAAS,WAAU;AAAC,WAAO,KAAK,WAAW,IAAI,SAASjD,GAAE;AAAC,aAAO,OAAOA,CAAC;AAAA,IAAC,CAAC,EAAE,KAAK,EAAE;AAAA,EAAC;AAAC,CAAC,GAAMkD,KAAGxE,GAAE,SAASyE,GAAGC,GAAG;AAAC,EAAAA,EAAG,UAAQC;AAAG,WAASA,EAAG5E,GAAE;AAAA,EAAC;AAAC,EAAA4E,EAAG,UAAU,YAAU,SAASrD,GAAEpB,GAAEC,GAAE;AAAC,SAAK,OAAKmB,GAAE,KAAK,UAAQpB,GAAE,KAAK,aAAWC;AAAA,EAAC,GAAEwE,EAAG,UAAU,iBAAe,WAAU;AAAA,EAAC;AAAC,CAAC,GAAMC,KAAG5E,GAAE,SAAS6E,GAAGC,GAAG;AAAChE,EAAAA,GAAE;AAAG,MAAIiE,IAAG9D,MAAK+D,IAAGzD,GAAE,GAAG0D,IAAGtD,GAAE,GAAGuD,IAAGzB,MAAK0B,IAAGhB,GAAE,GAAGiB,IAAGZ,GAAE,GAAGa,IAAGrD,GAAE,GAAGsD,IAAGlD,GAAE,GAAGmD,IAAG/C,GAAE;AAAG,EAAAsC,EAAG,UAAQU;AAAG,WAASA,IAAI;AAAC,QAAG,CAAC3E,GAAE,MAAK2E,CAAE,EAAE,QAAO,IAAIA;AAAG,SAAK,OAAK,KAAK,cAAc,MAAM,GAAE,KAAK,OAAK,KAAK,cAAc,MAAM,GAAE,KAAK,kBAAgB,KAAK,cAAc,MAAM,GAAE,KAAK,gBAAgB,YAAY,KAAK,IAAI,GAAE,KAAK,gBAAgB,YAAY,KAAK,IAAI,GAAE,KAAK,aAAW,CAAC,KAAK,eAAe,GAAE,KAAK,WAAS;AAAA,EAAC;AAAC,MAAIC,IAAED,EAAG;AAAU,EAAAC,EAAE,iBAAe,SAASnE,GAAE;AAAC,WAAO,IAAI2D,EAAG3D,GAAE,IAAI;AAAA,EAAC,GAAEmE,EAAE,kBAAgB,SAASnE,GAAEpB,GAAE;AAAC,QAAIC,IAAEmB,MAAI,OAAK,OAAK,OAAOA,CAAC;AAAE,WAAO,IAAI4D,EAAGhF,GAAE,MAAKC,CAAC;AAAA,EAAC,GAAEsF,EAAE,gBAAc,SAASnE,GAAE;AAAC,WAAO,IAAI4D,EAAG5D,GAAE,IAAI;AAAA,EAAC,GAAEmE,EAAE,yBAAuB,WAAU;AAAC,WAAO,IAAIN,EAAG,IAAI;AAAA,EAAC,GAAEM,EAAE,cAAY,SAASnE,GAAE;AAAC,WAAO,IAAI8D,EAAG9D,CAAC;AAAA,EAAC,GAAEmE,EAAE,gBAAc,SAASnE,GAAE;AAAC,WAAO,IAAI0D,EAAG1D,GAAE,IAAI;AAAA,EAAC,GAAEmE,EAAE,iBAAe,SAASnE,GAAE;AAAC,IAAAA,IAAE,OAAOA,CAAC;AAAE,QAAIpB,IAAE6E,EAAG,KAAK,YAAW,SAAS5E,GAAE;AAAC,UAAG,OAAOA,EAAE,EAAE,MAAImB,EAAE,QAAOnB;AAAA,IAAC,CAAC;AAAE,WAAOD,KAAG;AAAA,EAAI,GAAEuF,EAAE,yBAAuBP,EAAG,UAAU,wBAAuBO,EAAE,uBAAqBP,EAAG,UAAU,sBAAqBO,EAAE,WAASP,EAAG,UAAU,UAASO,EAAE,sBAAoBF,GAAGE,EAAE,mBAAiBH,GAAGG,EAAE,gBAAcJ;AAAE,CAAC,GAAMK,KAAG1F,GAAE,SAAS2F,GAAGC,GAAG;AAAC,MAAIC,IAAGjB,GAAE;AAAG,EAAAgB,EAAG,UAAQ,IAAIC;AAAE,CAAC,GAAMC,KAAG9F,GAAE,SAAS+F,GAAGC,GAAG;AAAC,MAAIC,IAAG,OAAO,SAAQ,MAAY,SAAO,OAAO,SAAQ,MAAY,SAAO,CAAA,GAAGC,IAAGR,GAAE,GAAGS;AAAG,SAAO,WAAU,MAAYA,IAAG,YAAUA,IAAGF,EAAG,2BAA2B,GAAEE,MAAKA,IAAGF,EAAG,2BAA2B,IAAEC,KAAKF,EAAG,UAAQG;AAAE,CAAC;AAAE,SAASC,GAAGrG,GAAE;AAAC,MAAG,MAAM,QAAQA,CAAC,EAAE,QAAOA;AAAC;AAAC,SAASsG,GAAGtG,GAAE,GAAE;AAAC,MAAIG,IAAEH,KAAG,OAAK,OAAK,OAAO,SAAQ,OAAaA,EAAE,OAAO,QAAQ,KAAGA,EAAE,YAAY;AAAE,MAAGG,KAAG,MAAK;AAAC,QAAIC,IAAE,CAAA,GAAGC,IAAE,IAAG,IAAE,IAAGC,GAAEC;AAAE,QAAG;AAAC,WAAIJ,IAAEA,EAAE,KAAKH,CAAC,GAAE,EAAEK,KAAGC,IAAEH,EAAE,KAAI,GAAI,UAAQC,EAAE,KAAKE,EAAE,KAAK,GAAE,EAAE,KAAGF,EAAE,WAAS,KAAIC,IAAE,GAAG;AAAA,IAAC,SAAOG,GAAE;AAAC,UAAE,IAAGD,IAAEC;AAAA,IAAC,UAAC;AAAQ,UAAG;AAAC,SAACH,KAAGF,EAAE,UAAQ,QAAMA,EAAE,OAAM;AAAA,MAAE,UAAC;AAAQ,YAAG,EAAE,OAAMI;AAAA,MAAC;AAAA,IAAC;AAAC,WAAOH;AAAA,EAAC;AAAC;AAAC,SAASmG,KAAI;AAAC,QAAM,IAAI,UAAU;AAAA,mFAA2I;AAAC;AAAC,SAASC,GAAGxG,GAAE,GAAE;AAAC,GAAC,KAAG,QAAM,IAAEA,EAAE,YAAU,IAAEA,EAAE;AAAQ,WAAQG,IAAE,GAAEC,IAAE,IAAI,MAAM,CAAC,GAAED,IAAE,GAAEA,IAAI,CAAAC,EAAED,CAAC,IAAEH,EAAEG,CAAC;AAAE,SAAOC;AAAC;AAAC,SAASqG,GAAGzG,GAAE,GAAE;AAAC,MAAGA,GAAE;AAAC,QAAG,OAAOA,KAAG,SAAS,QAAOwG,GAAGxG,GAAE,CAAC;AAAE,QAAIG,IAAE,OAAO,UAAU,SAAS,KAAKH,CAAC,EAAE,MAAM,GAAE,EAAE;AAAE,QAAGG,MAAI,YAAUH,EAAE,gBAAcG,IAAEH,EAAE,YAAY,OAAMG,MAAI,SAAOA,MAAI,MAAM,QAAO,MAAM,KAAKA,CAAC;AAAE,QAAGA,MAAI,eAAa,2CAA2C,KAAKA,CAAC,EAAE,QAAOqG,GAAGxG,GAAE,CAAC;AAAA,EAAC;AAAC;AAAC,SAAS0G,GAAE1G,GAAE,GAAE;AAAC,SAAOqG,GAAGrG,CAAC,KAAGsG,GAAGtG,GAAE,CAAC,KAAGyG,GAAGzG,GAAE,CAAC,KAAGuG,GAAE;AAAE;AAAC,IAAII,KAAGlG,GAAEC,GAAC,CAAE,GAAMkG,KAAGnG,GAAEC,GAAC,CAAE,GAAMmG,KAAGpG,GAAEC,GAAC,CAAE,GAAEoG,KAAG,EAAC,KAAI,WAAU;AAAC,MAAI9G,IAAE6G,GAAG,QAAQ,aAAY,IAAE7G,KAAGA,EAAE,QAAOG,IAAE,KAAG,EAAE,iBAAgBC,IAAE,OAAOD,KAAG,YAAU,OAAOH,EAAE,OAAK,aAAWG,IAAEH,EAAE,IAAG,IAAG,KAAK,IAAG;AAAG,SAAO,KAAK,MAAMI,CAAC;AAAC,EAAC,GAAE2G,KAAED,IAAOE,KAAG,WAAU;AAAC,MAAIzF,GAAEpB,GAAE;AAAE,MAAG,SAAQoB,IAAEqF,GAAG,QAAQ,YAAU,QAAMrF,MAAI,SAAO,SAAOA,EAAE,oBAAkB,YAAW;AAAC,QAAE,IAAI,WAAW,EAAE,GAAEqF,GAAG,QAAQ,OAAO,gBAAgB,CAAC;AAAE,aAAQ,IAAE,GAAE,IAAE,IAAG,IAAI,GAAE,CAAC,IAAE,EAAE,CAAC,IAAE;AAAA,EAAE,OAAK;AAAC,QAAE;AAAG,aAAQ5E,IAAE,GAAEA,IAAE,IAAGA,IAAI,GAAEA,CAAC,IAAE,KAAK,OAAM,IAAG,KAAG;AAAA,EAAC;AAAC,MAAI1B,IAAE;AAAE,EAAAH,IAAE,uCAAuC,QAAQ,SAAQ,SAAS8G,GAAE;AAAC,QAAIC,IAAED,MAAI,MAAI,EAAE3G,CAAC,IAAE,EAAEA,CAAC,IAAE,IAAE;AAAE,WAAOA,KAAI4G,EAAE,SAAS,EAAE;AAAA,EAAC,CAAC;AAAE,MAAI,IAAEH,GAAE,IAAG,GAAGvG,IAAE,KAAG,OAAK,SAAO,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC;AAAE,SAAOA,IAAEL,EAAE,UAAU,GAAE,EAAE,IAAEK,IAAEL;AAAC,GAAEgH,KAAG,WAAU;AAAC,UAAO,YAAU,KAAK,OAAM,IAAG,KAAK,IAAI,IAAG,CAAC,KAAG,GAAG,SAAS,EAAE,GAAG,MAAM,EAAE;AAAC,GAAMC,KAAE,SAAS7F,GAAE;AAAC,MAAGA,KAAG,OAAOA,EAAE,WAAU,IAAY,QAAOA,EAAE,UAAQA,EAAE,QAAM4F,GAAE,IAAI5F,EAAE;AAAM,MAAIpB;AAAE,MAAG;AAAC,IAAAA,IAAE,SAAS,cAAcoB,CAAC;AAAA,EAAC,QAAS;AAAA,EAAC;AAAC,SAAOpB,KAAG,CAACA,EAAE,UAAQA,EAAE,QAAMoB,KAAIpB,KAAG,OAAK,SAAOA,EAAE,UAAQoB;AAAC,GAAE8F,KAAG,SAAS9F,GAAE;AAAC,MAAIpB;AAAE,EAAAoB,KAAG,OAAOA,EAAE,WAAU,OAAapB,IAAEoB,GAAEA,IAAE6F,GAAEjH,CAAC,KAAGA,IAAE,SAAS,cAAcoB,CAAC;AAAE,MAAI,IAAEpB,KAAGA,EAAE,WAASA,EAAE,SAAS,YAAW,IAAG;AAAG,SAAM,CAACA,GAAEoB,GAAE,CAAC;AAAC;AAAE,SAAS+F,GAAGtH,GAAE;AAAC,MAAG,MAAM,QAAQA,CAAC,EAAE,QAAOwG,GAAGxG,CAAC;AAAC;AAAC,SAASuH,GAAGvH,GAAE;AAAC,MAAG,OAAO,SAAQ,OAAaA,EAAE,OAAO,QAAQ,KAAG,QAAMA,EAAE,YAAY,KAAG,KAAK,QAAO,MAAM,KAAKA,CAAC;AAAC;AAAC,SAASwH,KAAI;AAAC,QAAM,IAAI,UAAU;AAAA,mFAAsI;AAAC;AAAC,SAASC,GAAEzH,GAAE;AAAC,SAAOsH,GAAGtH,CAAC,KAAGuH,GAAGvH,CAAC,KAAGyG,GAAGzG,CAAC,KAAGwH,GAAE;AAAE;AAAC,IAAIE,KAAE,EAAC,OAAM,GAAE,OAAM,GAAE,MAAK,GAAE,MAAK,GAAE,OAAM,EAAU,GAAEC,KAAG,SAAS3H,GAAE;AAAC,MAAI,IAAE,UAAU,SAAO,KAAG,UAAU,CAAC,MAAI,SAAO,UAAU,CAAC,IAAE,GAAEG,GAAEC,GAAEC,GAAE,GAAEC,GAAEC,IAAI,CAAC,SAAQP,CAAC,GAAYQ,KAAGL,IAAE,QAAQ,OAAO,KAAK,MAAMA,GAAEsH,GAAElH,CAAC,CAAC,GAAE0G,KAAG7G,IAAE,QAAQ,MAAM,KAAK,MAAMA,GAAEqH,GAAElH,CAAC,CAAC,GAAE2G,KAAG7G,IAAE,QAAQ,OAAO,KAAK,MAAMA,GAAEoH,GAAElH,CAAC,CAAC,GAAEqH,KAAG,IAAE,QAAQ,MAAM,KAAK,MAAM,GAAEH,GAAElH,CAAC,CAAC,GAAEsH,KAAGvH,IAAE,QAAQ,OAAO,KAAK,MAAMA,GAAEmH,GAAElH,CAAC,CAAC,GAAEuH,IAAE;AAAE,SAAM,EAAC,OAAM,WAAU;AAAC,aAAQC,IAAE,UAAU,QAAOC,IAAE,IAAI,MAAMD,CAAC,GAAEE,IAAE,GAAEA,IAAEF,GAAEE,IAAI,CAAAD,EAAEC,CAAC,IAAE,UAAUA,CAAC;AAAE,QAAG,EAAEH,IAAEJ,GAAE,OAAO,QAAOlH,EAAE,MAAM,QAAOiH,GAAEO,CAAC,CAAC;AAAA,EAAC,GAAE,OAAM,WAAU;AAAC,aAAQD,IAAE,UAAU,QAAOC,IAAE,IAAI,MAAMD,CAAC,GAAEE,IAAE,GAAEA,IAAEF,GAAEE,IAAI,CAAAD,EAAEC,CAAC,IAAE,UAAUA,CAAC;AAAE,QAAG,EAAEH,IAAEJ,GAAE,OAAO,QAAOR,EAAE,MAAM,QAAOO,GAAEO,CAAC,CAAC;AAAA,EAAC,GAAE,MAAK,WAAU;AAAC,aAAQD,IAAE,UAAU,QAAOC,IAAE,IAAI,MAAMD,CAAC,GAAEE,IAAE,GAAEA,IAAEF,GAAEE,IAAI,CAAAD,EAAEC,CAAC,IAAE,UAAUA,CAAC;AAAE,QAAG,EAAEH,IAAEJ,GAAE,MAAM,QAAOT,EAAE,MAAM,QAAOQ,GAAEO,CAAC,CAAC;AAAA,EAAC,GAAE,MAAK,WAAU;AAAC,aAAQD,IAAE,UAAU,QAAOC,IAAE,IAAI,MAAMD,CAAC,GAAEE,IAAE,GAAEA,IAAEF,GAAEE,IAAI,CAAAD,EAAEC,CAAC,IAAE,UAAUA,CAAC;AAAE,QAAG,EAAEH,IAAEJ,GAAE,MAAM,QAAOE,EAAE,MAAM,QAAOH,GAAEO,CAAC,CAAC;AAAA,EAAC,GAAE,OAAM,WAAU;AAAC,aAAQD,IAAE,UAAU,QAAOC,IAAE,IAAI,MAAMD,CAAC,GAAEE,IAAE,GAAEA,IAAEF,GAAEE,IAAI,CAAAD,EAAEC,CAAC,IAAE,UAAUA,CAAC;AAAE,QAAG,EAAEH,IAAEJ,GAAE,OAAO,QAAOG,EAAE,MAAM,QAAOJ,GAAEO,CAAC,CAAC;AAAA,EAAC,GAAE,IAAI,QAAO;AAAC,WAAOF;AAAA,EAAC,GAAE,IAAI,MAAMI,GAAE;AAAC,IAAAA,MAAI,KAAK,UAAQJ,IAAEI,KAAU;AAAA,EAAE,EAAC;AAAC,GAAMC,KAAER,GAAG,OAAO,GAAMS,KAAG3H,GAAEC,GAAC,CAAE;AAAE,SAAS2H,KAAI;AAAC,MAAIrI,IAAEoI,GAAG,QAAQ,cAAYA,GAAG,QAAQ,aAAWA,GAAG,QAAQ,UAAU;AAAW,SAAOpI,MAAI;AAAG;AAAC,SAASsI,EAAEtI,GAAE;AAAC,MAAGA,MAAI,OAAO,OAAM,IAAI,eAAe,2DAA2D;AAAE,SAAOA;AAAC;AAACe,GAAE;AAAG,SAASwH,GAAEvI,GAAE,GAAE;AAAC,MAAG,CAACc,GAAEd,GAAE,CAAC,EAAE,OAAM,IAAI,UAAU,mCAAmC;AAAC;AAAC,SAASwI,GAAGxI,GAAE,GAAE;AAAC,WAAQG,IAAE,GAAEA,IAAE,EAAE,QAAOA,KAAI;AAAC,QAAIC,IAAE,EAAED,CAAC;AAAE,IAAAC,EAAE,aAAWA,EAAE,cAAY,IAAGA,EAAE,eAAa,IAAG,WAAUA,MAAIA,EAAE,WAAS,KAAI,OAAO,eAAeJ,GAAEI,EAAE,KAAIA,CAAC;AAAA,EAAC;AAAC;AAAC,SAASqI,GAAEzI,GAAE,GAAEG,GAAE;AAAC,SAAO,KAAGqI,GAAGxI,EAAE,WAAU,CAAC,GAAaA;AAAC;AAAC,SAAS0I,EAAE1I,GAAE,GAAEG,GAAE;AAAC,SAAO,KAAKH,IAAE,OAAO,eAAeA,GAAE,GAAE,EAAC,OAAMG,GAAE,YAAW,IAAG,cAAa,IAAG,UAAS,GAAE,CAAC,IAAEH,EAAE,CAAC,IAAEG,GAAEH;AAAC;AAAC,SAAS2I,GAAE3I,GAAE;AAAC,SAAO2I,KAAE,OAAO,iBAAe,OAAO,iBAAe,SAASxI,GAAE;AAAC,WAAOA,EAAE,aAAW,OAAO,eAAeA,CAAC;AAAA,EAAC,GAAEwI,GAAE3I,CAAC;AAAC;AAAC,SAAS4I,GAAG5I,GAAE,GAAE;AAAC,SAAK,CAAC,OAAO,UAAU,eAAe,KAAKA,GAAE,CAAC,MAAIA,IAAE2I,GAAE3I,CAAC,GAAEA,MAAI,QAAO;AAAC,SAAOA;AAAC;AAAC,SAAS6I,GAAG7I,GAAE,GAAEG,GAAE;AAAC,SAAO,OAAO,UAAS,OAAa,QAAQ,MAAI0I,KAAG,QAAQ,MAAIA,KAAG,SAAS,GAAE7G,GAAE1B,GAAE;AAAC,QAAI,IAAEsI,GAAG,GAAE5G,CAAC;AAAE,QAAG,GAAE;AAAC,UAAIxB,IAAE,OAAO,yBAAyB,GAAEwB,CAAC;AAAE,aAAOxB,EAAE,MAAIA,EAAE,IAAI,KAAKF,KAAG,CAAC,IAAEE,EAAE;AAAA,IAAK;AAAA,EAAC,GAAEqI,GAAG7I,GAAE,GAAEG,KAAGH,CAAC;AAAC;AAAC,SAAS8I,GAAG9I,GAAE,GAAE;AAAC,SAAO8I,KAAG,OAAO,kBAAgB,SAAS,GAAE,GAAE;AAAC,WAAO,EAAE,YAAU,GAAE;AAAA,EAAC,GAAEA,GAAG9I,GAAE,CAAC;AAAC;AAAC,SAAS+I,GAAG/I,GAAE,GAAE;AAAC,MAAG,OAAO,KAAG,cAAY,MAAI,KAAK,OAAM,IAAI,UAAU,oDAAoD;AAAE,EAAAA,EAAE,YAAU,OAAO,OAAO,KAAG,EAAE,WAAU,EAAC,aAAY,EAAC,OAAMA,GAAE,UAAS,IAAG,cAAa,GAAE,EAAC,CAAC,GAAE,KAAG8I,GAAG9I,GAAE,CAAC;AAAC;AAAC,SAASgJ,GAAGhJ,GAAE,GAAE;AAAC,MAAGA,KAAG,KAAK,QAAM,CAAA;AAAG,MAAIG,IAAE,CAAA,GAAGC,IAAE,OAAO,KAAKJ,CAAC,GAAEK,GAAE;AAAE,OAAI,IAAE,GAAE,IAAED,EAAE,QAAO,IAAI,CAAAC,IAAED,EAAE,CAAC,GAAE,EAAE,EAAE,QAAQC,CAAC,KAAG,OAAKF,EAAEE,CAAC,IAAEL,EAAEK,CAAC;AAAG,SAAOF;AAAC;AAAC,SAAS8I,GAAGjJ,GAAE,GAAE;AAAC,MAAGA,KAAG,KAAK,QAAM;AAAG,MAAIG,IAAE6I,GAAGhJ,GAAE,CAAC,GAAEI,GAAEC;AAAE,MAAG,OAAO,uBAAsB;AAAC,QAAI,IAAE,OAAO,sBAAsBL,CAAC;AAAE,SAAIK,IAAE,GAAEA,IAAE,EAAE,QAAOA,IAAI,CAAAD,IAAE,EAAEC,CAAC,GAAE,EAAE,EAAE,QAAQD,CAAC,KAAG,MAAI,OAAO,UAAU,qBAAqB,KAAKJ,GAAEI,CAAC,MAAID,EAAEC,CAAC,IAAEJ,EAAEI,CAAC;AAAA,EAAE;AAAC,SAAOD;AAAC;AAAC,SAAS+I,KAAI;AAAC,MAAG,OAAO,UAAS,OAAa,CAAC,QAAQ,aAAW,QAAQ,UAAU,KAAK,QAAM;AAAG,MAAG,OAAO,SAAO,WAAW,QAAM;AAAG,MAAG;AAAC,WAAO,QAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,SAAQ,CAAA,GAAG,WAAU;AAAA,IAAC,CAAC,CAAC,GAAE;AAAA,EAAE,QAAS;AAAC,WAAM;AAAA,EAAE;AAAC;AAACjI,GAAE;AAAG,SAASkI,GAAGnJ,GAAE,GAAE;AAAC,SAAO,MAAIgB,GAAG,CAAC,MAAI,YAAU,OAAO,KAAG,cAAY,IAAEsH,EAAEtI,CAAC;AAAC;AAAC,SAASoJ,GAAGpJ,GAAE;AAAC,MAAI,IAAEkJ,GAAE;AAAG,SAAO,WAAU;AAAC,QAAI,IAAEP,GAAE3I,CAAC,GAAE;AAAE,QAAG,GAAE;AAAC,UAAIgC,IAAE2G,GAAE,IAAI,EAAE;AAAY,UAAE,QAAQ,UAAU,GAAE,WAAU3G,CAAC;AAAA,IAAC,MAAM,KAAE,EAAE,MAAM,MAAK,SAAS;AAAE,WAAOmH,GAAG,MAAK,CAAC;AAAA,EAAC;AAAC;AAAC,IAAIE,KAAE,SAASrJ,GAAE;AAAC,SAAOsJ,GAAGtJ,CAAC,EAAE,CAAC;AAAC,GAAMsJ,KAAG,SAAStJ,GAAE;AAAC,MAAG,OAAOA,KAAG,YAAUA,MAAI,GAAG,QAAM,CAAC,WAAW;AAAE,MAAI,IAAE,iEAAgEG,IAAEH,EAAE,MAAM,CAAC,KAAG,CAAA,GAAGI,IAAED,EAAE,CAAC,GAAEE;AAAE,SAAOD,MAAIC,KAAGD,EAAE,MAAM,iBAAiB,KAAG,CAAA,GAAI,CAAC,IAAG,CAACA,GAAEC,CAAC;AAAC,GAAMkJ,KAAG9I,GAAEC,GAAC,CAAE,GAAE8I,KAAG,EAAC,QAAO,WAAU;AAAC,MAAIxJ,IAAEuJ,GAAG,QAAQ,aAAY,IAAEvJ,KAAGA,EAAE;AAAO,SAAO,MAAI;AAAM,GAAE,0BAAyB,WAAU;AAAC,MAAIA,IAAEuJ,GAAG,QAAQ,aAAY,IAAEvJ,KAAGA,EAAE;AAAO,SAAO,KAAG,EAAE;AAAwB,GAAE,iBAAgB,WAAU;AAAC,MAAIA,IAAEuJ,GAAG,QAAQ,aAAY,IAAEvJ,KAAGA,EAAE;AAAO,SAAO,KAAG,EAAE;AAAe,EAAC,GAAEyJ,KAAGD;AAAG,SAASE,GAAE1J,GAAE,GAAEG,GAAE;AAAC,EAAAA,IAAEA,MAAI,SAAO,IAAEA,GAAEH,EAAE,CAAC,IAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAGG;AAAC;AAAC,SAASwJ,GAAG3J,GAAE;AAAC,WAAQ,IAAE,GAAE,IAAE,UAAU,QAAO,KAAI;AAAC,QAAIG,IAAE,UAAU,CAAC,KAAG,OAAK,UAAU,CAAC,IAAE,CAAA,GAAGC,IAAE,OAAO,KAAKD,CAAC;AAAE,WAAO,OAAO,yBAAuB,eAAaC,IAAEA,EAAE,OAAO,OAAO,sBAAsBD,CAAC,EAAE,OAAO,SAASE,GAAE;AAAC,aAAO,OAAO,yBAAyBF,GAAEE,CAAC,EAAE;AAAA,IAAU,CAAC,CAAC,IAAGD,EAAE,QAAQ,SAASC,GAAE;AAACqI,MAAAA,EAAE1I,GAAEK,GAAEF,EAAEE,CAAC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAC;AAAC,SAAOL;AAAC;AAAC,SAAS4J,GAAG5J,GAAE,GAAE;AAAC,MAAIG,IAAE,OAAO,KAAKH,CAAC;AAAE,MAAG,OAAO,uBAAsB;AAAC,QAAII,IAAE,OAAO,sBAAsBJ,CAAC;AAAuF,IAAAG,EAAE,KAAK,MAAMA,GAAEC,CAAC;AAAA,EAAC;AAAC,SAAOD;AAAC;AAAC,SAAS0J,GAAG7J,GAAE,GAAE;AAAC,SAAO,IAAE,KAAU,CAAA,GAAG,OAAO,4BAA0B,OAAO,iBAAiBA,GAAE,OAAO,0BAA0B,CAAC,CAAC,IAAE4J,GAAG,OAAO,CAAC,CAAC,EAAE,QAAQ,SAASzJ,GAAE;AAAC,WAAO,eAAeH,GAAEG,GAAE,OAAO,yBAAyB,GAAEA,CAAC,CAAC;AAAA,EAAC,CAAC,GAAEH;AAAC;AAAC,IAAI8J,KAAG,CAAC,SAAQ,cAAc,GAAEC,KAAG,CAAC,gBAAe,UAAS,eAAc,qBAAqB,GAAEC,KAAGF,GAAG,OAAOC,EAAE;AAAE,SAASE,GAAGjK,GAAE;AAAC,EAAAA,IAAEA,KAAG;AAAG,MAAI,IAAE,CAAA,GAAGG,IAAEH,EAAE,KAAI,EAAG,MAAM,SAAS;AAAE,SAAOG,EAAE,QAAQ,SAASC,GAAE;AAAC,QAAGA,GAAE;AAAC,UAAIC,IAAED,EAAE,MAAM,IAAI,GAAE,IAAEC,EAAE,MAAK;AAAG,YAAI2J,GAAG,QAAQ,EAAE,YAAW,CAAE,KAAG,KAAG,EAAE,YAAW,EAAG,QAAQ,UAAU,MAAI,OAAK,EAAE,CAAC,IAAE3J,EAAE,KAAK,IAAI;AAAA,IAAE;AAAA,EAAC,CAAC,GAAE;AAAC;AAAC,SAAS6J,GAAGlK,GAAE;AAAC,MAAGA,GAAE;AAAC,QAAI,IAAE+J,GAAG,KAAK,SAAS5J,GAAE;AAAC,aAAOH,EAAEG,CAAC,MAAI;AAAA,IAAM,CAAC;AAAE,WAAO,IAAEH,EAAE,CAAC,IAAE;AAAA,EAAM;AAAC;AAAC,IAAImK,KAAG,SAASnK,GAAE;AAAC,MAAI,IAAE,CAAA;AAAG,WAAQG,KAAKH,GAAE;AAAC,QAAII,IAAEJ,EAAEG,CAAC,GAAEE,IAAED,EAAE,SAAS,EAAE,OAAO,gBAAgB;AAAE,QAAGC,MAAI,IAAG;AAAC,UAAI,IAAED,EAAE,SAAS,EAAE,QAAQ,kBAAiB,EAAE;AAAE,QAAE,CAAC,IAAEA,EAAE;AAAA,IAAK;AAAA,EAAC;AAAC,SAAO;AAAC,GAAEgK,KAAGD,IAAOE,KAAG,SAASrK,GAAE;AAAC,MAAG,CAACA,EAAE,QAAM;AAAG,MAAI,IAAEyJ,GAAG,gBAAe,GAAGtJ,IAAEH,EAAE,SAAQI,IAAED,IAAEA,EAAE,QAAMH,EAAE,UAASK,IAAEF,IAAEA,EAAE,QAAMH,EAAE,QAAO,IAAEG,IAAEA,EAAE,MAAIH,EAAE;AAAM,SAAM,EAAC,aAAYA,EAAE,OAAM,cAAa,KAAK,MAAM,IAAEI,CAAC,GAAE,eAAc,KAAK,MAAM,IAAEC,CAAC,GAAE,aAAY,KAAK,MAAM,IAAE,CAAC,EAAC;AAAC,GAAEiK,KAAG,SAAStK,GAAE;AAAC,MAAG,EAAE,CAACA,KAAG,OAAOA,EAAE,yBAAuB,YAAY,QAAOiK,GAAGjK,EAAE,sBAAqB,CAAE;AAAC,GAAEuK,KAAG,SAASvK,GAAE,GAAEG,GAAE;AAAI,MAA6D,IAAE,UAAU,SAAO,IAAE,UAAU,CAAC,IAAE,QAAO6B,IAAEhC,EAAE,KAAIM,IAAEN,EAAE,MAAM,aAAY,IAAE,SAASiI,GAAE;AAAC,QAAIuC,IAAE,SAAS,EAAE,OAAO,GAAEC;AAAE,WAAOD,MAAI,KAAGvC,EAAE,oBAAkB,SAAOwC,IAAExC,EAAE,kBAAiBuC,MAAI,KAAGvC,EAAE,QAAM,SAAOwC,IAAExC,EAAE,MAAKwC;AAAA,EAAC;AAAE,MAAG,CAAChB,GAAG,OAAM,GAAG;AAAC,IAAAzH,EAAE,KAAK,wDAAwD;AAAE;AAAA,EAAM;AAAC,MAAIxB,IAAE,SAASyH,GAAEuC,GAAE;AAAC,WAAOxK,EAAE,KAAK,GAAEiI,GAAEuC,CAAC;AAAA,EAAC,GAAEvD,IAAE,SAASgB,GAAEuC,GAAE;AAAC,QAAIC,IAAED,EAAE,QAAOE,IAAEF,EAAE,aAAYG,IAAEH,EAAE,KAAII,IAAEJ,EAAE,OAAMK,IAAEL,EAAE,gBAAeM,IAAEN,EAAE,aAAYO,IAAE,CAAA,GAAGC,IAAE,CAAA;AAAG,IAAAP,EAAE,QAAQ,SAASQ,IAAEC,IAAG;AAAC,MAAAH,EAAEG,EAAE,IAAE,EAAC,OAAMD,GAAE,OAAM,QAAOA,GAAE,QAAO,SAAQA,GAAE,SAAQ,OAAMA,GAAE,MAAK;AAAA,IAAC,CAAC,GAAEP,EAAE,QAAQ,SAASO,IAAEC,IAAG;AAAC,MAAAF,EAAEE,EAAE,IAAE,EAAC,MAAKD,GAAE,MAAK,UAASA,GAAE,MAAK,SAAQA,GAAE,QAAO;AAAA,IAAC,CAAC;AAAE,QAAIE,IAAEd,GAAGO,CAAC,GAAEQ,IAAED,EAAE,aAAYE,KAAEF,EAAE,cAAaG,KAAGH,EAAE,eAAcI,KAAGJ,EAAE;AAAY,IAAA3K,EAAE,oBAAmBqJ,GAAGF,GAAG,CAAA,GAAGS,GAAGU,CAAC,CAAC,GAAE,EAAC,oBAAmB7C,GAAE,sBAAqBmD,GAAE,eAAcC,IAAE,wBAAuBC,IAAG,sBAAqBC,IAAG,cAAa,YAAW,kBAAiBlC,GAAEsB,CAAC,GAAE,0BAAyBL,GAAGO,CAAC,GAAE,yBAAwB,EAAC,OAAME,GAAE,OAAMC,GAAE,OAAM,CAAA,EAAE,EAAC,CAAC,CAAC;AAAA,EAAC;AAAE,EAAA7K,EAAE,GAAG,EAAE,OAAO,iBAAgB8G,CAAC;AAAE,MAAIC,IAAE,SAASe,GAAEuC,GAAE;AAAC,QAAIC,IAAED,EAAE,SAAQE,IAAEF,EAAE,OAAMG,IAAEH,EAAE,gBAAeI,IAAEJ,EAAE,OAAMK,IAAER,GAAGO,CAAC,GAAEE,IAAED,EAAE,aAAYE,IAAEF,EAAE,cAAaG,IAAEH,EAAE,eAAcM,IAAEN,EAAE,aAAYO,IAAEX,EAAE,UAAUA,EAAE,UAAU,SAAO,CAAC,GAAEY,KAAE,EAAED,CAAC,IAAE9K,EAAE8K,EAAE,QAAQ;AAAE,IAAA5K,EAAE,oBAAmB,EAAC,oBAAmByH,GAAE,sBAAqB6C,GAAE,eAAcC,GAAE,wBAAuBC,GAAE,sBAAqBG,GAAE,uBAAsBT,GAAE,cAAa,YAAW,kBAAiBrB,GAAEoB,EAAE,GAAG,GAAE,0BAAyBH,GAAGK,CAAC,GAAE,gBAAeF,EAAE,YAAUnK,EAAEmK,EAAE,QAAQ,GAAE,qBAAoBA,EAAE,gBAAcnK,EAAEmK,EAAE,YAAY,GAAE,4BAA2BA,EAAE,cAAYnK,EAAEmK,EAAE,UAAU,GAAE,uBAAsBA,EAAE,kBAAgBnK,EAAEmK,EAAE,cAAc,GAAE,sBAAqBA,EAAE,MAAK,qCAAoC,MAAMY,EAAC,IAAE,SAAOA,GAAC,CAAC;AAAA,EAAC;AAAE,EAAAlL,EAAE,GAAG,EAAE,OAAO,cAAa+G,CAAC;AAAE,MAAIU,IAAE,SAASK,GAAEuC,GAAE;AAAC,QAAIC,IAAED,EAAE,SAAQE,IAAEF,EAAE,gBAAeG,IAAEH,EAAE,OAAMI,IAAEP,GAAGM,CAAC,GAAEE,IAAED,EAAE,aAAYE,IAAEF,EAAE,cAAaG,IAAEH,EAAE,eAAcI,IAAEJ,EAAE;AAAY,IAAApK,EAAE,oBAAmB,EAAC,oBAAmByH,GAAE,sBAAqB4C,GAAE,eAAcC,GAAE,wBAAuBC,GAAE,sBAAqBC,GAAE,cAAa,YAAW,kBAAiB3B,GAAEoB,EAAE,GAAG,GAAE,0BAAyBH,GAAGI,CAAC,EAAC,CAAC;AAAA,EAAC;AAAE,EAAAvK,EAAE,GAAG,EAAE,OAAO,oBAAmByH,CAAC;AAAE,MAAIC,IAAE,SAASI,GAAEuC,GAAE;AAAC,QAAIC,IAAED,EAAE,OAAME,IAAEF,EAAE,gBAAeG,IAAEH,EAAE;AAAK,IAAAC,IAAEA,KAAGE,EAAE;AAAM,QAAIC,IAAEP,GAAGI,CAAC,GAAEI,IAAED,EAAE,aAAYE,IAAEF,EAAE,cAAaG,IAAEH,EAAE,eAAcI,IAAEJ,EAAE,aAAYO,IAAET,IAAEJ,GAAGI,CAAC,IAAE,QAAOU,IAAE,EAAC,oBAAmBnD,GAAE,sBAAqB4C,GAAE,eAAcC,GAAE,wBAAuBC,GAAE,sBAAqBC,GAAE,kBAAiBN,IAAErB,GAAEqB,EAAE,WAAW,IAAE,QAAO,YAAWS,IAAEjB,GAAGiB,CAAC,IAAE,QAAO,0BAAyBA,GAAE,wBAAuBR,EAAE,UAAS,aAAYD,KAAG,OAAK,SAAOA,EAAE,YAAW;AAAE,IAAAC,EAAE,SAAO,UAAQS,EAAE,eAAa,SAAQA,EAAE,wBAAsBT,EAAE,OAAMS,EAAE,uBAAqBjL,EAAE,OAAOwK,EAAE,KAAK,KAAG,CAAA,GAAI,OAAMS,EAAE,wBAAsBjL,EAAE,OAAOwK,EAAE,KAAK,KAAG,CAAA,GAAI,QAAOS,EAAE,2BAAyBjL,EAAE,OAAOwK,EAAE,KAAK,KAAG,CAAA,GAAI,WAASS,EAAE,eAAaT,EAAE,MAAKnK,EAAE,oBAAmB4K,CAAC;AAAA,EAAC;AAAE,EAAAjL,EAAE,GAAG,EAAE,OAAO,aAAY0H,CAAC;AAAE,MAAIC,IAAE,SAASG,GAAEuC,GAAE;AAAC,QAAIC,IAAED,EAAE,MAAKE,IAAED,EAAE,OAAME,IAAE,EAAEF,CAAC,GAAEG,IAAE,EAAC,oBAAmBD,GAAE,sBAAqBrK,EAAEoK,CAAC,EAAC;AAAE,IAAAlK,EAAE,kBAAiBoK,CAAC;AAAA,EAAC;AAAE,EAAAzK,EAAE,GAAG,EAAE,OAAO,cAAa2H,CAAC;AAAE,MAAII,IAAE,SAASD,GAAEuC,GAAE;AAAC,QAAIC,IAAED,EAAE,MAAKE,IAAEF,EAAE,SAAQG,IAAEH,EAAE,UAASI,IAAEJ,EAAE,OAAMK,IAAEL,EAAE,MAAKM,IAAEN,EAAE,gBAAeO,KAAGF,KAAG,OAAK,SAAOA,EAAE,QAAML,EAAE,OAAK,IAAGQ,IAAEF,IAAER,GAAGQ,CAAC,IAAE;AAAO,SAAIJ,MAAI,EAAE,aAAa,uBAAqBA,MAAI,EAAE,aAAa,yBAAuBA,MAAI,EAAE,aAAa,mBAAiBA,MAAI,EAAE,aAAa,qBAAmBA,MAAI,EAAE,aAAa,oBAAkBA,MAAI,EAAE,aAAa,sBAAoBA,MAAI,EAAE,aAAa,0BAAwBA,MAAI,EAAE,aAAa,4BAA0BA,MAAI,EAAE,aAAa,uBAAqBA,MAAI,EAAE,aAAa,yBAAuBA,MAAI,EAAE,aAAa,kBAAgBA,MAAI,EAAE,aAAa,qBAAmBlK,EAAE,iBAAgB,EAAC,eAAckK,GAAE,aAAYK,GAAE,kBAAiB1B,GAAE0B,CAAC,GAAE,YAAWC,IAAEd,GAAGc,CAAC,IAAE,QAAO,cAAaN,MAAI,EAAE,aAAa,mBAAiBA,MAAI,EAAE,aAAa,oBAAkB,UAAQA,MAAI,EAAE,aAAa,0BAAwBA,MAAI,EAAE,aAAa,2BAAyB,UAAQA,MAAI,EAAE,aAAa,uBAAqBA,MAAI,EAAE,aAAa,wBAAsB,aAAWA,MAAI,EAAE,aAAa,kBAAgBA,MAAI,EAAE,aAAa,mBAAiB,eAAa,YAAW,oBAAmBC,KAAG,OAAK,SAAOA,EAAE,MAAK,oBAAmBA,KAAG,OAAK,SAAOA,EAAE,KAAI,CAAC,GAAEC,GAAE;AAAC,UAAIO,GAAEC,IAAE,GAAG,OAAOL,IAAE,QAAQ,OAAOA,GAAE;AAAA,CAAI,IAAE,EAAE,IAAE,GAAG,OAAOJ,MAAIA,EAAE,QAAMA,EAAE,QAAM,aAAa,OAAOA,EAAE,MAAK,IAAI,EAAE,OAAOA,EAAE,MAAK;AAAA,CAAI,IAAE,EAAE,IAAE,GAAG,OAAOH,EAAE,SAAO,mBAAmB,OAAOA,EAAE,QAAO;AAAA,CAAI,IAAE,EAAE,IAAE,GAAG,OAAOA,EAAE,QAAM,UAAU,OAAOA,EAAE,OAAM;AAAA,CAAI,IAAE,EAAE,IAAE,GAAG,OAAOA,EAAE,SAAO,6BAA6B,OAAOA,EAAE,QAAO;AAAA,CAAI,IAAE,EAAE,IAAE,GAAG,OAAOA,EAAE,SAAO,kBAAkB,OAAOA,EAAE,QAAO;AAAA,CAAI,IAAE,EAAE,IAAE,GAAG,OAAOA,EAAE,QAAM,UAAU,OAAOA,EAAE,OAAM;AAAA,CAAI,IAAE,EAAE,IAAE,GAAG,OAAOA,EAAE,QAAM,UAAU,OAAOA,EAAE,OAAM;AAAA,CAAI,IAAE,EAAE,IAAE,GAAG,OAAOA,EAAE,MAAI,kBAAkB,QAAQW,IAAEX,EAAE,SAAO,QAAMW,MAAI,SAAO,SAAOA,EAAE,SAAQ;AAAA,CAAI,IAAE,EAAE;AAAE,MAAA3K,EAAE,SAAQ,EAAC,mBAAkBiK,GAAE,sBAAqBC,GAAE,sBAAqBU,EAAC,CAAC;AAAA,IAAC;AAAA,EAAC;AAAE,EAAAjL,EAAE,GAAG,EAAE,OAAO,OAAM+H,CAAC;AAAE,MAAIH,IAAE,SAASE,GAAEuC,GAAE;AAAC,QAAIC,IAAED,EAAE,MAAKE,IAAED,KAAGA,EAAE,QAAM;AAAG,IAAAjK,EAAE,mBAAkB,EAAC,oBAAmByH,GAAE,aAAYyC,GAAE,cAAa,SAAQ,kBAAiBrB,GAAEqB,CAAC,EAAC,CAAC;AAAA,EAAC;AAAE,EAAAvK,EAAE,GAAG,EAAE,OAAO,6BAA4B4H,CAAC;AAAE,MAAIC,IAAE,SAASC,GAAEuC,GAAE;AAAC,QAAIC,IAAED,EAAE,OAAME,IAAEvK,EAAE,OAAOsK,CAAC;AAAE,QAAGC,KAAGA,EAAE,SAAOA,EAAE,MAAM,WAAU;AAAC,UAAIC,IAAED,EAAE,MAAM,WAAUE,GAAEC,IAAE,WAAWH,EAAE,MAAM,YAAY,CAAC;AAAE,YAAMG,CAAC,MAAID,IAAEC,IAAGF,IAAEnK,EAAE,mBAAkB,EAAC,kBAAiBoK,GAAE,sBAAqBD,GAAE,oBAAmBD,EAAE,OAAM,qBAAoBA,EAAE,QAAO,6BAA4BA,EAAE,MAAK,oBAAmBA,KAAG,OAAK,SAAOA,EAAE,WAAU,CAAC,IAAE1I,EAAE,KAAK,sDAAsD;AAAA,IAAC;AAAA,EAAC;AAAE,EAAA7B,EAAE,GAAG,EAAE,OAAO,gBAAe6H,CAAC,GAAE7H,EAAE,kBAAgB,WAAU;AAAC,IAAAA,EAAE,IAAI,EAAE,OAAO,iBAAgB8G,CAAC,GAAE9G,EAAE,IAAI,EAAE,OAAO,cAAa+G,CAAC,GAAE/G,EAAE,IAAI,EAAE,OAAO,oBAAmByH,CAAC,GAAEzH,EAAE,IAAI,EAAE,OAAO,aAAY0H,CAAC,GAAE1H,EAAE,IAAI,EAAE,OAAO,cAAa2H,CAAC,GAAE3H,EAAE,IAAI,EAAE,OAAO,OAAM+H,CAAC,GAAE/H,EAAE,IAAI,EAAE,OAAO,6BAA4B4H,CAAC,GAAE5H,EAAE,IAAI,EAAE,OAAO,gBAAe6H,CAAC,GAAE7H,EAAE,IAAI,EAAE,OAAO,YAAWA,EAAE,eAAe,GAAE,OAAOA,EAAE;AAAA,EAAe,GAAEA,EAAE,GAAG,EAAE,OAAO,YAAWA,EAAE,eAAe;AAAC,GAAEqL,KAAG,SAASxL,GAAE;AAAC,EAAAA,KAAG,OAAOA,EAAE,mBAAiB,cAAYA,EAAE,gBAAe;AAAE,GAAMyL,KAAG,SAASzL,GAAE,GAAE;AAAC,MAAG,CAACA,KAAG,CAACA,EAAE,eAAe,QAAM,CAAA;AAAG,MAAIG,IAAEkJ,GAAErJ,EAAE,GAAG,GAAEI,IAAEJ,EAAE,KAAIK,IAAEL,EAAE,aAAY,IAAE,IAAI,KAAKA,EAAE,gBAAgB,EAAE,QAAO,GAAGM,IAAE,IAAI,KAAKN,EAAE,aAAa,EAAE,WAAUO,IAAE,IAAI,KAAKP,EAAE,cAAc,EAAE,QAAO,GAAGQ,IAAE,MAAMR,EAAE,QAAQ,IAAE,IAAEA,EAAE,UAASiH,IAAE,OAAO,EAAE,iBAAe,aAAW,EAAE,cAAcjH,EAAE,SAAS,EAAE,WAAS,EAAE,eAAc,EAAG,gBAAgBA,EAAE,SAAS,GAAEkH;AAAE,EAAAD,EAAE,SAAO,MAAIC,IAAE+C,GAAGhD,EAAEA,EAAE,SAAO,CAAC,EAAE,oBAAkB,EAAE;AAAG,MAAIW,IAAEV,IAAEgD,GAAGhD,CAAC,IAAE;AAAO,SAAM,EAAC,cAAa,GAAE,sBAAqB5G,GAAE,oBAAmBC,GAAE,oBAAmBF,GAAE,wBAAuB6G,GAAE,sBAAqB1G,GAAE,iBAAgBL,GAAE,YAAWC,GAAE,WAAUwH,EAAC;AAAC,GAAE8D,KAAG,SAAS1L,GAAE,GAAE;AAAC,MAAG,OAAO,EAAE,mCAAiC,YAAW;AAAC,QAAIG,IAAE,EAAE,gCAAgCH,CAAC;AAAE,WAAOG,IAAE,EAAC,cAAaA,EAAE,eAAc,gBAAeA,EAAE,SAAO,MAAK,iBAAgBA,EAAE,UAAQ,MAAK,kBAAiBA,EAAE,UAAS,IAAE,CAAA;AAAA,EAAE;AAAC,MAAIC,IAAE,EAAE,cAAcJ,CAAC,GAAEK,IAAE,EAAE,mBAAmBL,CAAC,EAAE;AAAY,SAAOK,IAAE,EAAC,cAAaD,GAAE,gBAAeC,EAAED,CAAC,EAAE,SAAO,MAAK,iBAAgBC,EAAED,CAAC,EAAE,UAAQ,MAAK,kBAAiBC,EAAED,CAAC,EAAE,UAAS,IAAE,CAAA;AAAE,GAAEuL,KAAG,SAAS3L,GAAE;AAAC,MAAI;AAAE,UAAO,IAAEA,EAAE,MAAM,oBAAoB,OAAK,QAAM,MAAI,SAAO,SAAO,EAAE,CAAC;AAAC,GAAE4L,KAAG,SAASrK,GAAE;AAAC,MAAG;AAAC,QAAIpB,GAAE,GAAE,KAAG,IAAEoB,EAAE,gBAAc,QAAM,MAAI,WAASpB,IAAE,EAAE,KAAKoB,CAAC,OAAK,QAAMpB,MAAI,SAAO,SAAOA,EAAE,MAAM,GAAG,EAAE,IAAI,SAAS6B,GAAE;AAAC,aAAO,SAASA,CAAC;AAAA,IAAC,CAAC,EAAE,CAAC;AAAE,WAAO;AAAA,EAAC,QAAS;AAAC,WAAM;AAAA,EAAE;AAAC,GAAE6J,KAAG,SAAS7L,GAAE,GAAEG,GAAE;AAAI,MAA6D,IAAEH,EAAE;AAAI,MAAG,CAACG,KAAG,CAACA,EAAE,IAAG;AAAC,MAAE,KAAK,uDAAuD;AAAE;AAAA,EAAM;AAAC,MAAI6B,IAAE4J,GAAGzL,CAAC,GAAEG,IAAE,SAASmK,GAAEC,GAAE;AAAC,WAAO1K,EAAE,KAAK,GAAEyK,GAAEC,CAAC;AAAA,EAAC,GAAE,IAAE,SAASD,GAAE;AAAC,QAAIC,IAAED,EAAE,MAAKE,IAAEF,EAAE,MAAKG,KAAGD,KAAG,IAAI;AAAI,IAAArK,EAAE,oBAAmB,EAAC,oBAAmBoK,GAAE,eAAc,GAAE,wBAAuB,GAAE,sBAAqB,GAAE,sBAAqB,IAAG,cAAa,YAAW,kBAAiBrB,GAAEuB,CAAC,GAAE,aAAYA,EAAC,CAAC;AAAA,EAAC;AAAE,EAAAzK,EAAE,GAAG,kBAAiB,CAAC;AAAE,MAAIK,IAAE,CAAA,GAAGyG,IAAE,SAASwD,GAAE;AAAC,QAAG,OAAOA,EAAE,eAAa,WAAW,QAAO;AAAK,QAAIC,IAAED,EAAE,YAAY,EAAC,OAAM,WAAU,CAAC;AAAE,WAAOC,EAAE,WAAS,IAAE,OAAKA,EAAEA,EAAE,SAAO,CAAC;AAAA,EAAC,GAAExD,IAAE,SAASuD,GAAE;AAAC,QAAIC,IAAED,EAAE,MAAKE,IAAEF,EAAE,eAAcG,IAAEH,EAAE,OAAMI,IAAE5D,EAAE0D,CAAC;AAAE,IAAA/C,EAAE,EAAC,MAAK8C,GAAE,SAAQG,GAAE,OAAMD,EAAC,CAAC;AAAA,EAAC,GAAEhD,IAAE,SAAS6C,GAAE;AAAC,QAAIC,IAAED,EAAE,MAAKE,IAAEF,EAAE,OAAMG,IAAEH,EAAE,SAAQI,KAAGF,KAAG,CAAA,GAAI,WAAUG,IAAED,KAAG,CAAA,GAAGE,IAAED,EAAE,MAAKE,IAAEF,EAAE;AAAY,IAAAE,IAAEA,KAAG,CAAA;AAAG,QAAIG,IAAE,CAAA;AAAG,IAAAH,EAAE,QAAQ,SAASc,IAAGC,IAAE;AAAC,MAAAZ,EAAEY,EAAC,IAAE,CAAA,GAAGZ,EAAEY,EAAC,EAAE,QAAMD,GAAG,OAAMX,EAAEY,EAAC,EAAE,SAAOD,GAAG,QAAOX,EAAEY,EAAC,EAAE,UAAQD,GAAG,WAAUX,EAAEY,EAAC,EAAE,QAAM,CAAA;AAAA,IAAE,CAAC,GAAEhB,MAAI,UAAQvK,EAAE,QAAM2K,IAAEJ,MAAI,UAAQvK,EAAE,QAAM2K,IAAE3K,EAAE,QAAM2K;AAAE,QAAIC,IAAEK,GAAGb,GAAEzK,CAAC,GAAEkL,KAAED,EAAE,cAAaE,KAAGF,EAAE,sBAAqBG,KAAGH,EAAE,oBAAmBH,KAAEG,EAAE,wBAAuBF,KAAGE,EAAE,sBAAqBY,KAAGZ,EAAE,iBAAgBa,KAAGb,EAAE,YAAWc,KAAGd,EAAE;AAAU,IAAA9K,EAAE,oBAAmB,EAAC,oBAAmBoK,GAAE,eAAcW,IAAE,wBAAuBC,IAAG,sBAAqBC,IAAG,sBAAqB,IAAG,cAAaR,IAAE,SAAQ,0BAAyBE,IAAE,kBAAiBe,IAAG,YAAWE,IAAG,aAAYD,IAAG,wBAAuBf,IAAG,yBAAwB1K,EAAC,CAAC;AAAA,EAAC;AAAE,EAAAwB,KAAG,IAAE7B,EAAE,GAAG,sBAAqByH,CAAC,IAAEzH,EAAE,GAAG,sBAAqB+G,CAAC;AAAE,MAAIW,IAAE,SAAS4C,GAAE;AAAC,QAAIC,IAAED,EAAE,MAAKE,IAAEF,EAAE,eAAcG,IAAEH,EAAE,OAAMI,IAAE5D,EAAE0D,CAAC;AAAE,IAAA7C,EAAE,EAAC,MAAK4C,GAAE,SAAQG,GAAE,OAAMD,EAAC,CAAC;AAAA,EAAC,GAAE9C,IAAE,SAAS2C,GAAE;AAAC,QAAIC,IAAED,EAAE,MAAKE,IAAEF,EAAE,OAAMG,IAAEH,EAAE,SAAQI,IAAEF,KAAG,CAAA,GAAGG,IAAED,EAAE,WAAUE,IAAEF,EAAE,OAAMG,IAAEF,KAAG,CAAA,GAAGK,IAAEH,EAAE,MAAKI,IAAEK,GAAGb,GAAEzK,CAAC,GAAEkL,KAAED,EAAE,cAAaE,KAAGF,EAAE,sBAAqBG,KAAGH,EAAE,oBAAmBH,KAAEG,EAAE,oBAAmBF,KAAGE,EAAE,wBAAuBY,KAAGZ,EAAE,sBAAqBa,KAAGb,EAAE,iBAAgBc,KAAGd,EAAE,YAAWU,KAAGV,EAAE,WAAUW,KAAEL,GAAGP,GAAEhL,CAAC,GAAEgM,KAAGJ,GAAE,cAAaK,KAAGL,GAAE,gBAAeM,KAAGN,GAAE,iBAAgBO,KAAGP,GAAE;AAAiB,IAAAzL,EAAE,oBAAmB,EAAC,oBAAmBoK,GAAE,eAAcW,IAAE,wBAAuBC,IAAG,sBAAqBC,IAAG,sBAAqBN,IAAE,cAAaE,GAAE,0BAAyBD,IAAG,kBAAiBe,IAAG,YAAWH,IAAG,aAAYI,IAAG,0BAAyBnB,GAAE,wBAAuBiB,IAAG,uBAAsBG,IAAG,yBAAwBG,IAAG,qBAAoBF,IAAG,sBAAqBC,GAAE,CAAC;AAAA,EAAC;AAAE,EAAArK,KAAG,IAAE7B,EAAE,GAAG,uBAAsB2H,CAAC,IAAE3H,EAAE,GAAG,uBAAsB0H,CAAC;AAAE,MAAIK,IAAE,EAAC,OAAM,QAAO,OAAM,QAAO,cAAa,OAAM,GAAEH,IAAE,WAAU;AAAC,QAAGG,EAAE,SAAO,OAAOA,EAAE,MAAM,WAAS,UAAS;AAAC,UAAG,EAAEA,EAAE,MAAM,SAAOA,EAAE,MAAM,SAAQ;AAAC,UAAE,KAAK,sDAAsD;AAAE;AAAA,MAAM;AAAC,UAAIuC,IAAEvC,EAAE,MAAM;AAAQ,UAAGA,EAAE,SAAO,OAAOA,EAAE,MAAM,WAAS,aAAWuC,KAAGvC,EAAE,MAAM,UAASuC,MAAIvC,EAAE,aAAa,QAAOA,EAAE,eAAauC,GAAE,EAAC,sBAAqBA,GAAE,qBAAoBvC,EAAE,MAAM,QAAO,oBAAmBA,EAAE,MAAM,OAAM,oBAAmByD,GAAGzD,EAAE,MAAM,KAAK,EAAC;AAAA,IAAC;AAAA,EAAC,GAAEF,IAAE,SAASyC,GAAEC,GAAEC,GAAE;AAAC,QAAIC,IAAEH,EAAE;AAAU,QAAGG,MAAI,WAASA,MAAI,SAAQ;AAAC,UAAIC;AAAE,UAAG,OAAO1K,EAAE,4BAA0B,WAAW,KAAGsK,EAAE,kBAAkB,CAAAI,IAAE,EAAC,SAAQJ,EAAE,kBAAkB,WAAU,OAAMA,EAAE,kBAAkB,OAAM,QAAOA,EAAE,kBAAkB,QAAO,cAAaA,EAAE,kBAAkB,cAAa;AAAA,WAAM;AAAC,YAAIK,IAAE3K,EAAE,yBAAyByK,CAAC;AAAE,YAAGE,KAAG,OAAOL,EAAE,cAAY,UAAS;AAAC,cAAIM,IAAED,EAAE,KAAK,SAASK,GAAE;AAAC,mBAAOA,EAAE,kBAAgBV,EAAE,cAAYU,EAAE,UAAQV,EAAE;AAAA,UAAU,CAAC;AAAE,UAAAM,MAAIF,IAAE,EAAC,SAAQE,EAAE,WAAU,OAAMA,EAAE,OAAM,QAAOA,EAAE,QAAO,cAAaN,EAAE,WAAU;AAAA,QAAE;AAAA,MAAC;AAAA,WAAK;AAAC,YAAG,OAAOA,EAAE,cAAY,UAAS;AAAC,YAAE,KAAK,yDAAwDA,CAAC;AAAE;AAAA,QAAM;AAAC,QAAAI,IAAE1K,EAAE,sBAAsByK,CAAC,EAAE,KAAK,SAASO,GAAE;AAAC,cAAIC,IAAED,EAAE;AAAa,iBAAOC,MAAIX,EAAE;AAAA,QAAU,CAAC;AAAA,MAAC;AAAC,UAAG,EAAEI,KAAG,OAAOA,EAAE,WAAS,WAAU;AAAC,UAAE,KAAK,4BAA4B,OAAOD,CAAC,CAAC;AAAE;AAAA,MAAM;AAAC,MAAA1C,EAAE0C,CAAC,IAAEf,GAAGF,GAAG,CAAA,GAAGkB,CAAC,GAAE,EAAC,OAAM1K,EAAE,mBAAmByK,CAAC,EAAE,MAAK,CAAC;AAAE,UAAII,IAAEjD,EAAC;AAAG,MAAAiD,KAAG1K,EAAE,mBAAkB0K,CAAC;AAAA,IAAC;AAAA,EAAC;AAAE,EAAA7K,EAAE,GAAG,yBAAwB6H,CAAC;AAAE,MAAIC,IAAE,SAASwC,GAAE;AAAC,QAAIC,IAAED,EAAE,SAAQE,IAAEF,EAAE;AAAU,IAAAC,IAAEA,KAAG,CAAA,GAAGpK,EAAE,mBAAkB,EAAC,oBAAmBoK,EAAE,OAAK,MAAIA,EAAE,QAAO,aAAYA,EAAE,KAAI,cAAaC,GAAE,kBAAiBtB,GAAEqB,EAAE,GAAG,EAAC,CAAC;AAAA,EAAC;AAAE,EAAAvK,EAAE,GAAG,4BAA2B8H,CAAC;AAAE,MAAIuC,IAAE,SAASC,GAAE;AAAC,QAAIC,IAAED,EAAE,OAAME,GAAEC,GAAEC,KAAGH,KAAG,SAAOC,IAAED,EAAE,UAAQ,QAAMC,MAAI,SAAO,SAAOA,EAAE,YAAU,CAAA,GAAGG,KAAGJ,KAAG,SAAOE,IAAEF,EAAE,UAAQ,QAAME,MAAI,SAAO,SAAOA,EAAE,aAAW,CAAA;AAAG,KAACF,KAAG,OAAK,SAAOA,EAAE,UAAQ,MAAIpK,EAAE,iBAAgB,EAAC,eAAcuK,EAAE,OAAK,MAAIA,EAAE,QAAO,aAAYA,EAAE,KAAI,kBAAiBxB,GAAEwB,EAAE,GAAG,GAAE,cAAaA,EAAE,WAAU,oBAAmBC,EAAE,QAAO,oBAAmBA,EAAE,WAAU,CAAC;AAAE,QAAIC,IAAE,GAAG,OAAOF,KAAG,QAAMA,EAAE,MAAI,QAAQ,OAAOA,EAAE,KAAI;AAAA,CAAI,IAAE,EAAE,IAAE,GAAG,OAAOC,KAAG,QAAMA,EAAE,UAAQA,KAAG,QAAMA,EAAE,aAAW,aAAa,OAAOA,KAAG,OAAK,SAAOA,EAAE,QAAO,IAAI,EAAE,OAAOA,KAAG,OAAK,SAAOA,EAAE,YAAW;AAAA,CAAI,IAAE,EAAE;AAAE,IAAAxK,EAAE,SAAQ,EAAC,mBAAkBoK,KAAG,OAAK,SAAOA,EAAE,MAAK,sBAAqBA,KAAG,OAAK,SAAOA,EAAE,SAAQ,sBAAqBK,EAAC,CAAC;AAAA,EAAC;AAAE,EAAA5K,EAAE,GAAG,SAAQqK,CAAC,GAAErK,EAAE,kBAAgB,WAAU;AAAC,IAAAA,EAAE,IAAI,kBAAiB,CAAC,GAAEA,EAAE,IAAI,sBAAqByH,CAAC,GAAEzH,EAAE,IAAI,uBAAsB2H,CAAC,GAAE3H,EAAE,IAAI,yBAAwB6H,CAAC,GAAE7H,EAAE,IAAI,SAAQqK,CAAC,GAAErK,EAAE,IAAI,4BAA2B8H,CAAC,GAAE,OAAO9H,EAAE;AAAA,EAAe;AAAC,GAAEoM,KAAG,SAASvM,GAAE;AAAC,EAAAA,KAAG,OAAOA,EAAE,mBAAiB,cAAYA,EAAE,gBAAe;AAAE,GAAMwM,KAAG,GAAEC,MAAG,WAAU;AAAc,WAASzM,IAAG;AAACuI,IAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,cAAa,MAAM;AAAA,EAAC;AAAC,SAAOD,GAAEzI,GAAE,CAAC,EAAC,KAAI,MAAK,OAAM,SAASG,GAAE,GAAE,GAAE;AAAC,WAAO,EAAE,oBAAkB,EAAE,qBAAmB,EAAEqM,IAAG,KAAK,aAAW,KAAK,cAAY,CAAA,GAAG,KAAK,WAAWrM,CAAC,IAAE,KAAK,WAAWA,CAAC,KAAG,CAAA,GAAG,MAAI,IAAE,EAAE,KAAK,CAAC,IAAG,KAAK,WAAWA,CAAC,EAAE,KAAK,CAAC,GAAE;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,OAAM,OAAM,SAASA,GAAE,GAAE;AAAC,QAAI,IAAE,KAAK,cAAY,KAAK,WAAWA,CAAC;AAAE,SAAG,EAAE,QAAQ,SAAS6B,GAAE1B,GAAE;AAAC,MAAA0B,EAAE,sBAAoB,EAAE,qBAAmB,EAAE,OAAO1B,GAAE,CAAC;AAAA,IAAC,CAAC;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,OAAM,OAAM,SAASH,GAAE,GAAE,GAAE;AAAC,QAAI6B,IAAE;AAAK,MAAE,oBAAkB,EAAE,qBAAmB,EAAEwK;AAAG,QAAIlM,IAAE,WAAU;AAAC,MAAA0B,EAAE,IAAI7B,GAAEG,CAAC,GAAE,EAAE,MAAM,KAAG,MAAK,SAAS;AAAA,IAAC;AAAE,IAAAA,EAAE,oBAAkB,EAAE,mBAAkB,KAAK,GAAGH,GAAEG,CAAC;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,QAAO,OAAM,SAASH,GAAE,GAAE;AAAC,QAAI,IAAE;AAAK,QAAG,KAAK,YAAW;AAAC,UAAE,KAAG,CAAA;AAAG,UAAI6B,IAAE,KAAK,WAAW,WAAS7B,CAAC,KAAG,CAAA,GAAGG,IAAE,KAAK,WAAW,SAAS,KAAG,CAAA,GAAG,IAAE,KAAK,WAAWH,CAAC,KAAG,CAAA,GAAGK,IAAE,KAAK,WAAW,UAAQL,CAAC,KAAG,CAAA,GAAG8G,IAAE,SAASC,GAAEU,GAAE;AAAC,QAAAV,IAAEA,EAAE,MAAK,GAAGA,EAAE,QAAQ,SAASW,GAAE;AAAC,UAAAA,EAAE,KAAK,GAAE,EAAC,MAAK1H,EAAC,GAAEyH,CAAC;AAAA,QAAC,CAAC;AAAA,MAAC;AAAE,MAAAX,EAAEjF,GAAE,CAAC,GAAEiF,EAAE3G,GAAE,CAAC,GAAE2G,EAAE,GAAE,CAAC,GAAEA,EAAEzG,GAAE,CAAC;AAAA,IAAC;AAAA,EAAC,EAAC,CAAC,CAAC,GAAER;AAAC,GAAC,GAAG0M,KAAGD,IAAOE,KAAGlM,GAAEC,GAAC,CAAE,GAAEkM,MAAG,WAAU;AAAc,WAAS5M,EAAE,GAAE;AAAC,QAAIG,IAAE;AAAKoI,IAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,8BAA6B,MAAM,GAAEA,EAAE,MAAK,gCAA+B,MAAM,GAAEA,EAAE,MAAK,MAAK,MAAM,GAAE,KAAK,KAAG,GAAE,KAAK,6BAA2B,MAAK,KAAK,+BAA6B,IAAG,EAAE,GAAG,WAAU,WAAU;AAAC,MAAAvI,EAAE,+BAA6B;AAAA,IAAE,CAAC,GAAE,EAAE,GAAG,QAAO,KAAK,gCAAgC,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,WAAU,KAAK,gCAAgC,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,gBAAe,KAAK,gCAAgC,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,UAAS,KAAK,gCAAgC,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,aAAY,KAAK,gCAAgC,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,cAAa,KAAK,gCAAgC,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,aAAY,KAAK,gCAAgC,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,iBAAgB,KAAK,gCAAgC,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,SAAQ,KAAK,+BAA+B,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,SAAQ,KAAK,+BAA+B,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,WAAU,KAAK,+BAA+B,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,SAAQ,KAAK,+BAA+B,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,WAAU,KAAK,+BAA+B,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,WAAU,KAAK,+BAA+B,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,WAAU,KAAK,+BAA+B,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,cAAa,KAAK,+BAA+B,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,UAAS,WAAU;AAAC,QAAE,KAAK,mBAAiBA,EAAE,mCAAiCA,EAAE,gCAA+B;AAAA,IAAE,CAAC,GAAE,EAAE,GAAG,cAAa,WAAU;AAAC,MAAAA,EAAE,+BAA6B,QAAM,EAAE,KAAK,mBAAmB;AAAA,IAAC,CAAC,GAAE,EAAE,GAAG,eAAc,SAASC,GAAEC,GAAE;AAAC,MAAAF,EAAE,+BAA6B,SAAOwM,GAAG,QAAQ,cAAcxM,EAAE,0BAA0B,GAAE,EAAE,KAAK,wBAAuB,EAAC,aAAYE,EAAE,YAAW,CAAC,GAAEF,EAAE,6BAA2B;AAAA,IAAK,CAAC;AAAA,EAAC;AAAC,SAAOsI,GAAEzI,GAAE,CAAC,EAAC,KAAI,mCAAkC,OAAM,WAAU;AAAC,QAAIG,IAAE;AAAK,SAAK,+BAA6B,SAAO,KAAK,GAAG,KAAK,mBAAmB,GAAE,KAAK,6BAA2BwM,GAAG,QAAQ,YAAY,WAAU;AAAC,MAAAxM,EAAE,GAAG,KAAK,mBAAmB;AAAA,IAAC,GAAE,KAAK,GAAG,qBAAqB;AAAA,EAAE,EAAC,GAAE,EAAC,KAAI,kCAAiC,OAAM,WAAU;AAAC,SAAK,+BAA6B,IAAG,KAAK,+BAA6B,SAAOwM,GAAG,QAAQ,cAAc,KAAK,0BAA0B,GAAE,KAAK,GAAG,KAAK,sBAAsB,GAAE,KAAK,6BAA2B;AAAA,EAAK,EAAC,CAAC,CAAC,GAAE3M;AAAC,GAAC,GAAG6M,KAAGD,IAAOE,KAAG,SAAS9M,EAAE,GAAE;AAAc,MAAIG,IAAE;AAAKoI,EAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,eAAc,MAAM,GAAE,EAAE,GAAG,YAAW,WAAU;AAAC,IAAAvI,EAAE,cAAY;AAAA,EAAE,CAAC,GAAE,EAAE,GAAG,SAAQ,SAASC,GAAEC,GAAE;AAAC,QAAG;AAAC,UAAI,IAAE,EAAE,gBAAgB,EAAC,mBAAkBA,EAAE,mBAAkB,sBAAqBA,EAAE,sBAAqB,sBAAqBA,EAAE,sBAAqB,uBAAsBA,EAAE,uBAAsB,iCAAgCA,EAAE,gCAA+B,CAAC;AAAE,YAAI,EAAE,KAAK,oBAAkB,EAAE,qBAAmBA,EAAE,mBAAkB,EAAE,KAAK,uBAAqB,EAAE,wBAAsBA,EAAE,sBAAqB,EAAE,KAAK,uBAAqB,EAAE,wBAAsBA,EAAE,sBAAqB,EAAE,KAAK,wBAAsB,EAAE,yBAAuBA,EAAE,uBAAsB,EAAE,KAAK,kCAAgC,EAAE,mCAAiCA,EAAE,iCAAgCF,EAAE,cAAY;AAAA,IAAG,SAAOG,GAAE;AAAC,QAAE,IAAI,IAAI,KAAK,2CAA0CA,CAAC,GAAEH,EAAE,cAAY;AAAA,IAAE;AAAA,EAAC,CAAC,GAAE,EAAE,GAAG,cAAa,WAAU;AAAC,QAAIC,GAAEC,GAAE,GAAEC,GAAEC;AAAE,KAACH,IAAE,EAAE,UAAQ,QAAMA,MAAI,UAAQ,OAAOA,EAAE,oBAAmBC,IAAE,EAAE,UAAQ,QAAMA,MAAI,UAAQ,OAAOA,EAAE,uBAAsB,IAAE,EAAE,UAAQ,QAAM,MAAI,UAAQ,OAAO,EAAE,uBAAsBC,IAAE,EAAE,UAAQ,QAAMA,MAAI,UAAQ,OAAOA,EAAE,wBAAuBC,IAAE,EAAE,UAAQ,QAAMA,MAAI,UAAQ,OAAOA,EAAE;AAAA,EAA+B,CAAC;AAAC,GAAEwM,KAAGD,IAAOE,MAAG,WAAU;AAAc,WAAShN,EAAE,GAAE;AAACuI,IAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,oCAAmC,MAAM,GAAEA,EAAE,MAAK,MAAK,MAAM,GAAE,KAAK,KAAG,GAAE,KAAK,mCAAiC,MAAK,EAAE,GAAG,qBAAoB,KAAK,iBAAiB,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,wBAAuB,KAAK,qBAAqB,KAAK,IAAI,CAAC;AAAA,EAAC;AAAC,SAAOD,GAAEzI,GAAE,CAAC,EAAC,KAAI,oBAAmB,OAAM,SAASG,GAAE,GAAE;AAAC,QAAI,IAAE,EAAE;AAAY,SAAK,qCAAmC,SAAO,KAAK,mCAAiC,IAAGuJ,GAAE,KAAK,GAAG,MAAK,mBAAkB,IAAE,KAAK,gCAAgC,GAAE,KAAK,mCAAiC;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,wBAAuB,OAAM,SAASvJ,GAAE,GAAE;AAAC,SAAK,iBAAiBA,GAAE,CAAC,GAAE,KAAK,mCAAiC;AAAA,EAAI,EAAC,CAAC,CAAC,GAAEH;AAAC,GAAC,GAAGiN,KAAGD,IAAOE,MAAG,WAAU;AAAc,WAASlN,EAAE,GAAE;AAAC,QAAIG,IAAE;AAAKoI,IAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,4CAA2C,MAAM,GAAEA,EAAE,MAAK,aAAY,MAAM,GAAEA,EAAE,MAAK,gBAAe,MAAM,GAAEA,EAAE,MAAK,+BAA8B,MAAM,GAAEA,EAAE,MAAK,MAAK,MAAM,GAAE,KAAK,KAAG,GAAE,KAAK,2CAAyC,IAAG,KAAK,YAAU3B,GAAE,IAAG,GAAG,KAAK,eAAa,IAAG,KAAK,8BAA4B,MAAK,EAAE,GAAG,YAAW,WAAU;AAAC,MAAA5G,EAAE,GAAG,KAAK,kCAAgC;AAAA,IAAC,CAAC;AAAE,QAAIC,IAAE,KAAK,2BAA2B,KAAK,IAAI;AAAE,MAAE,GAAG,WAAUA,CAAC,GAAE,EAAE,GAAG,aAAYA,CAAC;AAAE,QAAIC,IAAE,WAAU;AAAC,MAAAF,EAAE,GAAG,KAAK,oBAAkBC,EAAC;AAAA,IAAE;AAAE,MAAE,GAAG,UAASC,CAAC,GAAE,EAAE,GAAG,eAAcA,CAAC;AAAE,QAAI,IAAE,KAAK,0BAA0B,KAAK,IAAI;AAAE,MAAE,GAAG,wBAAuB,CAAC,GAAE,EAAE,GAAG,WAAU,CAAC,GAAE,EAAE,GAAG,iBAAgB,CAAC,GAAE,EAAE,GAAG,aAAY,WAAU;AAAC,MAAAF,EAAE,eAAa;AAAA,IAAE,CAAC,GAAE,EAAE,GAAG,WAAU,WAAU;AAAC,MAAAA,EAAE,eAAa;AAAA,IAAE,CAAC,GAAE,EAAE,GAAG,WAAU,WAAU;AAAC,MAAAA,EAAE,eAAa;AAAA,IAAE,CAAC,GAAE,EAAE,GAAG,gBAAe,WAAU;AAAC,MAAAA,EAAE,eAAa;AAAA,IAAE,CAAC,GAAE,EAAE,GAAG,cAAa,WAAU;AAAC,MAAAA,EAAE,eAAa;AAAA,IAAE,CAAC,GAAE,EAAE,GAAG,UAAS,WAAU;AAAC,MAAAA,EAAE,eAAa;AAAA,IAAE,CAAC,GAAE,EAAE,GAAG,YAAW,WAAU;AAAC,MAAAA,EAAE,2CAAyC,IAAGA,EAAE,YAAU4G,GAAE,IAAG,GAAG5G,EAAE,eAAa,IAAGA,EAAE,8BAA4B;AAAA,IAAI,CAAC;AAAA,EAAC;AAAC,SAAOsI,GAAEzI,GAAE,CAAC,EAAC,KAAI,8BAA6B,OAAM,WAAU;AAAC,SAAK,gCAA8B,SAAO,KAAK,8BAA4B,KAAK,oBAAoB,KAAK,IAAI,GAAE,KAAK,2CAAyC,KAAK,GAAG,KAAK,sBAAqB,KAAK,YAAU+G,GAAE,IAAG,GAAG,KAAK,GAAG,GAAG,qBAAoB,KAAK,2BAA2B;AAAA,EAAE,EAAC,GAAE,EAAC,KAAI,6BAA4B,OAAM,WAAU;AAAC,SAAK,gCAA8B,KAAK,uBAAsB,KAAK,GAAG,IAAI,qBAAoB,KAAK,2BAA2B,GAAE,KAAK,8BAA4B,MAAK,KAAK,2CAAyC;AAAA,EAAG,EAAC,GAAE,EAAC,KAAI,uBAAsB,OAAM,WAAU;AAAC,QAAI5G,IAAE,KAAK,GAAG,KAAK,wBAAsB,GAAE,IAAE4G,GAAE,IAAG,GAAG,IAAE,IAAE,KAAK,WAAU/E,IAAE;AAAG,SAAK,4CAA0C,KAAG7B,IAAE,KAAK,2CAAyC6B,IAAE7B,IAAE,KAAK,2CAAyC,KAAK,iBAAe6B,IAAE,IAAGA,IAAE,KAAGA,KAAG,OAAK0H,GAAE,KAAK,GAAG,MAAK,8BAA6B1H,CAAC,GAAE,KAAK,gCAA8B,QAAM,IAAE,KAAG,KAAG,QAAM,KAAK,gBAAc0H,GAAE,KAAK,GAAG,MAAK,iCAAgC,CAAC,GAAEA,GAAE,KAAK,GAAG,MAAK,mCAAkC,CAAC,IAAG,KAAK,2CAAyCvJ,GAAE,KAAK,YAAU;AAAA,EAAC,EAAC,CAAC,CAAC,GAAEH;AAAC,GAAC,GAAGmN,KAAGD,IAAOE,MAAG,WAAU;AAAc,WAASpN,EAAE,GAAE;AAACuI,IAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,MAAK,MAAM,GAAE,KAAK,KAAG;AAAE,QAAIvI,IAAE,KAAK,oBAAoB,KAAK,IAAI;AAAE,MAAE,GAAG,qBAAoBA,CAAC,GAAE,EAAE,GAAG,wBAAuBA,CAAC,GAAE,EAAE,GAAG,cAAaA,CAAC,GAAE,EAAE,GAAG,WAAU,WAAU;AAAC,QAAE,IAAI,cAAaA,CAAC;AAAA,IAAC,CAAC;AAAA,EAAC;AAAC,SAAOsI,GAAEzI,GAAE,CAAC,EAAC,KAAI,8BAA6B,OAAM,WAAU;AAAC,SAAK,GAAG,KAAK,6BAA2B,OAAO,KAAK,GAAG,KAAK,6BAA4B,MAAY,KAAK,GAAG,KAAK,uBAAqB,KAAK,IAAI,KAAK,GAAG,KAAK,4BAA2B,KAAK,GAAG,KAAK,oBAAoB;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,uBAAsB,OAAM,SAASG,GAAE,GAAE;AAAC,QAAI,IAAE,MAAK6B,IAAE,WAAU;AAAC,QAAE,GAAG,sBAAoB,EAAE,GAAG,yBAAuB,EAAE,GAAG,KAAK,sBAAoB,EAAE,GAAG,qBAAmB,EAAE,GAAG,KAAK,uBAAqB,EAAE,GAAG;AAAA,IAAqB;AAAE,QAAG,KAAG,EAAE,qBAAqB,MAAK,GAAG,KAAK,uBAAqB,EAAE,sBAAqBA,EAAC,GAAG,KAAK,2BAA0B;AAAA,aAAW,KAAK,GAAG,iBAAgB;AAAC,UAAI1B,IAAE,KAAK,GAAG,gBAAe;AAAG,aAAOA,IAAG,QAAc,KAAK,GAAG,KAAK,uBAAqBA,GAAE0B,EAAC,GAAG,KAAK,2BAA0B;AAAA,IAAG;AAAA,EAAC,EAAC,CAAC,CAAC,GAAEhC;AAAC,GAAC,GAAGqN,KAAGD,IAAOE,KAAG,MAAK,KAAIC,KAAG,SAASvN,EAAE,GAAE;AAAc,MAAGuI,GAAE,MAAKvI,CAAC,GAAE,CAAC,EAAE,yBAAwB;AAAC,QAAIG,GAAEC,IAAE,SAAS,GAAEE,GAAE;AAAC,MAAAD,EAAEC,CAAC,GAAEH,IAAE;AAAA,IAAM,GAAEE,IAAE,SAAS,GAAE;AAAC,UAAGF,GAAE;AAAC,YAAIG,IAAE,EAAE,cAAYH;AAAEuJ,QAAAA,GAAE,EAAE,MAAK,0BAAyBpJ,CAAC,GAAEH,IAAE,EAAE,aAAY,EAAE,KAAK,yBAAuBmN,OAAK,EAAE,KAAK,SAAS,GAAE,EAAE,KAAK,SAAS,GAAE,EAAE,IAAI,IAAI,KAAK,iDAAiD,OAAOA,IAAG,iFAAiF,CAAC;AAAA,MAAE;AAAC,QAAE,KAAK,mBAAiB,KAAG,EAAE,KAAK,sBAAoB,MAAI,EAAE,KAAK,0BAAwB,EAAE,KAAK,sBAAoB,EAAE,KAAK,iBAAgB,EAAE,KAAK,2BAAyB,EAAE,KAAK,yBAAuB,EAAE,KAAK;AAAA,IAAgB;AAAE,MAAE,GAAG,qBAAoB,SAAS,GAAEhN,GAAE;AAAC,aAAOD,EAAEC,CAAC;AAAA,IAAC,CAAC,GAAE,EAAE,GAAG,iBAAgB,SAAS,GAAEA,GAAE;AAAC,MAAAH,MAAIuJ,GAAE,EAAE,MAAK,uBAAsB,CAAC,GAAEvJ,IAAEG,EAAE,aAAY,EAAE,IAAI,eAAcF,CAAC;AAAA,IAAE,CAAC,GAAE,EAAE,GAAG,YAAW,WAAU;AAAC,MAAAD,IAAE,QAAO,EAAE,IAAI,eAAcC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAC;AAAC,GAAEoN,KAAGD,IAAOE,MAAG,WAAU;AAAc,WAASzN,EAAE,GAAE;AAAC,QAAIG,IAAE;AAAKoI,IAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,oBAAmB,MAAM,GAAEA,EAAE,MAAK,qBAAoB,MAAM,GAAEA,EAAE,MAAK,gCAA+B,MAAM,GAAEA,EAAE,MAAK,gBAAe,MAAM,GAAEA,EAAE,MAAK,MAAK,MAAM,GAAE,KAAK,KAAG,GAAE,EAAE,EAAE,2BAAyB,EAAE,qCAAmC,KAAK,mBAAiB,MAAK,KAAK,oBAAkB,MAAK,KAAK,+BAA6B,MAAK,EAAE,GAAG,qBAAoB,KAAK,oBAAoB,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,wBAAuB,KAAK,wBAAwB,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,WAAU,WAAU;AAAC,MAAAvI,EAAE,wBAAwB,MAAK,EAAC,aAAY4G,GAAE,IAAG,EAAE,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE;AAAC,SAAO0B,GAAEzI,GAAE,CAAC,EAAC,KAAI,uBAAsB,OAAM,SAASG,GAAE,GAAE;AAAC,QAAG,KAAK,GAAG,eAAe,aAAW,KAAK,GAAG,UAAU,aAAW,CAAC,KAAK,GAAG,kBAAkB,8BAA6B;AAAC,WAAK,wBAAwBA,GAAE,CAAC;AAAE;AAAA,IAAM;AAAC,QAAG,KAAK,qBAAmB,MAAK;AAAC,WAAK,6BAA6B,EAAE,WAAW;AAAE;AAAA,IAAM;AAAC,QAAG,KAAK,sBAAoB,KAAK,GAAG,KAAK,sBAAqB;AAAC,WAAK,wBAAwBA,GAAE,GAAE,EAAE;AAAE;AAAA,IAAM;AAAC,QAAI,IAAE,EAAE,cAAY,KAAK;AAA6B,WAAO,KAAK,GAAG,8BAA4B,YAAU,KAAG,KAAK,GAAG,+BAA6B,KAAK,iBAAe,KAAK,eAAa,IAAG,KAAK,GAAG,KAAK,iBAAgB,EAAC,aAAY,KAAK,6BAA4B,CAAC,KAAI,KAAK,mBAAiB,EAAE;AAAA,EAAW,EAAC,GAAE,EAAC,KAAI,8BAA6B,OAAM,WAAU;AAAC,SAAK,mBAAiB,MAAK,KAAK,oBAAkB,MAAK,KAAK,+BAA6B;AAAA,EAAI,EAAC,GAAE,EAAC,KAAI,gCAA+B,OAAM,SAASA,GAAE;AAAC,SAAK,mBAAiBA,GAAE,KAAK,oBAAkB,KAAK,GAAG,KAAK,sBAAqB,KAAK,+BAA6BA;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,2BAA0B,OAAM,SAASA,GAAE,GAAE;AAAC,QAAI,IAAE,UAAU,SAAO,KAAG,UAAU,CAAC,MAAI,SAAO,UAAU,CAAC,IAAE;AAAG,QAAG,KAAK,aAAa,MAAK,eAAa,IAAG,KAAK,GAAG,KAAK,eAAc,EAAC,aAAY,EAAE,YAAW,CAAC;AAAA,SAAM;AAAC,UAAG,KAAK,qBAAmB,KAAK;AAAO,UAAI6B,IAAE,KAAK,GAAG,KAAK,uBAAqB,KAAK,mBAAkB1B,IAAE,EAAE,cAAY,KAAK;AAA6B,aAAO,KAAK,GAAG,2BAAyB,YAAU0B,IAAE,KAAG1B,IAAE0B,IAAE,KAAK,GAAG,4BAA0B,KAAK,mBAAiB,MAAK,KAAK,GAAG,KAAK,iBAAgB,EAAC,aAAY,KAAK,6BAA4B,CAAC,GAAE,KAAK,GAAG,KAAK,eAAc,EAAC,aAAY,KAAK,+BAA6B1B,IAAE0B,EAAC,CAAC;AAAA,IAAE;AAAC,QAAE,KAAK,6BAA6B,EAAE,WAAW,IAAE,KAAK,2BAA0B;AAAA,EAAE,EAAC,CAAC,CAAC,GAAEhC;AAAC,GAAC,GAAG0N,KAAGD,IAAOE,MAAG,WAAU;AAAc,WAAS3N,EAAE,GAAE;AAAC,QAAIG,IAAE;AAAKoI,IAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,MAAK,MAAM,GAAE,KAAK,KAAG,GAAE,EAAE,GAAG,YAAW,WAAU;AAAC,UAAItI,IAAE,EAAE,MAAKC,IAAED,EAAE;AAAQ,UAAG,CAACA,EAAE,sBAAqB;AAAC,YAAI,IAAE,SAASE,GAAEC,GAAE;AAAC,cAAIC,IAAED,EAAE;AAAY,WAAAD,EAAE,SAAO,aAAW,OAAO,EAAE,KAAK,2BAA0B,OAAsDA,EAAE,SAAO,gBAAc,OAAO,EAAE,KAAK,2BAA0B,OAAaH,EAAE,0BAAuBA,EAAE,0BAA0BK,KAAGuG,GAAE,IAAG,GAAG1G,CAAC;AAAA,QAAC;AAAE,UAAE,IAAI,WAAU,CAAC,GAAE,EAAE,IAAI,aAAY,CAAC,GAAE,EAAE,IAAI,WAAU,WAAU;AAAC,YAAE,IAAI,WAAU,CAAC,GAAE,EAAE,IAAI,aAAY,CAAC;AAAA,QAAC,CAAC;AAAA,MAAC;AAAA,IAAC,CAAC;AAAA,EAAC;AAAC,SAAOoI,GAAEzI,GAAE,CAAC,EAAC,KAAI,sBAAqB,OAAM,WAAU;AAAC,WAAO,OAAO,KAAK,GAAG,KAAK,6BAA4B,OAAa,KAAK,GAAG,KAAK,8BAA4B;AAAA,EAAG,EAAC,GAAE,EAAC,KAAI,6BAA4B,OAAM,SAASG,GAAE,GAAE;AAAC,UAAI,KAAK,GAAG,KAAK,YAAU,KAAK,GAAG,iBAAiB,iBAAiB,MAAK,EAAC,aAAYA,EAAC,CAAC,GAAE,KAAK,GAAG,KAAK,2BAAyB,KAAK,GAAG,KAAK,kBAAiB,KAAK,GAAG,KAAK,sBAAoB,KAAK,GAAG,KAAK,sBAAoB,KAAK,GAAG,qBAAmB,KAAK,GAAG,KAAK,8BAA4B,KAAK,GAAG,KAAK,aAAW,KAAK,GAAG,KAAK,kBAAgB,KAAK,GAAG;AAAA,EAAkB,EAAC,CAAC,CAAC,GAAEH;AAAC,GAAC,GAAG4N,KAAGD,IAAOE,KAAG,SAAS7N,EAAE,GAAE;AAAc,MAAIG,IAAE;AAAKoI,EAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,qBAAoB,MAAM,GAAEA,EAAE,MAAK,oBAAmB,MAAM,GAAEA,EAAE,MAAK,yBAAwB,MAAM,GAAEA,EAAE,MAAK,qBAAoB,MAAM,GAAEA,EAAE,MAAK,oBAAmB,MAAM,GAAE,EAAE,GAAG,YAAW,WAAU;AAAC,IAAAvI,EAAE,wBAAsB;AAAA,EAAE,CAAC;AAAE,MAAIC,IAAE,CAAC,SAAQ,iBAAgB,WAAU,SAAQ,gBAAe,MAAK,mBAAkB,qBAAoB,WAAU,oBAAoB,GAAEC,IAAE,CAAC,WAAU,MAAK,mBAAkB,qBAAoB,oBAAoB;AAAE,EAAAD,EAAE,QAAQ,SAAS,GAAE;AAAC,MAAE,GAAG,GAAE,WAAU;AAAC,UAAGD,EAAE,yBAAuB,KAAG,EAAE,KAAK,wBAAsB,KAAGA,EAAE,oBAAkB,KAAGA,EAAE,mBAAiB,KAAGA,EAAE,qBAAmB,KAAGA,EAAE,oBAAkB,GAAE;AAAC,YAAIG,IAAE,EAAE,KAAK,uBAAqBH,EAAE;AAAsB,YAAGG,IAAE,GAAE;AAAC,UAAAH,EAAE,wBAAsB;AAAG;AAAA,QAAM;AAAC,YAAII,IAAE,KAAK,IAAIJ,EAAE,mBAAiBA,EAAE,kBAAiBA,EAAE,oBAAkBA,EAAE,iBAAiB,GAAEK,IAAE,KAAK,IAAI,GAAED,IAAE,CAAC,GAAE0G,IAAE,KAAK,IAAI,GAAE,IAAE1G,CAAC;AAAE,UAAE,KAAK,8BAA4B,KAAK,IAAI,EAAE,KAAK,+BAA6B,GAAEC,CAAC,GAAE,EAAE,KAAK,gCAA8B,KAAK,IAAI,EAAE,KAAK,iCAA+B,GAAEyG,CAAC,GAAEyC,GAAE,EAAE,MAAK,oCAAmCpJ,CAAC,GAAEoJ,GAAE,EAAE,MAAK,wBAAuBlJ,IAAEF,CAAC,GAAEoJ,GAAE,EAAE,MAAK,0BAAyBzC,IAAE3G,CAAC;AAAA,MAAC;AAAC,MAAAH,EAAE,wBAAsB;AAAA,IAAE,CAAC;AAAA,EAAC,CAAC,GAAEE,EAAE,QAAQ,SAAS,GAAE;AAAC,MAAE,GAAG,GAAE,WAAU;AAAC,MAAAF,EAAE,wBAAsB,EAAE,KAAK,sBAAqBA,EAAE,mBAAiB,EAAE,KAAK,cAAaA,EAAE,oBAAkB,EAAE,KAAK,eAAcA,EAAE,mBAAiB,EAAE,KAAK,oBAAmBA,EAAE,oBAAkB,EAAE,KAAK;AAAA,IAAmB,CAAC;AAAA,EAAC,CAAC;AAAC,GAAE2N,KAAGD,IAAOE,KAAG,KAAIC,KAAG,SAAShO,EAAE,GAAE;AAAc,MAAIG,IAAE;AAAKoI,EAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,aAAY,MAAM,GAAE,KAAK,YAAU;AAAG,MAAItI,IAAE,IAAGC,IAAE,WAAU;AAAC,QAAI,IAAE0G,GAAE,IAAG,GAAGzG,KAAG,EAAE,KAAK,eAAa,MAAIF,KAAG;AAAGsJ,IAAAA,GAAE,EAAE,MAAK,sBAAqBpJ,CAAC,GAAE,EAAE,KAAK,qBAAmB,KAAK,IAAI,EAAE,KAAK,sBAAoB,GAAEA,CAAC,GAAEH,EAAE,YAAU,IAAGC,IAAE;AAAA,EAAE;AAAE,IAAE,GAAG,WAAU,SAAS,GAAEE,GAAE;AAAC,QAAG,OAAO,OAAO,EAAE,MAAKA,CAAC,GAAEH,EAAE,aAAWG,EAAE,cAAYF,KAAG2N,IAAG;AAAC,MAAA3N,IAAEE,EAAE;AAAY;AAAA,IAAM;AAAC,IAAAH,EAAE,aAAWE,EAAC,GAAGF,EAAE,YAAU,IAAGC,IAAEE,EAAE,aAAYoJ,GAAE,EAAE,MAAK,mBAAkB,CAAC,GAAE,EAAE,KAAK,SAAS;AAAA,EAAC,CAAC,GAAE,EAAE,GAAG,UAAS,WAAU;AAAC,IAAArJ,EAAC;AAAA,EAAE,CAAC,GAAE,EAAE,GAAG,WAAU,WAAU;AAAC,IAAAF,EAAE,cAAYE,EAAC,GAAG,EAAE,KAAK,QAAQ,IAAGF,EAAE,YAAU,IAAGC,IAAE;AAAA,EAAE,CAAC;AAAC,GAAE6N,KAAGD,IAAOE,KAAG,SAAS3M,GAAEpB,GAAE;AAAC,EAAAoB,EAAE,KAAKpB,CAAC,GAAEoB,EAAE,KAAK,SAAS,GAAE,GAAE;AAAC,WAAO,EAAE,cAAY,EAAE;AAAA,EAAW,CAAC;AAAC,GAAE4M,KAAG,CAAC,gBAAe,aAAY,cAAa,UAAS,aAAY,WAAU,WAAU,cAAa,WAAU,aAAY,WAAW,GAAEC,MAAG,WAAU;AAAc,WAASpO,EAAE,GAAE;AAAC,QAAIG,IAAE;AAAKoI,IAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,gBAAe,MAAM,GAAEA,EAAE,MAAK,eAAc,MAAM,GAAEA,EAAE,MAAK,gBAAe,MAAM,GAAEA,EAAE,MAAK,2BAA0B,MAAM,GAAEA,EAAE,MAAK,4BAA2B,MAAM,GAAEA,EAAE,MAAK,oBAAmB,MAAM,GAAEA,EAAE,MAAK,qBAAoB,MAAM,GAAEA,EAAE,MAAK,aAAY,MAAM,GAAEA,EAAE,MAAK,MAAK,MAAM,GAAE,KAAK,KAAG,GAAE,EAAE,GAAG,YAAW,WAAU;AAAC,MAAAvI,EAAE,YAAU,IAAGA,EAAE,0BAAwB,GAAEA,EAAE,2BAAyB,GAAEA,EAAE,cAAY,CAAA,GAAGA,EAAE,eAAa,CAAA,GAAGA,EAAE,eAAa,IAAGA,EAAE,oBAAkB,IAAGA,EAAE,mBAAiB;AAAA,IAAM,CAAC,GAAEgO,GAAG,QAAQ,SAAS9N,GAAE;AAAC,aAAO,EAAE,GAAGA,GAAEF,EAAE,cAAc,KAAKA,CAAC,CAAC;AAAA,IAAC,CAAC;AAAE,QAAIC,IAAE,WAAU;AAAC,MAAAD,EAAE,YAAU;AAAA,IAAE;AAAE,MAAE,GAAG,gBAAe,WAAU;AAAC,MAAAA,EAAE,YAAU;AAAA,IAAE,CAAC,GAAE,EAAE,GAAG,QAAOC,CAAC,GAAE,EAAE,GAAG,WAAUA,CAAC,GAAE,EAAE,GAAG,WAAUA,CAAC,GAAE,EAAE,GAAG,aAAY,SAASC,GAAE,GAAE;AAAC,UAAE,OAAO,OAAO,EAAC,eAAc,yBAAuBF,EAAE,0BAAyB,GAAE,CAAC,GAAE+N,GAAG/N,EAAE,aAAY,CAAC,GAAEuJ,GAAE,EAAE,MAAK,uBAAuB,GAAEvJ,EAAE,kBAAiB,MAAK,EAAE,KAAK,yBAAuB,IAAGA,EAAE,gBAAcuJ,GAAE,EAAE,MAAK,4BAA4B;AAAA,IAAE,CAAC,GAAE,EAAE,GAAG,cAAa,SAASrJ,GAAE,GAAE;AAAC,UAAE,OAAO,OAAO,EAAC,eAAc,yBAAuBF,EAAE,2BAA0B,GAAE,CAAC,GAAE+N,GAAG/N,EAAE,cAAa,CAAC;AAAE,UAAIG,IAAEH,EAAE,cAAc,EAAE,aAAa;AAAE,MAAAG,KAAGoJ,GAAE,EAAE,MAAK,wBAAuB,KAAK,IAAI,GAAE,EAAE,cAAYpJ,EAAE,WAAW,CAAC;AAAA,IAAC,CAAC,GAAE,EAAE,GAAG,UAAS,SAASD,GAAE,GAAE;AAAC,MAAAF,EAAE,eAAa,IAAGA,EAAE,sBAAoBA,EAAE,oBAAkB,IAAGuJ,GAAE,EAAE,MAAK,sBAAsB,IAAGvJ,EAAE,kBAAiB,KAAI,CAAC,EAAE,KAAK,wBAAsB,EAAE,KAAK,sBAAoB,IAAGA,EAAE,YAAY,SAAO,MAAI,EAAE,KAAK,4BAA0B,KAAK,IAAI,GAAE,EAAE,cAAYA,EAAE,YAAY,CAAC,EAAE,WAAW,IAAG,EAAE,KAAK,eAAa,EAAE,KAAK,oCAAkC,KAAK,IAAI,GAAE,EAAE,cAAY,EAAE,KAAK,UAAU,IAAGA,EAAE,mBAAiB,EAAE;AAAA,IAAY,CAAC,GAAE,EAAE,GAAG,aAAY,SAASE,GAAE,GAAE;AAAC,MAAAF,EAAE,kBAAiB,KAAI,OAAO,EAAE,KAAK,yBAAwB,OAAa,OAAOA,EAAE,mBAAkB,QAAc,EAAE,KAAK,yBAAuB,EAAE,cAAYA,EAAE,kBAAiB,EAAE,KAAK,iCAA+B,EAAE,cAAYA,EAAE;AAAA,IAAiB,CAAC,GAAE,EAAE,GAAG,aAAY,SAASE,GAAE,GAAE;AAAC,MAAAF,EAAE,qBAAmBuJ,GAAE,EAAE,MAAK,uBAAuB;AAAA,IAAC,CAAC,GAAE,EAAE,GAAG,aAAY,SAASrJ,GAAE,GAAE;AAAC,MAAAF,EAAE,qBAAmBuJ,GAAE,EAAE,MAAK,uBAAuB;AAAA,IAAC,CAAC,GAAE,EAAE,GAAG,WAAU,WAAU;AAAC,MAAAvJ,EAAE,oBAAkB;AAAA,IAAE,CAAC,GAAE,EAAE,GAAG,WAAU,WAAU;AAAC,MAAAA,EAAE,oBAAkB;AAAA,IAAE,CAAC;AAAA,EAAC;AAAC,SAAOsI,GAAEzI,GAAE,CAAC,EAAC,KAAI,qBAAoB,OAAM,WAAU;AAAC,WAAO,OAAO,KAAK,GAAG,KAAK,6BAA4B,OAAa,KAAK,GAAG,KAAK,8BAA4B;AAAA,EAAG,EAAC,GAAE,EAAC,KAAI,iBAAgB,OAAM,SAASG,GAAE;AAAC,aAAQ,IAAE,GAAE,IAAE,KAAK,YAAY,QAAO,IAAI,KAAG,KAAK,YAAY,CAAC,EAAE,kBAAgBA,EAAE,QAAO,KAAK,YAAY,CAAC;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,iBAAgB,OAAM,SAASA,GAAE,GAAE;AAAC,QAAG,KAAK,kBAAiB,GAAG;AAAC,UAAG,CAAC,KAAK,GAAG,KAAK,gCAA8B,EAAE,YAAW;AAAC,YAAI,IAAEuG,GAAE4C,GAAG,EAAE,UAAU,GAAE,CAAC,GAAEtH,IAAE,EAAE,CAAC,GAAE1B,IAAE,EAAE,CAAC;AAAE,aAAK,GAAG,KAAK,6BAA2BA,GAAE,KAAK,GAAG,KAAK,+BAA6B0B;AAAA,MAAC;AAAC,UAAG,CAAC,KAAK,GAAG,KAAK,kCAAgC,EAAE,cAAa;AAAC,YAAI,IAAE0E,GAAE4C,GAAG,EAAE,YAAY,GAAE,CAAC,GAAE9I,IAAE,EAAE,CAAC,GAAEyG,IAAE,EAAE,CAAC;AAAE,aAAK,GAAG,KAAK,+BAA6BA,GAAE,KAAK,GAAG,KAAK,iCAA+BzG;AAAA,MAAC;AAAC,WAAK,GAAG,KAAK,UAAQ;AAAA,IAAS;AAAC,SAAK,GAAG,KAAK,eAAa,KAAG,OAAK,SAAO,EAAE,cAAa,KAAK,GAAG,KAAK,aAAW,KAAG,OAAK,SAAO,EAAE,YAAW,KAAK,GAAG,KAAK,iBAAe,KAAG,OAAK,SAAO,EAAE,gBAAe,KAAK,GAAG,KAAK,QAAM,KAAG,OAAK,SAAO,EAAE,OAAM,KAAK,GAAG,KAAK,kBAAgB,KAAG,OAAK,SAAO,EAAE,iBAAgB,KAAG,QAAM,EAAE,YAAU,KAAK,GAAG,KAAK,UAAQ,KAAG,OAAK,SAAO,EAAE;AAAA,EAAQ,EAAC,CAAC,CAAC,GAAER;AAAC,GAAC,GAAGqO,KAAGD,IAAOE,KAAG,SAAStO,EAAE,GAAE;AAAc,MAAIG,IAAE;AAAKoI,EAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,qBAAoB,MAAM;AAAE,MAAItI,IAAE,WAAU;AAAC,IAAAD,EAAE,oBAAkB4G,GAAE,IAAG,GAAG,EAAE,GAAG,WAAU1G,CAAC;AAAA,EAAC,GAAEA,IAAE,SAAS,GAAE;AAAC,QAAIC,IAAEyG,GAAE,IAAG,GAAGxG,IAAEJ,EAAE;AAAkB,IAAAA,EAAE,oBAAkBG,GAAEA,IAAEC,IAAE,QAAM,EAAE,KAAK,eAAc,EAAC,aAAYA,EAAC,CAAC,GAAE,OAAO,OAAO,EAAE,MAAK,EAAC,aAAYA,EAAC,CAAC,GAAE,EAAE,KAAK,aAAa,GAAE,EAAE,KAAK,cAAa,EAAC,aAAYD,EAAC,CAAC,GAAE,OAAO,OAAO,EAAE,MAAK,EAAC,aAAYA,EAAC,CAAC,GAAE,EAAE,KAAK,YAAY;AAAA,EAAE;AAAE,IAAE,IAAI,qBAAoBF,CAAC,GAAE,EAAE,GAAG,wBAAuB,WAAU;AAAC,MAAE,IAAI,WAAUC,CAAC,GAAE,EAAE,IAAI,qBAAoBD,CAAC;AAAA,EAAC,CAAC;AAAC,GAAEmO,KAAGD,IAAOE,KAAG/N,GAAEC,GAAC,CAAE,GAAM+N,MAAG,SAASzO,GAAE;AAAC,SAAOA,EAAC;AAAE,GAAE,WAAU;AAAC,MAAIA,IAAE,WAAU;AAAC,aAAQ,IAAE,GAAE,IAAE,CAAA,GAAG,IAAE,UAAU,QAAO,KAAI;AAAC,UAAIgC,IAAE,UAAU,CAAC;AAAE,eAAQ1B,KAAK0B,EAAE,GAAE1B,CAAC,IAAE0B,EAAE1B,CAAC;AAAA,IAAC;AAAC,WAAO;AAAA,EAAC;AAAE,WAAS,EAAEH,GAAE;AAAC,aAASC,EAAEC,GAAE,GAAEC,GAAE;AAAC,UAAIC;AAAE,UAAG,OAAO,WAAU,KAAY;AAAC,YAAG,UAAU,SAAO,GAAE;AAAC,cAAGD,IAAEN,EAAE,EAAC,MAAK,IAAG,GAAEI,EAAE,UAASE,CAAC,GAAE,OAAOA,EAAE,WAAS,UAAS;AAAC,gBAAIE,IAAE,oBAAI;AAAK,YAAAA,EAAE,gBAAgBA,EAAE,gBAAe,IAAGF,EAAE,UAAQ,KAAK,GAAEA,EAAE,UAAQE;AAAA,UAAC;AAAC,cAAG;AAAC,YAAAD,IAAE,KAAK,UAAU,CAAC,GAAE,UAAU,KAAKA,CAAC,MAAI,IAAEA;AAAA,UAAE,QAAS;AAAA,UAAC;AAAC,iBAAOJ,EAAE,QAAM,IAAEA,EAAE,MAAM,GAAEE,CAAC,IAAE,IAAE,mBAAmB,OAAO,CAAC,CAAC,EAAE,QAAQ,6DAA4D,kBAAkB,GAAEA,IAAE,mBAAmB,OAAOA,CAAC,CAAC,GAAEA,IAAEA,EAAE,QAAQ,4BAA2B,kBAAkB,GAAEA,IAAEA,EAAE,QAAQ,WAAU,MAAM,GAAE,SAAS,SAAO,CAACA,GAAE,KAAI,GAAEC,EAAE,UAAQ,eAAaA,EAAE,QAAQ,YAAW,IAAG,IAAGA,EAAE,OAAK,YAAUA,EAAE,OAAK,IAAGA,EAAE,SAAO,cAAYA,EAAE,SAAO,IAAGA,EAAE,SAAO,aAAW,EAAE,EAAE,KAAK,EAAE;AAAA,QAAC;AAAC,QAAAD,MAAIE,IAAE,CAAA;AAAI,iBAAQ0G,IAAE,SAAS,SAAO,SAAS,OAAO,MAAM,IAAI,IAAE,CAAA,GAAGC,IAAE,oBAAmBU,IAAE,GAAEA,IAAEX,EAAE,QAAOW,KAAI;AAAC,cAAIC,IAAEZ,EAAEW,CAAC,EAAE,MAAM,GAAG,GAAEE,IAAED,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG;AAAE,UAAAC,EAAE,OAAO,CAAC,MAAI,QAAMA,IAAEA,EAAE,MAAM,GAAE,EAAE;AAAG,cAAG;AAAC,gBAAII,IAAEL,EAAE,CAAC,EAAE,QAAQX,GAAE,kBAAkB;AAAE,gBAAGY,IAAE3H,EAAE,OAAKA,EAAE,KAAK2H,GAAEI,CAAC,IAAE/H,EAAE2H,GAAEI,CAAC,KAAGJ,EAAE,QAAQZ,GAAE,kBAAkB,GAAE,KAAK,KAAK,KAAG;AAAC,cAAAY,IAAE,KAAK,MAAMA,CAAC;AAAA,YAAC,QAAS;AAAA,YAAC;AAAC,gBAAGzH,MAAI6H,GAAE;AAAC,cAAA3H,IAAEuH;AAAE;AAAA,YAAK;AAAC,YAAAzH,MAAIE,EAAE2H,CAAC,IAAEJ;AAAA,UAAE,QAAS;AAAA,UAAC;AAAA,QAAC;AAAC,eAAOvH;AAAA,MAAC;AAAA,IAAC;AAAC,WAAOH,EAAE,MAAIA,GAAEA,EAAE,MAAI,SAASC,GAAE;AAAC,aAAOD,EAAE,KAAKA,GAAEC,CAAC;AAAA,IAAC,GAAED,EAAE,UAAQ,WAAU;AAAC,aAAOA,EAAE,MAAM,EAAC,MAAK,GAAE,GAAE,CAAA,EAAG,MAAM,KAAK,SAAS,CAAC;AAAA,IAAC,GAAEA,EAAE,WAAS,CAAA,GAAGA,EAAE,SAAO,SAASC,GAAE,GAAE;AAAC,MAAAD,EAAEC,GAAE,IAAGL,EAAE,GAAE,EAAC,SAAQ,GAAE,CAAC,CAAC;AAAA,IAAC,GAAEI,EAAE,gBAAc,GAAEA;AAAA,EAAC;AAAC,SAAO,EAAE,WAAU;AAAA,EAAC,CAAC;AAAC,CAAC,GAAMsO,KAAG,WAAUC,KAAG,SAAS3O,GAAE;AAAC,SAAO,OAAO,QAAQA,CAAC,EAAE,IAAI,SAAS,GAAE;AAAC,QAAIG,IAAEuG,GAAE,GAAE,CAAC,GAAEtG,IAAED,EAAE,CAAC,GAAEE,IAAEF,EAAE,CAAC;AAAE,WAAM,GAAG,OAAOC,GAAE,GAAG,EAAE,OAAOC,CAAC;AAAA,EAAC,CAAC,EAAE,KAAK,GAAG;AAAC,GAAEuO,KAAG,SAAS5O,GAAE;AAAC,SAAOA,EAAE,MAAM,GAAG,EAAE,OAAO,SAAS,GAAEG,GAAE;AAAC,QAAIC,IAAEsG,GAAEvG,EAAE,MAAM,GAAG,GAAE,CAAC,GAAEE,IAAED,EAAE,CAAC,GAAE,IAAEA,EAAE,CAAC,GAAEE,IAAE,CAAC,GAAEC,IAAE,KAAGD,KAAG,IAAEA,IAAE;AAAE,WAAO,EAAED,CAAC,IAAEE,GAAE;AAAA,EAAC,GAAE,CAAA,CAAE;AAAC,GAAEsO,KAAG,WAAU;AAAC,MAAItN;AAAE,MAAG;AAAC,IAAAA,IAAEqN,GAAGH,GAAG,IAAIC,EAAE,KAAG,EAAE;AAAA,EAAC,QAAS;AAAC,IAAAnN,IAAE,CAAA;AAAA,EAAE;AAAC,SAAOA;AAAC,GAAEuN,KAAG,SAASvN,GAAE;AAAC,MAAG;AAACkN,IAAAA,GAAG,IAAIC,IAAGC,GAAGpN,CAAC,GAAE,EAAC,SAAQ,IAAG,CAAC;AAAA,EAAC,QAAS;AAAA,EAAC;AAAC,GAAEwN,KAAG,WAAU;AAAC,MAAIxN,IAAEsN,GAAE;AAAG,SAAOtN,EAAE,gBAAcA,EAAE,iBAAeyF,GAAE,GAAGzF,EAAE,MAAIA,EAAE,OAAK,KAAK,UAASuN,GAAGvN,CAAC,GAAE,EAAC,eAAcA,EAAE,eAAc,mBAAkBA,EAAE,IAAG;AAAC,GAAEyN,KAAG,WAAU;AAAC,MAAIzN,IAAEsN,GAAE,GAAG1O,IAAE4G,GAAE,IAAG;AAAG,SAAOxF,EAAE,kBAAgBA,EAAE,MAAIA,EAAE,eAAc,OAAOA,EAAE,gBAAeA,EAAE,eAAaA,EAAE,MAAIA,EAAE,YAAW,OAAOA,EAAE,aAAYA,EAAE,oBAAkBA,EAAE,MAAIA,EAAE,iBAAgB,OAAOA,EAAE,mBAAkB,CAACA,EAAE,OAAKA,EAAE,MAAIpB,OAAKoB,EAAE,MAAIyF,GAAE,GAAGzF,EAAE,MAAIpB,IAAGoB,EAAE,MAAIpB,IAAE,OAAM,KAAI2O,GAAGvN,CAAC,GAAE,EAAC,YAAWA,EAAE,KAAI,eAAcA,EAAE,KAAI,iBAAgBA,EAAE,IAAG;AAAC;AAAE,SAAS0N,GAAGjP,GAAE,GAAE;AAAC,MAAIG,IAAE,EAAE,wBAAuBC,IAAE,EAAE;AAAa,MAAGD,EAAE,QAAM,aAAWA;AAAE,EAAAH,IAAEA,KAAG;AAAW,MAAIK,IAAED,KAAG;AAAW,SAAOJ,EAAE,MAAM,aAAa,IAAE,aAAWA,IAAE,MAAIK,IAAE;AAA4B;AAAC,IAAI6O,KAAGzO,GAAEC,GAAC,CAAE,GAAEyO,KAAG,WAAU;AAAC,MAAI5N;AAAE,UAAO6N,GAAE;IAAI,KAAI;AAAW,MAAA7N,IAAE;AAAW;AAAA,IAAM,KAAI;AAAW,MAAAA,IAAE;AAAQ;AAAA,IAAM,KAAI;AAAO,MAAAA,IAAE;AAAO;AAAA,IAAM,KAAK;AAAO;AAAA,IAAM;AAAQ,MAAAA,IAAE;AAAA,EAAO;AAAC,SAAOA;AAAC,GAAE6N,KAAG,WAAU;AAAC,MAAI7N,IAAE2N,GAAG,QAAQ,WAAU/O,IAAEoB,MAAIA,EAAE,cAAYA,EAAE,iBAAeA,EAAE;AAAkB,SAAOpB,KAAGA,EAAE;AAAI;AAAEgP,GAAG,uBAAqBC;AAAG,IAAIC,KAAGF,IAAOG,KAAG,EAAC,GAAE,OAAM,GAAE,UAAS,GAAE,UAAS,GAAE,MAAK,GAAE,SAAQ,GAAE,cAAa,GAAE,YAAW,GAAE,OAAM,GAAE,YAAW,GAAE,UAAS,GAAE,WAAU,GAAE,SAAQ,GAAE,WAAU,GAAE,aAAY,GAAE,UAAS,GAAE,SAAQ,GAAE,QAAO,GAAE,QAAO,GAAE,MAAK,GAAEC,KAAGC,GAAGF,EAAE,GAAEG,KAAG,EAAC,IAAG,MAAK,IAAG,aAAY,IAAG,aAAY,IAAG,OAAM,IAAG,eAAc,IAAG,SAAQ,IAAG,gBAAe,IAAG,SAAQ,IAAG,YAAW,IAAG,WAAU,IAAG,WAAU,IAAG,SAAQ,IAAG,SAAQ,IAAG,WAAU,IAAG,SAAQ,IAAG,YAAW,IAAG,UAAS,IAAG,UAAS,IAAG,SAAQ,IAAG,QAAO,IAAG,YAAW,IAAG,WAAU,IAAG,UAAS,IAAG,WAAU,IAAG,YAAW,IAAG,QAAO,IAAG,UAAS,IAAG,SAAQ,IAAG,WAAU,IAAG,YAAW,IAAG,WAAU,IAAG,YAAW,IAAG,YAAW,IAAG,WAAU,IAAG,WAAU,IAAG,cAAa,IAAG,cAAa,IAAG,WAAU,IAAG,QAAO,IAAG,eAAc,IAAG,UAAS,IAAG,OAAM,IAAG,aAAY,IAAG,OAAM,IAAG,WAAU,IAAG,YAAW,IAAG,UAAS,IAAG,WAAU,IAAG,WAAU,IAAG,YAAW,IAAG,QAAO,IAAG,OAAM,IAAG,UAAS,IAAG,SAAQ,IAAG,SAAQ,IAAG,eAAc,IAAG,aAAY,IAAG,aAAY,IAAG,SAAQ,IAAG,UAAS,IAAG,WAAU,IAAG,aAAY,IAAG,UAAS,IAAG,SAAQ,IAAG,UAAS,IAAG,UAAS,IAAG,OAAM,IAAG,aAAY,IAAG,SAAQ,IAAG,cAAa,IAAG,OAAM,IAAG,YAAW,IAAG,WAAU,IAAG,QAAO,IAAG,YAAW,IAAG,UAAS,IAAG,MAAK,IAAG,QAAO,IAAG,YAAW,IAAG,MAAK,IAAG,MAAK,IAAG,OAAM,IAAG,YAAW,IAAG,WAAU,IAAG,SAAQ,IAAG,QAAO,IAAG,UAAS,IAAG,QAAO,IAAG,SAAQ,IAAG,WAAU,IAAG,OAAM,IAAG,SAAQ,IAAG,WAAU,IAAG,YAAW,IAAG,QAAO,IAAG,WAAU,IAAG,OAAM,IAAG,gBAAe,IAAG,SAAQ,IAAG,QAAO,IAAG,MAAK,IAAG,OAAM,IAAG,UAAS,IAAG,QAAO,IAAG,UAAS,IAAG,MAAK,IAAG,UAAS,IAAG,MAAK,IAAG,UAAS,IAAG,YAAW,IAAG,YAAW,IAAG,cAAa,IAAG,UAAS,IAAG,WAAU,IAAG,YAAW,IAAG,UAAS,IAAG,WAAU,IAAG,WAAU,IAAG,UAAS,IAAG,OAAM,IAAG,WAAU,IAAG,YAAW,IAAG,QAAO,IAAG,YAAW,IAAG,YAAW,IAAG,OAAM,IAAG,QAAO,IAAG,QAAO,IAAG,aAAY,IAAG,YAAW,IAAG,aAAY,IAAG,SAAQ,IAAG,UAAS,IAAG,SAAQ,IAAG,YAAW,IAAG,WAAU,IAAG,YAAW,IAAG,UAAS,IAAG,WAAU,IAAG,WAAU,IAAG,SAAQ,IAAG,QAAO,IAAG,UAAS,IAAG,UAAS,IAAG,YAAW,IAAG,UAAS,IAAG,UAAS,IAAG,SAAQ,IAAG,WAAU,IAAG,UAAS,IAAG,YAAW,IAAG,YAAW,IAAG,OAAM,IAAG,QAAO,IAAG,QAAO,IAAG,UAAS,IAAG,cAAa,IAAG,QAAO,IAAG,SAAQ,IAAG,MAAK,IAAG,SAAQ,IAAG,QAAO,IAAG,aAAY,IAAG,aAAY,IAAG,WAAU,IAAG,OAAM,IAAG,QAAO,IAAG,WAAU,IAAG,UAAS,IAAG,SAAQ,IAAG,WAAU,IAAG,QAAO,IAAG,UAAS,IAAG,SAAQ,IAAG,SAAQ,IAAG,UAAS,GAAEC,KAAGF,GAAGC,EAAE;AAAE,SAASD,GAAGxP,GAAE;AAAC,MAAI,IAAE,CAAA;AAAG,WAAQG,KAAKH,EAAE,CAAAA,EAAE,eAAeG,CAAC,MAAI,EAAEH,EAAEG,CAAC,CAAC,IAAEA;AAAG,SAAO;AAAC;AAAC,SAASwP,GAAG3P,GAAE;AAAC,MAAI,IAAE,CAAA,GAAGG,IAAE,CAAA;AAAG,SAAO,OAAO,KAAKH,CAAC,EAAE,QAAQ,SAASI,GAAE;AAAC,QAAIC,IAAE;AAAG,QAAGL,EAAE,eAAeI,CAAC,KAAGJ,EAAEI,CAAC,MAAI,QAAO;AAAC,UAAI,IAAEA,EAAE,MAAM,GAAG,GAAEE,IAAE,EAAE,CAAC,GAAEC,IAAEgP,GAAGjP,CAAC;AAAE,MAAAC,MAAI4H,GAAE,KAAK,oBAAkB,EAAE,CAAC,IAAE,uBAAqB/H,CAAC,GAAEG,IAAED,IAAE,MAAK,EAAE,OAAO,CAAC,EAAE,QAAQ,SAASE,GAAE;AAAC,QAAAA,MAAI,UAAQH,IAAE,KAAIqP,GAAGlP,CAAC,IAAED,KAAGmP,GAAGlP,CAAC,IAAE,OAAO,UAAU,OAAOA,CAAC,CAAC,IAAED,KAAGC,KAAG2H,GAAE,KAAK,oBAAkB3H,IAAE,uBAAqBJ,CAAC,GAAEG,KAAG,MAAIC,IAAE;AAAA,MAAI,CAAC,GAAEH,IAAEF,EAAEI,CAAC,IAAEP,EAAEI,CAAC,IAAE,EAAEG,CAAC,IAAEP,EAAEI,CAAC;AAAA,IAAC;AAAA,EAAC,CAAC,GAAE,OAAO,OAAO,GAAED,CAAC;AAAC;AAAC,IAAIyP,KAAGnP,GAAEC,GAAC,CAAE,GAAEmP,KAAGpP,GAAEsF,GAAE,CAAE,GAAM+J,KAAG,EAAC,eAAc,KAAI,gBAAe,MAAK,wBAAuB,KAAI,kBAAiB,IAAG,GAAEC,KAAG,KAAG,MAAKC,KAAG,CAAC,MAAK,oBAAmB,iBAAgB,iBAAiB,GAAEC,KAAG,wBAAuBC,KAAE,SAAS3O,GAAE;AAAC,MAAIpB,IAAE,UAAU,SAAO,KAAG,UAAU,CAAC,MAAI,SAAO,UAAU,CAAC,IAAE,CAAA;AAAG,OAAK,aAAWoB,KAAG0O,IAAG,KAAK,cAAY,CAAA,GAAG,KAAK,gBAAc,IAAG,KAAK,mBAAiB,IAAG,KAAK,gBAAc,GAAE,KAAK,eAAa,IAAG,KAAK,WAAS,OAAO,OAAO,CAAA,GAAGH,IAAG3P,CAAC;AAAC;AAAE+P,GAAE,UAAU,aAAW,SAASlQ,GAAE,GAAE;AAAC,MAAIG,IAAE,OAAO,OAAO,CAAA,GAAG,CAAC;AAAE,SAAO,KAAK,YAAY,UAAQ,KAAK,SAAS,kBAAgBH,MAAI,uBAAqB,KAAK,YAAY,KAAKG,CAAC,GAAE,KAAK,gBAAc,KAAK,oBAAmB,GAAG,KAAK,YAAY,UAAQ,KAAK,SAAS,kBAAgB;AAAE;AAAE+P,GAAE,UAAU,cAAY,WAAU;AAAC,MAAIlQ,IAAE,UAAU,SAAO,KAAG,UAAU,CAAC,MAAI,SAAO,UAAU,CAAC,IAAE;AAAG,MAAGA,KAAG,KAAK,YAAY,WAAS,GAAE;AAAC,SAAK,YAAY,IAAG;AAAG;AAAA,EAAM;AAAC,OAAK,YAAY,UAAQ,KAAK,iBAAgB,GAAG,KAAK,oBAAmB;AAAE;AAAEkQ,GAAE,UAAU,UAAQ,WAAU;AAAC,MAAIlQ,IAAE,UAAU,SAAO,KAAG,UAAU,CAAC,MAAI,SAAO,UAAU,CAAC,IAAE;AAAG,OAAK,YAAU,IAAGA,IAAE,KAAK,kBAAiB,IAAG,KAAK,eAAc4P,GAAG,QAAQ,aAAa,KAAK,YAAY;AAAC;AAAEM,GAAE,UAAU,oBAAkB,WAAU;AAAC,MAAIlQ,IAAE,KAAK,YAAY,SAAO,KAAK,SAAS,gBAAc,KAAK,YAAY,SAAO,KAAK,SAAS,gBAAc,GAAE,IAAE,KAAK,YAAY,MAAMA,CAAC;AAAE,EAAAA,IAAE,KAAG,OAAO,OAAO,EAAE,EAAE,SAAO,CAAC,GAAE2P,GAAG,EAAC,kBAAiB,wBAAuB,CAAC,CAAC;AAAE,MAAIxP,IAAE,KAAK,eAAe,CAAC;AAAE,EAAAgQ,GAAG,KAAK,YAAWhQ,GAAE,IAAG,WAAU;AAAA,EAAC,CAAC;AAAC;AAAE+P,GAAE,UAAU,mBAAiB,WAAU;AAAC,MAAIlQ,IAAE;AAAK,MAAG,KAAK,eAAc;AAAC,SAAK,mBAAiB;AAAG;AAAA,EAAM;AAAC,MAAI,IAAE,KAAK,YAAY,MAAM,GAAE,KAAK,SAAS,aAAa;AAAE,OAAK,cAAY,KAAK,YAAY,MAAM,KAAK,SAAS,aAAa,GAAE,KAAK,gBAAc;AAAG,MAAIG,IAAE,KAAK,eAAe,CAAC,GAAEC,IAAE2G,GAAE,IAAG;AAAG,EAAAoJ,GAAG,KAAK,YAAWhQ,GAAE,IAAG,SAASE,GAAE,GAAE;AAAC,SAAGL,EAAE,cAAY,EAAE,OAAOA,EAAE,WAAW,GAAEA,EAAE,iBAAe,GAAEmI,GAAE,KAAK,2BAAyB,CAAC,KAAGnI,EAAE,gBAAc,GAAEA,EAAE,iBAAe+G,GAAE,IAAG,IAAG3G,GAAEJ,EAAE,gBAAc,IAAGA,EAAE,qBAAmBA,EAAE,mBAAiB,IAAGA,EAAE,YAAY,SAAO,KAAGA,EAAE,iBAAgB;AAAA,EAAG,CAAC;AAAC;AAAEkQ,GAAE,UAAU,qBAAmB,WAAU;AAAC,MAAG,CAAC,KAAK,cAAc,QAAO,KAAK,SAAS;AAAuB,MAAIlQ,IAAE,KAAK,IAAI,GAAE,KAAK,gBAAc,CAAC;AAAE,SAAOA,IAAEA,IAAE,KAAK,OAAM,IAAI,IAAEA,KAAG,KAAK,SAAS;AAAsB;AAAEkQ,GAAE,UAAU,sBAAoB,WAAU;AAAC,MAAIlQ,IAAE;AAAK4P,EAAAA,GAAG,QAAQ,aAAa,KAAK,YAAY,GAAE,CAAC,KAAK,cAAY,KAAK,eAAaA,GAAG,QAAQ,WAAW,WAAU;AAAC,IAAA5P,EAAE,YAAY,UAAQA,EAAE,iBAAgB,GAAGA,EAAE,oBAAmB;AAAA,EAAE,GAAE,KAAK,mBAAkB,CAAE;AAAE;AAAEkQ,GAAE,UAAU,iBAAe,SAASlQ,GAAE;AAAC,MAAI,IAAE,MAAKG,IAAE,EAAC,wBAAuB,KAAK,MAAM4G,GAAE,IAAG,CAAE,EAAC;AAAE,OAAK,mBAAiB5G,EAAE,SAAO,KAAK,MAAM,KAAK,cAAc;AAAG,MAAIC,GAAEC,GAAE,GAAEC,IAAE,WAAU;AAAC,IAAAF,IAAE,KAAK,UAAU,EAAC,UAASD,GAAE,QAAOE,KAAGL,EAAC,CAAC,GAAE,IAAEI,EAAE,SAAO;AAAA,EAAI,GAAEG,IAAE,WAAU;AAAC,WAAO,KAAG,EAAE,SAAS;AAAA,EAAgB;AAAE,SAAOD,EAAC,GAAGC,EAAC,MAAK4H,GAAE,KAAK,8BAA4B,IAAE,oCAAoC,GAAE9H,IAAEL,EAAE,OAAO,SAASQ,GAAE;AAAC,WAAOwP,GAAG,QAAQxP,EAAE,CAAC,MAAI;AAAA,EAAE,CAAC,GAAEF,EAAC,IAAIC,QAAM4H,GAAE,KAAK,iCAA+B,IAAE,yBAAyB,GAAE9H,EAAE,QAAQ,SAASG,GAAE;AAAC,aAAQyG,KAAKzG,GAAE;AAAC,UAAI0G,IAAE1G,EAAEyG,CAAC,GAAEW,IAAE,KAAG;AAAK,aAAOV,KAAG,YAAUA,EAAE,SAAOU,MAAIpH,EAAEyG,CAAC,IAAEC,EAAE,UAAU,GAAEU,CAAC;AAAA,IAAE;AAAA,EAAC,CAAC,GAAEtH,EAAC,IAAIF;AAAC;AAAE,IAAIgQ,KAAG,OAAOP,GAAG,QAAQ,wBAAsB,aAAW,SAAS7P,GAAE;AAAC,SAAOA,EAAE,UAAQ+P;AAAE,IAAE,SAAS/P,GAAE;AAAC,SAAM;AAAE,GAAEmQ,KAAG,SAASnQ,GAAE,GAAEG,GAAEC,GAAE;AAAC,MAAGD,KAAG,aAAW,UAAU,cAAY,UAAU,WAAWH,GAAE,CAAC,GAAE;AAAC,IAAAI,EAAC;AAAG;AAAA,EAAM;AAAC,MAAGwP,GAAG,QAAQ,OAAM;AAACA,IAAAA,GAAG,QAAQ,MAAM5P,GAAE,EAAC,QAAO,QAAO,MAAK,GAAE,SAAQ,EAAC,gBAAe,aAAY,GAAE,WAAUoQ,GAAG,CAAC,EAAC,CAAC,EAAE,KAAK,SAAS,GAAE;AAAC,aAAOhQ,EAAE,MAAK,EAAE,KAAG,OAAK,OAAO;AAAA,IAAC,CAAC,EAAE,MAAM,SAAS,GAAE;AAAC,aAAOA,EAAE,MAAK,CAAC;AAAA,IAAC,CAAC;AAAE;AAAA,EAAM;AAAC,MAAGwP,GAAG,QAAQ,gBAAe;AAAC,QAAIvP,IAAE,IAAIuP,GAAG,QAAQ;AAAe,IAAAvP,EAAE,qBAAmB,WAAU;AAAC,UAAGA,EAAE,eAAa,EAAE,QAAOD,EAAE,MAAKC,EAAE,WAAS,MAAI,UAAQ,MAAM;AAAA,IAAC,GAAEA,EAAE,KAAK,QAAOL,CAAC,GAAEK,EAAE,iBAAiB,gBAAe,YAAY,GAAEA,EAAE,KAAK,CAAC;AAAE;AAAA,EAAM;AAAC,EAAAD;AAAG,GAAEiQ,KAAGH,IAAMI,KAAG,CAAC,WAAU,WAAU,wBAAuB,0BAAyB,iBAAgB,wBAAuB,eAAc,mBAAkB,SAAQ,YAAW,sBAAqB,qBAAoB,wBAAuB,wBAAuB,yBAAwB,mCAAkC,mCAAkC,+BAA+B,GAAEC,KAAG,CAAC,UAAS,aAAY,WAAU,mBAAkB,cAAa,mBAAkB,WAAU,cAAa,WAAW,GAAEC,KAAG,CAAC,SAAQ,kBAAiB,iBAAiB,GAAEC,KAAG,CAAC,aAAY,SAAQ,SAAQ,SAAS,GAAEC,KAAG,MAAM,KAAIC,MAAG,WAAU;AAAc,WAAS3Q,EAAE,GAAEG,GAAE;AAAC,QAAIC,IAAE,UAAU,SAAO,KAAG,UAAU,CAAC,MAAI,SAAO,UAAU,CAAC,IAAE;AAAGmI,IAAAA,GAAE,MAAKvI,CAAC;AAAE,QAAIK,GAAE,GAAEC,GAAEC,GAAEC,GAAEyG,GAAEC,GAAEU,GAAEC,GAAEC,GAAEI,GAAEH;AAAEW,IAAAA,EAAE,MAAK,OAAM,MAAM,GAAEA,EAAE,MAAK,UAAS,MAAM,GAAEA,EAAE,MAAK,WAAU,MAAM,GAAEA,EAAE,MAAK,cAAa,MAAM,GAAEA,EAAE,MAAK,cAAa,MAAM,GAAEA,EAAE,MAAK,kBAAiB,MAAM,GAAEA,EAAE,MAAK,qBAAoB,MAAM,GAAEA,EAAE,MAAK,sBAAqB,MAAM,GAAEA,EAAE,MAAK,iBAAgB,MAAM,GAAEA,EAAE,MAAK,eAAc,MAAM,GAAEA,EAAE,MAAK,iBAAgB,MAAM,GAAEA,EAAE,MAAK,cAAa,MAAM,GAAE,KAAK,MAAI,GAAE,KAAK,SAAOvI,GAAE,KAAK,UAAQC,GAAE,KAAK,qBAAmB,MAAK,KAAK,gBAAc,GAAE,KAAK,cAAY,IAAG,KAAK,aAAW,IAAIiQ,GAAGpB,GAAG,KAAK,QAAO,KAAK,OAAO,CAAC;AAAE,QAAIjH;AAAE,SAAK,cAAYA,IAAE,KAAK,QAAQ,gBAAc,QAAMA,MAAI,SAAOA,IAAE;AAAE,QAAIC;AAAE,SAAK,kBAAgBA,IAAE,KAAK,QAAQ,oBAAkB,QAAMA,MAAI,SAAOA,IAAE;AAAG,QAAIuC;AAAE,SAAK,qBAAmBA,IAAE,KAAK,QAAQ,uBAAqB,QAAMA,MAAI,SAAOA,IAAE,IAAG,KAAK,qBAAmB,MAAK,KAAK,gBAAc,GAAE,KAAK,cAAY,IAAG,KAAK,gBAAc,EAAC,iBAAgB,KAAK,IAAI,aAAY,WAAU,KAAK,IAAI,MAAK,mBAAkB,KAAK,IAAI,SAAQ,0BAAyBnK,IAAE,KAAK,QAAQ,cAAY,QAAMA,MAAI,SAAO,SAAOA,EAAE,MAAK,6BAA4B,IAAE,KAAK,QAAQ,cAAY,QAAM,MAAI,SAAO,SAAO,EAAE,SAAQ,4BAA2BC,IAAE,KAAK,QAAQ,cAAY,QAAMA,MAAI,SAAO,SAAOA,EAAE,QAAO,qBAAoBC,IAAE,KAAK,QAAQ,cAAY,QAAMA,MAAI,SAAO,SAAOA,EAAE,SAAQ,wBAAuB,IAAG,6BAA4BC,IAAE,KAAK,QAAQ,cAAY,QAAMA,MAAI,SAAO,SAAOA,EAAE,cAAa,mBAAkB0G,IAAE,KAAK,QAAQ,cAAY,QAAMA,MAAI,WAASD,IAAEC,EAAE,QAAM,QAAMD,MAAI,SAAO,SAAOA,EAAE,QAAO,yBAAwBY,IAAE,KAAK,QAAQ,cAAY,QAAMA,MAAI,WAASD,IAAEC,EAAE,QAAM,QAAMD,MAAI,SAAO,SAAOA,EAAE,cAAa,oBAAmBM,IAAE,KAAK,QAAQ,cAAY,QAAMA,MAAI,WAASJ,IAAEI,EAAE,QAAM,QAAMJ,MAAI,SAAO,SAAOA,EAAE,SAAQ,wBAAuBuH,GAAE,GAAG,UAASb,GAAG,YAAU,QAAMA,GAAG,YAAU,WAASzG,IAAEyG,GAAG,QAAQ,cAAY,QAAMzG,MAAI,SAAO,SAAOA,EAAE,KAAI,GAAE,KAAK,aAAW,KAAK,iBAAe,CAAA,IAAGgH,GAAE;AAAA,EAAE;AAAC,SAAOtG,GAAEzI,GAAE,CAAC,EAAC,KAAI,QAAO,OAAM,SAASG,GAAE,GAAE;AAAC,QAAG,EAAE,CAACA,KAAG,EAAE,KAAG,QAAM,EAAE,WAAU;AAAC,UAAG,KAAK,qBAAmBkI,GAAE,EAAG,QAAOF,GAAE,KAAK,kBAAgBhI,IAAE,mCAAmC;AAAE,UAAG,CAAC,KAAG,OAAO,KAAG,SAAS,QAAOgI,GAAE,MAAM,2DAA2D;AAAE,UAAI,IAAE,KAAK,iBAAe,CAAA,IAAG6G,GAAE,GAAGhN,IAAE6H,GAAGF,GAAG,CAAA,GAAG,KAAK,eAAc,GAAE,GAAE,KAAK,UAAU,GAAE,EAAC,OAAMxJ,GAAE,SAAQ,KAAK,OAAM,CAAC;AAAE,MAAA6B,EAAE,YAAUA,EAAE,iBAAeA,EAAE,SAAQ,OAAOA,EAAE;AAAS,UAAI1B,GAAE,MAAIA,IAAE0B,EAAE,uBAAqB,QAAM1B,MAAI,SAAOA,IAAE,MAAI,KAAK,YAAWE,IAAE,KAAK,uBAAuBL,GAAE6B,CAAC,GAAEiF,IAAE0I,GAAGnP,CAAC;AAAE,UAAG,KAAK,gBAAc,KAAK,IAAI,MAAM,IAAG,GAAG,EAAE,QAAO2H,GAAE,KAAK,oDAAmDhI,GAAE6B,GAAEiF,CAAC;AAAE,UAAG,KAAK,UAAQkB,GAAE,KAAK,+GAA8GhI,GAAE6B,GAAEiF,CAAC,GAAE,CAAC,KAAK,YAAY,KAAGkB,GAAE,KAAK,iBAAgBhI,GAAE6B,GAAEiF,CAAC,GAAE,KAAK,cAAY,CAAC,KAAK,WAAW,WAAW9G,GAAE8G,CAAC,GAAE,KAAK,IAAI,oBAAkB9G,MAAI,UAAU,MAAK,WAAW,QAAQ,EAAE;AAAA,WAAM;AAAC,YAAG,KAAK,IAAI,iBAAeA,MAAI,KAAK,MAAK,WAAW,YAAY,EAAE;AAAA,iBAAUsQ,GAAG,QAAQtQ,CAAC,KAAG,GAAE;AAAC,cAAGA,MAAI,WAAS,EAAE,0BAAwB,UAAU;AAAO,eAAK,WAAW,YAAW;AAAA,QAAE;AAAC,YAAG,KAAK,YAAY,QAAO6B,EAAE,QAAM,qBAAoBiF,IAAE0I,GAAG3N,CAAC,GAAE,KAAK,WAAW,WAAWA,EAAE,OAAMiF,CAAC,GAAEkB,GAAE,MAAM,uCAAuC;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,WAAU,OAAM,WAAU;AAAC,SAAK,WAAW,QAAQ,EAAE;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,0BAAyB,OAAM,SAAShI,GAAE,GAAE;AAAC,QAAI,IAAE,MAAK6B,IAAE,CAAA,GAAG1B,IAAE,EAAE;AAAQ,QAAGA,MAAI,QAAMH,MAAI,eAAaA,MAAI,aAAW,CAAC,KAAK,sBAAoB,KAAK,IAAI,MAAM,IAAG,IAAG,KAAK,iBAAeuQ,GAAG,CAAA1O,IAAE2H,GAAG,CAAA,GAAG,CAAC,GAAErJ,MAAI,KAAK,qBAAmB0B,IAAG1B,KAAGH,MAAI,cAAY,KAAK,qBAAmB;AAAA,SAAU;AAAC,UAAI,IAAEA,EAAE,QAAQ,SAAS,MAAI;AAAE,aAAO,QAAQ,CAAC,EAAE,QAAQ,SAASK,GAAE;AAAC,YAAIyG,IAAEP,GAAElG,GAAE,CAAC,GAAE0G,IAAED,EAAE,CAAC,GAAEW,IAAEX,EAAE,CAAC;AAAE,UAAE,uBAAqBW,MAAI,EAAE,mBAAmBV,CAAC,KAAGoJ,GAAG,QAAQpJ,CAAC,IAAE,MAAI,EAAE,iBAAiB,GAAEA,GAAEU,GAAE,EAAE,mBAAmBV,CAAC,CAAC,KAAG,EAAE,iBAAiB/G,GAAE+G,CAAC,OAAKlF,EAAEkF,CAAC,IAAEU,GAAE,EAAE,mBAAmBV,CAAC,IAAEU;AAAA,MAAE,CAAC;AAAA,IAAC;AAAC,WAAO5F;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,oBAAmB,OAAM,SAAS7B,GAAE,GAAE,GAAE6B,GAAE;AAAC,WAAM,CAAC7B,KAAG,EAAE,QAAQ,UAAU,MAAI,IAAE,KAAG,MAAI,8BAA4B,OAAO,KAAG,YAAU,OAAO6B,KAAG,WAAS,KAAG,OAAO,KAAK,KAAG,EAAE,EAAE,WAAS,OAAO,KAAKA,KAAG,CAAA,CAAE,EAAE;AAAA,EAAM,EAAC,GAAE,EAAC,KAAI,oBAAmB,OAAM,SAAS7B,GAAE,GAAE;AAAC,WAAM,CAAC,EAAEA,MAAI,qBAAmB,EAAE,QAAQ,eAAe,MAAI,KAAGqQ,GAAG,SAAS,CAAC,KAAGD,GAAG,SAASpQ,CAAC,KAAGA,MAAI,wBAAsB,EAAE,QAAQ,sBAAsB,MAAI;AAAA,EAAE,EAAC,CAAC,CAAC,GAAEH;AAAC,GAAC,GAAO4Q,KAAG,SAAS5Q,EAAE,GAAE;AAAcuI,EAAAA,GAAE,MAAKvI,CAAC;AAAE,MAAIG,IAAE,GAAEC,IAAE,GAAEC,IAAE,GAAE,IAAE,GAAEC,IAAE,GAAEC,IAAE,GAAEC,IAAE,GAAEyG,IAAE,SAASY,GAAEC,GAAE;AAAC,QAAII,IAAEJ,EAAE,eAAcC,IAAED,EAAE,wBAAuBE,IAAEF,EAAE,sBAAqBG,IAAEH,EAAE;AAAqB;AAAI,QAAI0C,GAAE;AAAE,QAAGzC,KAAGyC,IAAEzC,KAAGG,KAAU,IAAG,KAAGF,KAAU,KAAGD,KAAG,KAAGC,KAAU,MAAIE,KAAU,IAAG,IAAE,KAAGD,KAAGA,IAAE,GAAE;AAAC,UAAIyC,IAAEzC,IAAE,IAAE;AAAI,MAAA3H,KAAIF,KAAG6H,GAAE5H,KAAG,GAAE,EAAE,KAAK,8BAA4B,KAAK,IAAI,EAAE,KAAK,+BAA6B,OAAIqK,CAAC,GAAE,EAAE,KAAK,kCAAgCtK,IAAEC,IAAE,KAAI,EAAE,KAAK,qBAAmB,GAAEmK,IAAE,MAAIrK,KAAGqK,GAAE,EAAE,KAAK,2BAAyB,KAAK,IAAI,EAAE,KAAK,4BAA0B,GAAEA,CAAC,GAAE,EAAE,KAAK,+BAA6BrK,IAAEG;AAAA,IAAE;AAAA,EAAC,GAAE4G,IAAE,SAASW,GAAEC,GAAE;AAAC,SAAIvH,KAAI,EAAE,KAAK,qBAAmB,GAAE,EAAE,KAAK,4BAA0BA;AAAA,EAAC,GAAEqH,IAAE,SAASC,GAAEC,GAAE;AAAC,SAAItH,KAAI,EAAE,KAAK,qBAAmB,GAAE,EAAE,KAAK,8BAA4BA;AAAA,EAAC;AAAE,IAAE,GAAG,oBAAmByG,CAAC,GAAE,EAAE,GAAG,iBAAgBC,CAAC,GAAE,EAAE,GAAG,mBAAkBU,CAAC;AAAC,GAAEiJ,KAAGD,IAAOE,KAAG,OAAM,KAAIC,KAAG,SAAS/Q,EAAE,GAAE;AAAc,MAAIG,IAAE;AAAKoI,EAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,kBAAiB,MAAM,GAAE,EAAE,GAAG,WAAU,SAAStI,GAAEC,GAAE;AAAC,QAAI,IAAEA,EAAE,aAAYC,IAAEyG,GAAE,IAAG,GAAGxG,IAAEJ,EAAE;AAAe,QAAGA,EAAE,iBAAeG,GAAEC,KAAGD,IAAEC,IAAEuQ,IAAG;AAAC,UAAItQ,IAAE,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,SAAS0G,GAAEU,GAAE;AAAC,eAAOA,EAAE,QAAQ,QAAQ,MAAI,IAAE,OAAO,OAAOV,GAAEwB,EAAE,CAAA,GAAGd,GAAE,EAAE,KAAKA,CAAC,CAAC,CAAC,IAAEV;AAAA,MAAC,GAAE,CAAA,CAAE;AAAE,QAAE,IAAI,IAAI,KAAK,uEAAuE;AAAE,UAAID,IAAE,EAAE,kBAAkB;AAA6B,QAAE,WAAW,OAAO,OAAO,EAAC,aAAY,EAAC,GAAEzG,CAAC,CAAC,GAAE,EAAE,kBAAkB,+BAA6ByG,GAAE,EAAE,kBAAkB,gCAA8B7G,EAAE,SAAO,UAAQA,EAAE,SAAO,mBAAiB,EAAE,KAAK,QAAO,EAAC,aAAY,EAAC,CAAC,GAAEA,EAAE,SAAO,aAAW,EAAE,KAAK,WAAU,EAAC,aAAY,EAAC,CAAC;AAAA,IAAE;AAAA,EAAC,CAAC;AAAC,GAAE4Q,KAAGD,IAAOE,KAAG,SAASjR,EAAE,GAAE;AAAcuI,EAAAA,GAAE,MAAKvI,CAAC;AAAE,MAAIG,IAAE,SAASK,GAAE;AAAC,QAAIyG,IAAEiK,GAAG1Q,CAAC,GAAE0G,IAAEiK,GAAG3Q,CAAC;AAAE,QAAGyG,KAAG,QAAM,CAACmK,GAAGnK,GAAE,CAAC,KAAG3G,KAAG4G,GAAE;AAAC,UAAED,GAAE3G,IAAE4G;AAAE,UAAIU,IAAE,EAAC,WAAUX,EAAC;AAAE,QAAE,KAAK,aAAYW,CAAC;AAAA,IAAC;AAAA,EAAC,GAAExH,IAAE,MAAKC,IAAE,MAAK,IAAE,MAAKC,IAAE;AAAE,IAAE,GAAG,YAAW,WAAU;AAAC,IAAAF,IAAE,MAAKC,IAAE,MAAK,IAAE,MAAKC,IAAE;AAAA,EAAC,CAAC,GAAE,EAAE,GAAG,mBAAkB,SAASC,GAAEC,GAAE;AAAC,QAAIyG,IAAEzG,KAAG,OAAK,SAAOA,EAAE;AAAU,IAAAyG,MAAI,OAAOzG,EAAE,qBAAoB,OAAaA,EAAE,uBAAqB,UAAQ4Q,GAAGnK,GAAE5G,CAAC,IAAEG,EAAE,qBAAmBJ,KAAU,UAAQI,EAAE,qBAAmBH,KAAU,QAAOD,IAAEC,GAAEA,IAAE4G;AAAA,EAAG,CAAC,GAAE,EAAE,GAAG,oBAAmB,SAAS1G,GAAEC,GAAE;AAAC,IAAAL,EAAEK,CAAC;AAAA,EAAC,CAAC;AAAC;AAAE,SAAS4Q,GAAGpR,GAAE,GAAE;AAAC,UAAOA,KAAG,OAAK,SAAOA,EAAE,YAAW,QAAO,KAAG,OAAK,SAAO,EAAE,YAAW;AAAG;AAAC,SAASkR,GAAGlR,GAAE;AAAC,MAAI;AAAE,SAAOA,KAAG,QAAMA,EAAE,iBAAeA,EAAE,iBAAe,WAASA,EAAE,iBAAe,YAAW,GAAG,IAAEA,EAAE,8BAA4B,QAAM,MAAI,WAAS,EAAE,OAAO,IAAGA,EAAE,yBAAyB,OAAO,IAAEA,KAAG,QAAMA,EAAE,YAAUA,EAAE,YAAU;AAAI;AAAC,SAASmR,GAAGnR,GAAE;AAAC,SAAOA,KAAG,QAAMA,EAAE,gBAAcA,EAAE,gBAAcA,KAAG,QAAMA,EAAE,cAAYA,EAAE,cAAY,KAAK,IAAG;AAAE;AAAC,IAAIqR,KAAGJ,IAAOK,KAAG,SAAStR,GAAE;AAAC,MAAG;AAAC,WAAO,KAAK,MAAMA,CAAC,GAAE;AAAA,EAAE,QAAS;AAAC,WAAM;AAAA,EAAE;AAAC,GAAEuR,KAAG,SAASvR,EAAE,GAAE;AAAc,MAAIG,IAAE;AAAKoI,EAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,2BAA0B,EAAE,GAAEA,EAAE,MAAK,mBAAkB,EAAE,GAAEA,EAAE,MAAK,gBAAe,UAAU,GAAE,EAAE,GAAG,aAAY,WAAU;AAAC,IAAAvI,EAAE,oBAAkBA,EAAE,kBAAgB,IAAGA,EAAE,eAAa,EAAE,KAAK,wBAAsB,YAAWA,EAAE,0BAAwB,IAAG,EAAE,KAAK,sBAAqB,EAAC,sBAAqBA,EAAE,cAAa,2BAA0B,KAAI,CAAC,GAAEA,EAAE,0BAAwB;AAAA,EAAG,CAAC,GAAE,EAAE,GAAG,WAAU,WAAU;AAAC,IAAAA,EAAE,kBAAgB;AAAA,EAAE,CAAC,GAAE,EAAE,GAAG,sBAAqB,SAASC,GAAEC,GAAE;AAAC,IAAAF,EAAE,4BAA0BE,EAAE,4BAA0BiR,GAAGjR,EAAE,yBAAyB,MAAI,EAAE,IAAI,IAAI,KAAK,mDAAmD,GAAEA,EAAE,4BAA0B,QAAMA,EAAE,4BAA0B,MAAK,EAAE,KAAK,4BAA0BA,EAAE,2BAA0B,EAAE,KAAK,uBAAqBA,EAAE,sBAAqBF,EAAE,eAAaE,EAAE;AAAA,EAAqB,CAAC;AAAC,GAAEmR,KAAGD,IAAOE,MAAG,WAAU;AAAc,WAASzR,EAAE,GAAE;AAACuI,IAAAA,GAAE,MAAKvI,CAAC,GAAE0I,EAAE,MAAK,MAAK,MAAM,GAAEA,EAAE,MAAK,sBAAqB,MAAM,GAAEA,EAAE,MAAK,qBAAoB,MAAM,GAAE,KAAK,KAAG,GAAE,KAAK,qBAAmB,MAAK,KAAK,oBAAkB,MAAK,EAAE,GAAG,qBAAoB,KAAK,qBAAqB,KAAK,IAAI,CAAC,GAAE,EAAE,GAAG,wBAAuB,KAAK,kBAAkB,KAAK,IAAI,CAAC;AAAA,EAAC;AAAC,SAAOD,GAAEzI,GAAE,CAAC,EAAC,KAAI,uBAAsB,OAAM,WAAU;AAAC,QAAIG,IAAE,KAAK,GAAG,KAAK;AAAsB,QAAGA,KAAGA,EAAE,SAAO,GAAE;AAAC,UAAI,IAAE,KAAK,GAAG,KAAK,wBAAsB;AAAE,MAAAA,EAAEA,EAAE,SAAO,CAAC,EAAE,CAAC,IAAE;AAAA,IAAC;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,wBAAuB,OAAM,WAAU;AAAC,QAAIA,GAAE,IAAE,KAAK,GAAG,KAAK,wBAAsB;AAAE,QAAG,EAAE,CAAC,KAAK,GAAG,mCAAkC,GAAGA,IAAE,KAAK,GAAG,eAAa,QAAMA,MAAI,WAASA,EAAE,aAAY,KAAK,sBAAoB,QAAM,IAAE,KAAK,oBAAmB;AAAC,UAAG,KAAK,sBAAoB,QAAM,KAAK,uBAAqB,MAAK;AAAC,YAAI,IAAE,KAAK,IAAI,IAAE,KAAK,iBAAiB;AAAE,YAAG,IAAE,KAAI;AAAC,cAAI6B,IAAE,KAAK,GAAG,KAAK;AAAsB,UAAAA,KAAGA,EAAE,SAAO,MAAIA,EAAEA,EAAE,SAAO,CAAC,EAAE,CAAC,IAAE,KAAK,oBAAmB,KAAK,qBAAmB;AAAA,QAAI;AAAA,MAAC;AAAC,UAAG,KAAK,uBAAqB,MAAK;AAAC,YAAI1B,IAAE,KAAK,GAAG,KAAK,yBAAuB,CAAA;AAAG,QAAAA,EAAE,SAAO,KAAGA,EAAEA,EAAE,SAAO,CAAC,EAAE,CAAC,MAAI,IAAE,KAAK,qBAAmBA,EAAEA,EAAE,SAAO,CAAC,EAAE,CAAC,KAAG,KAAK,qBAAmB,GAAEA,EAAE,KAAK,CAAC,GAAE,CAAC,CAAC,IAAG,KAAK,GAAG,KAAK,wBAAsBA;AAAA,MAAC,MAAM,MAAK,oBAAmB;AAAG,WAAK,oBAAkB;AAAA,IAAC;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,qBAAoB,OAAM,WAAU;AAAC,SAAK,uBAAqB,SAAO,KAAK,oBAAmB,GAAG,KAAK,qBAAmB,MAAK,KAAK,oBAAkB;AAAA,EAAK,EAAC,CAAC,CAAC,GAAEN;AAAC,GAAC,GAAG0R,KAAGD,IAAOE,KAAG,CAAC,aAAY,SAAQ,aAAY,SAAQ,QAAO,WAAU,cAAa,WAAU,UAAS,WAAU,WAAU,WAAU,aAAY,aAAY,cAAa,gBAAe,cAAa,mBAAkB,cAAa,mBAAkB,iBAAgB,eAAc,UAAS,SAAQ,MAAK,oBAAmB,iBAAgB,mBAAkB,mBAAkB,aAAY,oBAAoB,GAAEC,KAAG,oBAAI,IAAI,CAAC,oBAAmB,iBAAgB,iBAAiB,CAAC,GAAEC,MAAG,SAAS7R,GAAE;AAAc+I,EAAAA,GAAG5I,GAAEH,CAAC;AAAE,MAAI,IAAEoJ,GAAGjJ,CAAC;AAAE,WAASA,EAAEC,GAAEC,GAAE,GAAE;AAACkI,IAAAA,GAAE,MAAKpI,CAAC;AAAE,QAAIG;AAAE,IAAAA,IAAE,EAAE,KAAK,IAAI,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,mBAAkB,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,oBAAmB,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,cAAa,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,qBAAoB,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,aAAY,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,UAAS,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,QAAO,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,mCAAkC,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,2BAA0B,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,mCAAkC,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,gBAAe,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,mBAAkB,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,kBAAiB,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,aAAY,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,mBAAkB,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,gBAAe,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,uBAAsB,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,SAAQ,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,MAAK,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,qBAAoB,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,2BAA0B,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,OAAM,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,2BAA0B,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,qBAAoB,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,yBAAwB,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,gBAAe,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,kBAAiB,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,8BAA6B,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,oBAAmB,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,sBAAqB,MAAM,GAAEoI,EAAEJ,EAAEhI,CAAC,GAAE,wBAAuB,MAAM,GAAEA,EAAE,mBAAiBmJ,GAAG,gBAAe,GAAGnJ,EAAE,kBAAgBmJ,GAAG,yBAAwB;AAAG,QAAIlJ,IAAE,EAAC,OAAM,IAAG,yBAAwB,KAAI,4BAA2B,KAAI,uBAAsB,IAAG,cAAa,YAAW,YAAW,GAAE,gBAAe,IAAG,mBAAkB,IAAG,yBAAwB,IAAG,iCAAgC,IAAG,iCAAgC,IAAG,iBAAgB,SAASsH,GAAE;AAAC,aAAOA;AAAA,IAAC,GAAE,gBAAe,WAAU;AAAC,eAAQA,IAAE,UAAU,QAAOC,IAAE,IAAI,MAAMD,CAAC,GAAEK,IAAE,GAAEA,IAAEL,GAAEK,IAAI,CAAAJ,EAAEI,CAAC,IAAE,UAAUA,CAAC;AAAE,aAAOJ;AAAA,IAAC,GAAE,qBAAoB,SAASD,GAAE;AAAC,aAAOA;AAAA,IAAC,EAAC;AAAE,IAAAvH,EAAE,MAAIF,GAAEE,EAAE,KAAGD,GAAE,KAAG,QAAM,EAAE,gBAAcC,EAAE,IAAI,IAAI,KAAK,gLAAgL,GAAE,IAAE,OAAO,OAAOC,GAAE,CAAC,GAAE,EAAE,OAAK,EAAE,QAAM,CAAA,GAAG,EAAE,KAAK,iBAAe,EAAE,KAAK,UAAQ,EAAE,KAAK,cAAa,OAAO,EAAE,KAAK,eAAc4H,GAAE,QAAM,EAAE,QAAMT,GAAE,QAAMA,GAAE,MAAKpH,EAAE,kBAAgB,EAAE,iBAAgBA,EAAE,eAAa,EAAE,gBAAc,WAAU;AAAC,aAAM;IAAE,GAAEA,EAAE,YAAU,EAAE,aAAW,WAAU;AAAA,IAAC,GAAEA,EAAE,0BAAwB,EAAE,yBAAwBA,EAAE,6BAA2B,EAAE,4BAA2BA,EAAE,wBAAsB,EAAE,uBAAsBA,EAAE,0BAAwB,EAAE,yBAAwBA,EAAE,2BAAyBA,EAAE,IAAI,IAAI,KAAK,6JAA6J,GAAEA,EAAE,kCAAgC,EAAE,iCAAgCA,EAAE,kCAAgC,EAAE,iCAAgCA,EAAE,kBAAgB,EAAE,iBAAgBA,EAAE,iBAAe,EAAE,gBAAeA,EAAE,sBAAoB,EAAE,qBAAoBA,EAAE,0BAAwB,IAAIqQ,GAAGvQ,GAAE,EAAE,KAAK,SAAQ,CAAC,GAAEE,EAAE,OAAK,EAAC,oBAAmB0G,GAAE,GAAG,iBAAgB,EAAE,YAAW,eAAc,EAAE,0BAAwB,EAAE,aAAY,GAAE1G,EAAE,KAAK,uBAAqB,GAAEA,EAAE,KAAK,yBAAuB;AAAE,QAAIE,KAAE,WAAU;AAAC,aAAO,KAAK,KAAK,aAAY,QAAc,KAAK,KAAK,aAAW,KAAK,IAAI,MAAM,IAAG,GAAG,KAAK,KAAK,WAAW,GAAE,KAAK,KAAK,iBAAiB;AAAA,IAAE,GAAE,KAAK8H,EAAEhI,CAAC,CAAC;AAAE,QAAGA,EAAE,GAAG,YAAW,SAASuH,GAAEC,GAAE;AAAC,WAAK,gBAAe,GAAG,KAAK,kBAAiB,KAAK,gBAAe,GAAG,KAAK,iBAAgB,GAAG,OAAO,OAAO,KAAK,MAAKA,CAAC,GAAE,KAAK,oBAAmB,GAAG,KAAK,IAAI,QAAOtH,CAAC,GAAE,KAAK,IAAI,gBAAeA,CAAC;AAAA,IAAC,CAAC,GAAEF,EAAE,GAAG,eAAc,SAASuH,GAAEC,GAAE;AAAC,WAAK,WAAWA,CAAC;AAAA,IAAC,CAAC,GAAExH,EAAE,GAAG,iBAAgB,SAASuH,GAAEC,GAAE;AAAC,WAAK,KAAK,oBAAkB,KAAK,IAAI,IAAI,KAAK,0RAA0R,GAAE,KAAK,WAAW,OAAO,OAAOA,GAAE,EAAC,sBAAqB,GAAE,CAAC,CAAC,GAAEtH,EAAC,GAAG,KAAK,KAAK,MAAM,GAAE,KAAK,KAAK,SAAS;AAAA,IAAC,CAAC,GAAEF,EAAE,GAAG,kBAAiB,SAASuH,GAAEC,GAAE;AAAC,WAAK,qBAAmBA,EAAE,oBAAmB,KAAK,uBAAqBA,EAAE;AAAA,IAAoB,CAAC,GAAExH,EAAE,GAAG,WAAUA,EAAE,OAAO,GAAE,OAAO,SAAQ,OAAa,OAAO,OAAO,oBAAkB,cAAY,OAAO,OAAO,uBAAqB,YAAW;AAAC,UAAI2G,IAAE,WAAU;AAAC,YAAIY,IAAE,OAAOvH,EAAE,KAAK,aAAY;AAAY,QAAAA,EAAE,IAAI,gBAAc,SAAS,oBAAkB,UAASuH,KAAGvH,EAAE,IAAI,kBAAgBA,EAAE,KAAK,oBAAkBA,EAAE,KAAK,IAAI;AAAA,MAAE;AAAE,aAAO,iBAAiB,oBAAmB2G,GAAE,EAAE;AAAE,UAAIC,IAAE,SAASW,GAAE;AAAC,QAAAA,EAAE,aAAWvH,EAAE,QAAO;AAAA,MAAE;AAAE,aAAO,iBAAiB,YAAW4G,GAAE,EAAE,GAAE5G,EAAE,GAAG,WAAU,WAAU;AAAC,eAAO,oBAAoB,oBAAmB2G,CAAC,GAAE,OAAO,oBAAoB,YAAWC,CAAC;AAAA,MAAC,CAAC;AAAA,IAAC;AAAC,IAAA5G,EAAE,GAAG,eAAc,SAASuH,GAAEC,GAAE;AAAC,aAAO,OAAO,KAAK,MAAKA,CAAC;AAAA,IAAC,CAAC,GAAE6J,GAAG,QAAQ,SAAS9J,GAAE;AAAC,MAAAvH,EAAE,GAAGuH,GAAE,SAASC,GAAEI,GAAE;AAAC,QAAAL,EAAE,QAAQ,IAAI,MAAI,KAAG,KAAK,iBAAgB,GAAG,OAAO,OAAO,KAAK,MAAKK,CAAC,GAAE,KAAK,cAAa;AAAA,MAAE,CAAC,GAAE5H,EAAE,GAAG,UAAQuH,GAAE,WAAU;AAAC,SAACA,MAAI,WAAS,KAAK,aAAa,gBAAc,KAAK,KAAKA,CAAC;AAAA,MAAC,CAAC;AAAA,IAAC,CAAC,GAAEvH,EAAE,GAAG,WAAU,SAASuH,GAAEC,GAAE;AAAC,aAAO,OAAOxH,EAAE,MAAKwH,CAAC;AAAA,IAAC,CAAC;AAAE,QAAIF,IAAE,SAASE,GAAE;AAAC,UAAII,IAAE,KAAK,IAAI,MAAM,IAAG;AAAG,WAAK,KAAK,qBAAmB,KAAK,KAAK,sBAAoBA,IAAE,KAAK,KAAK,mBAAkB,KAAK,mBAAiB,KAAK,KAAK,uBAAqB,KAAK,kBAAiB,KAAK,kBAAgB,KAAK,KAAK,sBAAoB,KAAK,iBAAgB,CAAC,KAAK,IAAI,kBAAgB,KAAK,qBAAmB,KAAK,IAAI,iBAAe,KAAI,KAAK,KAAK,oBAAkB,KAAK,qBAAmB,KAAK,KAAK,iBAAe,KAAK,IAAI,KAAK,KAAK,oBAAkB,OAAI,KAAK,mBAAiB,KAAG,IAAE,KAAK,oBAAmB,KAAK,KAAK,aAAa,GAAE,OAAO,KAAK,KAAK,qBAAoB,OAAO,KAAK,KAAK;AAAA,IAAc;AAAE,WAAO5H,EAAE,IAAI,eAAcsH,CAAC,GAAEtH,EAAE,oBAAkB,IAAI0Q,GAAG1I,EAAEhI,CAAC,CAAC,GAAEA,EAAE,eAAa,IAAIyM,GAAGzE,EAAEhI,CAAC,CAAC,GAAE,IAAIiO,GAAGjG,EAAEhI,CAAC,CAAC,GAAEA,EAAE,iBAAe,IAAI2N,GAAG3F,EAAEhI,CAAC,CAAC,GAAEA,EAAE,eAAa,IAAI+M,GAAG/E,EAAEhI,CAAC,CAAC,GAAEA,EAAE,oBAAkB,IAAIuM,GAAGvE,EAAEhI,CAAC,CAAC,GAAE,IAAIwN,GAAGxF,EAAEhI,CAAC,CAAC,GAAEA,EAAE,mBAAiB,IAAI2M,GAAG3E,EAAEhI,CAAC,CAAC,GAAE,IAAI6M,GAAG7E,EAAEhI,CAAC,CAAC,GAAE,IAAIoR,GAAGpJ,EAAEhI,CAAC,CAAC,GAAEA,EAAE,YAAU,IAAI+N,GAAG/F,EAAEhI,CAAC,CAAC,GAAE,IAAIoN,GAAGpF,EAAEhI,CAAC,CAAC,GAAE,IAAIkN,GAAGlF,EAAEhI,CAAC,CAAC,GAAE,IAAIsN,GAAGtF,EAAEhI,CAAC,CAAC,GAAE,IAAIuQ,GAAGvI,EAAEhI,CAAC,CAAC,GAAE,IAAI+Q,GAAG/I,EAAEhI,CAAC,CAAC,GAAE,IAAIkR,GAAGlJ,EAAEhI,CAAC,CAAC,GAAE,EAAE,SAAOA,EAAE,SAAS,CAAC,GAAE,EAAE,UAAQA,EAAE,UAAU,CAAC,GAAEA,EAAE,KAAK,YAAW,EAAE,IAAI,GAAEA;AAAA,EAAC;AAAC,SAAOmI,GAAEtI,GAAE,CAAC,EAAC,KAAI,QAAO,OAAM,SAAS,GAAE6B,GAAE;AAAC,QAAI1B,GAAE,IAAE,OAAO,OAAO,EAAC,aAAY,KAAK,IAAI,MAAM,IAAG,EAAE,GAAE0B,CAAC,GAAExB,IAAE,CAAC,GAAE,CAAC;AAAE,QAAG,KAAK,eAAe,KAAG;AAAC,MAAAA,IAAE,KAAK,eAAe,GAAE,CAAC;AAAA,IAAC,SAAOyG,GAAE;AAAC,WAAK,IAAI,IAAI,KAAK,0CAAyCA,CAAC;AAAA,IAAC;AAAC,IAAAzG,KAAG,QAAMA,EAAE,WAASF,IAAEuI,GAAGF,GAAExI,EAAE,SAAS,GAAE,QAAO,IAAI,GAAG,KAAK,MAAMG,GAAE,CAAC,IAAI,EAAE,OAAOmH,GAAEjH,CAAC,CAAC,CAAC;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,WAAU,OAAM,WAAU;AAAC,SAAK,eAAa,KAAK,aAAW,IAAG,OAAO,KAAK,KAAK,aAAY,QAAc,KAAK,KAAK,SAAS,GAAE,KAAK,KAAK,SAAS,IAAG,KAAK,wBAAwB,QAAO,GAAG,KAAK,YAAW,GAAG,KAAK,aAAY,GAAG,OAAO,aAAa,KAAK,iBAAiB;AAAA,EAAE,EAAC,GAAE,EAAC,KAAI,QAAO,OAAM,SAAS,GAAE;AAAC,QAAG,KAAK,KAAK,SAAQ;AAAC,UAAIwB,IAAE,OAAO,OAAO,CAAA,GAAG,KAAK,IAAI,GAAE1B,IAAE,CAAC,uBAAsB,uCAAsC,iCAAgC,uBAAsB,kBAAiB,uBAAsB,yBAAwB,4BAA4B;AAAE,UAAG0B,EAAE,yBAAuB,WAASA,EAAE,2BAAyB,SAAKA,EAAE,0BAAwB,QAAIA,EAAE,uBAAqB,MAAIA,EAAE,yBAAuB,KAAGA,EAAE,wBAAsB,OAAKA,EAAE,uBAAqB,MAAKA,EAAE,wBAAsB1B,EAAE,QAAQ,SAAS4G,GAAE;AAAC,QAAAlF,EAAEkF,CAAC,IAAE;AAAA,MAAM,CAAC,GAAElF,EAAE,mBAAiBA,EAAE,oBAAkBA,EAAE,mBAAkBA,EAAE,kBAAiB;AAAC,YAAI,IAAE0E,GAAE4C,GAAGtH,EAAE,gBAAgB,GAAE,CAAC,GAAExB,IAAE,EAAE,CAAC,GAAEyG,IAAE,EAAE,CAAC;AAAE,QAAAjF,EAAE,sBAAoBiF,GAAEjF,EAAE,wBAAsBxB;AAAA,MAAC;AAAC,aAAOwB,EAAE,eAAcA,EAAE,0BAAwBA,EAAE,uBAAqB,KAAK,UAAUA,EAAE,sBAAsB,OAAO,SAASkF,GAAE;AAAC,eAAOA,EAAE,CAAC,MAAIA,EAAE,CAAC;AAAA,MAAC,CAAC,EAAE,IAAI,SAASA,GAAE;AAAC,eAAM,GAAG,OAAOA,EAAE,CAAC,GAAE,GAAG,EAAE,OAAOA,EAAE,CAAC,CAAC;AAAA,MAAC,CAAC,CAAC,GAAE,OAAOlF,EAAE,wBAAuB,KAAK,wBAAwB,KAAK,GAAEA,CAAC,GAAE,KAAK,KAAK,wBAAuB,KAAK,KAAK,0BAAyB4P,GAAG,IAAI,CAAC,KAAG,KAAK,kBAAiB,GAAG,MAAI,aAAW,OAAO,KAAK,KAAK;AAAA,IAAO;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,cAAa,OAAM,SAAS,GAAE;AAAC,SAAK,KAAK,SAAS,GAAE,KAAK,KAAK,SAAS,GAAE,KAAK,KAAK,YAAW,CAAC;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,oBAAmB,OAAM,WAAU;AAAC,QAAI,GAAE5P,IAAE,KAAK,aAAY;AAAG,QAAG,OAAO,KAAK,uBAAqB,WAAW,KAAG;AAAC,MAAAA,IAAE,KAAK,oBAAoBA,CAAC;AAAA,IAAC,SAAOxB,GAAE;AAAC,WAAK,IAAI,IAAI,KAAK,yDAAwDA,CAAC;AAAA,IAAC;AAAC,QAAG,GAAG,IAAE,KAAK,UAAQ,QAAM,MAAI,WAAS,EAAE,aAAYwB,KAAG,QAAMA,EAAE,WAAW;AAAO,MAAAA,EAAE;AAAS,UAACzB,IAAE0I,GAAGjH,GAAE,CAAC,WAAW,CAAC;AAAE,MAAAA,IAAEzB;AAAA,IAAC;AAAC,WAAO,OAAO,KAAK,MAAKyB,CAAC,GAAE,KAAK,aAAa,oBAAmB,GAAG,KAAK,cAAa;AAAA,EAAE,EAAC,GAAE,EAAC,KAAI,iBAAgB,OAAM,WAAU;AAAC,QAAI,IAAE,MAAKA,IAAE,CAAC,gBAAe,iBAAgB,sBAAqB,uBAAsB,wBAAuB,sBAAsB;AAAE,IAAAA,EAAE,QAAQ,SAAS,GAAE;AAAC,UAAIxB,IAAE,SAAS,EAAE,KAAK,CAAC,GAAE,EAAE;AAAE,QAAE,KAAK,CAAC,IAAE,MAAMA,CAAC,IAAE,SAAOA;AAAA,IAAC,CAAC;AAAE,QAAIF,IAAE,CAAC,qBAAoB,kBAAkB;AAAE,IAAAA,EAAE,QAAQ,SAAS,GAAE;AAAC,UAAG,EAAE,KAAK,CAAC,GAAE;AAAC,YAAIE,IAAE,EAAE,KAAK,CAAC,EAAE,YAAW;AAAG,SAACA,EAAE,QAAQ,OAAO,MAAI,KAAGA,EAAE,QAAQ,OAAO,MAAI,OAAK,EAAE,KAAK,CAAC,IAAE;AAAA,MAAgB;AAAA,IAAC,CAAC;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,mBAAkB,OAAM,WAAU;AAAC,QAAI,IAAE;AAAK,WAAO,KAAK,KAAK,IAAI,EAAE,QAAQ,SAASwB,GAAE;AAAC,MAAAA,EAAE,QAAQ,QAAQ,MAAI,KAAG,OAAO,EAAE,KAAKA,CAAC;AAAA,IAAC,CAAC;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,kBAAiB,OAAM,WAAU;AAAC,QAAI,IAAE;AAAK,WAAO,KAAK,KAAK,IAAI,EAAE,QAAQ,SAASA,GAAE;AAAC,MAAAA,EAAE,QAAQ,OAAO,MAAI,KAAG,OAAO,EAAE,KAAKA,CAAC;AAAA,IAAC,CAAC,GAAE,KAAK,KAAK,uBAAqB;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,mBAAkB,OAAM,WAAU;AAAC,WAAO,KAAK,KAAK,mBAAkB,OAAO,KAAK,KAAK,sBAAqB,OAAO,KAAK,KAAK,sBAAqB,OAAO,KAAK,KAAK,uBAAsB,OAAO,KAAK,KAAK;AAAA,EAA+B,EAAC,GAAE,EAAC,KAAI,uBAAsB,OAAM,WAAU;AAAC,QAAI,IAAE,MAAKA,IAAE,KAAK,KAAK,UAAQgF,GAAE,GAAG1G,IAAE,WAAU;AAAC,MAAA0B,MAAI,EAAE,KAAK,WAAS0H,GAAE,EAAE,MAAK,qBAAoB,CAAC;AAAA,IAAC;AAAE,SAAK,KAAK,mBAAiB,KAAK,IAAI,QAAOpJ,CAAC,IAAEA,EAAC;AAAA,EAAE,EAAC,GAAE,EAAC,KAAI,qBAAoB,OAAM,WAAU;AAAC,QAAI,IAAE;AAAK,WAAO,aAAa,KAAK,iBAAiB,GAAE,KAAK,oBAAkB,OAAO,WAAW,WAAU;AAAC,QAAE,KAAK,oBAAkB,EAAE,KAAK,IAAI;AAAA,IAAC,GAAE,GAAG;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,YAAW,OAAM,SAAS,GAAE;AAAC,QAAG,CAAC,EAAE,OAAM;AAAC,WAAK,IAAI,IAAI,KAAK,4DAA4D;AAAE;AAAA,IAAM;AAAC,QAAG,KAAK,OAAM;AAAC,WAAK,IAAI,IAAI,KAAK,mEAAmE;AAAE;AAAA,IAAM;AAAC,SAAK,QAAM,EAAE,OAAMiK,GAAG,KAAK,KAAI,KAAK,IAAG,EAAE,OAAM,CAAA,GAAG,EAAE,OAAK,OAAO,GAAG;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,eAAc,OAAM,WAAU;AAAC,SAAK,UAAQiB,GAAG,KAAK,KAAK,GAAE,KAAK,QAAM;AAAA,EAAO,EAAC,GAAE,EAAC,KAAI,aAAY,OAAM,SAAS,GAAE;AAAC,QAAG,CAAC,EAAE,QAAO;AAAC,WAAK,IAAI,IAAI,KAAK,6DAA6D;AAAE;AAAA,IAAM;AAAC,QAAG,KAAK,QAAO;AAAC,WAAK,IAAI,IAAI,KAAK,oEAAoE;AAAE;AAAA,IAAM;AAAC,SAAK,SAAO,EAAE,QAAOK,GAAG,KAAK,KAAI,KAAK,IAAG,EAAE,MAAM;AAAA,EAAC,EAAC,GAAE,EAAC,KAAI,gBAAe,OAAM,WAAU;AAAC,SAAK,WAASU,GAAG,KAAK,MAAM,GAAE,KAAK,SAAO;AAAA,EAAO,EAAC,CAAC,CAAC,GAAEpM;AAAC,GAAEuM,EAAE,GAAEoF,KAAGD,IAAOE,KAAGtR,GAAEsF,GAAE,CAAE;AAAE,SAASiM,KAAI;AAAC,SAAOD,GAAG,WAAS,CAAC,EAAEA,GAAG,QAAQ,qBAAmBA,GAAG,QAAQ,2BAAyBA,GAAG,QAAQ,wBAAsBA,GAAG,QAAQ;AAAoB;AAAC,IAAIE,KAAG,CAAC,aAAY,SAAQ,QAAO,WAAU,WAAU,UAAS,cAAa,cAAa,WAAU,WAAU,SAAQ,OAAO,GAAEC,KAAG,EAAC,GAAE,qBAAoB,GAAE,qBAAoB,GAAE,oBAAmB,GAAE,8BAA6B;AAAE,SAASC,GAAGnS,GAAE,GAAEG,GAAE;AAAC,MAAIC,IAAEsG,GAAEW,GAAG,CAAC,GAAE,CAAC,GAAEhH,IAAED,EAAE,CAAC,GAAE,IAAEA,EAAE,CAAC,GAAEE,IAAEF,EAAE,CAAC,GAAEG,IAAEP,EAAE,KAAIQ,IAAER,EAAE,MAAM,kBAAiBiH,IAAEjH,EAAE,MAAM,aAAYkH,IAAE,EAAC,wBAAuB,GAAE;AAAE,MAAG7G;AAAG,QAAGC,MAAI,WAASA,MAAI,QAAQ,QAAOC,EAAE,MAAM,qBAAmB,IAAE,4BAA4B;AAAA,QAAO,QAAOA,EAAE,MAAM,oCAAkC,IAAE,mBAAmB;AAAE,EAAAF,EAAE,QAAMA,EAAE,IAAI,QAAO,GAAG,OAAOA,EAAE,KAAIE,EAAE,KAAK,2EAA2E;AAAG,MAAIqH,IAAE,EAAC,iBAAgB,WAAU;AAAC,WAAOX,EAAE5G,EAAE,WAAW;AAAA,EAAC,GAAE,cAAa,WAAU;AAAC,QAAI6H,GAAEH,GAAEC,GAAEC,MAAIC,KAAGH,IAAE,MAAM,qBAAmB,QAAMG,MAAI,SAAO,SAAOA,EAAE,KAAKH,CAAC,MAAId,EAAE5G,EAAE,WAAW,GAAEmK,IAAE,KAAK,SAAO,KAAK,MAAM,KAAIC,IAAE,KAAK,UAAQ,OAAO,KAAK,OAAO,aAAW,cAAY,KAAK,OAAO,UAAS,GAAGC,IAAE,EAAC,kBAAiBrK,EAAE,QAAO,cAAa,SAASG,EAAEH,GAAE,OAAO,CAAC,GAAE,eAAc,SAASG,EAAEH,GAAE,QAAQ,CAAC,GAAE,oBAAmBA,EAAE,UAAS,mBAAkBA,EAAE,SAAQ,sBAAqBA,EAAE,MAAK,sBAAqB2R,GAAE,GAAG,kBAAiB3R,EAAE,QAAO,kBAAiBmK,KAAGC,KAAGpK,EAAE,YAAW,uBAAsB4G,EAAE5G,EAAE,QAAQ,GAAE,qBAAoBA,EAAE,aAAY,oBAAmBA,EAAE,YAAW,0BAAyBA,KAAG,SAAO2H,IAAE3H,EAAE,6BAA2B,QAAM2H,MAAI,SAAO,SAAOA,EAAE,KAAK3H,CAAC,EAAE,mBAAkB;AAAE,QAAGA,EAAE,gBAAc4H,IAAE,GAAE;AAAC,UAAI0C,IAAEtK,EAAE,aAAY;AAAG,UAAGsK,KAAG,OAAOA,EAAE,WAAS,cAAYA,EAAE,QAAO,GAAG;AAAC,YAAIC,IAAED,EAAE,QAAO;AAAG,YAAGD,EAAE,sBAAoBE,IAAE3C,GAAE5H,EAAE,SAAS,SAAO,GAAE;AAAC,cAAIwK,IAAED,IAAEvK,EAAE,SAAS,IAAIA,EAAE,SAAS,SAAO,CAAC;AAAE,UAAAqK,EAAE,gCAA8BG;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAC,WAAOH;AAAA,EAAC,EAAC;AAAE,EAAAvK,IAAE,OAAO,OAAO+G,GAAE/G,GAAEyH,CAAC,GAAEzH,EAAE,OAAK,OAAO,OAAO,EAAC,iBAAgB,uBAAsB,wBAAuB,uBAAsB,2BAA0BH,EAAE,QAAO,GAAEG,EAAE,IAAI,GAAEE,EAAE,MAAIA,EAAE,OAAK,CAAA,GAAGA,EAAE,IAAI,UAAQ,IAAGA,EAAE,IAAI,OAAK,SAASyH,GAAEI,GAAE;AAAC,IAAAlI,EAAE,KAAK,GAAE8H,GAAEI,CAAC;AAAA,EAAC,GAAE7H,EAAE,IAAI,aAAW,SAASyH,GAAE;AAAC,IAAAzH,EAAE,IAAI,KAAK,MAAKyH,CAAC;AAAA,EAAC;AAAE,MAAID,IAAE,WAAU;AAAC,IAAAtH,EAAE,MAAM,gEAAgE;AAAA,EAAC;AAAE,EAAAF,EAAE,IAAI,UAAQ,WAAU;AAAC,WAAO,KAAKA,EAAE,IAAI,SAAS,EAAE,QAAQ,SAASyH,GAAE;AAAC,MAAAzH,EAAE,oBAAoByH,GAAEzH,EAAE,IAAI,UAAUyH,CAAC,GAAE,EAAE;AAAA,IAAC,CAAC,GAAE,OAAOzH,EAAE,IAAI,WAAUA,EAAE,IAAI,6BAA2B,SAAS,oBAAoB,oBAAmBA,EAAE,IAAI,0BAAyB,EAAE,GAAE,OAAOA,EAAE,IAAI,2BAA0BA,EAAE,IAAI,UAAQwH,GAAExH,EAAE,IAAI,cAAYwH,GAAExH,EAAE,IAAI,OAAKwH,GAAExH,EAAE,IAAI,WAASwH,GAAExH,EAAE,IAAI,YAAUwH,GAAExH,EAAE,IAAI,cAAYwH,GAAExH,EAAE,IAAI,eAAawH,GAAExH,EAAE,IAAI,aAAWwH,GAAExH,EAAE,IAAI,oBAAkBwH,GAAExH,EAAE,IAAI,yBAAuBwH,GAAExH,EAAE,IAAI,qBAAmBwH,GAAExH,EAAE,IAAI,UAAQ,IAAGL,EAAE,KAAK,GAAE,SAAS;AAAA,EAAC,GAAEK,EAAE,IAAI,cAAY,SAASyH,GAAE;AAAC,QAAII,IAAExB,GAAEW,GAAGS,CAAC,GAAE,CAAC,GAAEC,IAAEG,EAAE,CAAC,GAAEF,IAAEE,EAAE,CAAC,GAAED,IAAEC,EAAE,CAAC;AAAE,QAAGH;AAAG,UAAGE,MAAI,WAASA,MAAI,QAAQ,QAAOjI,EAAE,IAAI,MAAM,qBAAmBgI,IAAE,4BAA4B;AAAA,UAAO,QAAOhI,EAAE,IAAI,MAAM,oCAAkCgI,IAAE,mBAAmB;AAAE,IAAAD,EAAE,QAAM1H,EAAE,OAAM,OAAOA,EAAE,OAAM0H,EAAE,MAAIA,EAAE,OAAK,CAAA,GAAGA,EAAE,IAAI,YAAU,OAAO,OAAO,CAAA,GAAG1H,EAAE,IAAI,SAAS,GAAE,OAAOA,EAAE,IAAI,WAAU,OAAO,KAAK0H,EAAE,IAAI,SAAS,EAAE,QAAQ,SAASyC,GAAE;AAAC,MAAAnK,EAAE,oBAAoBmK,GAAEzC,EAAE,IAAI,UAAUyC,CAAC,GAAE,EAAE,GAAEzC,EAAE,iBAAiByC,GAAEzC,EAAE,IAAI,UAAUyC,CAAC,GAAE,EAAE;AAAA,IAAC,CAAC,GAAEzC,EAAE,IAAI,2BAAyB1H,EAAE,IAAI,0BAAyB,OAAOA,EAAE,IAAI,0BAAyB0H,EAAE,IAAI,cAAY1H,EAAE,IAAI,aAAY0H,EAAE,IAAI,UAAQ1H,EAAE,IAAI,SAAQ,OAAOA,EAAE,KAAIA,IAAE0H;AAAA,EAAC,GAAE1H,EAAE,IAAI,WAAS,SAASyH,GAAE;AAAC,IAAA9H,EAAE,SAAS,GAAE8H,CAAC;AAAA,EAAC,GAAEzH,EAAE,IAAI,YAAU,SAASyH,GAAE;AAAC,IAAA9H,EAAE,UAAU,GAAE8H,CAAC;AAAA,EAAC,GAAEzH,EAAE,IAAI,cAAY,WAAU;AAAC,IAAAL,EAAE,YAAY,CAAC;AAAA,EAAC,GAAEK,EAAE,IAAI,eAAa,WAAU;AAAC,IAAAL,EAAE,aAAa,CAAC;AAAA,EAAC,GAAEK,EAAE,IAAI,oBAAkB,SAASyH,GAAE;AAAC,IAAA9H,EAAE,kBAAkB,GAAE8H,CAAC;AAAA,EAAC,GAAEzH,EAAE,IAAI,yBAAuB,SAASyH,GAAE;AAAC,IAAA9H,EAAE,uBAAuB,GAAE8H,CAAC;AAAA,EAAC,GAAEzH,EAAE,IAAI,qBAAmB,SAASyH,GAAE;AAAC,IAAAA,MAAIA,IAAE3H,EAAE,kBAAiBH,EAAE,mBAAmB,GAAE8H,CAAC;AAAA,EAAC,GAAE9H,EAAE,KAAK,GAAEG,CAAC,GAAEH,EAAE,KAAK,GAAE,aAAa,GAAEK,EAAE,WAASL,EAAE,KAAK,GAAE,MAAM,GAAEK,EAAE,aAAW,KAAGL,EAAE,KAAK,GAAE,SAAS,IAAGK,EAAE,IAAI,YAAU,IAAG4R,GAAG,QAAQ,SAASnK,GAAE;AAAC,IAAAA,MAAI,WAAS,CAAC3H,EAAE,2BAAyBE,EAAE,IAAI,UAAUyH,CAAC,IAAE,WAAU;AAAC,UAAII,IAAE,CAAA;AAAG,UAAGJ,MAAI,SAAQ;AAAC,YAAG,CAACzH,EAAE,SAAOA,EAAE,MAAM,SAAO,EAAE;AAAO,QAAA6H,EAAE,oBAAkB7H,EAAE,MAAM,MAAK6H,EAAE,uBAAqBgK,GAAG7R,EAAE,MAAM,IAAI,KAAGA,EAAE,MAAM;AAAA,MAAO;AAAC,MAAAL,EAAE,KAAK,GAAE8H,GAAEI,CAAC;AAAA,IAAC,GAAE7H,EAAE,iBAAiByH,GAAEzH,EAAE,IAAI,UAAUyH,CAAC,GAAE,EAAE;AAAA,EAAE,CAAC,GAAEzH,EAAE,IAAI,UAAU,wBAAsB,WAAU;AAAC,IAAAL,EAAE,KAAK,GAAE,sBAAqB,EAAC,sBAAqB,OAAM,2BAA0B,KAAI,CAAC;AAAA,EAAC,GAAEK,EAAE,IAAI,UAAU,wBAAsB,WAAU;AAAC,QAAIyH,IAAEkK,GAAE,IAAG,eAAa;AAAW,IAAAhS,EAAE,KAAK,GAAE,sBAAqB,EAAC,sBAAqB8H,GAAE,2BAA0B,KAAI,CAAC;AAAA,EAAC,GAAEzH,EAAE,iBAAiB,yBAAwBA,EAAE,IAAI,UAAU,uBAAsB,EAAE,GAAEA,EAAE,iBAAiB,yBAAwBA,EAAE,IAAI,UAAU,uBAAsB,EAAE,GAAEA,EAAE,IAAI,2BAAyB,WAAU;AAAC,QAAIyH,IAAEkK,GAAE,GAAG9J,IAAE,SAAS;AAAkB,QAAGJ,MAAII,MAAI7H,KAAG6H,KAAG,QAAMA,EAAE,SAAS7H,CAAC,GAAG,CAAAL,EAAE,KAAK,GAAE,sBAAqB,EAAC,sBAAqB,cAAa,2BAA0B,KAAI,CAAC;AAAA,aAAU,CAAC8H,GAAE;AAAC,UAAIC,IAAE,SAAS,4BAA0B1H,GAAE2H,IAAED,IAAE,QAAM;AAAW,MAAA/H,EAAE,KAAK,GAAE,sBAAqB,EAAC,sBAAqBgI,GAAE,2BAA0B,KAAI,CAAC;AAAA,IAAC;AAAA,EAAC,GAAE,SAAS,iBAAiB,oBAAmB3H,EAAE,IAAI,0BAAyB,EAAE;AAAC;AAAC,SAAS+R,GAAGpS,GAAE,GAAEG,GAAEC,GAAE;AAAC,MAAIC,IAAED;AAAE,MAAGJ,KAAG,OAAOA,EAAE,CAAC,KAAG,WAAW,KAAG;AAAC,IAAAK,IAAEL,EAAE,CAAC,EAAE,MAAMA,GAAEG,CAAC;AAAA,EAAC,SAAO,GAAE;AAACgI,IAAAA,GAAE,KAAK,kBAAiB,CAAC;AAAA,EAAC;AAAC,SAAO9H;AAAC;AAAC,IAAIgS,KAAG5R,GAAEC,GAAC,CAAE,GAAE4R;AAAGD,GAAG,WAASA,GAAG,QAAQ,YAAUC,KAAG,oBAAI;AAAS,SAASC,GAAGvS,GAAE,GAAE;AAAC,MAAG,CAACA,KAAG,CAAC,KAAG,CAACqS,GAAG,WAAS,OAAOA,GAAG,QAAQ,oBAAkB,WAAW,QAAM;AAAG,MAAIlS;AAAE,SAAOmS,MAAIA,GAAG,IAAItS,CAAC,MAAIG,IAAEmS,GAAG,IAAItS,CAAC,IAAGG,MAAIA,IAAEkS,GAAG,QAAQ,iBAAiBrS,GAAE,IAAI,GAAEsS,MAAIA,GAAG,IAAItS,GAAEG,CAAC,IAAGA,EAAE,iBAAiB,CAAC;AAAC;AAAC,SAASqS,GAAGxS,GAAE;AAAC,SAAO,KAAK,MAAMA,IAAE,GAAG;AAAC;AAAC,IAAIyS,KAAG,EAAC,iBAAgB,yBAAwB,UAAS,mBAAkB,gBAAe,yBAAwB,KAAI,WAAU,mBAAkB,4BAA2B,SAAQ,kBAAiB,cAAa,sBAAqB,GAAEC,KAAG,SAASnR,GAAE;AAAC,SAAO,KAAK,SAAO,IAAG,KAAK,WAAS,EAAC,UAAS,CAAA,GAAG,eAAc,CAAA,GAAG,aAAY,GAAE,GAAE,KAAK,aAAW,CAAA,GAAG,KAAK,QAAQA,CAAC,GAAE,KAAK;AAAQ;AAAEmR,GAAG,UAAU,UAAQ,SAAS1S,GAAE;AAAC,MAAI;AAAE,OAAI,KAAK,UAAQA,GAAE,IAAE,KAAK,OAAO,QAAQ;AAAA,CAAI,GAAE,IAAE,IAAG,IAAE,KAAK,OAAO,QAAQ;AAAA,CAAI,EAAE,MAAK,YAAY,KAAK,OAAO,UAAU,GAAE,CAAC,CAAC,GAAE,KAAK,SAAO,KAAK,OAAO,UAAU,IAAE,CAAC;AAAC;AAAE0S,GAAG,UAAU,cAAY,SAAS1S,GAAE;AAAC,MAAI,IAAEA,EAAE,QAAQ,GAAG,GAAEG,IAAEwS,GAAG3S,GAAE,CAAC,GAAEI,IAAED,EAAE,CAAC,GAAEE,IAAEF,EAAE,WAAS,IAAEyS,GAAGzS,EAAE,CAAC,CAAC,IAAE;AAAO,MAAGC,EAAE,CAAC,MAAI,IAAI,MAAK,WAAW,MAAIA,GAAE,KAAK,SAAS,SAAS,KAAK,KAAK,UAAU,GAAE,KAAK,SAAS,kBAAgB,EAAE,cAAa,KAAK,gBAAc,KAAK,WAAW,WAAS,KAAK,SAAS,iBAAgB,KAAK,aAAW,CAAA;AAAA,MAAQ,SAAOA,GAAC;AAAA,IAAE,KAAKqS,GAAG,iBAAgB;AAAC,UAAG,CAAC,SAASpS,CAAC,KAAGA,IAAE,EAAE;AAAO,WAAK,SAAS,iBAAeA,GAAE,KAAK,YAAW;AAAG;AAAA,IAAK;AAAA,IAAC,KAAKoS,GAAG,UAAS;AAACI,MAAAA,GAAG,KAAK,UAAS1S,CAAC,GAAE,KAAK,SAAS,QAAQ,eAAa,KAAK,SAAS,qBAAmB,KAAK,SAAS,QAAQ,aAAY,KAAK,YAAW;AAAG;AAAA,IAAK;AAAA,IAAC,KAAKsS,GAAG,gBAAe;AAACI,MAAAA,GAAG,KAAK,UAAS1S,CAAC,GAAE,KAAK,YAAW;AAAG;AAAA,IAAK;AAAA,IAAC,KAAKsS,GAAG,KAAI;AAAC,MAAApS,MAAI,IAAE,KAAK,WAAW,WAAS,OAAIA,IAAE,MAAI,KAAK,WAAW,WAASA;AAAG;AAAA,IAAK;AAAA,IAAC,KAAKoS,GAAG,mBAAkB;AAAC,UAAI,IAAEpS,GAAEC,IAAE,IAAI,KAAK,CAAC;AAAE,WAAK,SAAS,mBAAiB,KAAK,SAAS,iBAAe,GAAE,KAAK,SAAS,iBAAeA,IAAG,KAAK,WAAW,iBAAe,GAAE,KAAK,WAAW,iBAAeA;AAAE;AAAA,IAAK;AAAA,IAAC,KAAKmS,GAAG,SAAQ;AAACI,MAAAA,GAAG,KAAK,UAAS1S,CAAC;AAAE;AAAA,IAAK;AAAA,IAAC,KAAKsS,GAAG,cAAa;AAAC,UAAIlS,IAAEuS,GAAG3S,EAAE,CAAC,CAAC,GAAEK,IAAE4J,GAAG7J,CAAC;AAAE,aAAO,OAAO,KAAK,SAAS,aAAYC,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC;AAAEkS,GAAG,UAAU,cAAY,WAAU;AAAC,MAAI1S,IAAE,KAAK,UAAS,IAAEA,EAAE,eAAcG,IAAEH,EAAE,gBAAeI,IAAEJ,EAAE;AAAmB,MAAG,GAAE;AAAC,QAAIK,IAAE,YAAW,IAAE,gBAAeC,IAAEH,KAAGA,IAAE,GAAEI,IAAEH,KAAGA,IAAE;AAAE,IAAAD,KAAG,CAAC,EAAE,eAAeE,CAAC,MAAI,EAAEA,CAAC,IAAEC,IAAGA,KAAG,EAAED,CAAC,IAAEC,MAAI,EAAED,CAAC,IAAEC,IAAGF,KAAG,CAAC,EAAE,eAAe,CAAC,MAAI,EAAE,CAAC,IAAEA,IAAE,IAAGA,KAAG,EAAE,CAAC,IAAEG,MAAI,EAAE,CAAC,IAAEA;AAAA,EAAE;AAAC;AAAE,IAAIsS,KAAG,SAAS7S,GAAE,GAAE;AAAC,MAAIG,IAAE4S,GAAG,EAAE,CAAC,EAAE,QAAQ,WAAU,EAAE,CAAC,GAAE3S;AAAE,EAAA4S,GAAG,EAAE,CAAC,CAAC,KAAG5S,IAAE,CAAA,GAAGA,IAAE,OAAO,OAAO6S,GAAG,EAAE,CAAC,CAAC,GAAE7S,CAAC,KAAGA,IAAEwS,GAAG,EAAE,CAAC,CAAC,GAAE5S,EAAEG,CAAC,IAAEC;AAAC,GAAE2S,KAAG,SAAS/S,GAAE;AAAC,SAAOA,EAAE,YAAW,EAAG,QAAQ,UAAS,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,EAAE,YAAW;AAAA,EAAE,CAAC;AAAC,GAAE4S,KAAG,SAAS5S,GAAE;AAAC,MAAGA,EAAE,YAAW,MAAK,SAAOA,EAAE,YAAW,MAAK,KAAK,QAAOA,EAAE,YAAW,MAAK;AAAM,MAAI,IAAEA,EAAE,QAAQ,GAAG,MAAI,KAAGA,IAAE,WAAWA,CAAC;AAAE,SAAO,MAAM,CAAC,IAAEA,IAAE;AAAC,GAAEkT,KAAG,SAASlT,GAAE;AAAC,MAAI,IAAE,CAAA,GAAGG,IAAEH,EAAE,MAAM,GAAG;AAAE,MAAGG,EAAE,SAAO,GAAE;AAAC,QAAIC,IAAE2S,GAAG5S,EAAE,CAAC,CAAC;AAAE,MAAEC,CAAC,IAAEwS,GAAGzS,EAAE,CAAC,CAAC;AAAA,EAAC;AAAC,SAAO;AAAC,GAAE8S,KAAG,SAASjT,GAAE;AAAC,WAAQ,IAAEA,EAAE,MAAM,GAAG,GAAEG,IAAE,CAAA,GAAGC,IAAE,GAAE,EAAE,SAAOA,GAAEA,KAAI;AAAC,QAAIC,IAAE,EAAED,CAAC,GAAE,IAAE8S,GAAG7S,CAAC;AAAE,IAAAF,IAAE,OAAO,OAAO,GAAEA,CAAC;AAAA,EAAC;AAAC,SAAOA;AAAC,GAAE6S,KAAG,SAAShT,GAAE;AAAC,SAAOA,EAAE,QAAQ,GAAG,IAAE;AAAE,GAAE2S,KAAG,SAAS3S,GAAE,GAAE;AAAC,SAAO,MAAI,KAAG,CAACA,CAAC,IAAE,CAACA,EAAE,UAAU,GAAE,CAAC,GAAEA,EAAE,UAAU,IAAE,CAAC,CAAC;AAAC,GAAE8S,KAAG,SAAS9S,GAAE;AAAC,MAAI,IAAE,CAAA;AAAG,MAAGA,GAAE;AAAC,QAAIG,IAAEH,EAAE,OAAO,GAAG,GAAEI,IAAEJ,EAAE,MAAM,GAAEG,CAAC,GAAEE,IAAEL,EAAE,MAAMG,IAAE,CAAC,GAAE,IAAE,CAACC,GAAEC,CAAC;AAAE,WAAO,EAAE,QAAQ,SAASC,GAAEC,GAAE;AAAC,eAAQC,IAAEF,EAAE,QAAQ,UAAS,EAAE,EAAE,MAAM,GAAG,GAAE2G,IAAE,GAAEA,IAAEzG,EAAE,QAAOyG,IAAI,CAAAzG,EAAEyG,CAAC,MAAI,cAAY,EAAE,SAAS,IAAEzG,EAAE,IAAEyG,CAAC,IAAGzG,EAAEyG,CAAC,MAAI,YAAU,EAAE,QAAMzG,EAAE,IAAEyG,CAAC;AAAA,IAAE,CAAC,GAAE,EAAC,MAAK,EAAC;AAAA,EAAC;AAAC,GAAEkM,KAAGT,IAAOU,KAAG,EAAC,UAAShB,IAAG,eAAc1I,IAAE,kBAAiB6I,IAAG,aAAYC,IAAG,QAAO,OAAO,QAAO,uBAAsBvI,IAAG,uBAAsBC,IAAG,0BAAyBZ,IAAG,iBAAgBD,IAAE,gBAAe8J,IAAG,iBAAgBhM,IAAG,cAAaH,IAAG,KAAID,GAAE,KAAI,kBAAiBM,GAAE,GAAEgM,KAAGD,IAAOE,KAAG,EAAC,cAAa,eAAc,WAAU,YAAW,cAAa,eAAc,MAAK,QAAO,OAAM,SAAQ,SAAQ,WAAU,aAAY,cAAa,SAAQ,WAAU,QAAO,UAAS,gBAAe,iBAAgB,cAAa,eAAc,OAAM,SAAQ,OAAM,SAAQ,kBAAiB,mBAAkB,oBAAmB,qBAAoB,sBAAqB,sBAAqB,YAAW,aAAY,aAAY,cAAa,gBAAe,gBAAe,SAAQ,UAAS,YAAW,aAAY,UAAS,WAAU,mBAAkB,mBAAkB,cAAa,cAAa,mBAAkB,mBAAkB,UAAS,WAAU,cAAa,cAAa,UAAS,WAAU,mBAAkB,oBAAmB,gBAAe,iBAAgB,mBAAkB,mBAAkB,WAAU,MAAK,SAAQ,UAAS,GAAEC,KAAGD,IAAOE,KAAG,aAAYC,KAAG,WAAUC,KAAG,OAAMC,KAAE,CAAA,GAAGC,KAAG,SAASrS,GAAE;AAAC,MAAIpB,IAAE;AAAU,SAAOoB,KAAG,WAASqS,GAAG,eAAerS,CAAC,IAAEoF,GAAG,QAAQ,WAAW,WAAU;AAAC,IAAAxG,IAAE,MAAM,UAAU,OAAO,KAAKA,GAAE,CAAC,GAAEyT,GAAGrS,CAAC,EAAE,MAAM,MAAKpB,CAAC;AAAA,EAAC,GAAE,CAAC,IAAEgI,GAAE,KAAK,MAAI5G,IAAE,sBAAsB,IAAE,OAAOA,KAAG,aAAWoF,GAAG,QAAQ,WAAW,WAAU;AAAC,IAAApF,EAAEqS,EAAE;AAAA,EAAC,GAAE,CAAC,IAAEzL,GAAE,KAAK,MAAI5G,IAAE,eAAe;AAAC,GAAEsS,KAAG,EAAC,QAAO9M,GAAE,IAAG,GAAG,MAAKyM,IAAG,SAAQC,IAAG,aAAYC,IAAG,gBAAe,IAAG,SAAQ,SAASnS,GAAEpB,GAAE;AAAC,SAAOgS,GAAGyB,IAAGrS,GAAEpB,CAAC;AAAC,GAAE,gBAAe,SAASoB,GAAE;AAAC,MAAIpB,IAAEuG,GAAEW,GAAG9F,CAAC,GAAE,CAAC,GAAE,IAAEpB,EAAE,CAAC;AAAE,OAAG,EAAE,OAAK,OAAO,EAAE,IAAI,WAAS,aAAW,EAAE,IAAI,QAAO,IAAGgI,GAAE,MAAM,kCAAgC5G,IAAE,+CAA+C;AAAC,GAAE,UAAS,SAASA,GAAEpB,GAAE;AAAC,MAAI,IAAEiH,GAAE7F,CAAC;AAAEoS,EAAAA,GAAE,CAAC,IAAEA,GAAE,CAAC,EAAE,SAASxT,CAAC,IAAEgI,GAAE,MAAM,oBAAkB,IAAE,6BAA6B;AAAC,GAAE,WAAU,SAAS5G,GAAEpB,GAAE;AAAC,MAAI,IAAEiH,GAAE7F,CAAC;AAAEoS,EAAAA,GAAE,CAAC,IAAEA,GAAE,CAAC,EAAE,UAAUxT,CAAC,IAAEgI,GAAE,MAAM,oBAAkB,IAAE,6BAA6B;AAAC,GAAE,aAAY,SAAS5G,GAAE;AAAC,MAAIpB,IAAEiH,GAAE7F,CAAC;AAAEoS,EAAAA,GAAExT,CAAC,IAAEwT,GAAExT,CAAC,EAAE,YAAW,IAAGgI,GAAE,MAAM,oBAAkBhI,IAAE,6BAA6B;AAAC,GAAE,cAAa,SAASoB,GAAE;AAAC,MAAIpB,IAAEiH,GAAE7F,CAAC;AAAEoS,EAAAA,GAAExT,CAAC,IAAEwT,GAAExT,CAAC,EAAE,aAAY,IAAGgI,GAAE,MAAM,oBAAkBhI,IAAE,6BAA6B;AAAC,GAAE,MAAK,SAASoB,GAAEpB,GAAE;AAACkI,EAAAA,GAAE,KAAIlI,KAAGA,EAAE,qBAAmBgI,GAAE,KAAK,yEAAyE;AAAE,MAAI,IAAEf,GAAE7F,CAAC;AAAEoS,EAAAA,GAAE,CAAC,IAAE,IAAI7B,GAAG8B,IAAG,GAAEzT,CAAC;AAAC,GAAE,MAAK,SAASoB,GAAEpB,GAAE,GAAE;AAAC,MAAI,IAAEiH,GAAE7F,CAAC;AAAEoS,EAAAA,GAAE,CAAC,KAAGA,GAAE,CAAC,EAAE,KAAKxT,GAAE,CAAC,GAAEA,MAAI,aAAW,OAAOwT,GAAE,CAAC,KAAGxL,GAAE,MAAM,oBAAkB,IAAE,6BAA6B;AAAC,GAAE,YAAW,SAAS5G,GAAEpB,GAAE;AAAC,MAAI,IAAEiH,GAAE7F,CAAC;AAAEoS,EAAAA,GAAE,CAAC,IAAEA,GAAE,CAAC,EAAE,KAAK,MAAKxT,CAAC,IAAEgI,GAAE,MAAM,oBAAkB,IAAE,6BAA6B;AAAC,GAAE,mBAAkB,SAAS5G,GAAEpB,GAAE;AAAC,MAAI,IAAEiH,GAAE7F,CAAC;AAAEoS,EAAAA,GAAE,CAAC,IAAEA,GAAE,CAAC,EAAE,iBAAexT,IAAEgI,GAAE,MAAM,oBAAkB,IAAE,6BAA6B;AAAC,GAAE,wBAAuB,SAAS5G,GAAEpB,GAAE;AAAC,MAAI,IAAEiH,GAAE7F,CAAC;AAAEoS,EAAAA,GAAE,CAAC,IAAEA,GAAE,CAAC,EAAE,sBAAoBxT,IAAEgI,GAAE,MAAM,oBAAkB,IAAE,6BAA6B;AAAC,GAAE,oBAAmB,SAAS5G,GAAEpB,GAAE;AAAC,MAAI,IAAEiH,GAAE7F,CAAC;AAAEoS,EAAAA,GAAE,CAAC,IAAEA,GAAE,CAAC,EAAE,kBAAgBxT,IAAEgI,GAAE,MAAM,oBAAkB,IAAE,6BAA6B;AAAC,GAAE,iBAAgBE,IAAG,KAAIF,IAAE,OAAMkL,IAAG,QAAOE,IAAG,eAAc,IAAG,kBAAiB,GAAE;AAAE,OAAO,OAAOK,IAAGC,EAAE;AAAE,OAAOlN,GAAG,UAAS,OAAa,OAAOA,GAAG,QAAQ,oBAAkB,cAAYA,GAAG,QAAQ,iBAAiB,YAAW,SAAS3G,GAAE;AAAC,EAAAA,EAAE,cAAY4T,GAAG,mBAAiB;AAAG,GAAE,EAAE;AAAE,IAAIE,KAAGF;AAC992F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACDiD,IAAIxI,IAAE+G,IAAoDlK,KAAE,EAAC,OAAM,SAAQ,WAAU,aAAY,YAAW,cAAa,KAAI,MAAK,GAAE+C,IAAE,EAAC,cAAa,GAAE,iBAAgB,SAAQ,uBAAsB,KAAI,mBAAkB,SAAQ,qBAAoB,MAAK,mBAAkB,QAAO,mBAAkB,QAAO,6BAA4B,MAAK,uBAAsB,SAAQ,yBAAwB,SAAQ,uBAAsB,SAAQ,2BAA0B,SAAQ,4BAA2B,SAAQ,4BAA2B,SAAQ,iBAAgB,KAAI,kCAAiC,SAAQ,mCAAkC,SAAQ,iCAAgC,SAAQ,qCAAoC,SAAQ,qBAAoB,SAAQ,6BAA4B,SAAQ,yBAAwB,QAAO,GAAEvD,KAAE,CAAAlG,MAAGA,MAAI0G,GAAE,QAAM,aAAW1G,GAAEkJ,KAAE,MAAMA,WAAU,MAAK;AAAA,EAAC,YAAYtK,GAAEH,IAAEyK,GAAE,kBAAiBzI,GAAE1B,GAAE;AAAC,QAAIC;AAAE,UAAMJ,CAAC,GAAE,KAAK,OAAK,cAAa,KAAK,OAAKH,GAAE,KAAK,UAAQM,GAAE,KAAK,QAAM0B,MAAUhC,KAAGyK,GAAE,qBAAmBzK,KAAGyK,GAAE,sBAAoB,KAAK,YAAU,KAAK,WAASlK,IAAEkK,GAAE,gBAAgB,KAAK,IAAI,MAAI,OAAKlK,IAAE;AAAA,EAAG;AAAC;AAAEkK,GAAE,oBAAkB,GAAEA,GAAE,oBAAkB,GAAEA,GAAE,mBAAiB,GAAEA,GAAE,8BAA4B,GAAEA,GAAE,sBAAoB,GAAEA,GAAE,mBAAiB,KAAIA,GAAE,kBAAgB,EAAC,GAAE,kCAAiC,GAAE,sDAAqD,GAAE,yHAAwH,GAAE,8GAA6G,GAAE,8DAA6D;AAAK,IAACD,IAAEC,IAAMlG,KAAG,CAAAhD,MAAGA,KAAG,MAAKmF,KAAE,CAACnF,GAAEpB,MAAIoE,GAAGpE,CAAC,IAAE,KAAGoB,KAAKpB,GAAEkJ,KAAE,EAAC,KAAI,OAAM,OAAM,QAAO,GAAE0B,IAAE,EAAC,WAAU,aAAY,MAAK,QAAO,SAAQ,UAAS,GAAErK,KAAE,EAAC,KAAI,OAAM,QAAO,SAAQ,GAAEgJ,KAAE,EAAC,QAAO,UAAS,OAAM,SAAQ,MAAK,OAAM,GAAEwF,KAAG,OAAO,OAAOxF,EAAC,GAAE3B,KAAE,EAAC,MAAK,iCAAgC,KAAI,YAAW,GAAEL,KAAE,EAAC,KAAIK,GAAE,KAAI;AAAuB,CAAC,GAAG,OAAO,OAAOA,EAAC,CAAa;AAAC,IAAC1G,KAAG,EAAC,UAAS,QAAO,WAAU,SAAQ,WAAU,SAAQ,WAAU,QAAO,GAAEmO,KAAG,EAAC,gBAAe,QAAO,gBAAe,QAAO,gBAAe,QAAO,iBAAgB,SAAQ,iBAAgB,SAAQ,iBAAgB,QAAO,GAAE1N,KAAG,EAAC,YAAW,OAAM,GAAiFsQ,KAAG,MAAKlC,KAAE,EAAC,MAAKkC,GAAE,GAAMrL,KAAE,CAACxF,GAAEpB,GAAEH,GAAEgC,GAAE1B,IAAEiB,MAAI;AAAC,EAAAjB,EAAE,iBAAiBH,GAAEH,GAAEgC,CAAC,GAAET,EAAE,iBAAiB,YAAW,MAAI;AAAC,IAAAjB,EAAE,oBAAoBH,GAAEH,CAAC;AAAA,EAAC,GAAE,EAAC,MAAK,GAAE,CAAC;AAAC;AAAE,SAAS2P,GAAGpO,GAAEpB,GAAEH,GAAE;AAAC,EAAAG,KAAGH,IAAEG,MAAIH,IAAEG;AAAG,WAAQ6B,IAAE,GAAEA,IAAET,EAAE,QAAOS,IAAI,KAAGT,EAAE,MAAMS,CAAC,KAAGhC,KAAGuB,EAAE,IAAIS,CAAC,KAAGhC,EAAE,QAAM;AAAG,SAAM;AAAE;AAAC,IAAIC,KAAE,CAAAsB,MAAG;AAAC,MAAIpB,IAAEoB,EAAE,QAAQ,GAAG;AAAE,MAAGpB,IAAE,EAAE,QAAM,CAACoB,CAAC;AAAE,MAAIvB,IAAEuB,EAAE,MAAM,GAAEpB,CAAC,GAAE6B,IAAET,EAAE,MAAMpB,CAAC;AAAE,SAAM,CAACH,GAAEgC,CAAC;AAAC,GAAEwC,KAAE,CAAAjD,MAAG;AAAC,MAAG,EAAC,MAAKpB,EAAC,IAAEoB;AAAE,MAAGpB,GAAE;AAAC,QAAIH,IAAEG,EAAE,YAAW;AAAG,WAAOuG,GAAE1G,GAAE0H,EAAC,IAAEA,GAAE1H,CAAC,IAAEG;AAAA,EAAC;AAAC,SAAOyE,GAAGrD,CAAC;AAAC,GAAEyF,KAAG,CAAAzF,MAAGA,MAAI,QAAMwJ,EAAE,YAAUA,EAAE,MAAKhK,KAAG,CAAAQ,MAAGA,MAAI,UAAQ,OAAO,oBAAkBA,MAAI,QAAM,OAAO,MAAI,GAAEqD,KAAG,CAAArD,MAAG;AAAC,MAAG,EAAC,KAAIpB,EAAC,IAAEoB;AAAE,MAAG,CAACpB,EAAE,QAAM;AAAG,MAAIH,IAAE;AAAG,MAAG;AAAC,IAAAA,IAAE,IAAI,IAAIG,CAAC,EAAE;AAAA,EAAQ,QAAM;AAAC,YAAQ,MAAM,aAAa;AAAA,EAAC;AAAC,MAAI6B,IAAEhC,EAAE,YAAY,GAAG;AAAE,MAAGgC,IAAE,EAAE,QAAOuQ,GAAGhR,CAAC,IAAEwG,GAAE,OAAK;AAAG,MAAIxH,IAAEP,EAAE,MAAMgC,IAAE,CAAC,EAAE,YAAW;AAAG,SAAO0E,GAAEnG,GAAEwH,EAAC,IAAEA,GAAExH,CAAC,IAAE;AAAE,GAAEqS,KAAG,WAAUL,KAAG,CAAC,EAAC,KAAIhR,GAAE,cAAapB,IAAEyS,GAAE,MAAI;AAAC,MAAI5S;AAAE,MAAG;AAAC,IAAAA,IAAE,IAAI,IAAI,GAAGuB,CAAC,EAAE;AAAA,EAAC,QAAM;AAAC,WAAM;AAAA,EAAE;AAAC,MAAIS,IAAEhC,EAAE,aAAW,UAASM,IAAEN,EAAE,aAAW,UAAUG,CAAC,GAAG,YAAW,GAAGI,IAAEP,EAAE,SAAS,MAAM,GAAG,GAAEK,IAAEE,EAAE,WAAS,GAAEH,IAAE,EAAEG,KAAG,QAAMA,EAAE,CAAC,EAAE,SAAS,GAAG;AAAG,SAAOyB,KAAG1B,KAAGD,KAAGD;AAAC,GAAEkJ,KAAG,CAAA/H,MAAG;AAAC,MAAIpB,KAAGoB,KAAU,IAAI,MAAM,GAAG,EAAE,CAAC;AAAE,MAAGpB,EAAE,KAAG;AAAC,QAAIH,IAAEG,EAAE,QAAQ,MAAK,GAAG,EAAE,QAAQ,MAAK,GAAG,GAAE6B,IAAE,mBAAmB,KAAKhC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,SAASM,GAAE;AAAC,aAAM,OAAK,OAAKA,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE;AAAA,IAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AAAE,WAAO,KAAK,MAAM0B,CAAC;AAAA,EAAC,QAAM;AAAC;AAAA,EAAM;AAAC,GAAEwE,KAAG,CAAC,EAAC,KAAIjF,EAAC,GAAEpB,IAAE,KAAK,IAAG,MAAK,CAACoB,KAAGA,IAAE,MAAIpB,GAAEkS,KAAG,CAAC,EAAC,KAAI9Q,EAAC,GAAEpB,MAAIoB,MAAIpB,GAAEiK,KAAG,CAAC,EAAC,KAAI7I,EAAC,GAAEpB,MAAI,CAACoB,GAAEoF,KAAG,CAAC,EAAC,KAAIpF,EAAC,GAAEpB,MAAIoB,MAAIpB,GAAEmK,KAAG;AAAK,SAAStC,EAAEzG,GAAEpB,IAAE,IAAG;AAAC,MAAIG,GAAEC;AAAE,MAAI,IAAEJ,MAAII,KAAGD,IAAE4P,OAAI,OAAK,SAAO5P,EAAEiB,CAAC,MAAI,OAAKhB,IAAEgB,GAAE,IAAEpB,IAAE+P,GAAE,OAAK5F;AAAG,SAAO,IAAIe,GAAE,GAAE,CAAC;AAAC;AAAC,IAAIA,KAAE,MAAK;AAAA,EAAC,YAAYlL,GAAEH,KAAG,CAAAgC,OAAIA,IAAEkO,OAAI,OAAKlO,IAAEsI,IAAE,GAAI;AAAC,SAAK,UAAQnK,GAAE,KAAK,SAAOH;AAAA,EAAC;AAAA,EAAC,OAAOG,GAAE;AAAC,WAAO,KAAK,QAAQ,QAAQ,cAAa,CAACH,GAAEgC,MAAI;AAAC,UAAI1B;AAAE,cAAOA,IAAEH,EAAE6B,CAAC,MAAI,OAAK1B,IAAE;AAAA,IAAE,CAAC;AAAA,EAAC;AAAA,EAAC,WAAU;AAAC,WAAO,KAAK;AAAA,EAAO;AAAC,GAAMuS,KAAG,OAAO,OAAOxJ,EAAC,GAAExI,KAAG,CAAAU,MAAG,OAAOA,KAAG,aAAW,OAAOA,KAAG,YAAUsR,GAAG,SAAStR,CAAC,GAAEgI,KAAG,CAAChI,GAAEpB,GAAEH,MAAI;AAAC,MAAG,EAAC,UAASgC,EAAC,IAAET,GAAEjB,IAAE,IAAGC,IAAE,IAAGF,IAAEQ,GAAGmB,CAAC,IAAEA,IAAE,CAAC,CAACA,GAAE5B,IAAE,MAAI;AAAC,IAAAE,KAAGyG,GAAE5G,GAAE,WAAU,MAAI;AAAC,MAAAG,IAAE;AAAA,IAAE,GAAE,EAAC,MAAK,GAAE,CAAC;AAAA,EAAC;AAAE,MAAGF,EAAC,GAAG2G,GAAE5G,GAAE,aAAY,MAAI;AAAC,IAAAG,IAAE,IAAGF,EAAC,GAAGwT,GAAGzT,GAAEE,CAAC;AAAA,EAAC,GAAE,EAAC,MAAK,GAAE,CAAC,GAAE0G,GAAE5G,GAAE,aAAY,MAAI;AAAC,IAAAH,MAAIuB,EAAE,cAAYA,EAAE,eAAawJ,EAAE,UAAQxK,IAAEgB,EAAE,eAAawJ,EAAE,OAAKxK,IAAE,CAAC,OAAO,SAASJ,EAAE,QAAQ,IAAGyT,GAAGzT,GAAEE,CAAC;AAAA,EAAC,GAAE,EAAC,MAAK,GAAE,CAAC,GAAEL,KAAGA,EAAE,KAAKoL,EAAE,OAAO,cAAa,CAAC5K,GAAEqH,MAAI;AAAC,QAAIC;AAAE,IAAAvG,EAAE,cAAYA,EAAE,eAAawJ,EAAE,UAAQxK,IAAEgB,EAAE,eAAawJ,EAAE,OAAKxK,KAAGuH,IAAED,EAAE,QAAQ,SAAO,OAAKC,IAAE;AAAA,EAAE,CAAC,GAAE,CAACzH,GAAE;AAAC,QAAIG,IAAE,MAAI;AAAC,OAACD,KAAG,OAAO,SAASgB,EAAE,SAAS,MAAIvB,KAAG,QAAMA,EAAE,mBAAiBG,EAAE,cAAYH,EAAE,mBAAiB,OAAO,SAASG,EAAE,SAAS,IAAI,CAAC,CAAC,MAAIA,EAAE,cAAYA,EAAE,SAAS,IAAI,CAAC;AAAA,IAAG;AAAE,IAAAH,KAAG+G,GAAE5G,GAAE,QAAO,MAAI;AAAC,MAAAA,EAAE,YAAU,aAAWH,EAAE,KAAKoL,EAAE,OAAO,eAAc5K,CAAC,IAAEA,EAAC;AAAA,IAAE,GAAE,EAAC,MAAK,GAAE,CAAC;AAAA,EAAC;AAAC,SAAO,CAAAA,MAAG;AAAC,IAAAF,MAAID,IAAEQ,GAAGL,CAAC,IAAEA,IAAE,CAAC,CAACA,GAAEoT,GAAGzT,GAAEE,CAAC;AAAA,EAAE;AAAC,GAAEuT,KAAG,CAACrS,GAAEpB,MAAI;AAAC,MAAG,CAACA,EAAE;AAAO,MAAIH,IAAEuB,EAAE,OAAMS,IAAE,MAAIT,EAAE,QAAMvB;AAAE,UAAOG,GAAC;AAAA,IAAE,KAAKkJ,GAAE;AAAI,MAAA9H,EAAE,KAAI,EAAG,MAAM,MAAI;AAAC,QAAAA,EAAE,QAAM,IAAGA,EAAE,KAAI,EAAG,MAAMS,CAAC;AAAA,MAAC,CAAC;AAAE;AAAA,IAAM,KAAKqH,GAAE;AAAM,MAAA9H,EAAE,QAAM,IAAGA,EAAE,KAAI,EAAG,MAAMS,CAAC;AAAE;AAAA,IAAM;AAAQ,MAAAT,EAAE,KAAI,EAAG,MAAM,MAAI;AAAA,MAAC,CAAC;AAAE;AAAA,EAAK;AAAC,GAAMI,KAAG,CAAC,EAAC,SAAQJ,GAAE,KAAIpB,EAAC,GAAEH,GAAEgC,MAAI;AAAC,MAAI1B,IAAE,CAAAwH,MAAG;AAAC,IAAAA,KAAG,QAAM,CAAC,IAAG,QAAO,YAAW,MAAM,EAAE,SAASA,CAAC,IAAE9H,EAAE,aAAa,WAAU8H,CAAC,IAAE9H,EAAE,gBAAgB,SAAS;AAAA,EAAC;AAAE,MAAG,CAACgC,EAAE,QAAO1B,EAAEiB,CAAC,GAAEjB;AAAE,MAAIC,IAAE,IAAGF,IAAE,IAAGD,IAAE4B,EAAE,OAAO,iBAAgB0I,IAAE1I,EAAE,OAAO,eAAcxB,IAAE,CAAAsH,MAAG;AAAC,IAAAxH,EAAEwH,CAAC;AAAE,QAAIb,IAAEa,KAAU9H,EAAE;AAAQ,IAAAK,KAAG4G,MAAI,WAASA,MAAI,cAAYjF,EAAE,OAAO,kBAAgB,GAAEA,EAAE,OAAO,gBAAc,MAAIA,EAAE,OAAO,kBAAgB5B,GAAE4B,EAAE,OAAO,gBAAc0I,IAAG7C,EAAC;AAAA,EAAG,GAAEA,IAAE,MAAI;AAAC,KAACtH,KAAGJ,MAAII,IAAE,IAAGyB,EAAE,WAAW7B,CAAC;AAAA,EAAE;AAAE,SAAO4G,GAAE/G,GAAE,QAAO,MAAI;AAAC,IAAAK,IAAE,IAAG2B,EAAE,OAAO,kBAAgB5B,GAAE4B,EAAE,OAAO,gBAAc0I,GAAE7C,EAAC;AAAA,EAAE,GAAE,EAAC,MAAK,GAAE,CAAC,GAAErH,EAAEe,CAAC,GAAEf;AAAC;AAAE,SAAS2E,GAAG5D,GAAEpB,GAAE;AAAC,MAAIuK;AAAE,MAAG,EAAE,iBAAgBnJ,GAAG;AAAO,MAAIvB,IAAE,oBAAI;AAAQ,EAAAG,EAAE,GAAGiL,EAAE,OAAO,iBAAgB,SAAS5K,GAAEqH,GAAE;AAAC,IAAAzH,EAAC;AAAG,QAAI0H,IAAEvG,EAAE,cAAc,MAAM;AAAE,IAAAuG,EAAE,WAAS;AAAG,aAAO,CAACb,GAAEyB,CAAC,KAAIb,EAAE,OAAO,QAAO,GAAG;AAAC,UAAIK,IAAEJ,EAAE,aAAaY,EAAE,IAAI,CAAC,GAAEA,EAAE,OAAMA,EAAE,QAAOA,EAAE,YAAWA,EAAE,OAAO;AAAE,MAAA1I,EAAE,IAAI0I,GAAE,GAAGzB,CAAC,EAAE,GAAEiB,EAAE,KAAG,GAAGjB,CAAC;AAAA,IAAE;AAAA,EAAC,CAAC,GAAE9G,EAAE,GAAGiL,EAAE,OAAO,sBAAqB,SAAS5K,GAAEqH,GAAE;AAAC,IAAAxH,EAAC;AAAG,aAAQyH,KAAKD,EAAE,aAAY;AAAC,UAAIZ,IAAEa,EAAE,UAAQ,SAAO,eAAcY,IAAEnH,EAAE,cAAc0F,GAAEa,EAAE,MAAKA,EAAE,IAAI;AAAE,MAAAY,EAAE,KAAG,GAAGZ,EAAE,EAAE,IAAGA,EAAE,YAAUY,EAAE,UAAQ;AAAA,IAAG;AAAA,EAAC,CAAC;AAAE,MAAI1G,IAAE,MAAI;AAAC,QAAI;AAAE,QAAIxB,IAAE,GAAG,IAAE,CAAC,GAAGe,EAAE,WAAW,EAAE,KAAK,CAAA0F,MAAGA,EAAE,OAAO,MAAI,OAAK,SAAO,EAAE,KAAIY,IAAE1H,EAAE,YAAY,IAAI,CAAA8G,MAAGA,EAAE,EAAE;AAAE,IAAAzG,KAAGL,EAAE,cAAY0H,EAAE,SAASrH,CAAC,MAAIL,EAAE,aAAWK;AAAA,EAAE;AAAE,EAAAe,EAAE,YAAY,iBAAiB,UAASS,CAAC,GAAE7B,EAAE,GAAGiL,EAAE,OAAO,gBAAe,SAAS5K,GAAEqH,GAAE;AAAC,QAAIa;AAAE,QAAIZ,IAAEvG,EAAE,aAAamH,IAAEnH,EAAE,YAAY,kBAAgB,OAAKmH,IAAE,CAAC;AAAE,QAAG,CAACZ,EAAE;AAAO,QAAIb,IAAEY,EAAE,OAAO,IAAI,CAAAK,MAAGlI,EAAE,IAAIkI,CAAC,CAAC;AAAE,aAAQA,KAAK3G,EAAE,gBAAgB,CAAA2G,EAAE,MAAI,CAACjB,EAAE,SAASiB,EAAE,EAAE,KAAGJ,EAAE,gBAAgBI,CAAC;AAAA,EAAC,CAAC;AAAE,MAAI5H,IAAE,CAAAE,MAAG;AAAC,QAAIqH,IAAErH,EAAE,OAAO;AAAc,IAAAqH,KAAG1H,EAAE,cAAYA,EAAE,YAAU0H;AAAA,EAAE;AAAE,GAAC6C,IAAEnJ,EAAE,oBAAkB,QAAMmJ,EAAE,iBAAiB,UAASpK,CAAC;AAAE,MAAI,IAAE,MAAI;AAAC,aAAQE,KAAKe,EAAE,YAAY,CAAAA,EAAE,iBAAiBf,CAAC;AAAA,EAAC,GAAEH,IAAE,MAAI;AAAC,aAAQG,KAAKe,EAAE,YAAY,CAAAA,EAAE,iBAAiBf,CAAC;AAAA,EAAC,GAAEJ,IAAE,MAAI;AAAC,MAAC,GAAGC,EAAC;AAAA,EAAE;AAAE,EAAAF,EAAE,KAAKiL,EAAE,OAAO,YAAW,MAAI;AAAC,QAAI5K,GAAEqH;AAAE,IAAAzH,EAAC,IAAII,IAAEe,EAAE,gBAAc,QAAMf,EAAE,oBAAoB,UAASwB,CAAC,IAAG6F,IAAEtG,EAAE,oBAAkB,QAAMsG,EAAE,oBAAoB,UAASvH,CAAC;AAAA,EAAC,CAAC;AAAC;AAAC,IAAI4K,KAAG,CAAA3J,MAAG,UAASA,IAAEA,EAAE,OAAKA,EAAE;AAAU,SAASuK,GAAGvK,GAAEpB,GAAE;AAAC,EAAAA,EAAE,GAAGiL,EAAE,OAAO,8BAA6B,CAAC9K,GAAE,EAAC,QAAOC,EAAC,MAAI;AAAC,IAAAA,EAAE,QAAQ,CAAAF,MAAG;AAAC,UAAIwH,GAAEC;AAAE,UAAI1H,KAAGyH,IAAExH,EAAE,kBAAgB,OAAKwH,IAAExH,EAAE,gBAAeqK,IAAEvK,EAAE,eAAe,UAAU,CAAC,EAAC,MAAK8G,GAAE,MAAKyB,GAAE,MAAKR,EAAC,MAAIjB,MAAI7G,KAAG,OAAK,SAAOA,EAAE,SAAOsI,MAAIrI,EAAE,SAAO6H,EAAE,YAAW,MAAK7H,EAAE,IAAI,GAAEG,MAAIsH,IAAEzH,EAAE,QAAM,OAAKyH,IAAEzH,EAAE,WAAS,YAAU,GAAGA,EAAE,IAAI,GAAGqK,CAAC;AAAG3I,MAAAA,GAAGR,GAAElB,EAAE,MAAKA,EAAE,OAAMD,KAAG,OAAK,SAAOA,EAAE,MAAKI,GAAEH,EAAE,OAAO;AAAA,IAAC,CAAC;AAAA,EAAC,CAAC;AAAE,MAAIL,IAAE,MAAI;AAAC,QAAG,CAACG,EAAE,eAAe,OAAO;AAAO,QAAIG,IAAE,MAAM,KAAKiB,EAAE,UAAU,EAAE,KAAK,CAAAnB,MAAGA,EAAE,MAAIA,EAAE,SAAO,aAAW,CAAC,aAAY,UAAU,EAAE,SAASA,EAAE,IAAI,CAAC;AAAE,QAAG,CAACE,EAAE;AAAO,QAAIC,IAAEJ,EAAE,eAAeA,EAAE,aAAa,GAAEE,IAAEE,IAAEA,EAAE,UAAQ,YAAU,GAAGJ,EAAE,eAAeA,EAAE,aAAa,EAAE,KAAK,YAAW,CAAE,GAAGA,EAAE,aAAa,KAAG;AAAO,QAAGA,EAAE,gBAAc,MAAIG,KAAG,OAAK,SAAOA,EAAE,QAAMD,GAAE;AAAC,UAAID,IAAED,EAAE,eAAe,UAAU,CAAC,EAAC,MAAKuK,GAAE,MAAKlK,GAAE,MAAKqH,GAAE,SAAQC,EAAC,MAAIxH,EAAE,OAAK,aAAWwH,KAAG4C,KAAGpK,EAAE,YAAUE,MAAIF,EAAE,SAAOuH,EAAE,YAAW,MAAKvH,EAAE,IAAI;AAAE,MAAAH,EAAE,gBAAcC;AAAA,IAAC;AAAC,KAACE,KAAG,OAAK,SAAOA,EAAE,QAAMD,KAAGC,EAAE,QAAM,MAAM,KAAKA,EAAE,IAAI,EAAE,QAAQ,CAAAF,MAAG;AAAC,MAAAE,EAAE,OAAOF,CAAC;AAAA,IAAC,CAAC;AAAA,EAAC;AAAE,EAAAmB,EAAE,WAAW,iBAAiB,UAASvB,CAAC,GAAEG,EAAE,GAAGiL,EAAE,OAAO,aAAY,CAAC9K,GAAE,EAAC,OAAMC,GAAE,MAAKF,EAAC,MAAI;AAAC,QAAID,IAAEmB,EAAE,WAAW,aAAahB,CAAC;AAAE,QAAG,CAACH,EAAE;AAAO,QAAIsK,IAAEtK,EAAE,SAAO;AAAW,IAAAsK,MAAItK,EAAE,OAAK,WAAUC,EAAE,QAAQ,CAAAG,MAAG;AAAC,UAAIqH;AAAE,OAACA,IAAEzH,EAAE,SAAO,QAAMyH,EAAE,WAAWrH,EAAE,EAAE,KAAGJ,EAAE,OAAOI,CAAC;AAAA,IAAC,CAAC,GAAEkK,MAAItK,EAAE,OAAK;AAAA,EAAW,CAAC,GAAED,EAAE,KAAKiL,EAAE,OAAO,YAAW,MAAI;AAAC,IAAA7J,EAAE,WAAW,oBAAoB,UAASvB,CAAC,GAAEuB,EAAE,iBAAiB,6BAA6B,EAAE,QAAQ,CAAAhB,MAAG;AAAC,MAAAA,EAAE,OAAM;AAAA,IAAE,CAAC;AAAA,EAAC,CAAC;AAAE,MAAIyB,IAAE,MAAI;AAAC,UAAM,KAAKT,EAAE,UAAU,EAAE,QAAQ,CAAAjB,MAAG;AAAC,UAAIC,GAAEF;AAAE,UAAG,CAAC,CAAC,aAAY,SAAS,EAAE,SAASC,EAAE,IAAI,MAAIA,EAAE,UAAQ,gBAAcA,EAAE,SAAO,aAAY;AAAC,YAAG,GAAGC,IAAED,EAAE,SAAO,QAAMC,EAAE,SAAQ;AAAC,cAAIH,IAAE;AAAQ,UAAAE,EAAE,SAAOF,KAAG,UAAUE,EAAE,IAAI,OAAMA,EAAE,UAAQF,KAAG,WAAWE,EAAE,KAAK;AAAM,cAAIoK,IAAEnJ,EAAE,cAAcnB,CAAC,GAAEI,KAAGH,IAAEqK,KAAG,OAAK,SAAOA,EAAE,aAAa,KAAK,MAAI,OAAKrK,IAAE;AAAG,UAAAqK,KAAG,QAAMA,EAAE,gBAAgB,KAAK,GAAE,WAAW,MAAI;AAAC,YAAAA,KAAG,QAAMA,EAAE,aAAa,OAAMlK,CAAC;AAAA,UAAC,GAAE,CAAC;AAAA,QAAC;AAAC,QAAAF,EAAE,SAAO,aAAWA,EAAE,OAAK;AAAA,MAAS;AAAA,IAAC,CAAC;AAAA,EAAC;AAAE,EAAAH,EAAE,KAAKiL,EAAE,OAAO,iBAAgBpJ,CAAC,GAAE7B,EAAE,KAAKiL,EAAE,OAAO,gBAAepJ,CAAC;AAAC;AAAC,SAASD,GAAGR,GAAEpB,GAAEH,GAAEgC,GAAE1B,GAAEC,GAAE;AAAC,MAAIF,IAAE,SAAS,cAAc,OAAO;AAAE,SAAOA,EAAE,OAAKF,GAAEE,EAAE,QAAML,GAAEgC,MAAI3B,EAAE,UAAQ2B,IAAG1B,MAAID,EAAE,KAAGC,IAAGC,MAAIF,EAAE,UAAQ,KAAIA,EAAE,MAAM,OAAK,CAAC,aAAY,UAAU,EAAE,SAASF,CAAC,IAAE,aAAW,UAASE,EAAE,aAAa,wBAAuB,EAAE,GAAEkB,EAAE,OAAOlB,CAAC,GAAEA,EAAE;AAAK;AAAC,SAASmS,GAAGjR,GAAEpB,GAAE;AAAC,MAAIH,IAAE,MAAM,UAAU,KAAK,KAAKuB,EAAE,iBAAiB,OAAO,GAAE,CAAAS,MAAGA,EAAE,UAAQ7B,CAAC;AAAE,EAAAH,KAAG,QAAMA,EAAE,OAAM;AAAE;AAAC,SAASc,GAAES,GAAEpB,GAAEH,GAAE;AAAC,MAAIgC;AAAE,UAAOA,IAAE,MAAM,KAAKT,EAAE,iBAAiB,OAAO,CAAC,EAAE,KAAK,CAAAjB,MAAGA,EAAE,MAAM,UAAQH,KAAGG,EAAE,MAAM,SAAON,CAAC,MAAI,OAAK,SAAOgC,EAAE;AAAK;AAAC,eAAeyE,GAAGlF,GAAEpB,GAAEH,GAAEgC,GAAE;AAAC,MAAI1B,IAAEQ,GAAES,GAAEvB,GAAEgC,CAAC;AAAE,SAAO1B,MAAIA,IAAEyB,GAAGR,GAAES,GAAEhC,CAAC,GAAEM,EAAE,OAAK,UAAS,MAAM,IAAI,QAAQ,CAAAC,MAAG,WAAW,MAAIA,EAAE,MAAM,GAAE,CAAC,CAAC,IAAGD,EAAE,SAAO,aAAWA,EAAE,OAAK,WAAU,CAAC,GAAGH,CAAC,EAAE,KAAK,CAACI,GAAEF,MAAI6K,GAAG7K,CAAC,IAAE6K,GAAG3K,CAAC,CAAC,EAAE,QAAQ,CAAAA,MAAG;AAAC,QAAImK,GAAElK;AAAE,QAAIH,IAAEE,EAAE,OAAMH,IAAE8K,GAAG3K,CAAC;AAAE,QAAG,aAAYA,KAAGA,EAAE,WAAS,KAAK,CAAAD,KAAG,QAAMA,EAAE,OAAO,IAAI,OAAOF,GAAEG,EAAE,SAAQyB,MAAI,aAAW3B,IAAE,KAAK,UAAUA,KAAU,IAAI,CAAC,CAAC;AAAA,SAAM;AAAC,UAAIwH,IAAE,MAAM,UAAU,UAAU,KAAKvH,KAAG,OAAK,SAAOA,EAAE,MAAK,CAAA4H,MAAGA,EAAE,aAAW9H,CAAC,GAAE0H,KAAG4C,IAAEpK,KAAG,OAAK,SAAOA,EAAE,SAAO,OAAK,SAAOoK,EAAE7C,CAAC,GAAEZ,IAAEa,IAAEA,EAAE,YAAU,OAAO,SAASvG,EAAE,QAAQ,IAAEA,EAAE,WAAS,OAAO,kBAAiBmH,KAAGlI,IAAEF,KAAG,OAAK,SAAOA,EAAE,SAAO,OAAK,SAAOE,EAAEqH,IAAE,CAAC;AAAE,MAAAa,MAAIA,EAAE,UAAQtI,IAAGE,KAAG,QAAMA,EAAE,OAAO,IAAI,OAAOF,GAAE6G,GAAEjF,MAAI,aAAW3B,IAAE,KAAK,UAAUA,KAAU,IAAI,CAAC,CAAC;AAAA,IAAC;AAAA,EAAC,CAAC,GAAEkB,EAAE,WAAW,cAAc,IAAI,MAAM,UAAS,EAAC,SAAQ,IAAG,UAAS,GAAE,CAAC,CAAC,GAAEjB;AAAC;AAAC,IAAI+G,KAAG,aAAY0K,KAAG,OAAO,OAAO,EAAC,OAAM1K,GAAE,CAAC;AAAE,eAAee,GAAG7G,GAAEpB,GAAEH,IAAE+R,IAAG;AAAC,SAAOtL,GAAGlF,GAAEpB,GAAEH,EAAE,OAAM,UAAU;AAAC;AAAC,IAAI0F,KAAE,CAAAnE,OAAI,EAAC,MAAKA,EAAE,WAAU,OAAM,KAAK,MAAMA,EAAE,IAAI,EAAC;AAAG,SAAS8E,GAAG9E,GAAEpB,IAAE,EAAC,OAAMkH,GAAE,GAAE;AAAC,MAAIrH,IAAEc,GAAES,GAAEpB,EAAE,OAAM,UAAU;AAAE,SAAOH,KAAG,QAAMA,EAAE,OAAK,MAAM,KAAKA,EAAE,MAAK,CAAAgC,MAAG0D,GAAE1D,CAAC,CAAC,IAAE,CAAA;AAAE;AAAC,SAASyH,GAAGlI,GAAEpB,IAAE,EAAC,OAAMkH,GAAE,GAAE;AAAC,MAAI9G,GAAE;AAAE,MAAI,IAAEO,GAAES,GAAEpB,EAAE,OAAM,UAAU;AAAE,MAAG,GAAGI,IAAE,KAAG,OAAK,SAAO,EAAE,eAAa,QAAMA,EAAE,QAAQ;AAAO,MAAG,EAAE,WAAW,WAAS,EAAE,QAAOmF,GAAE,EAAE,WAAW,CAAC,CAAC;AAAE,MAAG,EAAC,aAAY,EAAC,IAAEnE,GAAEjB,IAAE,MAAM,UAAU,KAAK,MAAM,IAAE,EAAE,eAAa,OAAK,IAAE,CAAA,GAAG,CAAC,EAAC,WAAUF,GAAE,SAAQsK,EAAC,MAAItK,KAAG,KAAGsK,IAAE,CAAC;AAAE,SAAOhF,GAAEpF,KAAG,EAAE,WAAW,CAAC,CAAC;AAAC;AAAC,eAAegL,GAAG/J,GAAEpB,IAAE4R,IAAG;AAAC,SAAO,IAAI,QAAQ,CAAA/R,MAAG;AAAC+G,IAAAA,GAAExF,GAAE,aAAY,YAAS;AAAC,UAAIS,IAAE,MAAMoG,GAAG7G,GAAE,CAAA,GAAGpB,CAAC;AAAE4G,MAAAA,GAAExF,GAAE,aAAY,MAAI;AAAC,YAAIjB,IAAEmJ,GAAGlI,CAAC;AAAE,YAAGjB,GAAE;AAAC,cAAIC,IAAE,IAAI,YAAY,kBAAiB,EAAC,UAAS,IAAG,SAAQ,IAAG,QAAOD,EAAC,CAAC;AAAE,UAAAiB,EAAE,cAAchB,CAAC;AAAA,QAAC;AAAA,MAAC,GAAE,CAAA,GAAGyB,CAAC,GAAEhC,EAAEgC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAC,CAAC;AAAC;AAAC,IAAI4N,KAAG,YAAWoC,KAAG,OAAO,OAAO,EAAC,OAAMpC,GAAE,CAAC,GAAExI,KAAE,CAAA7F,OAAI,EAAC,WAAUA,EAAE,WAAU,SAAQA,EAAE,SAAQ,OAAMA,EAAE,KAAI;AAAG,eAAesH,GAAGtH,GAAEpB,GAAEH,IAAEgS,IAAG;AAAC,SAAOvL,GAAGlF,GAAEpB,GAAEH,EAAE,OAAM,UAAU;AAAC;AAAC,SAASD,GAAGwB,GAAEpB,IAAE,EAAC,OAAMyP,GAAE,GAAE;AAAC,MAAI5N;AAAE,MAAIhC,IAAEc,GAAES,GAAEpB,EAAE,OAAM,UAAU;AAAE,UAAO6B,IAAEhC,KAAG,OAAK,SAAOA,EAAE,SAAO,QAAMgC,EAAE,SAAO,MAAM,KAAKhC,EAAE,MAAK,CAAAM,MAAG8G,GAAE9G,CAAC,CAAC,IAAE,CAAA;AAAE;AAAC,SAASwI,GAAGvH,GAAEpB,IAAE,EAAC,OAAMyP,GAAE,GAAE;AAAC,MAAIrP,GAAE;AAAE,MAAI,IAAEO,GAAES,GAAEpB,EAAE,OAAM,UAAU;AAAE,MAAG,GAAGI,IAAE,KAAG,OAAK,SAAO,EAAE,eAAa,QAAMA,EAAE,QAAQ;AAAO,MAAG,EAAE,WAAW,WAAS,EAAE,QAAO6G,GAAE,EAAE,WAAW,CAAC,CAAC;AAAE,MAAG,EAAC,aAAY,EAAC,IAAE7F,GAAEjB,IAAE,MAAM,UAAU,KAAK,MAAM,IAAE,EAAE,eAAa,OAAK,IAAE,CAAA,GAAG,CAAC,EAAC,WAAUF,GAAE,SAAQsK,EAAC,MAAItK,KAAG,KAAGsK,IAAE,CAAC;AAAE,SAAOtD,GAAE9G,KAAG,EAAE,WAAW,CAAC,CAAC;AAAC;AAAC,eAAeU,GAAGO,GAAEpB,IAAE6R,IAAG;AAAC,SAAO,IAAI,QAAQ,CAAAhS,MAAG;AAAC+G,IAAAA,GAAExF,GAAE,aAAY,YAAS;AAAC,UAAIS,IAAE,MAAM6G,GAAGtH,GAAE,CAAA,GAAGpB,CAAC;AAAE4G,MAAAA,GAAExF,GAAE,aAAY,MAAI;AAAC,YAAIjB,IAAEwI,GAAGvH,CAAC;AAAE,YAAGjB,GAAE;AAAC,cAAIC,IAAE,IAAI,YAAY,iBAAgB,EAAC,UAAS,IAAG,SAAQ,IAAG,QAAOD,EAAC,CAAC;AAAE,UAAAiB,EAAE,cAAchB,CAAC;AAAA,QAAC;AAAA,MAAC,GAAE,CAAA,GAAGyB,CAAC,GAAEhC,EAAEgC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAC,CAAC;AAAC;AAAC,SAAS6E,GAAGtF,GAAEpB,GAAE;AAAC,MAAGA,GAAE;AAAC,QAAIH,IAAEG,EAAE;AAAY,QAAGH,KAAG,KAAK,QAAO,IAAI,KAAKA,EAAE,QAAO,IAAGuB,EAAE,cAAY,GAAG;AAAA,EAAC;AAAC,SAAO,OAAOA,EAAE,gBAAc,aAAWA,EAAE,aAAY,IAAG,oBAAI,KAAK,GAAG;AAAC;AAAC,SAASoG,GAAGpG,GAAEpB,GAAE;AAAC,MAAGA,KAAGA,EAAE,YAAY,QAAOA,EAAE;AAAY,MAAG,OAAOoB,EAAE,gBAAc,YAAW;AAAC,QAAIvB,IAAEuB,EAAE,aAAY;AAAG,WAAO,IAAI,KAAKvB,EAAE,QAAO,IAAGuB,EAAE,cAAY,GAAG;AAAA,EAAC;AAAC,SAAO,oBAAI,KAAK,GAAG;AAAC;AAAC,IAAI8G,KAAG,EAAC,OAAM,KAAI,WAAU,KAAI,YAAW,KAAI,KAAI,IAAG,GAAE/B,KAAG,CAAA/E,MAAG;AAAC,MAAGA,MAAI0G,GAAE,MAAM,QAAOI,GAAG;AAAM,MAAG9G,MAAI0G,GAAE,IAAI,QAAOI,GAAG;AAAG,GAAEO,KAAG,CAACrH,GAAEpB,MAAI;AAAC,MAAIG,GAAEC;AAAE,MAAI,IAAEkH,GAAElG,CAAC,GAAE,IAAE,GAAG,CAAC;AAAQ,UAAOjB,IAAEH,EAAE,WAAS,QAAMG,EAAE,CAAC,KAAGC,IAAEJ,EAAE,WAAS,OAAK,SAAOI,EAAE,CAAC,IAAEmG,GAAE,GAAEvG,CAAC,IAAEA,EAAE,CAAC,IAAE;AAAM,GAAE8K,KAAE,CAAC1J,GAAEpB,GAAEH,GAAEgC,GAAE1B,IAAE,IAAGC,IAAE,EAAE,CAAAF,OAAIA,IAAE,WAAW,cAAY,OAAK,SAAOA,EAAE,QAAM,MAAM;AAAC,MAAIuH,GAAEkD;AAAE,MAAGvK,GAAE;AAAC,QAAIoK,IAAE3C,EAAE,qCAAoC1H,CAAC,GAAEgI,GAASsC,IAAEJ,EAAE,mBAAkBtD,IAAE,IAAIsD,EAAEG,GAAEC,GAAE,IAAGtC,CAAC;AAAE,WAAOpB,EAAE,gBAAc/G,GAAE+G,EAAE,UAAQ8D,EAAE,iBAAgB9D,EAAE,OAAK3F,GAAE2F;AAAA,EAAC;AAAC,MAAI9G,IAAE,YAAWmB,IAAEA,EAAE,SAAOA,EAAE,MAAKmJ,IAAE,KAAK,IAAG,GAAGlK,IAAEgK,EAAE;AAAkB,MAAGpK,MAAI,IAAI;AAAO,MAAIyH,IAAEJ,GAAEtH,CAAC,GAAE2H,IAAEc,GAAGzI,GAAEH,CAAC,GAAEiH,IAAEX,GAAGnG,CAAC,GAAE,CAACuI,CAAC,IAAEzI,IAAG2H,IAAE5H,EAAE,eAAa,OAAK4H,IAAE,EAAE;AAAE,MAAG,CAACxH,KAAG,CAACsI,EAAE;AAAO,MAAIR,IAAEoB,GAAGxB,CAAC;AAAE,MAAGA,KAAG,CAACI,GAAE;AAAC,QAAIyC,IAAE3C,EAAE,iEAAgE1H,CAAC,EAAE,OAAO,EAAC,iBAAgBuH,EAAC,CAAC,GAAES,IAAEN,EAAE,+BAA8B1H,CAAC,EAAE,OAAO,EAAC,OAAMwH,EAAC,CAAC,GAAE8C,IAAE,IAAIJ,EAAEG,GAAEnK,GAAE,IAAG8H,CAAC;AAAE,WAAOsC,EAAE,gBAAczK,GAAEyK,EAAE,UAAQI,EAAE,yBAAwBJ,EAAE,OAAKrJ,GAAEqJ;AAAA,EAAC;AAAC,MAAGxK,KAAG,KAAI;AAAC,QAAIuK,IAAE,IAAIH,EAAE,IAAGhK,GAAEwB,KAAU,EAAE;AAAE,WAAO2I,EAAE,gBAAcxK,GAAEwK,EAAE,UAAQK,EAAE,uBAAsBL;AAAA,EAAC;AAAC,MAAGvK,MAAI,IAAI,KAAG8H,GAAE;AAAC,QAAG1B,GAAG0B,GAAEwC,CAAC,GAAE;AAAC,UAAIC,IAAE,EAAC,WAAU,UAAS,WAAU,SAAQ,GAAErC,IAAEN,EAAE,4DAAgE1H,CAAC,EAAE,OAAO,EAAC,iBAAgBuH,EAAC,CAAC,GAAE+C,IAAE5C,EAAE,2DAA0D1H,CAAC,EAAE,OAAO,EAAC,aAAY,IAAI,KAAK,eAAe,MAAKqK,CAAC,EAAE,QAAQG,IAAE5C,EAAE,QAAM,OAAK4C,IAAE,IAAE,GAAG,GAAE,aAAY,IAAI,KAAK,eAAe,MAAKH,CAAC,EAAE,OAAOD,CAAC,EAAC,CAAC,GAAExD,IAAE,IAAIsD,EAAElC,GAAE9H,GAAE,IAAGoK,CAAC;AAAE,aAAO1D,EAAE,gBAAc/G,GAAE+G,EAAE,UAAQ8D,EAAE,uBAAsB9D,EAAE,OAAK3F,GAAE2F;AAAA,IAAC;AAAC,QAAGmL,GAAGnK,GAAEQ,CAAC,GAAE;AAAC,UAAIiC,IAAE3C,EAAE,0FAA8F1H,CAAC,EAAE,OAAO,EAAC,iBAAgBuH,EAAC,CAAC,GAAES,IAAEN,EAAE,qHAAoH1H,CAAC,EAAE,OAAO,EAAC,iBAAgBuH,GAAE,YAAWa,GAAE,iBAAgBR,EAAE,IAAG,CAAC,GAAE0C,IAAE,IAAIJ,EAAEG,GAAEnK,GAAE,IAAG8H,CAAC;AAAE,aAAOsC,EAAE,gBAAczK,GAAEyK,EAAE,UAAQI,EAAE,4BAA2BJ,EAAE,OAAKrJ,GAAEqJ;AAAA,IAAC;AAAC,QAAGR,GAAGlC,CAAG,GAAE;AAAC,UAAIyC,IAAE3C,EAAE,wEAAuE1H,CAAC,EAAE,OAAO,EAAC,iBAAgBuH,EAAC,CAAC,GAAES,IAAEN,EAAE,oFAAmF1H,CAAC,EAAE,OAAO,EAAC,iBAAgBuH,GAAE,aAAYZ,EAAC,CAAC,GAAE2D,IAAE,IAAIJ,EAAEG,GAAEnK,GAAE,IAAG8H,CAAC;AAAE,aAAOsC,EAAE,gBAAczK,GAAEyK,EAAE,UAAQI,EAAE,2BAA0BJ,EAAE,OAAKrJ,GAAEqJ;AAAA,IAAC;AAAC,QAAGjE,GAAGuB,GAAEjB,CAAC,GAAE;AAAC,UAAI0D,IAAE3C,EAAE,wEAAuE1H,CAAC,EAAE,OAAO,EAAC,iBAAgBuH,EAAC,CAAC,GAAES,IAAEN,EAAE,qGAAoG1H,CAAC,EAAE,OAAO,EAAC,iBAAgBuH,GAAE,aAAYZ,GAAE,KAAIiB,EAAE,IAAG,CAAC,GAAE0C,IAAE,IAAIJ,EAAEG,GAAEnK,GAAE,IAAG8H,CAAC;AAAE,aAAOsC,EAAE,gBAAczK,GAAEyK,EAAE,UAAQI,EAAE,4BAA2BJ,EAAE,OAAKrJ,GAAEqJ;AAAA,IAAC;AAAA,EAAC,OAAK;AAAC,QAAID,IAAE3C,EAAE,2IAA0I1H,CAAC,EAAE,OAAO,EAAC,iBAAgBuH,GAAE,UAAS1H,EAAC,CAAC,GAAEmI,IAAEN,EAAE,uCAAsC1H,CAAC,EAAE,OAAO,EAAC,YAAWoI,EAAC,CAAC,GAAEkC,IAAE,IAAIJ,EAAEG,GAAEnK,GAAEwB,KAAU,IAAGsG,CAAC;AAAE,WAAOsC,EAAE,gBAAczK,GAAEyK,EAAE,UAAQI,EAAE,uBAAsBJ,EAAE,OAAKrJ,GAAEqJ;AAAA,EAAC;AAAC,MAAGxK,MAAI,KAAI;AAAC,QAAIuK,IAAE3C,EAAE,4GAA2G1H,CAAC,GAAEgI,IAAEN,EAAE,uCAAsC1H,CAAC,EAAE,OAAO,EAAC,YAAWoI,EAAC,CAAC,GAAEkC,IAAE,IAAIJ,EAAEG,GAAEnK,GAAEwB,KAAU,IAAGsG,CAAC;AAAE,WAAOsC,EAAE,gBAAczK,GAAEyK,EAAE,UAAQI,EAAE,mBAAkBJ,EAAE,aAAW5K,EAAE,eAAa+K,EAAE,OAAK,SAAO/K,EAAE,eAAa+K,EAAE,YAAU,cAAY,WAAUH,EAAE,OAAKrJ,GAAEqJ;AAAA,EAAC;AAAC,MAAGxK,MAAI,KAAI;AAAC,QAAIuK,IAAE3C,EAAE,6GAA4G1H,CAAC,GAAEgI,IAAEN,EAAE,uCAAsC1H,CAAC,EAAE,OAAO,EAAC,YAAWoI,EAAC,CAAC,GAAEkC,IAAE,IAAIJ,EAAEG,GAAEnK,GAAEwB,KAAU,IAAGsG,CAAC;AAAE,WAAOsC,EAAE,gBAAczK,GAAEyK,EAAE,UAAQI,EAAE,mBAAkBJ,EAAE,OAAKrJ,GAAEqJ;AAAA,EAAC;AAAC,MAAGxK,MAAI,KAAI;AAAC,QAAIuK,IAAE3C,EAAE,0FAA0F,GAAEM,IAAEN,EAAE,uCAAsC1H,CAAC,EAAE,OAAO,EAAC,YAAWoI,EAAC,CAAC,GAAEkC,IAAE,IAAIJ,EAAEG,GAAEnK,GAAEwB,KAAU,IAAGsG,CAAC;AAAE,WAAOsC,EAAE,gBAAczK,GAAEyK,EAAE,UAAQI,EAAE,qBAAoBJ,EAAE,OAAKrJ,GAAEqJ;AAAA,EAAC;AAAC,MAAI+I,IAAE,IAAInJ,EAAE,IAAGhK,GAAEwB,KAAU,EAAE;AAAE,SAAO2R,EAAE,gBAAcxT,GAAEwT,EAAE,UAAQ3I,EAAE,uBAAsB2I,EAAE,OAAKpS,GAAEoS;AAAC,GAAMxM,KAAGiE,EAAE,cAAc,oBAAmB9D,KAAG,EAAC,QAAO,QAAO,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,QAAO;AAAE,SAASkF,GAAGjL,GAAE;AAAC,MAAIpB,IAAEoB,EAAE,YAAW,EAAG,KAAI;AAAG,SAAO+F,GAAGnH,CAAC;AAAC;AAAC,IAAIoI,KAAE,MAAMA,WAAUpB,GAAE;AAAA,EAAC,YAAYhH,GAAE;AAAC,UAAMA,CAAC;AAAA,EAAC;AAAA,EAAC,OAAO,qBAAqBA,GAAEH,GAAE;AAAC,IAAAA,IAAEuI,GAAE,kBAAkB,IAAIpI,GAAEH,CAAC,IAAEuI,GAAE,kBAAkB,OAAOpI,CAAC;AAAA,EAAC;AAAA,EAAC,uBAAsB;AAAC,QAAIH;AAAE,QAAIG,IAAE,KAAK;AAAI,YAAOH,IAAEuI,GAAE,kBAAkB,IAAIpI,CAAC,MAAI,OAAKH,IAAE;AAAA,EAAM;AAAA,EAAC,IAAI,SAAQ;AAAC,QAAIG;AAAE,YAAOA,IAAE,KAAK,IAAI,WAAS,OAAKA,IAAE,CAAA;AAAA,EAAE;AAAA,EAAC,eAAeA,GAAE;AAAC,WAAO,KAAK,OAAO,OAAO,CAACH,GAAEgC,MAAI,KAAK,eAAehC,CAAC,KAAGgC,KAAG7B,CAAC;AAAA,EAAC;AAAA,EAAC,kBAAkBA,GAAE;AAAC,QAAIH,IAAE,KAAK,eAAeG,CAAC,GAAE6B,IAAE,KAAK,qBAAoB;AAAG,QAAG,CAACA,EAAE,QAAO,MAAM,YAAY7B,CAAC;AAAE,QAAIG,IAAEkM,GAAGxK,CAAC;AAAE,QAAG,CAAC1B,EAAE,QAAO,MAAM,YAAYH,CAAC;AAAE,QAAII,IAAEP,EAAE,OAAO,CAAA0K,MAAGA,EAAE,QAAMA,EAAE,UAAQpK,CAAC,GAAED,IAAEE,EAAE,UAAU,CAAAmK,MAAGA,EAAE,QAAMA,EAAE,WAASpK,CAAC;AAAE,QAAGD,MAAI,IAAG;AAAC,UAAIqK,IAAEnK,EAAEF,CAAC;AAAE,aAAOL,EAAE,UAAU,CAAAQ,MAAGA,MAAIkK,CAAC;AAAA,IAAC;AAAC,QAAGnK,EAAE,WAAS,EAAE,QAAO;AAAE,QAAIH,IAAEG,EAAEA,EAAE,SAAO,CAAC;AAAE,WAAOP,EAAE,UAAU,CAAA0K,MAAGA,MAAItK,CAAC;AAAA,EAAC;AAAA,EAAC,YAAYD,GAAE;AAAC,QAAG,KAAK,qBAAoB,MAAK,OAAO,QAAO,KAAK,kBAAkBA,CAAC;AAAE,QAAIH,IAAE,MAAM,YAAYG,CAAC,GAAE6B,IAAE,KAAK,eAAe7B,CAAC;AAAE,QAAG,CAAC6B,EAAEhC,CAAC,EAAE,QAAOA;AAAE,QAAIM,IAAE,KAAK,IAAI0B,EAAEhC,CAAC,EAAE,OAAMgC,EAAEhC,CAAC,EAAE,MAAM,GAAEO,IAAEgI,GAAE;AAAiB,WAAOjI,KAAGC,IAAEP,IAAEmH,GAAG,uBAAuBnF,GAAEzB,KAAG,KAAG,IAAGA,CAAC;AAAA,EAAC;AAAC;AAAEgI,GAAE,mBAAiB,KAAIA,GAAE,oBAAkB,oBAAI;AAAQ,IAAIoB,KAAGpB,IAAEwD,KAAEpC,IAAOpC,KAAG,qBAAoB0B,KAAG,iCAAgCxD,KAAG,CAAC,EAAC,SAAQlE,GAAE,mBAAkBpB,GAAE,eAAcH,GAAE,sBAAqBgC,GAAE,WAAU1B,EAAC,MAAI;AAAC,MAAG,CAAC,OAAO,mBAAiB,EAAE,qBAAoBiB,IAAG;AAAC,YAAQ,MAAM,mDAAmD;AAAE,QAAI0F,IAAEe,EAAE,wHAAwH,GAAEU,IAAE,IAAI8B,EAAEvD,GAAEuD,EAAE,qBAAoB,EAAE;AAAE,WAAO9B,EAAE,gBAAcT,GAAE,KAAIS,EAAE,UAAQsC,EAAE,qBAAoBhJ,EAAET,GAAEmH,CAAC,GAAE,MAAI;AAAA,IAAC;AAAA,EAAC;AAAC,MAAInI,IAAEgB,GAAElB,IAAEF,EAAC,GAAGC,IAAE,MAAKsK,IAAE,CAAAzD,MAAG;AAAC,KAAC,YAAS;AAAC,UAAG;AAAC,QAAA1G,EAAE,cAAYC,EAAC;AAAG,YAAI0H,IAAE,MAAM7H;AAAE,YAAG4G,EAAE,aAAW,QAAMiB,KAAG,KAAK;AAAO,YAAIyL,IAAE5K,GAAG9B,EAAE,UAASiB,CAAC;AAAE,QAAAL,EAAE8L,CAAC;AAAA,MAAC,SAAOzL,GAAE;AAAC,gBAAQ,MAAM,uDAAsDA,CAAC,GAAElG,EAAEzB,GAAE2H,CAAC;AAAA,MAAC;AAAA,IAAC,GAAC;AAAA,EAAG,GAAE1H,IAAE,MAAI;AAAC,QAAG;AAAC,UAAIyG,IAAE,IAAI,gBAAgBM,EAAE;AAAE,MAAAhH,EAAE,mBAAmB0G,CAAC,GAAE3G,EAAC;AAAA,IAAE,QAAM;AAAC,UAAI2G,IAAE,0HAAyHyB,IAAE,IAAI8B,EAAEvD,GAAEuD,EAAE,qBAAoB,EAAE;AAAE,YAAM9B,EAAE,gBAAcT,GAAE,KAAIS,EAAE,UAAQsC,EAAE,kCAAiCtC;AAAA,IAAC;AAAA,EAAC,GAAEb,IAAE,CAAAZ,MAAG;AAAC,QAAIyB,IAAEnI,EAAE,WAAW,cAAc0I,IAAGhC,CAAC,GAAEiB,IAAE,OAAM4C,MAAG;AAAC,UAAG;AAAC,YAAIH,IAAEG,EAAE,SAAQxC,IAAE,MAAMtI,EAAE2K,CAAC;AAAE,QAAAjC,EAAE,OAAOJ,CAAC;AAAA,MAAC,SAAOqC,GAAE;AAAC,gBAAQ,MAAM,qCAAoCA,CAAC,GAAE3I,EAAET,GAAEoJ,CAAC;AAAA,MAAC;AAAA,IAAC,GAAEgJ,IAAE,CAAA7I,MAAG;AAAC,UAAIH,IAAEG,EAAE,OAAO;AAAM,UAAG,CAACH,EAAE;AAAO,cAAQ,MAAM,gDAAgDA,EAAE,UAAU,UAAUA,EAAE,IAAI,EAAE;AAAE,UAAIrC,IAAEN,EAAE,gJAAgJ,GAAE4C,IAAE,IAAIJ,EAAElC,GAAEkC,EAAE,qBAAoB,EAAE;AAAE,MAAAI,EAAE,gBAAc3C,GAAE,KAAI2C,EAAE,UAAQI,EAAE,qBAAoBhJ,EAAET,GAAEqJ,CAAC;AAAA,IAAC,GAAEhD,IAAE,MAAI;AAAC,MAAAc,EAAE,oBAAoB,oBAAmBR,CAAC,GAAEQ,EAAE,oBAAoB,kBAAiBiL,CAAC,GAAEpS,EAAE,oBAAoB,YAAWqG,CAAC,GAAE,2CAA0CrG,KAAGA,EAAE,oBAAoB,gDAA+CqG,CAAC,GAAExH,IAAE;AAAK,UAAG;AAAC,QAAAsI,EAAE;MAAO,QAAM;AAAA,MAAC;AAAA,IAAC;AAAE,+CAA0CnH,KAAGA,EAAE,iBAAiB,gDAA+CqG,GAAE,EAAC,MAAK,GAAE,CAAC,GAAEc,EAAE,iBAAiB,oBAAmBR,CAAC,GAAEQ,EAAE,iBAAiB,kBAAiBiL,CAAC,GAAEpS,EAAE,iBAAiB,YAAWqG,CAAC,GAAExH,IAAEwH;AAAA,EAAC,GAAEE,IAAE,MAAI;AAAC,IAAAvG,EAAE,oBAAoB,iBAAgBmJ,CAAC,GAAEnJ,EAAE,oBAAoB,YAAWuG,CAAC,GAAE1H,KAAG,QAAMA,EAAC;AAAG,QAAG;AAAC,MAAAG,EAAE,mBAAmB,IAAI;AAAA,IAAC,QAAM;AAAA,IAAC;AAAA,EAAC;AAAE,SAAOgB,EAAE,iBAAiB,iBAAgBmJ,CAAC,GAAEnJ,EAAE,iBAAiB,YAAWuG,GAAE,EAAC,MAAK,GAAE,CAAC,GAAEA;AAAC,GAAEiB,KAAG,CAACxH,GAAEpB,MAAI;AAAC,MAAIH,IAAEuG,GAAGgG,GAAGhL,CAAC,CAAC,GAAES,IAAE,IAAI,WAAWT,CAAC,GAAEjB,IAAE,IAAI,WAAWN,CAAC,GAAEO,IAAE,IAAI,WAAWJ,CAAC,GAAEE,IAAE2B,EAAE,aAAW,IAAEzB,EAAE,aAAW,IAAED,EAAE,YAAWF,IAAE,IAAI,WAAWC,CAAC,GAAEqK,IAAE,GAAElK,IAAE,CAAAsH,MAAG;AAAC,IAAA1H,EAAE,IAAI0H,GAAE4C,CAAC,GAAEA,KAAG5C,EAAE;AAAA,EAAU,GAAED,IAAE,CAAAC,MAAG;AAAC,QAAIb,IAAE,IAAI,SAAS7G,EAAE,MAAM,GAAEsI,IAAEZ,EAAE;AAAW,IAAAb,EAAE,UAAUyD,GAAEhC,GAAE,EAAE,GAAEgC,KAAG,GAAElK,EAAEsH,CAAC;AAAA,EAAC;AAAE,SAAOtH,EAAEwB,CAAC,GAAE6F,EAAEvH,CAAC,GAAEuH,EAAEtH,CAAC,GAAEH;AAAC,GAAEmM,KAAG,CAAAhL,MAAG,IAAI,YAAY,UAAU,EAAE,OAAOA,CAAC,EAAE,QAAQ,UAAS,EAAE,EAAE,MAAM,CAAC;AAAE,SAASgF,GAAGhF,GAAE;AAAC,MAAIpB,IAAE,IAAI,YAAYoB,EAAE,SAAO,CAAC,GAAEvB,IAAE,IAAI,SAASG,CAAC;AAAE,WAAQ6B,IAAE,GAAEA,IAAET,EAAE,QAAOS,IAAI,CAAAhC,EAAE,UAAUgC,IAAE,GAAET,EAAE,WAAWS,CAAC,GAAE,EAAE;AAAE,SAAO7B;AAAC;AAAC,IAAIkK,KAAG,CAAC,EAAC,SAAQ9I,GAAE,mBAAkBpB,GAAE,eAAcH,GAAE,sBAAqBgC,GAAE,WAAU1B,GAAE,0BAAyBC,EAAC,MAAI;AAAC,MAAIF,IAAE,MAAKD,IAAE,OAAM0H,MAAG;AAAC,QAAG;AAAC,UAAIb,IAAEa,EAAE;AAAa,UAAGb,MAAI,OAAM;AAAC,gBAAQ,MAAM,iDAAiDA,CAAC,GAAG;AAAE;AAAA,MAAM;AAAC,MAAA1F,EAAE,aAAW,MAAMmJ,EAAEzD,CAAC;AAAE,UAAIyB,IAAEZ,EAAE;AAAS,UAAGY,KAAG,MAAK;AAAC,gBAAQ,MAAM,iEAAiEZ,EAAE,IAAI,QAAQ;AAAE;AAAA,MAAM;AAAC,YAAMtH,EAAEyG,GAAEyB,CAAC;AAAA,IAAC,SAAOzB,GAAE;AAAC,MAAAjF,EAAET,GAAE0F,CAAC;AAAE;AAAA,IAAM;AAAA,EAAC,GAAEyD,IAAE,OAAM5C,MAAG;AAAC,QAAIb,IAAE,MAAM,UAAU,4BAA4B,iBAAgB,CAAC,EAAC,eAAc,CAACa,CAAC,GAAE,mBAAkB,CAAC,EAAC,aAAY,iCAAgC,YAAW,GAAE,CAAC,GAAE,uBAAsB,eAAc,iBAAgB,eAAc,cAAa,CAAC,WAAW,EAAC,CAAC,CAAC,EAAE,KAAK,CAAAI,OAAI5H,EAAC,GAAG4H,EAAE,EAAE,MAAM,MAAI;AAAC,UAAIA,IAAEF,EAAE,wHAAwH,GAAE2L,IAAE,IAAInJ,EAAEtC,GAAEsC,EAAE,qBAAoB,EAAE;AAAE,MAAAmJ,EAAE,gBAAc1L,GAAE,KAAI0L,EAAE,UAAQ3I,EAAE,kCAAiChJ,EAAET,GAAEoS,CAAC;AAAA,IAAC,CAAC;AAAE,QAAG,CAAC1M,EAAE;AAAO,QAAIyB,IAAE,MAAMzB,EAAE,gBAAe;AAAG,QAAG;AAAC,UAAIiB,IAAE,MAAM/H,EAAC;AAAG,YAAMuI,EAAE,qBAAqBR,CAAC,EAAE,MAAM,MAAI;AAAC,YAAIyL,IAAE3L,EAAE,oHAAoH,GAAEJ,IAAE,IAAI4C,EAAEmJ,GAAEnJ,EAAE,qBAAoB,EAAE;AAAE,eAAO5C,EAAE,gBAAcK,GAAE,KAAIL,EAAE,UAAQoD,EAAE,qCAAoC,QAAQ,OAAOpD,CAAC;AAAA,MAAC,CAAC;AAAA,IAAC,SAAOM,GAAE;AAAC,MAAAlG,EAAET,GAAE2G,CAAC;AAAE;AAAA,IAAM;AAAC,UAAM3G,EAAE,aAAamH,CAAC;AAAA,EAAC,GAAElI,IAAE,OAAMsH,GAAEb,MAAI;AAAC,QAAIyB,IAAEnH,EAAE,UAAU,cAAa,GAAG2G,IAAE,OAAM4C,MAAG;AAAC,UAAIH,IAAEG,EAAE,SAAQxC,IAAE,MAAMtI,EAAE2K,CAAC;AAAE,UAAG;AAAC,cAAMjC,EAAE,OAAOJ,CAAC;AAAA,MAAC,QAAM;AAAC,YAAIsC,IAAE5C,EAAE,+FAA+F,GAAEd,IAAE,IAAIsD,EAAEI,GAAEJ,EAAE,qBAAoB,EAAE;AAAE,QAAAtD,EAAE,gBAAce,GAAE,KAAIf,EAAE,UAAQ8D,EAAE,iCAAgChJ,EAAET,GAAE2F,CAAC;AAAA,MAAC;AAAA,IAAC,GAAEyM,IAAE,MAAI;AAAC,UAAI7I,IAAE,CAAAH,MAAG;AAAC,YAAIrC;AAAE,YAAGqC,MAAI,kBAAiB;AAAC,cAAIC,IAAE5C,EAAE,gJAAgJ;AAAE,UAAAM,IAAE,IAAIkC,EAAEI,GAAEJ,EAAE,qBAAoB,EAAE,GAAElC,EAAE,gBAAcL,GAAE,KAAIK,EAAE,UAAQ0C,EAAE;AAAA,QAAmB,WAASL,MAAI,uBAAqBA,MAAI,qBAAoB;AAAC,cAAIC,IAAE5C,EAAE,+GAA+G;AAAE,UAAAM,IAAE,IAAIkC,EAAEI,GAAEJ,EAAE,qBAAoB,EAAE,GAAElC,EAAE,gBAAcL,GAAE,KAAIK,EAAE,UAAQ0C,EAAE;AAAA,QAA2B;AAAC,QAAA1C,KAAGtG,EAAET,GAAE+G,CAAC;AAAA,MAAC;AAAE,MAAAI,EAAE,YAAY,QAAQ,CAAAiC,MAAGG,EAAEH,CAAC,CAAC;AAAA,IAAC;AAAE,IAAAjC,EAAE,iBAAiB,qBAAoBiL,CAAC,GAAEjL,EAAE,iBAAiB,WAAUR,CAAC;AAAE,QAAIN,IAAE,YAAS;AAAC,MAAAc,EAAE,oBAAoB,qBAAoBiL,CAAC,GAAEjL,EAAE,oBAAoB,WAAUR,CAAC,GAAE,2CAA0C3G,KAAGA,EAAE,oBAAoB,gDAA+CqG,CAAC,GAAErG,EAAE,oBAAoB,YAAWqG,CAAC,GAAE,MAAMc,EAAE,MAAK,EAAG,MAAM,CAAAoC,MAAG;AAAC,gBAAQ,KAAK,+CAA8CA,CAAC;AAAA,MAAC,CAAC,GAAEzK,IAAE;AAAA,IAAI;AAAE,+CAA0CkB,KAAGA,EAAE,iBAAiB,gDAA+CqG,GAAE,EAAC,MAAK,GAAE,CAAC,GAAErG,EAAE,iBAAiB,YAAWqG,GAAE,EAAC,MAAK,GAAE,CAAC,GAAEvH,IAAEuH,GAAE,MAAMc,EAAE,gBAAgBZ,GAAEb,CAAC,EAAE,MAAM,OAAM6D,MAAG;AAAC,UAAGA,EAAE,SAAO,uBAAqB,2CAA0CvJ,KAAGA,EAAE,sCAAsC,SAAQ,KAAK,gFAAgF,GAAEhB,KAAG,QAAMA,EAAC;AAAA,WAAO;AAAC,YAAIoK,IAAE3C,EAAE,2GAA2G,GAAEM,IAAE,IAAIkC,EAAEG,GAAEH,EAAE,qBAAoB,EAAE;AAAE,eAAOlC,EAAE,gBAAcL,GAAE,KAAIK,EAAE,UAAQ0C,EAAE,mCAAkC,QAAQ,MAAM,sCAAqCF,CAAC,GAAE,QAAQ,OAAOxC,CAAC;AAAA,MAAC;AAAA,IAAC,CAAC;AAAA,EAAC,GAAET,IAAE,YAAS;AAAC,IAAAtG,EAAE,oBAAoB,aAAYnB,CAAC,GAAEmB,EAAE,oBAAoB,YAAWsG,CAAC,GAAExH,KAAG,MAAMA,EAAC,GAAG,MAAMkB,EAAE,aAAa,IAAI,EAAE,MAAM,MAAI;AAAA,IAAC,CAAC;AAAA,EAAC;AAAE,SAAOA,EAAE,iBAAiB,aAAYnB,CAAC,GAAEmB,EAAE,iBAAiB,YAAWsG,GAAE,EAAC,MAAK,GAAE,CAAC,GAAEA;AAAC,GAAMM,KAAE,EAAC,UAAS,YAAW,WAAU,aAAY,UAAS,WAAU,GAAEK,KAAG,CAAAjH,MAAG;AAAC,MAAGA,EAAE,SAAS,KAAK,EAAE,QAAO4G,GAAE;AAAS,MAAG5G,EAAE,SAAS,WAAW,EAAE,QAAO4G,GAAE;AAAU,MAAG5G,EAAE,SAAS,UAAU,EAAE,QAAO4G,GAAE;AAAQ,GAAE4B,KAAG,CAAAxI,MAAG;AAAC,MAAIpB,IAAEoB,EAAE,MAAM;AAAA,CAC5lwB,EAAE,KAAK,CAACvB,GAAEgC,GAAE1B,MAAI0B,KAAG1B,EAAE0B,IAAE,CAAC,EAAE,WAAW,mBAAmB,CAAC;AAAE,SAAO,MAAM7B,CAAC,EAAE,KAAK,CAAAH,MAAGA,EAAE,WAAS,MAAI,QAAQ,OAAOA,CAAC,IAAEA,EAAE,KAAI,CAAE;AAAC,GAAEY,KAAG,CAAAW,MAAG;AAAC,MAAIpB,IAAEoB,EAAE,MAAM;AAAA,CACpJ,EAAE,OAAO,CAAAS,MAAGA,EAAE,WAAW,qBAAqB,CAAC;AAAE,MAAG,CAAC7B,EAAE,OAAO,QAAM;AAAG,MAAIH,IAAE,CAAA;AAAG,WAAQgC,KAAK7B,GAAE;AAAC,QAAIG,IAAEZ,GAAGsC,CAAC,GAAEzB,IAAED,EAAE,SAAS;AAAE,IAAAC,MAAIP,EAAEO,CAAC,IAAE,EAAC,GAAGD,EAAC;AAAA,EAAE;AAAC,SAAM,EAAC,aAAYN,EAAC;AAAC,GAAEwL,KAAG;AAAiC,SAAS9L,GAAG6B,GAAE;AAAC,MAAIpB,IAAE,CAAC,GAAGoB,EAAE,SAASiK,EAAE,CAAC;AAAE,SAAO,OAAO,YAAYrL,EAAE,IAAI,CAAC,CAAA,EAAEH,GAAEgC,CAAC,MAAI,CAAChC,GAAEgC,CAAC,CAAC,CAAC;AAAC;AAAI,IAACwF,KAAG,CAAAjG,MAAG;AAAC,MAAInB,GAAEsK,GAAElK;AAAE,MAAIL,IAAEoB,EAAE,MAAM;AAAA,CACrU,GAAE,KAAGmJ,MAAItK,IAAED,EAAE,KAAK,CAAA0H,MAAGA,EAAE,WAAW,sBAAsB,CAAC,MAAI,OAAKzH,IAAE,IAAI,MAAM,GAAG,EAAE,CAAC,MAAI,OAAK,SAAOsK,EAAE,QAAOpK,IAAE0G,GAAG,CAAC,GAAEzG,IAAEQ,GAAG,CAAC,GAAEV;AAAE,MAAGC,MAAIyK,EAAE,MAAK;AAAC,QAAIlD,IAAE1H,EAAE,KAAK,CAAA8G,MAAGA,EAAE,WAAW,iBAAiB,CAAC;AAAE,QAAKY,EAAE,CAAAxH,IAAE,CAACwH,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,IAAE;AAAA,SAAM;AAAC,UAAIZ,IAAE9G,EAAE,KAAK,CAAAwT,MAAGA,EAAE,WAAW,uBAAuB,CAAC,GAAEjL,KAAGlI,IAAEyG,KAAG,OAAK,SAAOA,EAAE,MAAM,GAAG,MAAI,OAAK,SAAOzG,EAAE,CAAC;AAAE,MAAAH,IAAE,EAAEqI,KAAU,KAAG;AAAA,IAAC;AAAA,EAAC;AAAC,SAAM,EAAC,YAAWpI,GAAE,kBAAiBC,GAAE,qBAAoBF,EAAC;AAAC,GAAE+I,KAAG,OAAM7H,GAAEpB,MAAI;AAAC,MAAGA,MAAI4H,GAAE,IAAI,QAAM,EAAC,YAAWgD,EAAE,WAAU,kBAAiB,OAAO,KAAI,qBAAoB,QAAO,aAAY,OAAM;AAAE,MAAG5K,MAAI4H,GAAE,MAAK;AAAC,QAAI/H,IAAE,MAAM,MAAMuB,CAAC;AAAE,QAAG,CAACvB,EAAE,GAAG,QAAO,QAAQ,OAAOA,CAAC;AAAE,QAAIgC,IAAE,MAAMhC,EAAE,KAAI,GAAGM,IAAE,MAAMyJ,GAAG/H,CAAC;AAAE,WAAM,EAAC,GAAGpB,GAAGoB,CAAC,GAAE,GAAGwF,GAAGlH,CAAC,EAAC;AAAA,EAAC;AAAC,SAAO,QAAQ,MAAM,cAAcH,CAAC,mDAAmDoB,CAAC,GAAG,GAAE,EAAC,YAAW,QAAO,kBAAiB,QAAO,qBAAoB,QAAO,aAAY,OAAM;AAAC,GAAEyH,KAAG,OAAMzH,GAAEpB,GAAEH,IAAEwE,GAAE,EAAC,KAAIjD,EAAC,CAAC,MAAI;AAAC,MAAImJ,GAAElK,GAAEqH,GAAEC;AAAE,MAAG,EAAC,YAAW9F,GAAE,kBAAiB1B,GAAE,qBAAoBC,GAAE,aAAYF,EAAC,IAAE,MAAM+I,GAAG7H,GAAEvB,CAAC,GAAEI,IAAEC,KAAG,OAAK,SAAOA,EAAE,wBAAwB;AAAE,GAACD,KAAG,QAAMA,EAAE,OAAKA,KAAG,QAAMA,EAAE,MAAM,kBAAiB,EAAG,WAAW,MAAM,MAAI6J,IAAIS,IAAEtK,EAAE,QAAM,OAAKsK,IAAEtK,EAAE,OAAMD,CAAC,KAAIK,IAAEqK,GAAE,IAAI1K,CAAC,MAAI,OAAKK,IAAE,CAAA,GAAI,sBAAoBD,KAAIsH,IAAEgD,GAAE,IAAI1K,CAAC,MAAI,OAAK0H,IAAE,CAAA,GAAI,mBAAiBvH,GAAEH,EAAE,cAAc,IAAI,YAAY,0BAAyB,EAAC,UAAS,IAAG,SAAQ,GAAE,CAAC,CAAC,KAAI2H,IAAE+C,GAAE,IAAI1K,CAAC,MAAI,OAAK2H,IAAE,CAAA,GAAI,aAAW9F,GAAE7B,EAAE,cAAc,IAAI,YAAY,oBAAmB,EAAC,UAAS,IAAG,SAAQ,GAAE,CAAC,CAAC;AAAC,GAAE8J,KAAG,OAAM1I,GAAEpB,MAAI;AAAC,MAAIH,GAAEgC;AAAE,MAAG;AAAC,QAAI1B,IAAE,MAAM,MAAMiB,CAAC;AAAE,QAAG,CAACjB,EAAE,GAAG,OAAM,IAAI,MAAM,iCAAiCA,EAAE,MAAM,IAAIA,EAAE,UAAU,EAAE;AAAE,QAAIC,IAAE,MAAMD,EAAE,KAAI,GAAGD,IAAE,CAAA;AAAG,QAAG,GAAGL,IAAEO,KAAG,OAAK,SAAOA,EAAE,CAAC,MAAI,QAAMP,EAAE,UAAU;AAAO,aAAQ0K,KAAKnK,EAAE,CAAC,EAAE,SAAS,CAAAmK,EAAE,OAAKA,EAAE,UAAQrK,EAAEqK,EAAE,GAAG,IAAEA,EAAE;AAAO,MAAE1I,IAAE6I,GAAE,IAAI1K,CAAC,MAAI,OAAK6B,IAAE,IAAI,WAAS3B;AAAE,QAAID,IAAE,IAAI,YAAY,aAAa;AAAE,IAAAD,EAAE,cAAcC,CAAC;AAAA,EAAC,SAAOE,GAAE;AAAC,YAAQ,MAAMA,CAAC;AAAA,EAAC;AAAC,GAAEmL,KAAG,CAAAlK,MAAG;AAAC,MAAIlB;AAAE,MAAIF,IAAEoB,EAAE,MAAKvB,IAAEgH,GAAG7G,CAAC,GAAE6B,IAAEjB,GAAGZ,CAAC,GAAEG,GAAE,IAAE,CAAC,GAAGD,IAAEkB,EAAE,aAAW,QAAMlB,EAAE;AAAQ,SAAOL,MAAI+K,EAAE,SAAOzK,IAAE,IAAEiB,EAAE,aAAW,IAAEA,EAAE,iBAAe,IAAG,EAAC,YAAWvB,GAAE,kBAAiBgC,GAAE,qBAAoB1B,GAAE,YAAW,EAAC;AAAC,GAAEuL,KAAG,CAACtK,GAAEpB,GAAEH,MAAI;AAAC,MAAII,GAAEsK,GAAElK,GAAEqH,GAAEC,GAAEb,GAAEyB,GAAE;AAAE,MAAG,EAAC,YAAW1G,GAAE,kBAAiB1B,GAAE,qBAAoBC,GAAE,YAAWF,EAAC,IAAEoL,GAAGlK,CAAC;AAAE,MAAGS,MAAI+I,EAAE,MAAK;AAAC,IAAA1K,KAAGL,EAAE,OAAO,oBAAkBI,IAAEJ,EAAE,WAAW,qBAAmB,OAAKI,IAAE,GAAEJ,EAAE,OAAO,0BAAwB0K,IAAE1K,EAAE,WAAW,2BAAyB,OAAK0K,IAAE,MAAK1K,EAAE,OAAO,wBAAsBQ,IAAER,EAAE,WAAW,yBAAuB,OAAKQ,IAAER,EAAE,OAAO,sBAAoBA,EAAE,OAAO,oBAAkB6H,IAAE7H,EAAE,WAAW,qBAAmB,OAAK6H,IAAE;AAAE,QAAI8L,IAAE,OAAO,OAAO,EAAC,IAAI,SAAQ;AAAC,aAAOxT,EAAE,SAAS;AAAA,IAAM,GAAE,MAAMyH,GAAE;AAAC,aAAOzH,EAAE,SAAS,MAAMyH,CAAC;AAAA,IAAC,GAAE,IAAIA,GAAE;AAAC,UAAIkD;AAAE,aAAOlD,IAAE,KAAK,UAAQA,IAAE,KAAG,OAAO,SAASzH,EAAE,QAAQ,IAAEA,EAAE,SAAS,IAAIyH,CAAC,KAAGkD,IAAE9K,EAAE,qBAAmB,OAAK8K,IAAE3K,EAAE,SAAS,IAAIyH,CAAC;AAAA,IAAC,EAAC,CAAC;AAAE,MAAEE,IAAE+C,GAAE,IAAI1K,CAAC,MAAI,OAAK2H,IAAE,CAAA,GAAI,WAAS6L;AAAA,EAAC;AAAC,IAAE1M,IAAE4D,GAAE,IAAI1K,CAAC,MAAI,OAAK8G,IAAE,CAAA,GAAI,sBAAoB1G,KAAImI,IAAEmC,GAAE,IAAI1K,CAAC,MAAI,OAAKuI,IAAE,CAAA,GAAI,mBAAiBpI,GAAEH,EAAE,cAAc,IAAI,YAAY,0BAAyB,EAAC,UAAS,IAAG,SAAQ,GAAE,CAAC,CAAC,KAAI,IAAE0K,GAAE,IAAI1K,CAAC,MAAI,OAAK,IAAE,CAAA,GAAI,aAAW6B,GAAE7B,EAAE,cAAc,IAAI,YAAY,oBAAmB,EAAC,UAAS,IAAG,SAAQ,GAAE,CAAC,CAAC;AAAC,GAAE8L,IAAGyG,IAAG9L,MAAI8L,MAAIzG,KAAG,cAAY,OAAK,SAAO,WAAW,cAAY,OAAK,SAAOA,GAAG,cAAY,OAAKyG,KAAG,IAAGlE,IAAGtN,IAAGmB,IAAGkI,MAAIlI,MAAInB,MAAIsN,KAAG,cAAY,OAAK,SAAO,WAAW,cAAY,OAAK,SAAOA,GAAG,kBAAgB,OAAK,SAAOtN,GAAG,aAAW,OAAKmB,KAAG,IAAG0K,KAAGnG,GAAG,YAAW,EAAG,SAAS,SAAS,KAAG,CAAC,OAAM,SAAS,EAAE,KAAK,CAAArF,MAAGgJ,GAAG,YAAW,EAAG,SAAShJ,CAAC,CAAC,GAAEmL,KAAG,CAAAnL,MAAG,iCAAiC,KAAKqF,EAAE,KAAG,CAAC,CAACrF,EAAE,YAAY,+BAA+B,GAAEsJ,KAAE,oBAAI,WAAQM,KAAE,WAAUwB,IAAGX,IAAGyC,MAAIzC,MAAIW,KAAGvB,GAAG,gBAAc,OAAK,SAAOY,GAAG,KAAKW,EAAE,GAAEsB,KAAG,CAAA1M,MAAGwL,MAAI,CAACL,GAAGnL,CAAC,GAAEwS,KAAG,MAAI;AAAC,MAAG,OAAO,SAAQ,IAAY,QAAO7J,GAAG,MAAM,IAAG;AAAE,GAAEoD,KAAGpD,GAAG,MAAM,cAAa8J,KAAG,CAAC,EAAC,YAAWzS,GAAE,cAAapB,IAAEgL,IAAE,eAAcnL,GAAE,eAAcgC,GAAE,gBAAe1B,GAAE,kBAAiBC,GAAE,gBAAeF,GAAE,gBAAeD,GAAE,cAAasK,GAAE,eAAclK,GAAE,QAAO,EAAC,UAASqH,IAAErH,EAAC,IAAE,CAAA,GAAG,mBAAkBsH,IAAE,CAAA,EAAE,IAAE,CAAA,MAAK;AAAC,MAAG,CAACvG,EAAE;AAAO,MAAG,CAAC0F,GAAEyB,IAAE,EAAE,IAAEzI,GAAEsB,CAAC,GAAE2G,IAAE,IAAI,IAAI,kBAAkB/H,CAAC,IAAI8G,CAAC,QAAQyB,CAAC,EAAE;AAAE,SAAOb,KAAGK,EAAE,aAAa,IAAI,OAAO,KAAGA,EAAE,aAAa,QAAQ,CAACyL,GAAE/L,MAAI;AAAC,IAAAA,KAAG,WAASM,EAAE,aAAa,OAAON,CAAC;AAAA,EAAC,CAAC,GAAEC,KAAGK,EAAE,aAAa,IAAI,SAAQL,CAAC,MAAI7H,KAAGkI,EAAE,aAAa,IAAI,kBAAiBlI,CAAC,GAAEgC,MAAIkG,EAAE,aAAa,IAAI,kBAAiBlG,CAAC,GAAEhC,KAAG,CAACA,EAAE,MAAM,GAAE,EAAE,IAAE,CAACgC,EAAE,MAAM,GAAE,EAAE,KAAG,QAAQ,MAAM,0CAAyC,iBAAgBA,GAAE,iBAAgBhC,CAAC,IAAGM,KAAG4H,EAAE,aAAa,IAAI,mBAAkB5H,CAAC,GAAEC,KAAG2H,EAAE,aAAa,IAAI,sBAAqB,GAAG3H,CAAC,EAAE,GAAEF,KAAG6H,EAAE,aAAa,IAAI,oBAAmB,GAAG7H,CAAC,EAAE,GAAED,KAAG8H,EAAE,aAAa,IAAI,oBAAmB,GAAG9H,CAAC,EAAE,GAAEsK,KAAGxC,EAAE,aAAa,IAAI,kBAAiB,GAAGwC,CAAC,EAAE,GAAE,OAAO,QAAQ5C,CAAC,EAAE,QAAQ,CAAC,CAAC6L,GAAE/L,CAAC,MAAI;AAAC,IAAAA,KAAG,QAAMM,EAAE,aAAa,IAAIyL,GAAE/L,CAAC;AAAA,EAAC,CAAC,IAAGM,EAAE,SAAQ;AAAE,GAAES,KAAE,CAAApH,MAAG;AAAC,MAAG,CAACA,EAAE;AAAO,MAAG,CAACpB,CAAC,IAAEoB,EAAE,MAAM,GAAG;AAAE,SAAOpB,KAAG;AAAM,GAAEiG,KAAG,CAAA7E,MAAG;AAAC,MAAG,CAACA,KAAG,CAACA,EAAE,WAAW,iBAAiB,EAAE;AAAO,MAAG,CAACpB,CAAC,IAAE,IAAI,IAAIoB,CAAC,EAAE,SAAS,MAAM,CAAC,EAAE,MAAM,WAAW;AAAE,SAAOpB,KAAG;AAAM,GAAEgN,KAAG,CAAA5L,MAAG;AAAC,MAAIpB,GAAEH,GAAEgC;AAAE,UAAO7B,IAAEoB,KAAG,OAAK,SAAOA,EAAE,aAAW,QAAMpB,EAAE,WAASoB,EAAE,SAAS,WAASsC,GAAGtC,CAAC,MAAIS,KAAGhC,IAAE2I,GAAEpH,EAAE,UAAU,MAAI,OAAKvB,IAAEoG,GAAG7E,EAAE,GAAG,MAAI,OAAKS,IAAET,EAAE;AAAG,GAAE0L,KAAG,CAAA1L,MAAG;AAAC,MAAIpB;AAAE,UAAOA,IAAE0K,GAAE,IAAItJ,CAAC,MAAI,OAAK,SAAOpB,EAAE;AAAK,GAAE8T,KAAG,CAAA1S,MAAG;AAAC,MAAIpB;AAAE,UAAOA,IAAE0K,GAAE,IAAItJ,CAAC,MAAI,OAAK,SAAOpB,EAAE;AAAQ,GAAE8O,KAAG,CAAA1N,MAAG;AAAC,MAAIpB,GAAEH;AAAE,UAAOA,KAAGG,IAAE0K,GAAE,IAAItJ,CAAC,MAAI,OAAK,SAAOpB,EAAE,eAAa,OAAKH,IAAE+K,EAAE;AAAO,GAAEmJ,KAAG,CAAA3S,MAAG;AAAC,MAAIpB,GAAEH;AAAE,UAAOA,KAAGG,IAAE0K,GAAE,IAAItJ,CAAC,MAAI,OAAK,SAAOpB,EAAE,qBAAmB,OAAKH,IAAE,OAAO;AAAG,GAAEkM,KAAG,CAAA3K,MAAG;AAAC,MAAIpB,GAAEH;AAAE,UAAOA,KAAGG,IAAE0K,GAAE,IAAItJ,CAAC,MAAI,OAAK,SAAOpB,EAAE,aAAW,OAAKH,IAAEuB,EAAE;AAAQ,GAAE4S,KAAG,CAAA5S,MAAG;AAAC,MAAIS;AAAE,MAAI7B,KAAG6B,IAAE6I,GAAE,IAAItJ,CAAC,MAAI,OAAK,SAAOS,EAAE;AAAoB,MAAG,OAAO7B,KAAG,SAAS,QAAO,OAAO;AAAI,MAAIH,IAAEkM,GAAG3K,CAAC;AAAE,SAAOvB,EAAE,SAAOA,EAAE,IAAIA,EAAE,SAAO,CAAC,IAAEG,IAAE,OAAO;AAAG,GAAEiU,KAAG,CAAA7S,MAAG;AAAC,MAAIpB;AAAE,UAAOA,IAAE0K,GAAE,IAAItJ,CAAC,MAAI,OAAK,SAAOpB,EAAE;AAAa,GAAE0J,KAAG,OAAKqE,KAAG,CAAC3M,GAAEpB,GAAEH,IAAE6J,OAAK,KAAK,IAAItI,IAAEpB,CAAC,KAAGH,GAAEiC,KAAG,CAACV,GAAEpB,GAAEH,IAAE6J,OAAKtI,IAAEpB,KAAG+N,GAAG3M,GAAEpB,GAAEH,CAAC,GAAEuO,KAAG,CAAChN,GAAEpB,IAAE0J,OAAKtI,EAAE,UAAQU,GAAGV,EAAE,aAAYA,EAAE,UAASpB,CAAC,GAAEc,KAAG,CAACM,GAAEpB,MAAI;AAAC,MAAIK,GAAEqH,GAAEC;AAAE,MAAG,CAAC3H,KAAG,CAACoB,EAAE,SAAS,OAAO;AAAO,MAAGA,EAAE,aAAW,EAAE,QAAM;AAAG,MAAIvB,IAAEG,EAAE,gBAAc,KAAG0H,KAAGrH,IAAEL,EAAE,WAAS,OAAK,SAAOK,EAAEL,EAAE,YAAY,MAAI,OAAK,SAAO0H,EAAE,WAASC,IAAE3H,EAAE,OAAO,KAAK,CAAA8G,MAAG,CAAC,CAACA,EAAE,OAAO,MAAI,OAAK,SAAOa,EAAE;AAAQ,MAAG,CAAC9H,KAAGA,EAAE,KAAK;AAAO,MAAG,EAAC,WAAUgC,EAAC,IAAEhC;AAAE,MAAG,EAAEgC,KAAG,QAAMA,EAAE,QAAQ;AAAO,MAAGT,EAAE,cAAYA,EAAE,YAAUvB,EAAE,iBAAe,KAAI,QAAM;AAAG,MAAI,IAAEgC,EAAEA,EAAE,SAAO,CAAC;AAAE,MAAGT,EAAE,eAAa,EAAE,MAAM;AAAS,MAAIhB,IAAE,EAAE,QAAM,EAAE,WAAS,GAAEF,IAAEkB,EAAE,SAAS,MAAMA,EAAE,SAAS,SAAO,CAAC,GAAEnB,IAAEmB,EAAE,SAAS,IAAIA,EAAE,SAAS,SAAO,CAAC;AAAE,SAAOhB,IAAEF,KAAGE,IAAEH;AAAC,GAAEyM,KAAG,CAACtL,GAAEpB,MAAIoB,EAAE,SAAOA,EAAE,OAAKA,EAAE,QAAMpB,KAAGc,GAAGM,GAAEpB,CAAC,IAAE,KAAGoO,GAAGhN,CAAC,GAAE8L,KAAG,CAAC9L,GAAEpB,GAAEH,MAAI;AAAC0N,EAAAA,GAAGvN,GAAEH,GAAEuB,CAAC;AAAE,MAAG,EAAC,UAASS,IAAE,CAAA,EAAE,IAAET,GAAE,EAAC,iBAAgBjB,IAAEgN,KAAI,IAAEtL,GAAEzB,IAAE4M,GAAG5L,CAAC;AAAE,EAAAS,EAAE,kBAAgB1B,GAAE0B,EAAE,WAASzB,GAAEgB,EAAE,WAASS;AAAE,MAAI3B,IAAE,CAAA4G,MAAG;AAAC,QAAIyB;AAAE,KAACA,IAAEvI,EAAE,QAAM,QAAMuI,EAAE,KAAK,MAAK,EAAC,eAAczB,EAAC,CAAC;AAAA,EAAC;AAAE,EAAA1F,EAAE,YAAUlB,GAAEkB,EAAE,2BAAyB,YAAS;AAAC,QAAIqG;AAAE,QAAIX,IAAE,CAAC9G,EAAE,QAAOuI,IAAEvI,EAAE;AAAY,IAAAoB,EAAE,oBAAkB;AAAG,QAAI2G,IAAE3G,EAAE;AAAmB,IAAAA,EAAE,qBAAmB;AAAG,QAAIoS,KAAG/L,IAAEiD,GAAE,IAAI1K,CAAC,MAAI,OAAK,SAAOyH,EAAE;AAAcyF,IAAAA,GAAG9L,GAAEpB,GAAEwT,CAAC,GAAEpS,EAAE,qBAAmB2G,GAAE3G,EAAE,oBAAkB,IAAG0F,KAAG,MAAM9G,EAAE,KAAI,EAAG,KAAK,MAAI;AAAC,MAAAA,EAAE,cAAYuI;AAAA,IAAC,CAAC,EAAE,MAAM,MAAI;AAAA,IAAC,CAAC,GAAEvI,EAAE,cAAYuI;AAAA,EAAC,GAAEmC,GAAE,IAAI1K,GAAE,EAAC,YAAW,EAAC,CAAC;AAAE,MAAIC,IAAE0N,GAAGvM,GAAEpB,CAAC,GAAEuK,IAAE/I,GAAGJ,GAAEpB,GAAEC,CAAC;AAAE,EAAAmB,KAAG,QAAMA,EAAE,sBAAqBpB,KAAG,QAAMA,EAAE,OAAM,CAACA,EAAE,IAAI,UAAQC,KAAGD,EAAE,IAAI,SAAS,EAAC,OAAMC,GAAE,KAAIA,IAAEgL,IAAE,OAAM,CAAC,IAAE0D,GAAGvN,GAAEpB,GAAEC,CAAC,GAAE2O,GAAGxN,GAAEpB,GAAEC,CAAC,GAAEkL,GAAGnL,CAAC,GAAEa,GAAGb,CAAC;AAAE,MAAIK,IAAE+I,GAAGhI,GAAEpB,GAAEC,CAAC,GAAEyH,IAAE,EAAC,QAAOzH,GAAE,aAAYI,GAAE,YAAWkK,EAAC,GAAE5C,IAAE+C,GAAE,IAAI1K,CAAC;AAAE,SAAO2H,MAAIA,EAAE,gBAAcD,IAAGA;AAAC,GAAE6F,KAAG,CAACnM,GAAEpB,GAAEH,MAAI;AAAC,MAAIgC,IAAE7B,KAAG,OAAK,SAAOA,EAAE;AAAO,EAAAoB,KAAG,QAAMA,EAAE,OAAK,CAACA,EAAE,IAAI,YAAUvB,KAAG,QAAMA,EAAE,qBAAmBgC,KAAGT,EAAE,IAAI,YAAW,KAAIA,EAAE,IAAI,QAAO,GAAG,OAAOA,EAAE,OAAMS,MAAIA,EAAE,YAAW,GAAGA,EAAE,YAAWT,MAAIA,EAAE,aAAa,KAAK,MAAIA,EAAE,gBAAgB,KAAK,GAAEA,EAAE,KAAI,IAAIA,EAAE,oBAAoB,SAAQwE,EAAE,GAAExE,EAAE,oBAAoB,SAAQkR,EAAE,GAAElR,EAAE,oBAAoB,kBAAiBmC,EAAE,GAAEmH,GAAE,OAAOtJ,CAAC,GAAEA,EAAE,cAAc,IAAI,MAAM,UAAU,CAAC;AAAE;AAAE,SAASkB,GAAGlB,GAAEpB,GAAE;AAAC,MAAIK;AAAE,MAAIR,IAAEwE,GAAEjD,CAAC;AAAE,MAAKvB,MAAI+H,GAAE,KAAM;AAAS,MAAIzH,IAAE,CAACN,OAAKQ,IAAEL,EAAE,YAAYH,CAAC,MAAI,OAAKQ,IAAE,KAAI,EAAC,gBAAeD,EAAC,IAAEgB,GAAElB,IAAEE,MAAIG,GAAE,KAAIN,IAAEG,MAAIG,GAAE,QAAOgK,IAAE+D,OAAKpO,KAAG4N,GAAG9N,CAAC;AAAG,SAAOG,MAAIF,KAAG,CAACsK;AAAE;AAAC,IAAIoD,KAAG,CAACvM,GAAEpB,MAAI;AAAC,MAAG,EAAC,OAAMH,GAAE,YAAWgC,GAAE,WAAU1B,IAAE,IAAG,UAASC,GAAE,YAAWF,GAAE,YAAWD,IAAE,CAAA,GAAG,mBAAkBsK,EAAC,IAAEnJ,GAAEsG,IAAErD,GAAEjD,CAAC,MAAIwG,GAAE,MAAKD,IAAErF,GAAGlB,GAAEpB,CAAC;AAAE,MAAG0H,KAAG,CAACC,KAAG2G,IAAG;AAAC,QAAIxH,IAAE,EAAC,kBAAiB,IAAG,0BAAyB,IAAG,sBAAqB,IAAG,mBAAkB,GAAE,GAAEyB,IAAES,GAAGnH,CAAC,GAAEkG,IAAEsF,GAAGjM,CAAC,GAAEoS,IAAE,CAACjK,GAAE,OAAMA,GAAE,MAAM,EAAE,SAASrJ,CAAC,IAAE,EAAC,YAAWA,MAAIqJ,GAAE,QAAO,WAAUnJ,KAAG,OAAK,SAAOA,EAAE,iBAAgB,WAAUA,KAAG,OAAK,SAAOA,EAAE,SAAQ,IAAE,QAAOqH,IAAEiH,GAAGtN,CAAG,GAAEuJ,IAAE,IAAIM,EAAE,EAAC,OAAMpL,GAAE,eAAcM,GAAE,MAAKqT,GAAE,UAAS,CAAChJ,GAAErC,MAAI;AAAC,UAAIG,GAAE6J;AAAG,UAAGjS,KAAGA,MAAIqJ,GAAE,MAAM;AAAO,UAAIkB,IAAE,IAAI,IAAItC,CAAC;AAAE,UAAG,CAACsC,EAAE,aAAa,IAAI,MAAM,EAAE;AAAO,UAAI1D,MAAIoL,KAAI7J,IAAEmC,EAAE,aAAa,IAAI,MAAM,MAAI,OAAK,SAAOnC,EAAE,MAAM,GAAG,MAAI,OAAK6J,IAAG,CAAA,GAAI,OAAO,CAAA/G,MAAIA,EAAG,WAAW,KAAK,KAAGA,EAAG,WAAW,KAAK,CAAC,EAAE,KAAK,GAAG;AAAE,MAAAX,EAAE,aAAa,IAAI,QAAO1D,CAAC,GAAEyD,EAAE,KAAK,OAAMC,CAAC;AAAA,IAAC,GAAE,GAAG3D,GAAE,GAAGW,GAAE,GAAGc,GAAE,GAAGR,GAAE,GAAG9H,EAAC,CAAC;AAAE,WAAOwH,EAAE,uBAAqBmE,MAAGrB,MAAI,UAAQqB,GAAE,qBAAqBjB,GAAEJ,CAAC,GAAEI,EAAE,GAAGM,EAAE,OAAO,iBAAgB,eAAeT,GAAErC,GAAE;AAAC,UAAIpB,GAAEuB;AAAE,UAAImC,KAAG1D,IAAEoB,EAAE,gBAAc,OAAK,SAAOpB,EAAE,wBAAwB;AAAE,OAAC0D,KAAG,QAAMA,EAAE,OAAKA,KAAG,QAAMA,EAAE,MAAM,kBAAiB,EAAG,WAAW,MAAM,MAAIX,IAAIxB,IAAEmC,KAAG,OAAK,SAAOA,EAAE,QAAM,OAAKnC,IAAEmC,KAAG,OAAK,SAAOA,EAAE,OAAMzK,CAAC;AAAA,IAAC,CAAC,GAAE2K;AAAA,EAAC;AAAC,GAAE3B,KAAG,CAAA5H,MAAGA,MAAIwJ,EAAE,OAAK,EAAC,kBAAiB,EAAC,IAAE,CAAA,GAAGyC,KAAG,CAAAjM,MAAG;AAAC,MAAG,EAAC,QAAO,EAAC,KAAIpB,EAAC,IAAE,CAAA,GAAG,YAAWH,GAAE,WAAUgC,EAAC,IAAET,GAAEjB,IAAEqI,GAAE3I,CAAC;AAAE,SAAM,CAACG,KAAG,CAACG,IAAE,CAAA,IAAG,EAAC,YAAW,IAAG,YAAW,EAAC,iBAAgB,EAAC,YAAWG,GAAEc,GAAE,UAAU,GAAE,sBAAqB2B,GAAG3B,GAAE,UAAU,EAAC,GAAE,sBAAqB,EAAC,YAAWd,GAAEc,GAAE,UAAU,EAAC,GAAE,2BAA0B,EAAC,YAAWd,GAAEc,GAAE,WAAW,EAAC,EAAC,GAAE,iCAAgC,CAAChB,GAAEF,OAAKE,MAAI,yBAAuBF,IAAE,CAAC,GAAGA,EAAE,IAAI,CAAAD,MAAG;AAAC,QAAII;AAAE,QAAIkK,KAAGlK,IAAEJ,EAAE,sBAAoB,OAAK,SAAOI,EAAE,IAAI,CAAAqH,OAAI,EAAC,GAAGA,GAAE,YAAW,gBAAe,EAAE;AAAE,WAAM,EAAC,GAAGzH,GAAE,mBAAkBsK,EAAC;AAAA,EAAC,CAAC,GAAE,GAAGrK,CAAC,IAAG,UAAU,4BAA4BE,GAAEF,CAAC,EAAE,KAAK,CAAAD,MAAG;AAAC,QAAIsK,IAAElC,GAAGjI,CAAC;AAAE,WAAOyB,KAAG,QAAMA,EAAE0I,CAAC,GAAEtK;AAAA,EAAC,CAAC,GAAE;AAAC,GAAEiO,KAAG,OAAM9M,MAAG;AAAC,MAAIpB,IAAE,MAAM,MAAMoB,CAAC;AAAE,SAAOpB,EAAE,WAAS,MAAI,QAAQ,OAAOA,CAAC,IAAE,MAAMA,EAAE,YAAW;AAAE,GAAEyN,KAAG,OAAMrM,GAAEpB,MAAI;AAAC,MAAIH,IAAE,MAAM,MAAMG,GAAE,EAAC,QAAO,QAAO,SAAQ,EAAC,gBAAe,2BAA0B,GAAE,MAAKoB,EAAC,CAAC;AAAE,MAAGvB,EAAE,WAAS,IAAI,QAAO,QAAQ,OAAOA,CAAC;AAAE,MAAIgC,IAAE,MAAMhC,EAAE,YAAW;AAAG,SAAO,IAAI,WAAWgC,CAAC;AAAC,GAAE0M,KAAG,CAACnN,GAAEpB,MAAI;AAAC,MAAIG,IAAE,EAAC,SAAQH,GAAE,mBAAkB,MAAIkO,GAAGnL,GAAG3B,GAAE,UAAU,CAAC,EAAE,MAAM,CAAAhB,MAAG;AAAC,QAAGA,aAAa,UAAS;AAAC,UAAIF,IAAE4K,GAAE1K,GAAE0H,GAAE,KAAI1G,CAAC;AAAE,aAAO,QAAQ,MAAM,cAAalB,KAAG,OAAK,SAAOA,EAAE,SAAQA,KAAG,OAAK,SAAOA,EAAE,OAAO,GAAEA,IAAE,QAAQ,OAAOA,CAAC,IAAE,QAAQ,OAAO,IAAI,MAAM,sCAAsC,CAAC;AAAA,IAAC;AAAC,WAAO,QAAQ,OAAOE,CAAC;AAAA,EAAC,CAAC,GAAE,eAAc,CAAAA,MAAGqN,GAAGrN,GAAEE,GAAEc,GAAE,UAAU,CAAC,EAAE,MAAM,CAAAlB,MAAG;AAAC,QAAGA,aAAa,UAAS;AAAC,UAAID,IAAE6K,GAAE5K,GAAE4H,GAAE,KAAI1G,CAAC;AAAE,aAAO,QAAQ,MAAM,cAAanB,KAAG,OAAK,SAAOA,EAAE,SAAQA,KAAG,OAAK,SAAOA,EAAE,OAAO,GAAEA,IAAE,QAAQ,OAAOA,CAAC,IAAE,QAAQ,OAAO,IAAI,MAAM,yCAAyC,CAAC;AAAA,IAAC;AAAC,WAAO,QAAQ,OAAOC,CAAC;AAAA,EAAC,CAAC,GAAE,sBAAqB8D,IAAE,WAAU,MAAI;AAAC,QAAI5D;AAAE,KAACA,IAAEgB,EAAE,cAAY,QAAMhB,EAAE,KAAKgB,GAAE4G,GAAE,QAAQ;AAAA,EAAC,EAAC;AAAE,MAAG5G,EAAE,kBAAkB,CAAAkE,GAAGnF,CAAC;AAAA,OAAM;AAAC,QAAIC,IAAE,EAAC,0BAAyB,YAAS;AAAC,UAAIH;AAAE,YAAMC,EAAC,IAAID,IAAEmB,EAAE,6BAA2B,QAAMnB,EAAE,KAAKmB,CAAC;AAAA,IAAC,GAAE,GAAGjB,EAAC,GAAED,IAAEgK,GAAG9J,CAAC;AAAA,EAAC;AAAC,GAAEE,KAAE,CAAC,EAAC,YAAWc,GAAE,QAAO,EAAC,KAAIpB,EAAC,IAAE,CAAA,GAAG,cAAaH,IAAEmL,GAAC,GAAEnJ,MAAI;AAAC,MAAI1B,IAAEqI,GAAEpH,CAAC;AAAE,SAAM,mBAAmBvB,EAAE,kBAAiB,EAAG,SAASmL,EAAC,IAAEnL,IAAEmL,EAAC,YAAYnJ,CAAC,IAAI1B,CAAC,UAAUH,CAAC;AAAE,GAAE+C,KAAG,CAAC,EAAC,YAAW3B,GAAE,QAAO,EAAC,KAAIpB,EAAC,IAAE,CAAA,GAAG,cAAaH,IAAEmL,GAAC,GAAEnJ,MAAI;AAAC,MAAI1B,IAAEqI,GAAEpH,CAAC;AAAE,SAAM,mBAAmBvB,EAAE,kBAAiB,EAAG,SAASmL,EAAC,IAAEnL,IAAEmL,EAAC,YAAYnJ,CAAC,IAAI1B,CAAC,UAAUH,CAAC;AAAE,GAAE0D,KAAG,CAAC,EAAC,YAAWtC,GAAE,KAAIpB,GAAE,cAAaH,EAAC,MAAI;AAAC,MAAGuB,EAAE,QAAM;AAAG,MAAG,OAAOpB,KAAG,SAAS,QAAM;AAAG,MAAI6B,IAAE,UAAQ,OAAK,SAAO,OAAO,SAAS,MAAK1B,IAAE,IAAI,IAAIH,GAAE6B,CAAC,EAAE,SAAS,kBAAiB;AAAG,SAAO1B,EAAE,SAAS6K,EAAC,KAAG,CAAC,CAACnL,KAAGM,EAAE,SAASN,EAAE,kBAAiB,CAAE;AAAC,GAAE6O,KAAG,CAACtN,GAAEpB,MAAI;AAAC,MAAIH,IAAE,CAAA;AAAG,SAAOA,EAAE,uBAAqBuB,EAAE,0BAAyBvB,EAAE,wBAAsB,QAAMA,EAAE,qBAAmB+L,IAAE/L,EAAE,uBAAqB,MAAIA,EAAE,qBAAmBkJ,IAAGlJ;AAAC,GAAE8O,KAAG,CAACvN,GAAEpB,GAAEH,MAAI;AAAC,MAAI0K;AAAE,MAAG,EAAC,QAAO1I,GAAE,iBAAgB1B,GAAE,YAAW,IAAE4J,IAAG,mBAAkB7J,IAAE,CAAA,EAAE,IAAEkB,GAAEnB,IAAEyD,GAAGtC,CAAC;AAAE,MAAG,CAACjB,MAAI0B,KAAG5B,IAAG;AAAC,QAAG,EAAC,gBAAeI,GAAE,oBAAmBqH,GAAE,uBAAsBC,GAAE,wBAAuBb,GAAE,OAAMyB,GAAE,gBAAeR,EAAC,IAAE3G,GAAEoS,IAAE,EAAC,GAAGpS,EAAE,UAAS,eAAcmJ,IAAEnJ,KAAG,OAAK,SAAOA,EAAE,aAAW,OAAK,SAAOmJ,EAAE,gBAAc,OAAM,GAAE9C,IAAE,CAAAkD,MAAG,OAAOA,EAAE,qBAAmB,WAAS,KAAG,OAAOvJ,EAAE,mBAAiB,aAAWA,EAAE,gBAAgBuJ,CAAC,IAAEA;AAAE,MAAE,QAAQ3K,GAAE,EAAC,OAAMuI,GAAE,wBAAuBzB,GAAE,OAAMjH,GAAE,KAAIA,IAAEoL,IAAE,QAAO,wBAAuB,IAAG,iBAAgBxD,GAAE,gBAAeM,GAAE,GAAG7H,GAAE,MAAK,EAAC,GAAG2B,IAAE,EAAC,SAAQA,EAAC,IAAE,CAAA,GAAG,sBAAqB6F,GAAE,iBAAgBA,GAAE,yBAAwBC,GAAE,kBAAiBtH,GAAE,GAAGmT,EAAC,EAAC,CAAC;AAAA,EAAC;AAAC,GAAE5E,KAAG,CAACxN,GAAEpB,GAAEH,MAAI;AAAC,MAAI6H,GAAEC;AAAE,MAAI,IAAErF,GAAGlB,GAAEpB,CAAC,GAAE,EAAC,KAAIG,GAAE,cAAaC,IAAE4K,GAAC,IAAE5J,GAAElB,IAAE,MAAI;AAAC,IAAAF,EAAE,SAAOoB,EAAE,sBAAoB,CAACsL,GAAG1M,GAAEH,CAAC,MAAIiB,GAAGd,GAAEH,CAAC,IAAEG,EAAE,cAAYA,EAAE,SAAS,IAAIA,EAAE,SAAS,SAAO,CAAC,IAAEA,EAAE,cAAc,IAAI,MAAM,OAAO,CAAC;AAAA,EAAE,GAAEC,GAAEsK,GAAElK,IAAE,MAAI;AAAC,QAAIyG,IAAEiF,GAAG/L,CAAC,GAAEuI,GAAER;AAAE,IAAAjB,EAAE,SAAO,MAAIyB,IAAEzB,EAAE,MAAM,CAAC,GAAEiB,IAAEjB,EAAE,IAAI,CAAC,KAAIyD,MAAIxC,KAAG9H,MAAIsI,MAAIvI,EAAE,cAAc,IAAI,YAAY,kBAAiB,EAAC,UAAS,GAAE,CAAC,CAAC,GAAEC,IAAEsI,GAAEgC,IAAExC;AAAA,EAAC;AAAE,MAAGnB,GAAE5G,GAAE,kBAAiBK,CAAC,GAAEL,KAAG,GAAE;AAAC,QAAI8G,IAAEzC,GAAEjD,CAAC;AAAE,QAAG,OAAOjB,KAAG,UAAS;AAAC,UAAGA,EAAE,SAAS,MAAM,KAAGA,EAAE,SAASC,CAAC,GAAE;AAAC,YAAIoT,IAAEvN,GAAG9F,CAAC,GAAEsH,IAAE,IAAI,IAAI,kBAAkBrH,CAAC,IAAIoT,CAAC,gBAAgB;AAAE1J,QAAAA,GAAGrC,EAAE,SAAQ,GAAGzH,CAAC;AAAA,MAAC;AAAC,UAAIuI,IAAE,MAAI;AAAC,YAAGuG,GAAG9O,CAAC,MAAI4K,EAAE,QAAM,OAAO,SAAS5K,EAAE,QAAQ,EAAE;AAAO,YAAIwT,IAAE,YAAYnT,GAAE,GAAG;AAAE,QAAAL,EAAE,iBAAiB,YAAW,MAAI;AAAC,wBAAcwT,CAAC;AAAA,QAAC,GAAE,EAAC,MAAK,GAAE,CAAC,GAAE5M,GAAE5G,GAAE,kBAAiB,MAAI;AAAC,iBAAO,SAASA,EAAE,QAAQ,KAAG,cAAcwT,CAAC;AAAA,QAAC,CAAC;AAAA,MAAC,GAAEzL,IAAE,YAASc,GAAG1I,GAAEH,GAAE8G,CAAC,EAAE,KAAKyB,CAAC,EAAE,MAAM,CAAAiL,MAAG;AAAC,YAAGA,aAAa,UAAS;AAAC,cAAI/L,IAAEqD,GAAE0I,GAAE1L,GAAE,OAAM1G,CAAC;AAAE,cAAGqG,GAAE;AAACzD,YAAAA,GAAEhE,GAAEyH,CAAC;AAAE;AAAA,UAAM;AAAA,QAAC;AAAA,MAAwB,CAAC;AAAE,UAAGzH,EAAE,YAAU,QAAO;AAAC,YAAIwT,IAAE,MAAI;AAAC,UAAAzL,EAAC,GAAG/H,EAAE,oBAAoB,kBAAiByH,CAAC;AAAA,QAAC,GAAEA,IAAE,MAAI;AAAC,UAAAM,EAAC,GAAG/H,EAAE,oBAAoB,QAAOwT,CAAC;AAAA,QAAC;AAAE5M,QAAAA,GAAE5G,GAAE,QAAOwT,GAAE,EAAC,MAAK,GAAE,CAAC,GAAE5M,GAAE5G,GAAE,kBAAiByH,GAAE,EAAC,MAAK,GAAE,CAAC;AAAA,MAAC,MAAM,CAAAM,EAAC;AAAG,OAACL,IAAEtG,EAAE,WAAS,QAAMsG,EAAE,MAAI6G,GAAGnN,GAAEpB,CAAC,IAAE4G,GAAE5G,GAAE,aAAY,MAAI;AAAC,YAAIwT,IAAE3L,EAAE,yEAAyE,GAAEJ,IAAE,IAAI4C,EAAEmJ,GAAEnJ,EAAE,qBAAoB,EAAE;AAAE,QAAA5C,EAAE,gBAAcK,GAAE,KAAIL,EAAE,UAAQoD,EAAE,yBAAwB7G,GAAEhE,GAAEyH,CAAC;AAAA,MAAC,GAAE,EAAC,MAAK,GAAE,CAAC,GAAEzH,EAAE,aAAa,OAAMG,CAAC,GAAEiB,EAAE,gBAAcuG,IAAE+C,GAAE,IAAI1K,CAAC,MAAI,OAAK2H,IAAE,CAAA,GAAI,YAAUvG,EAAE,WAAUpB,EAAE,iBAAiB,kBAAiBuD,IAAG,EAAC,MAAK,GAAE,CAAC;AAAA,IAAE,MAAM,CAAAvD,EAAE,gBAAgB,KAAK;AAAE,IAAAA,EAAE,iBAAiB,SAAQ4F,EAAE,GAAE5F,EAAE,iBAAiB,SAAQsS,EAAE,GAAEtS,EAAE,iBAAiB,WAAU,MAAI;AAAC,MAAAA,EAAE,iBAAiB,6BAA6B,EAAE,QAAQ,CAAA+H,MAAG;AAAC,QAAAA,EAAE,OAAM;AAAA,MAAE,CAAC;AAAA,IAAC,GAAE,EAAC,MAAK,GAAE,CAAC,GAAEnB,GAAE5G,GAAE,SAAQE,CAAC,GAAE0G,GAAE5G,GAAE,UAASE,CAAC,GAAE0G,GAAE5G,GAAE,QAAO,MAAI;AAAC,MAAAA,EAAE,SAAO8B,GAAG9B,EAAE,aAAYA,EAAE,QAAQ,MAAIA,EAAE,cAAYA,EAAE,SAAS,SAAOA,EAAE,SAAS,MAAM,CAAC,IAAE;AAAA,IAAE,CAAC;AAAA,EAAC,MAAM,CAAAH,KAAGM,KAAGN,EAAE,KAAKoL,EAAE,OAAO,cAAa,CAACnE,GAAEyB,MAAI;AAAC,IAAAmD,GAAGnD,EAAE,SAAQvI,GAAEH,CAAC,GAAEQ,EAAC,GAAGyO,GAAG9O,CAAC,MAAI4K,EAAE,QAAM,CAAC,OAAO,SAAS5K,EAAE,QAAQ,MAAIH,EAAE,GAAGoL,EAAE,OAAO,eAAc5K,CAAC,GAAEuG,GAAE5G,GAAE,kBAAiB,MAAI;AAAC,aAAO,SAASA,EAAE,QAAQ,KAAGH,EAAE,IAAIoL,EAAE,OAAO,gBAAe5K,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,CAAC,GAAER,EAAE,GAAGoL,EAAE,OAAO,OAAM,CAACnE,GAAEyB,MAAI;AAAC,QAAIiL,GAAE/L;AAAE,QAAIM,IAAEiH,GAAGzG,GAAEnH,CAAC;AAAE,QAAG2G,EAAE,YAAU8C,EAAE,mBAAkB;AAAC,UAAIL,KAAGgJ,IAAE9I,GAAE,IAAI1K,CAAC,MAAI,OAAKwT,IAAE,CAAA,GAAGrL,KAAGV,IAAE+C,EAAE,eAAa,OAAK/C,IAAE;AAAE,UAAGU,IAAE,GAAE;AAAC,YAAIsC,IAAEtC,MAAI,IAAE,MAAI,KAAIpB,IAAE,IAAIsD,EAAE,eAAeI,IAAE,GAAG,eAAc1C,EAAE,MAAKA,EAAE,KAAK;AAAE,eAAO,OAAOhB,GAAEgB,CAAC,GAAE/D,GAAEhE,GAAE+G,CAAC;AAAE,YAAIuB,IAAE,WAAW,MAAI;AAAC,UAAAkC,EAAE,aAAWrC,IAAE,GAAEI,EAAE,YAAU,uBAAqBA,EAAE,OAAK1I,EAAE,WAAW0I,EAAE,GAAG;AAAA,QAAC,GAAEkC,CAAC;AAAE,QAAAzK,EAAE,iBAAiB,YAAW,MAAI,aAAasI,CAAC,GAAE,EAAC,MAAK,GAAE,CAAC;AAAE;AAAA,MAAM,OAAK;AAAC,QAAAkC,EAAE,aAAW;AAAE,YAAIC,IAAE,IAAIJ,EAAE,oIAAmItC,EAAE,MAAKA,EAAE,KAAK;AAAE,eAAO,OAAO0C,GAAE1C,CAAC,GAAE/D,GAAEhE,GAAEyK,CAAC;AAAE;AAAA,MAAM;AAAA,IAAC;AAACzG,IAAAA,GAAEhE,GAAE+H,CAAC;AAAA,EAAC,CAAC,GAAElI,EAAE,GAAGoL,EAAE,OAAO,iBAAgB,MAAI;AAAC,QAAInE,IAAE4D,GAAE,IAAI1K,CAAC;AAAE,IAAA8G,KAAGA,EAAE,UAAQA,EAAE,QAAM,MAAKA,EAAE,aAAW,GAAE9G,EAAE,cAAc,IAAI,MAAM,SAAS,CAAC,GAAEA,EAAE,cAAc,IAAI,MAAM,WAAW,CAAC;AAAA,EAAE,CAAC,GAAEA,EAAE,iBAAiB,SAAQsS,EAAE,GAAE1L,GAAE5G,GAAE,WAAUE,CAAC,GAAE8E,GAAG5D,GAAEvB,CAAC,GAAE8L,GAAG3L,GAAEH,CAAC,GAAEA,EAAE,YAAYG,CAAC,KAAG,QAAQ,MAAM,4JAA4J;AAAC;AAAE,SAASuD,GAAGnC,GAAE;AAAC,MAAIS;AAAE,MAAI7B,IAAEoB,EAAE,QAAOvB,KAAGgC,IAAE6I,GAAE,IAAI1K,CAAC,MAAI,OAAK,SAAO6B,EAAE;AAAU,MAAGhC,KAAG2P,GAAGxP,EAAE,UAASA,EAAE,UAASH,CAAC,GAAE;AAAC,QAAIM,IAAEH,EAAE,YAAU;AAAO,IAAAG,MAAIH,EAAE,UAAQ,SAAQA,EAAE,cAAYH,GAAEM,MAAIH,EAAE,UAAQ;AAAA,EAAO;AAAC;AAAC,eAAe4F,GAAGxE,GAAE;AAAC,MAAG,CAACA,EAAE,UAAU;AAAO,EAAAA,EAAE,yBAAwB;AAAG,MAAIpB,IAAEoB,EAAE;AAAO,MAAG,EAAEpB,KAAG,QAAMA,EAAE,OAAO;AAAO,MAAG,EAAC,SAAQH,GAAE,MAAKgC,EAAC,IAAE7B,EAAE,OAAMG,IAAE,IAAIkK,EAAExK,GAAEgC,CAAC;AAAE,MAAG7B,EAAE,OAAK6B,MAAIwI,EAAE,+BAA6BrK,EAAE,eAAa,iBAAiB,cAAa;AAAC,eAAW,MAAI;AAAC,UAAIE;AAAE,UAAI,KAAGA,IAAE4M,GAAG9M,CAAC,MAAI,OAAKE,IAAEF,EAAE;AAAM,OAAC,KAAG,OAAK,SAAO,EAAE,UAAQqK,EAAE,+BAA6BrG,GAAEhE,GAAEG,CAAC;AAAA,IAAC,GAAE,GAAG;AAAE;AAAA,EAAM;AAAC,MAAGH,EAAE,QAAM6B,MAAIwI,EAAE,oBAAkBxI,MAAI,QAAQ,KAAG;AAAC,QAAG,EAAC,QAAOzB,EAAC,IAAE,MAAM,MAAMJ,EAAE,GAAG;AAAE,IAAAG,EAAE,OAAK,EAAC,UAAS,EAAC,MAAKC,EAAC,EAAC;AAAA,EAAC,QAAM;AAAA,EAAC;AAAC4D,EAAAA,GAAEhE,GAAEG,CAAC;AAAC;AAAC,SAAS6D,GAAE5C,GAAEpB,GAAE;AAAC,MAAIH;AAAE,EAAAG,EAAE,YAAUH,IAAE6K,GAAE,IAAItJ,CAAC,MAAI,OAAKvB,IAAE,CAAA,GAAI,QAAMG,GAAEoB,EAAE,cAAc,IAAI,YAAY,SAAQ,EAAC,QAAOpB,EAAC,CAAC,CAAC;AAAE;AAAC,SAASsS,GAAGlR,GAAE;AAAC,MAAIS,GAAE1B;AAAE,MAAG,EAAEiB,aAAa,gBAAc,EAAEA,EAAE,kBAAkBiJ,GAAG;AAAO,MAAIrK,IAAEoB,EAAE,QAAO,IAAEA,EAAE;AAAO,GAAC,KAAG,CAAC,EAAE,YAAUS,IAAE6I,GAAE,IAAI1K,CAAC,MAAI,OAAK6B,IAAE,CAAA,GAAI,QAAM,IAAG1B,IAAEH,EAAE,QAAM,QAAMG,EAAE,KAAK,SAAQ,EAAC,mBAAkB,EAAE,MAAK,sBAAqB,EAAE,SAAQ,sBAAqB,EAAE,QAAO,CAAC;AAAE;AAAC,IAAI6O,KAAG,CAAC5N,GAAEpB,MAAI;AAAC,MAAIuK,GAAElK,GAAEqH;AAAE,EAACtG,EAAE,QAAwE,QAAQ,MAAM,8BAA6BA,CAAC,IAA9GpB,EAAE,SAAO,QAAQ,KAAK,0CAAyCoB,CAAC;AAAgD,MAAI,IAAE,EAAC,CAAC6J,EAAE,WAAW,aAAa,GAAEZ,EAAE,mBAAkB,CAACY,EAAE,WAAW,WAAW,GAAEZ,EAAE,kBAAiB,CAACY,EAAE,WAAW,gBAAgB,GAAEZ,EAAE,oBAAmB,GAAElK,IAAE,CAAAwH,MAAG,CAACsD,EAAE,aAAa,mCAAkCA,EAAE,aAAa,4CAA4C,EAAE,SAAStD,EAAE,OAAO,IAAE0C,EAAE,oBAAkB,EAAE1C,EAAE,IAAI,GAAEvH,IAAE,CAAAuH,MAAG;AAAC,QAAGA,EAAE,SAAOsD,EAAE,WAAW,iBAAiB,QAAOnD,GAAE;AAAI,QAAGH,EAAE,SAAOsD,EAAE,WAAW,cAAc,QAAOnD,GAAE;AAAA,EAAK,GAAE5H,GAAED,IAAEE,EAAEiB,CAAC;AAAE,MAAGnB,MAAIoK,EAAE,qBAAmBjJ,EAAE,UAAS;AAAC,QAAIuG,KAAG4C,IAAEnK,EAAEgB,CAAC,MAAI,OAAKmJ,IAAEzC,GAAE;AAAM,IAAA5H,KAAGG,IAAEyK,GAAE1J,EAAE,UAASuG,GAAE3H,GAAEoB,EAAE,KAAK,MAAI,OAAKf,IAAE,IAAIgK,EAAE,IAAGpK,GAAEmB,EAAE,KAAK;AAAA,EAAC,WAASnB,MAAIoK,EAAE,oBAAoB,KAAGjJ,EAAE,YAAU6J,EAAE,aAAa,kCAAiC;AAAC,QAAItD,IAAEE,EAAE,yEAAyE;AAAE,IAAA3H,IAAE,IAAImK,EAAE1C,GAAE0C,EAAE,qBAAoBjJ,EAAE,KAAK,GAAElB,EAAE,gBAAc4H,GAAE,KAAI5H,EAAE,UAAQ2K,EAAE;AAAA,EAAuB,WAASzJ,EAAE,YAAU6J,EAAE,aAAa,sBAAqB;AAAC,QAAItD,IAAEE,EAAE,wHAAwH;AAAE,IAAA3H,IAAE,IAAImK,EAAE1C,GAAE0C,EAAE,qBAAoBjJ,EAAE,KAAK,GAAElB,EAAE,gBAAc4H,GAAE,KAAI5H,EAAE,UAAQ2K,EAAE;AAAA,EAAgC,WAASzJ,EAAE,YAAU6J,EAAE,aAAa,uBAAsB;AAAC,QAAItD,IAAEE,EAAE,2GAA2G;AAAE,IAAA3H,IAAE,IAAImK,EAAE1C,GAAE0C,EAAE,qBAAoB,EAAE,GAAEnK,EAAE,gBAAc4H,GAAE,KAAI5H,EAAE,UAAQ2K,EAAE;AAAA,EAAiC,WAASzJ,EAAE,YAAU6J,EAAE,aAAa,kCAAiC;AAAC,QAAItD,IAAEE,EAAE,+FAA+F;AAAE,IAAA3H,IAAE,IAAImK,EAAE1C,GAAE0C,EAAE,qBAAoBjJ,EAAE,KAAK,GAAElB,EAAE,gBAAc4H,GAAE,KAAI5H,EAAE,UAAQ2K,EAAE;AAAA,EAA+B,WAASzJ,EAAE,YAAU6J,EAAE,aAAa,6CAA4C;AAAC,QAAItD,IAAEE,EAAE,oHAAoH;AAAE,IAAA3H,IAAE,IAAImK,EAAE1C,GAAE0C,EAAE,qBAAoBjJ,EAAE,KAAK,GAAElB,EAAE,gBAAc4H,GAAE,KAAI5H,EAAE,UAAQ2K,EAAE;AAAA,EAAmC,WAASzJ,EAAE,YAAU6J,EAAE,aAAa,kCAAiC;AAAC,QAAItD,IAAEE,EAAE,gJAAgJ;AAAE,IAAA3H,IAAE,IAAImK,EAAE1C,GAAE0C,EAAE,qBAAoBjJ,EAAE,KAAK,GAAElB,EAAE,gBAAc4H,GAAE,KAAI5H,EAAE,UAAQ2K,EAAE;AAAA,EAAmB,WAASzJ,EAAE,YAAU6J,EAAE,aAAa,qCAAoC;AAAC,QAAItD,IAAEE,EAAE,+GAA+G;AAAE,IAAA3H,IAAE,IAAImK,EAAE1C,GAAE0C,EAAE,qBAAoB,EAAE,GAAEnK,EAAE,gBAAc4H,GAAE,KAAI5H,EAAE,UAAQ2K,EAAE;AAAA,EAA2B,MAAM,CAAA3K,IAAE,IAAImK,EAAEjJ,EAAE,MAAM,SAAQiJ,EAAE,qBAAoBjJ,EAAE,KAAK,GAAElB,EAAE,gBAAc4H,GAAE,KAAI5H,EAAE,UAAQ2K,EAAE;AAAA,MAAqB,CAAA3K,IAAE,IAAImK,EAAE,IAAGpK,GAAEmB,EAAE,KAAK;AAAE,SAAOlB,EAAE,YAAUA,EAAE,UAAQ,GAAGkB,EAAE,MAAI,QAAQA,EAAE,GAAG;AAAA,IACr+lB,EAAE,GAAGA,EAAE,aAAWA,EAAE,SAAS,QAAMA,EAAE,SAAS,QAAM,aAAaA,EAAE,SAAS,IAAI,KAAKA,EAAE,SAAS,IAAI;AAAA,IACpG,EAAE,GAAGA,EAAE,SAAO,mBAAmBA,EAAE,MAAM;AAAA,IACzC,EAAE,GAAGA,EAAE,QAAM,UAAUA,EAAE,KAAK;AAAA,IAC9B,EAAE,GAAGA,EAAE,SAAO,6BAA6BA,EAAE,MAAM;AAAA,IACnD,EAAE,GAAGA,EAAE,SAAO,kBAAkBA,EAAE,MAAM;AAAA,IACxC,EAAE,GAAGA,EAAE,QAAM,UAAUA,EAAE,KAAK;AAAA,IAC9B,EAAE,GAAGA,EAAE,QAAM,UAAUA,EAAE,KAAK;AAAA,IAC9B,EAAE,GAAGA,EAAE,MAAI,mBAAmBsG,IAAEtG,EAAE,QAAM,OAAK,SAAOsG,EAAE,OAAO;AAAA,IAC7D,EAAE,KAAIxH,EAAE,OAAKkB,GAAElB;AAAC,GCZdyK,KAAE,CAAA9I,MAAG;AAAC,QAAM,UAAUA,CAAC;AAAC,GAAM+E,KAAE,CAAC/E,GAAE3B,GAAEkB,MAAIlB,EAAE,IAAI2B,CAAC,KAAG8I,GAAE,YAAUvJ,CAAC,GAAMhB,KAAE,CAACyB,GAAE3B,GAAEkB,OAAKwF,GAAE/E,GAAE3B,GAAE,yBAAyB,GAAEkB,IAAEA,EAAE,KAAKS,CAAC,IAAE3B,EAAE,IAAI2B,CAAC,IAAGxB,KAAE,CAACwB,GAAE3B,GAAEkB,MAAIlB,EAAE,IAAI2B,CAAC,IAAE8I,GAAE,mDAAmD,IAAEzK,aAAa,UAAQA,EAAE,IAAI2B,CAAC,IAAE3B,EAAE,IAAI2B,GAAET,CAAC,GAAEmH,KAAE,CAAC1G,GAAE3B,GAAEkB,GAAEnB,OAAK2G,GAAE/E,GAAE3B,GAAE,wBAAwB,GAAgBA,EAAE,IAAI2B,GAAET,CAAC,GAAEA,IAAGoJ,KAAE,CAAC3I,GAAE3B,GAAEkB,OAAKwF,GAAE/E,GAAE3B,GAAE,uBAAuB,GAAEkB,IAAmhBT,KAAE,MAAI;AAAC,MAAG;AAAC,WAAM;AAAA,EAAQ,QAAM;AAAA,EAAC;AAAC,SAAM;AAAS,GAAEL,KAAEK,GAAC,GAAG+J,KAAE,MAAIpK,IAA6EwH,KAAE;AAAA,mvDACguB9H,IAAE,EAAC,0BAAyB,4BAA2B,eAAc,iBAAgB,OAAM,SAAQ,kBAAiB,oBAAmB,iBAAgB,mBAAkB,sBAAqB,wBAAuB,WAAU,aAAY,gBAAe,kBAAiB,SAAQ,WAAU,gBAAe,kBAAiB,gBAAe,kBAAiB,qBAAoB,uBAAsB,iBAAgB,mBAAkB,oBAAmB,sBAAqB,kBAAiB,oBAAmB,kBAAiB,oBAAmB,gBAAe,kBAAiB,cAAa,gBAAe,aAAY,eAAc,sBAAqB,wBAAuB,yBAAwB,2BAA0B,kBAAiB,oBAAmB,aAAY,eAAc,iBAAgB,mBAAkB,YAAW,cAAa,aAAY,eAAc,oBAAmB,sBAAqB,kBAAiB,oBAAmB,MAAK,QAAO,MAAK,QAAO,8BAA6B,+BAA8B,GAAEsS,KAAG,OAAO,OAAOtS,CAAC,GAAEqE,KAAEqG,GAAC,GAAG5K,KAAE,aAAY2K,IAAEH,IAAE3C,IAAEI,IAAEwB,IAAE0B,IAAEjH,IAAEwP,IAAEnJ,IAAEjC,IAAEjI,IAAE6K,IAAEtD,IAAES,IAAEZ,KAAE,cAAcqD,GAAC;AAAA,EAAC,cAAa;AAAC,aAAQvK,GAAE,MAAKF,EAAC,GAAEE,GAAE,MAAKoK,EAAC,GAAEpK,GAAE,MAAKiK,EAAC,GAAEjK,GAAE,MAAKsH,IAAE,CAAA,CAAE,GAAEtH,GAAE,MAAK0H,IAAE,CAAA,CAAE,GAAE1H,GAAE,MAAKkJ,EAAC,GAAElJ,GAAE,MAAK4K,EAAC,GAAE5K,GAAE,MAAK2D,EAAC,GAAE3D,GAAE,MAAKmT,EAAC,GAAEnT,GAAE,MAAKgK,IAAE,EAAE,GAAEhK,GAAE,MAAK+H,IAAE,OAAG;AAAC,UAAIX;AAAE,UAAIxH,IAAEiL,GAAE,KAAK,QAAQ,GAAE,KAAGzD,IAAE,KAAK,aAAW,OAAKA,IAAE,CAAA;AAAG,WAAK,WAAS,EAAC,GAAGxH,GAAE,GAAG,EAAC,IAAGA,KAAG,OAAK,SAAOA,EAAE,wBAAwB,OAAK,oBAAkBsI,GAAE,MAAK8B,IAAE,SAAS,GAAE,KAAK,WAAU;AAAA,IAAG,CAAC,GAAEhK,GAAE,MAAKqH,EAAC,GAAEa,GAAE,MAAK+B,IAAEhD,GAAC,CAAE;AAAA,EAAC;AAAA,EAAC,WAAW,OAAM;AAAC,WAAOxH;AAAAA,EAAC;AAAA,EAAC,WAAW,UAAS;AAAC,WAAOuE;AAAAA,EAAC;AAAA,EAAC,WAAW,qBAAoB;AAAC,QAAI;AAAE,WAAM,CAAC,GAAGiO,IAAG,IAAI,IAAE1H,GAAE,uBAAqB,OAAK,IAAE,CAAA,CAAE;AAAA,EAAC;AAAA,EAAC,OAAO,YAAY,GAAE;AAAC,WAAM,CAAC,KAAG,MAAI,UAAQ,KAAG,MAAI,YAAU9C,KAAE,yBAAyB,CAAC;AAAA,EAAM;AAAA,EAAC,OAAO,gBAAgB,IAAE,CAAA,GAAG;AAAC,QAAI;AAAE,WAAM;AAAA,QACz8G8C,GAAE,gBAAgB,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAyBlB,KAAK,aAAa,IAAE,EAAE5K,EAAE,IAAI,MAAI,OAAK,IAAE,EAAE,CAAC;AAAA;AAAA;AAAA,EAE/C;AAAA,EAAC,IAAI,aAAY;AAAC,QAAI;AAAE,YAAO,IAAE,KAAK,aAAaA,EAAE,WAAW,MAAI,OAAK,IAAE;AAAA,EAAM;AAAA,EAAC,IAAI,WAAW,GAAE;AAAC,UAAI,KAAK,eAAa,IAAE6H,GAAE,SAAS,CAAC,IAAE,KAAK,aAAa7H,EAAE,aAAY,CAAC,IAAE,QAAQ,KAAK,gDAAgD6H,GAAE,MAAM,EAAE,IAAE,KAAK,gBAAgB7H,EAAE,WAAW;AAAA,EAAE;AAAA,EAAC,IAAI,iBAAgB;AAAC,WAAO,KAAK,aAAaA,EAAE,gBAAgB,IAAE,CAAC,KAAK,aAAaA,EAAE,gBAAgB,IAAEI,GAAE,MAAKkK,EAAC;AAAA,EAAC;AAAA,EAAC,IAAI,eAAe,GAAE;AAAC,SAAG,KAAK,mBAAiB,KAAG,OAAK,KAAK,gBAAgBtK,EAAE,gBAAgB,IAAE,KAAK,aAAaA,EAAE,kBAAiB,GAAG,CAAC,CAAC,EAAE;AAAA,EAAE;AAAA,EAAC,IAAI,qBAAoB;AAAC,QAAI;AAAE,YAAO,IAAEI,GAAE,MAAK4D,EAAC,MAAI,OAAK,IAAElE;AAAAA,EAAC;AAAA,EAAC,IAAI,mBAAmB,GAAE;AAACyI,IAAAA,GAAE,MAAKvE,IAAE,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,wBAAuB;AAAC,QAAI;AAAE,YAAO,IAAE5D,GAAE,MAAK6K,EAAC,MAAI,OAAK,IAAE5G;AAAAA,EAAC;AAAA,EAAC,IAAI,sBAAsB,GAAE;AAACkE,IAAAA,GAAE,MAAK0C,IAAE,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,QAAI;AAAE,YAAO,IAAE7K,GAAE,MAAKD,IAAE6K,EAAC,MAAI,OAAK,SAAO,EAAE;AAAA,EAAM;AAAA,EAAC,IAAI,MAAK;AAAC,QAAI;AAAE,YAAO,IAAE,KAAK,aAAW,OAAK,SAAO,EAAE;AAAA,EAAG;AAAA,EAAC,IAAI,QAAO;AAAC,QAAI;AAAE,YAAO,IAAE+E,GAAE,KAAK,QAAQ,MAAI,OAAK,IAAE;AAAA,EAAI;AAAA,EAAC,IAAI,kBAAiB;AAAC,WAAO3P,GAAE,MAAKoT,EAAC;AAAA,EAAC;AAAA,EAAC,IAAI,gBAAgB,GAAE;AAACjL,IAAAA,GAAE,MAAKiL,IAAE,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,MAAK;AAAC,WAAO,KAAK,aAAa,KAAK;AAAA,EAAC;AAAA,EAAC,IAAI,IAAI,GAAE;AAAC,UAAI,KAAK,QAAM,KAAG,OAAK,KAAK,gBAAgB,KAAK,IAAE,KAAK,aAAa,OAAM,CAAC;AAAA,EAAE;AAAA,EAAC,IAAI,OAAM;AAAC,QAAI;AAAE,YAAO,IAAE,KAAK,aAAaxT,EAAE,IAAI,MAAI,OAAK,IAAE;AAAA,EAAM;AAAA,EAAC,IAAI,KAAK,GAAE;AAAC,UAAI,KAAK,SAAO,IAAE,KAAK,aAAaA,EAAE,MAAK,CAAC,IAAE,KAAK,gBAAgBA,EAAE,IAAI;AAAA,EAAE;AAAA,EAAC,IAAI,UAAS;AAAC,QAAI,IAAE,KAAK,aAAa,SAAS;AAAE,WAAO,MAAI,KAAG,SAAO,CAAC,QAAO,YAAW,MAAM,EAAE,SAAS,CAAC,IAAE,IAAE,MAAM;AAAA,EAAO;AAAA,EAAC,IAAI,QAAQ,GAAE;AAAC,SAAG,KAAK,aAAa,SAAS,MAAI,CAAC,IAAG,QAAO,YAAW,MAAM,EAAE,SAAS,CAAC,IAAE,KAAK,aAAa,WAAU,CAAC,IAAE,KAAK,gBAAgB,SAAS;AAAA,EAAE;AAAA,EAAC,IAAI,QAAO;AAAC,WAAO,KAAK,aAAaA,EAAE,KAAK,KAAG;AAAA,EAAI;AAAA,EAAC,IAAI,MAAM,GAAE;AAAC,UAAI,KAAK,UAAQ,IAAE,KAAK,aAAaA,EAAE,OAAM,EAAE,IAAE,KAAK,gBAAgBA,EAAE,KAAK;AAAA,EAAE;AAAA,EAAC,IAAI,kBAAiB;AAAC,WAAO,KAAK,aAAaA,EAAE,gBAAgB;AAAA,EAAC;AAAA,EAAC,IAAI,gBAAgB,GAAE;AAAC,UAAI,KAAK,mBAAiB,KAAK,gBAAgBA,EAAE,kBAAiB,CAAC,CAAC,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,iBAAgB;AAAC,WAAO,KAAK,aAAaA,EAAE,eAAe;AAAA,EAAC;AAAA,EAAC,IAAI,eAAe,GAAE;AAAC,UAAI,KAAK,mBAAiB,IAAE,KAAK,aAAaA,EAAE,iBAAgB,EAAE,IAAE,KAAK,gBAAgBA,EAAE,eAAe;AAAA,EAAE;AAAA,EAAC,IAAI,qBAAoB;AAAC,WAAO,KAAK,aAAaA,EAAE,oBAAoB;AAAA,EAAC;AAAA,EAAC,IAAI,mBAAmB,GAAE;AAAC,UAAI,KAAK,uBAAqB,IAAE,KAAK,aAAaA,EAAE,sBAAqB,EAAE,IAAE,KAAK,gBAAgBA,EAAE,oBAAoB;AAAA,EAAE;AAAA,EAAC,IAAI,YAAW;AAAC,QAAI,IAAE,KAAK,aAAaA,EAAE,UAAU;AAAE,QAAG,KAAG,KAAK;AAAO,QAAI,IAAE,CAAC;AAAE,WAAO,OAAO,MAAM,CAAC,IAAE,SAAO;AAAA,EAAC;AAAA,EAAC,IAAI,UAAU,GAAE;AAAC,UAAI,KAAK,cAAY,KAAG,OAAK,KAAK,gBAAgBA,EAAE,UAAU,IAAE,KAAK,aAAaA,EAAE,YAAW,GAAG,CAAC,EAAE;AAAA,EAAE;AAAA,EAAC,IAAI,aAAY;AAAC,QAAI;AAAE,WAAO,KAAK,aAAaA,EAAE,WAAW,IAAE,KAAK,aAAaA,EAAE,WAAW,KAAG,IAAE4B,GAAG,KAAK,GAAG,MAAI,OAAK,IAAE;AAAA,EAAM;AAAA,EAAC,IAAI,WAAW,GAAE;AAAC,UAAI,KAAK,eAAa,IAAE,KAAK,aAAa5B,EAAE,aAAY,CAAC,IAAE,KAAK,gBAAgBA,EAAE,WAAW;AAAA,EAAE;AAAA,EAAC,IAAI,gBAAe;AAAC,QAAI;AAAE,YAAO,IAAE,KAAK,aAAaA,EAAE,cAAc,MAAI,OAAK,IAAE;AAAA,EAAM;AAAA,EAAC,IAAI,cAAc,GAAE;AAAC,UAAI,KAAK,kBAAgB,IAAE,KAAK,aAAaA,EAAE,gBAAe,CAAC,IAAE,KAAK,gBAAgBA,EAAE,cAAc;AAAA,EAAE;AAAA,EAAC,IAAI,gBAAe;AAAC,QAAI;AAAE,YAAO,IAAE,KAAK,aAAaA,EAAE,cAAc,MAAI,OAAK,IAAE;AAAA,EAAM;AAAA,EAAC,IAAI,cAAc,GAAE;AAAC,UAAI,KAAK,kBAAgB,IAAE,KAAK,aAAaA,EAAE,gBAAe,CAAC,IAAE,KAAK,gBAAgBA,EAAE,cAAc;AAAA,EAAE;AAAA,EAAC,IAAI,oBAAmB;AAAC,QAAI;AAAE,YAAO,IAAE,KAAK,aAAaA,EAAE,mBAAmB,MAAI,OAAK,IAAE;AAAA,EAAM;AAAA,EAAC,IAAI,kBAAkB,GAAE;AAAC,SAAG,OAAK,KAAK,gBAAgBA,EAAE,mBAAmB,IAAE,KAAK,aAAaA,EAAE,qBAAoB,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,iBAAgB;AAAC,QAAI;AAAE,YAAO,IAAE,KAAK,aAAaA,EAAE,eAAe,MAAI,OAAK,IAAE;AAAA,EAAM;AAAA,EAAC,IAAI,eAAe,GAAE;AAAC,UAAI,KAAK,mBAAiB,IAAE,KAAK,aAAaA,EAAE,iBAAgB,CAAC,IAAE,KAAK,gBAAgBA,EAAE,eAAe;AAAA,EAAE;AAAA,EAAC,IAAI,mBAAkB;AAAC,QAAI,IAAE,KAAK,aAAaA,EAAE,kBAAkB;AAAE,QAAG,KAAG,KAAK;AAAO,QAAI,IAAE,CAAC;AAAE,WAAO,OAAO,MAAM,CAAC,IAAE,SAAO;AAAA,EAAC;AAAA,EAAC,IAAI,iBAAiB,GAAE;AAAC,SAAG,OAAK,KAAK,gBAAgBA,EAAE,kBAAkB,IAAE,KAAK,aAAaA,EAAE,oBAAmB,GAAG,CAAC,EAAE;AAAA,EAAC;AAAA,EAAC,IAAI,iBAAgB;AAAC,QAAI,IAAE,KAAK,aAAaA,EAAE,gBAAgB;AAAE,QAAG,KAAG,KAAK;AAAO,QAAI,IAAE,CAAC;AAAE,WAAO,OAAO,MAAM,CAAC,IAAE,SAAO;AAAA,EAAC;AAAA,EAAC,IAAI,eAAe,GAAE;AAAC,SAAG,OAAK,KAAK,gBAAgBA,EAAE,gBAAgB,IAAE,KAAK,aAAaA,EAAE,kBAAiB,GAAG,CAAC,EAAE;AAAA,EAAC;AAAA,EAAC,IAAI,iBAAgB;AAAC,QAAI,IAAE,KAAK,aAAaA,EAAE,gBAAgB;AAAE,QAAG,KAAG,KAAK;AAAO,QAAI,IAAE,CAAC;AAAE,WAAO,OAAO,MAAM,CAAC,IAAE,SAAO;AAAA,EAAC;AAAA,EAAC,IAAI,eAAe,GAAE;AAAC,SAAG,OAAK,KAAK,gBAAgBA,EAAE,gBAAgB,IAAE,KAAK,aAAaA,EAAE,kBAAiB,GAAG,CAAC,EAAE;AAAA,EAAC;AAAA,EAAC,IAAI,eAAc;AAAC,QAAI,IAAE,KAAK,aAAaA,EAAE,cAAc;AAAE,QAAG,KAAG,KAAK;AAAO,QAAI,IAAE,CAAC;AAAE,WAAO,OAAO,MAAM,CAAC,IAAE,SAAO;AAAA,EAAC;AAAA,EAAC,IAAI,aAAa,GAAE;AAAC,SAAG,OAAK,KAAK,gBAAgBA,EAAE,cAAc,IAAE,KAAK,aAAaA,EAAE,gBAAe,GAAG,CAAC,EAAE;AAAA,EAAC;AAAA,EAAC,IAAI,eAAc;AAAC,QAAI;AAAE,YAAO,IAAE,KAAK,aAAaA,EAAE,aAAa,MAAI,OAAK,IAAE;AAAA,EAAM;AAAA,EAAC,IAAI,aAAa,GAAE;AAAC,UAAI,KAAK,iBAAe,IAAE,KAAK,aAAaA,EAAE,eAAc,CAAC,IAAE,KAAK,gBAAgBA,EAAE,aAAa;AAAA,EAAE;AAAA,EAAC,IAAI,2BAA0B;AAAC,QAAI;AAAE,aAAQ,IAAE,KAAK,eAAa,OAAK,SAAO,EAAE,yBAAuB,OAAK,KAAK,WAAW,uBAAqBI,GAAE,MAAKsH,EAAC;AAAA,EAAC;AAAA,EAAC,IAAI,yBAAyB,GAAE;AAACa,IAAAA,GAAE,MAAKb,IAAE,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,WAAU;AAAC,QAAI;AAAE,YAAO,IAAE,KAAK,aAAa1H,EAAE,SAAS,MAAI,OAAK,IAAE;AAAA,EAAM;AAAA,EAAC,IAAI,SAAS,GAAE;AAAC,UAAI,KAAK,aAAW,IAAE,KAAK,aAAaA,EAAE,WAAU,CAAC,IAAE,KAAK,gBAAgBA,EAAE,SAAS;AAAA,EAAE;AAAA,EAAC,IAAI,gBAAe;AAAC,QAAI,GAAE,GAAEH,GAAE4H;AAAE,QAAG,KAAK,aAAazH,EAAE,cAAc,EAAE,SAAO,IAAE,KAAK,aAAaA,EAAE,cAAc,MAAI,OAAK,IAAE;AAAO,QAAG,KAAK,aAAaA,EAAE,WAAW,GAAE;AAAC,UAAG,CAAA,EAAE8G,CAAC,IAAEiE,IAAI,IAAE,KAAK,eAAa,OAAK,IAAE,EAAE;AAAE,cAAOlL,IAAE,IAAI,gBAAgBiH,CAAC,EAAE,IAAI,OAAO,MAAI,OAAKjH,IAAE;AAAA,IAAM;AAAC,QAAG,KAAK,IAAI,SAAO4H,IAAE,IAAI,gBAAgB,KAAK,GAAG,EAAE,IAAI,OAAO,MAAI,OAAKA,IAAE;AAAA,EAAM;AAAA,EAAC,IAAI,cAAc,GAAE;AAAC,UAAI,KAAK,kBAAgB,IAAE,KAAK,aAAazH,EAAE,gBAAe,CAAC,IAAE,KAAK,gBAAgBA,EAAE,cAAc;AAAA,EAAE;AAAA,EAAC,IAAI,SAAQ;AAAC,QAAI,IAAE,KAAK,aAAaA,EAAE,cAAc,GAAE,IAAE,KAAK,aAAaA,EAAE,SAAS;AAAE,WAAM,EAAC,GAAGI,GAAE,MAAK2H,EAAC,GAAE,GAAG,KAAG,OAAK,EAAC,UAAS,EAAC,IAAE,CAAA,GAAG,GAAG,KAAG,OAAK,EAAC,KAAI,EAAC,IAAE,CAAA,EAAE;AAAA,EAAC;AAAA,EAAC,IAAI,OAAO,GAAE;AAACQ,IAAAA,GAAE,MAAKR,IAAE,KAAU,EAAE;AAAA,EAAC;AAAA,EAAC,IAAI,QAAO;AAAC,WAAOb,GAAG,KAAK,UAAS,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,IAAI,SAAQ;AAAC,QAAI;AAAE,YAAO,IAAE,KAAK,aAAalH,EAAE,OAAO,MAAI,OAAK,IAAE;AAAA,EAAM;AAAA,EAAC,IAAI,OAAO,GAAE;AAAC,UAAI,KAAK,WAAS,IAAE,KAAK,aAAaA,EAAE,SAAQ,CAAC,IAAE,KAAK,gBAAgBA,EAAE,OAAO;AAAA,EAAE;AAAA,EAAC,IAAI,yBAAwB;AAAC,QAAI;AAAE,YAAO,IAAE,KAAK,aAAaA,EAAE,wBAAwB,MAAI,OAAK,IAAE;AAAA,EAAM;AAAA,EAAC,IAAI,uBAAuB,GAAE;AAAC,UAAI,KAAK,2BAAyB,IAAE,KAAK,aAAaA,EAAE,0BAAyB,CAAC,IAAE,KAAK,gBAAgBA,EAAE,wBAAwB;AAAA,EAAE;AAAA,EAAC,IAAI,aAAY;AAAC,QAAI;AAAE,YAAO,IAAE,KAAK,aAAaA,EAAE,WAAW,MAAI,OAAK,IAAE6G,GAAG,KAAK,QAAQ;AAAA,EAAC;AAAA,EAAC,IAAI,WAAW,GAAE;AAAC,UAAI,KAAK,eAAa,IAAE,KAAK,aAAa7G,EAAE,aAAY,CAAC,IAAE,KAAK,gBAAgBA,EAAE,WAAW;AAAA,EAAE;AAAA,EAAC,IAAI,mBAAkB;AAAC,WAAO,KAAK,aAAaA,EAAE,kBAAkB,IAAE,CAAC,KAAK,aAAaA,EAAE,kBAAkB,IAAEY,GAAG,KAAK,QAAQ;AAAA,EAAC;AAAA,EAAC,IAAI,iBAAiB,GAAE;AAAC,SAAG,KAAK,qBAAmB,KAAG,OAAK,KAAK,gBAAgBZ,EAAE,kBAAkB,IAAE,KAAK,aAAaA,EAAE,oBAAmB,GAAG,CAAC,CAAC,EAAE;AAAA,EAAE;AAAA,EAAC,IAAI,gBAAe;AAAC,QAAI,GAAE;AAAE,QAAG,KAAK,aAAaA,EAAE,gBAAgB,GAAE;AAAC,UAAG,EAAC,gBAAeH,EAAC,IAAE,MAAK4H,KAAG,IAAE,KAAK,SAAS,SAAS,IAAI,CAAC,MAAI,OAAK,IAAE,GAAEX,KAAG,IAAE,KAAK,SAAS,SAAS,MAAM,CAAC,MAAI,OAAK,IAAE;AAAE,aAAO,KAAK,IAAIA,GAAEW,IAAE5H,CAAC;AAAA,IAAC;AAAC,WAAO4P,GAAG,KAAK,QAAQ;AAAA,EAAC;AAAA,EAAC,IAAI,iBAAgB;AAAC,QAAG,KAAK,aAAazP,EAAE,gBAAgB,EAAE,QAAM,CAAC,KAAK,aAAaA,EAAE,gBAAgB;AAAA,EAAC;AAAA,EAAC,IAAI,eAAe,GAAE;AAAC,SAAG,KAAK,mBAAiB,KAAG,OAAK,KAAK,gBAAgBA,EAAE,gBAAgB,IAAE,KAAK,aAAaA,EAAE,kBAAiB,GAAG,CAAC,CAAC,EAAE;AAAA,EAAE;AAAA,EAAC,IAAI,WAAU;AAAC,WAAOmJ,GAAG,KAAK,QAAQ;AAAA,EAAC;AAAA,EAAC,MAAM,aAAa,GAAE;AAAC,WAAOvB,GAAE,KAAK,UAAS,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,iBAAgB;AAAC,WAAOY,GAAE,KAAK,QAAQ;AAAA,EAAC;AAAA,EAAC,IAAI,YAAW;AAAC,WAAOoD,GAAE,KAAK,QAAQ;AAAA,EAAC;AAAA,EAAC,MAAM,YAAY,GAAE;AAAC,WAAOrG,GAAE,KAAK,UAAS,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,gBAAe;AAAC,WAAOyC,GAAE,KAAK,QAAQ;AAAA,EAAC;AAAA,EAAC,IAAI,WAAU;AAAC,WAAOyL,GAAG,KAAK,QAAQ;AAAA,EAAC;AAAA,EAAC,eAAc;AAAC,WAAOxM,GAAE,KAAK,UAAS,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,WAAO1G,GAAE,KAAK,UAAS,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,IAAI,iBAAgB;AAAC,QAAI,IAAE,KAAK,aAAaP,EAAE,eAAe;AAAE,QAAG,MAAIsI,GAAE,OAAK,MAAIA,GAAE,OAAO,QAAO;AAAA,EAAC;AAAA,EAAC,IAAI,eAAe,GAAE;AAAC,UAAI,KAAK,mBAAiB,MAAIA,GAAE,OAAK,MAAIA,GAAE,SAAO,KAAK,aAAatI,EAAE,iBAAgB,CAAC,IAAE,KAAK,gBAAgBA,EAAE,eAAe;AAAA,EAAE;AAAA,EAAC,IAAI,WAAU;AAAC,WAAM,EAAC,GAAG,KAAK,kBAAiB,EAAG,OAAO,CAAAC,MAAGA,EAAE,WAAW,WAAW,KAAG,CAAC,CAACD,EAAE,YAAY,EAAE,SAASC,CAAC,CAAC,EAAE,OAAO,CAACA,GAAEJ,MAAI;AAAC,UAAI4H,IAAE,KAAK,aAAa5H,CAAC;AAAE,aAAO4H,KAAG,SAAOxH,EAAEJ,EAAE,QAAQ,cAAa,EAAE,EAAE,QAAQ,MAAK,GAAG,CAAC,IAAE4H,IAAGxH;AAAA,IAAC,GAAE,CAAA,CAAE,GAAE,GAAGG,GAAE,MAAKuH,EAAC,EAAC;AAAA,EAAC;AAAA,EAAC,IAAI,SAAS,GAAE;AAACY,IAAAA,GAAE,MAAKZ,IAAE,KAAU,CAAA,CAAE,GAAE,KAAK,OAAK,KAAK,IAAI,KAAK,MAAKvH,GAAE,MAAKuH,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,WAAOvH,GAAE,MAAKmJ,EAAC;AAAA,EAAC;AAAA,EAAC,IAAI,WAAW,GAAE;AAAChB,IAAAA,GAAE,MAAKgB,IAAE,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,QAAI;AAAE,YAAO,IAAE,KAAK,aAAavJ,EAAE,IAAI,MAAI,OAAK,IAAEI,GAAE,MAAKiK,EAAC;AAAA,EAAC;AAAA,EAAC,IAAI,KAAK,GAAE;AAAC,QAAE,KAAK,aAAarK,EAAE,MAAK,CAAC,IAAE,KAAK,gBAAgBA,EAAE,IAAI;AAAA,EAAC;AAAA,EAAC,OAAM;AAACkJ,IAAAA,GAAE,MAAK,KAAK,UAAS9I,GAAE,MAAKD,IAAE6K,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,SAAQ;AAACF,IAAAA,GAAE,KAAK,UAAS1K,GAAE,MAAKD,IAAE6K,EAAC,GAAE,IAAI;AAAA,EAAC;AAAA,EAAC,yBAAyB,GAAE,GAAEnL,GAAE;AAAC,QAAIiH,GAAE+D;AAAE,YAAOD,GAAE,mBAAmB,SAAS,CAAC,KAAG,CAAC,CAAC,OAAM,YAAW,SAAS,EAAE,SAAS,CAAC,KAAG,MAAM,yBAAyB,GAAE,GAAE/K,CAAC,GAAE,GAAC;AAAA,MAAE,KAAKG,EAAE;AAAqB,aAAK,qBAAmBH,KAAU;AAAO;AAAA,MAAM,KAAKG,EAAE;AAAwB,aAAK,wBAAsBH,KAAU;AAAO;AAAA,MAAM,KAAI,OAAM;AAAC,YAAI0K,IAAE,CAAC,CAAC,GAAExD,IAAE,CAAC,CAAClH;AAAE,SAAC0K,KAAGxD,IAAEyD,GAAE,MAAKrK,IAAEgI,EAAC,EAAE,KAAK,IAAI,IAAEoC,KAAG,CAACxD,IAAE,KAAK,OAAM,IAAGwD,KAAGxD,MAAI,KAAK,OAAM,GAAGyD,GAAE,MAAKrK,IAAEgI,EAAC,EAAE,KAAK,IAAI;AAAG;AAAA,MAAK;AAAA,MAAC,KAAI;AAAW,YAAGtI,MAAI,EAAE;AAAM,SAACiH,IAAE1G,GAAE,MAAKD,IAAE6K,EAAC,MAAI,QAAMlE,EAAE,YAAY,KAAK,QAAQ;AAAE;AAAA,MAAM,KAAI;AAAU,YAAGjH,MAAI,EAAE;AAAM,SAACgL,IAAEzK,GAAE,MAAKD,IAAE6K,EAAC,MAAI,QAAMH,EAAE,WAAWhL,CAAC;AAAE;AAAA,MAAM,KAAKG,EAAE;AAAA,MAAY,KAAKA,EAAE;AAAA,MAAc,KAAKA,EAAE;AAAA,MAAe,KAAKA,EAAE;AAAA,MAAe,KAAKA,EAAE;AAAA,MAAgB,KAAKA,EAAE;AAAA,MAAmB,KAAKA,EAAE;AAAA,MAAiB,KAAKA,EAAE;AAAA,MAAiB,KAAKA,EAAE;AAAA,MAAe,KAAKA,EAAE;AAAe,aAAK,MAAIuG,GAAE,IAAI;AAAE;AAAA,MAAM,KAAKvG,EAAE,OAAM;AAAC,YAAIuK,IAAE,KAAK;AAAM,aAAK,OAAK,QAAQ,KAAK,+HAA+H,GAAE,KAAK,SAAO,KAAK,KAAK,OAAO,QAAMA;AAAG;AAAA,MAAK;AAAA,MAAC,KAAKvK,EAAE;AAAa,QAAAH,KAAG,MAAMA,CAAC,EAAE,KAAK,CAAA0K,MAAGA,EAAE,KAAI,CAAE,EAAE,KAAK,CAAAA,MAAG,KAAK,WAASA,CAAC,EAAE,MAAM,MAAI,QAAQ,MAAM,2DAA2D1K,CAAC,GAAG,CAAC;AAAE;AAAA,MAAM,KAAKG,EAAE;AAAY,SAACH,KAAG,QAAMA,MAAI,MAAI,KAAK,cAAc,IAAI,YAAY,oBAAmB,EAAC,UAAS,IAAG,SAAQ,GAAE,CAAC,CAAC;AAAE;AAAA,MAAM,KAAKG,EAAE;AAAmB,SAACH,KAAG,QAAMA,MAAI,MAAI,KAAK,cAAc,IAAI,YAAY,0BAAyB,EAAC,UAAS,IAAG,SAAQ,IAAG,QAAO,KAAK,iBAAgB,CAAC,CAAC;AAAE;AAAA,MAAM,KAAKG,EAAE;AAAK,SAACH,KAAG,QAAMA,MAAI,MAAI,KAAK,WAAU;AAAG;AAAA,MAAM,KAAKG,EAAE,kBAAiB;AAAC,YAAGH,KAAG,QAAMA,MAAI,GAAE;AAAC,cAAI0K,IAAE,KAAK,aAAYxD,IAAE,KAAK;AAAO,eAAK,UAASyD,GAAE,MAAKrK,IAAEgI,EAAC,EAAE,KAAK,IAAI,EAAE,KAAK,MAAI;AAAC,iBAAK,cAAYoC,GAAExD,KAAG,KAAK,KAAI;AAAA,UAAE,CAAC;AAAA,QAAC;AAAC;AAAA,MAAK;AAAA,MAAC,KAAK/G,EAAE,iBAAgB;AAAC,SAACH,KAAG,QAAMA,MAAI,MAAI,KAAK,kBAAgB,SAAS,OAAO,MAAM,GAAG,EAAE,QAAQ,CAAAkH,MAAG;AAAC,UAAAA,EAAE,OAAO,WAAW,SAAS,MAAI,SAAS,SAAOA,EAAE,QAAQ,OAAM,EAAE,EAAE,QAAQ,OAAM,gBAAa,oBAAI,KAAI,GAAG,YAAW,IAAG,SAAS;AAAA,QAAE,CAAC;AAAE;AAAA,MAAK;AAAA,MAAC,KAAK/G,EAAE;AAA6B,SAACH,KAAG,QAAMA,MAAI,OAAK,KAAK,2BAAyBA,KAAG,OAAK,KAAG;AAAA,IAAO;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,QAAG,CAAC,KAAK,WAAW;AAAO,QAAI,IAAE,KAAK,WAAW,cAAc,mBAAmB;AAAE,QAAG,CAAC,EAAE;AAAO,QAAI,IAAE,KAAK,YAAY,YAAYO,GAAE,MAAKiK,EAAC,KAAG,KAAK,IAAI;AAAE,MAAE,YAAU;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAC,QAAI,GAAE;AAAE,KAAC,IAAE,MAAM,sBAAoB,QAAM,EAAE,KAAK,IAAI,IAAG,IAAE,KAAK,aAAW,QAAM,EAAE,iBAAiB,eAAcjK,GAAE,MAAKgI,EAAC,CAAC,GAAE,KAAK,YAAU,KAAK,OAAK,CAAChI,GAAE,MAAKD,IAAE6K,EAAC,KAAGR,GAAE,MAAKrK,IAAEgI,EAAC,EAAE,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,uBAAsB;AAAC,QAAI,GAAE;AAAE,KAAC,IAAE,KAAK,aAAW,QAAM,EAAE,oBAAoB,eAAc/H,GAAE,MAAKgI,EAAC,CAAC,GAAE,KAAK,OAAM,IAAI,IAAE,MAAM,yBAAuB,QAAM,EAAE,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE;AAAC,MAAE,WAAS,KAAK,YAAU,KAAK,cAAc,IAAI,YAAY,EAAE,MAAK,EAAC,UAAS,IAAG,QAAO,EAAE,OAAM,CAAC,CAAC;AAAA,EAAC;AAAC;AAAEqC,KAAE,oBAAI,WAAQH,KAAE,oBAAI,WAAQ3C,KAAE,oBAAI,WAAQI,KAAE,oBAAI,WAAQwB,KAAE,oBAAI,WAAQ0B,KAAE,oBAAI,WAAQjH,KAAE,oBAAI,WAAQwP,KAAE,oBAAI,WAAQnJ,KAAE,oBAAI,WAAQjC,KAAE,oBAAI,WAAQjI,KAAE,oBAAI,WAAQ6K,KAAE,WAAU;AAAC,SAAOxB,GAAG,KAAK,QAAQ;AAAC,GAAE9B,KAAE,oBAAI,WAAQS,KAAE,iBAAgB;AAAC/H,EAAAA,GAAE,MAAKqK,EAAC,MAAI,MAAMlC,GAAE,MAAKkC,IAAE,QAAQ,QAAO,CAAE,GAAElC,GAAE,MAAKkC,IAAE,IAAI,GAAE,KAAK,KAAI;AAAG;AC3B15W,MAAMyJ,KAAe,oBAAI,QAAO;AAEhC,MAAMC,WAA0B,MAAM;AAAA;AACtC,MAAMC,WAA0B,MAAM;AAAA;AAG7C,MAAMC,KAAuB,CAAC,yBAAwB,iCAAgC,eAAe,GAGxFC,KAAkB,WAAW,UACxC,cAAc,IAAI;AAAA,EAChB,IAAIC,GAAI;AACN,UAAM,IAAI,IAAI,QAAQA,CAAE,CAAC;AAAA,EAC3B;AAAA,EACA,QAAQC,GAAI;AACV,UAAM,QAAQ,CAACC,MAAQ;AACrB,YAAMC,IAAQD,EAAI,MAAK;AACvB,MAAIC,KAAOF,EAAGE,CAAK;AAAA,IACrB,CAAC;AAAA,EACH;AACJ,IAAM;AAEC,SAASC,GAAmBC,GAAU;;AAC3C,GAAKC,KAAAtJ,IAAA,WAAW,WAAX,gBAAAA,EAAmB,SAAnB,QAAAsJ,EAAyB,eAUlBC,IAAA,WAAW,SAAX,QAAAA,EAAiB,YAK3BF,EAAQ,IAJR,eACG,YAAY,oBAAoB,EAChC,KAAKA,CAAQ,IAZhB,WAAW,wBAAwB,MAAM;AAKvC,mBACG,YAAY,oBAAoB,EAChC,KAAKA,CAAQ;AAAA,EAClB;AAQJ;AAEO,SAASG,KAAwB;AAEtC,SAAO,WAAW;AACpB;AAEO,SAASC,KAAoB;;AAClC,QAAMC,IAAS;AACf,OAAI1J,IAAA,WAAW,WAAX,QAAAA,EAAmB,QAAQ,SAAS,cAAc,eAAe0J,CAAM,IAAI,EAAG;AAElF,QAAMC,IAAS,SAAS,cAAc,QAAQ;AAC9C,EAAAA,EAAO,MAAMD,GACb,SAAS,KAAK,OAAOC,CAAM;AAC7B;AAEO,SAASC,KAAc;;AAC5B,UAAON,KAAAtJ,IAAA,WAAW,SAAX,gBAAAA,EAAiB,cAAjB,gBAAAsJ,EAA4B,YAAY;AACjD;AAEO,SAASO,KAAiB;;AAC/B,UAAO7J,IAAA4J,GAAW,MAAX,gBAAA5J,EAAe;AACxB;AAEO,SAAS8J,KAAe;;AAC7B,UAAO9J,IAAA6J,GAAc,MAAd,gBAAA7J,EAAkB,gBAAgB,MAAM;AACjD;AAEO,SAAS+J,GAAeC,GAAS;AACtC,SAAO,IAAI,QAAQ,CAACC,GAASC,MAAW;AACtC,IAAAJ,GAAY,EAAG,eAAeE,GAASC,GAASC,CAAM;AAAA,EACxD,CAAC;AACH;AAEO,SAASC,GAAeH,GAAS;AACtC,SAAO,IAAI,QAAQ,CAACC,GAASC,MAAW;AACtC,IAAAJ,GAAY,EAAG,UAAUE,GAASC,GAASC,CAAM;AAAA,EACnD,CAAC;AACH;AAEO,SAASE,GAAeC,GAAS;AACtC,SAAOT,GAAW,EAAG,WAAW;AAAA,IAC9B,GAAGU,GAAqB;AAAA,IACxB,GAAGD;AAAA,EACP,CAAG;AACH;AAEO,SAASC,KAAwB;AACtC,SAAO;AAAA;AAAA;AAAA;AAAA,IAIL,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA,IAMvB,gBAAgB;AAAA;AAAA;AAAA,IAIhB,2BAA2B;AAAA,IAE3B,UAAU;AAAA,IACV,oBAAoB;AAAA,EACxB;AACA;AAGA,SAASC,GAAUC,GAAS;AAC1B,MAAI,CAACA,EAAS;AAEd,QAAMC,IAAQ,8BACRC,IAAQF,EAAQ,MAAMC,CAAK;AACjC,SAAOC,IAAQA,EAAM,CAAC,IAAI;AAC5B;AAEA,SAASC,GAAkBC,GAAiB;AAC1C,QAAMC,IAAQD,EAAgB,MAAM;AAAA,CAAI,GAClCE,IAAO,CAAA;AAEb,WAASpW,IAAI,GAAGA,IAAImW,EAAM,QAAQnW;AAIhC,QAHamW,EAAMnW,CAAC,EAAE,KAAI,EAGjB,WAAW,mBAAmB,GAAG;AACxC,YAAMqW,IAAWF,EAAMnW,IAAI,CAAC,IAAImW,EAAMnW,IAAI,CAAC,EAAE,KAAI,IAAK;AACtD,MAAIqW,KAAY,CAACA,EAAS,WAAW,GAAG,KACtCD,EAAK,KAAKC,CAAQ;AAAA,IAEtB;AAGF,SAAOD;AACT;AAEA,SAASE,GAAaJ,GAAgB;AAKpC,SAJcA,EAAgB,MAAM;AAAA,CAAI,EAEtB,KAAK,CAAAK,MAAQ,CAACA,EAAK,OAAO,WAAW,GAAG,KAAKA,EAAK,KAAI,MAAO,EAAE;AAGnF;AAEO,eAAeC,GAAMC,GAAK;AAC/B,MAAI;AAEF,UAAMC,KADW,MAAM,MAAMD,GAAK,EAAC,QAAQ,OAAM,CAAC,GACrB,QAAQ,IAAI,cAAc;AAEvD,WAAOrC,GAAqB,KAAK,CAACuC,MAAWD,MAAgBC,CAAM;AAAA,EACrE,SAASC,GAAK;AACZ,mBAAQ,MAAM,8DAA8DA,CAAG,GACxE;AAAA,EACT;AACF;AAEO,eAAeC,GAAyBJ,GAAK;AAClD,MAAI;AACF,UAAMK,IAAsB,OAAO,MAAM,MAAML,CAAG,GAAG,KAAI;AACzD,QAAIM,IAAyBD;AAE7B,UAAME,IAAYf,GAAkBa,CAAmB;AACvD,QAAIE,EAAU,SAAS,GAAG;AACxB,YAAMC,IAAoB,IAAI,IAAID,EAAU,CAAC,GAAGP,CAAG,EAAE,SAAQ;AAC7D,MAAAM,IAAyB,OAAO,MAAM,MAAME,CAAiB,GAAG,KAAI;AAAA,IACtE;AAEA,UAAMnB,IAAUQ,GAAaS,CAAsB;AAEnD,WADelB,GAAUC,CAAO;AAAA,EAElC,SAASc,GAAK;AACZ,YAAQ,MAAM,qDAAqDA,CAAG;AACtE;AAAA,EACF;AACF;AClKA,MAAMM,KAAkB,IAAI7C,GAAe,GACrC8C,KAAiB,oBAAI,QAAO;AAElC,IAAIC;AAEJ1C,GAAmB,MAAM;;AACvB,MAAI,GAACE,KAAAtJ,IAAA,WAAW,WAAX,gBAAAA,EAAmB,SAAnB,QAAAsJ,EAAyB,cAAa;AAEzC,YAAQ,MAAM,4BAA2ByC,KAAAxC,IAAA,WAAW,WAAX,gBAAAA,EAAmB,SAAnB,gBAAAwC,EAAyB,WAAW;AAC7E;AAAA,EACF;AAEA,EAAKD,OACHA,KAAK,KAAK,WAEVlC,GAAW,EAAG,iBAAiBkC,GAAG,qBAAqB,oBAAoB,CAACjW,MAAM;AAChF,IAAA+V,GAAgB,QAAQ,CAACtX;;AAAM,cAAAgV,KAAAtJ,IAAA2I,GAAa,IAAIrU,CAAC,GAAE,uBAApB,gBAAAgV,EAAA,KAAAtJ,GAAyCnK;AAAA,KAAE;AAAA,EAC5E,CAAC,GAED+T,GAAW,EAAG,iBAAiBkC,GAAG,qBAAqB,uBAAuB,CAACjW,MAAM;AACnF,IAAA+V,GAAgB,QAAQ,CAACtX;;AAAM,cAAAgV,KAAAtJ,IAAA2I,GAAa,IAAIrU,CAAC,GAAE,0BAApB,gBAAAgV,EAAA,KAAAtJ,GAA4CnK;AAAA,KAAE;AAAA,EAC/E,CAAC,GAED+V,GAAgB,QAAQ,CAAC,MAAC;;AAAK,YAAAtC,KAAAtJ,IAAA2I,GAAa,IAAI,CAAC,GAAE,SAApB,gBAAAW,EAAA,KAAAtJ;AAAA,GAA4B;AAE/D,CAAC;AAGD,IAAIgM,KAAgC;;AAM7B,MAAMC,WAAuB,YAAY;AAAA,EAW9C,YAAYC,GAAO;AACjB,UAAK;AAZF,IAAAC,GAAA,MAAAC;AACL,IAAAD,GAAA,MAAAE;AACA,IAAAF,GAAA,MAAAG;AACA,IAAAH,GAAA,MAAAI;AACA,IAAAJ,GAAA,MAAAK;AACA,IAAAL,GAAA,MAAAM,IAAS;AACT,IAAAN,GAAA,MAAAO,IAAa;AACb,IAAAP,GAAA,MAAAQ,IAAa,oBAAI,IAAG;AACpB,IAAAR,GAAA,MAAAS,IAAe,oBAAI,QAAO;AAC1B,IAAAT,GAAA,MAAAU,IAAqB,MAAMC,GAAA,MAAKV,IAAAW,IAAL;AAKzB,IAAAC,GAAA,MAAKX,GAASH,IAEdN,GAAgB,IAAI,IAAI,GACxBjD,GAAa,IAAI,MAAM;AAAA,MACrB,MAAM,MAAMmE,GAAA,MAAKV,IAAAa,IAAL;AAAA,MACZ,oBAAoB,MAAMH,GAAA,MAAKV,IAAAc,IAAL;AAAA,MAC1B,uBAAuB,MAAMJ,GAAA,MAAKV,IAAAe,IAAL;AAAA,MAC7B,eAAe,MAAMC,EAAA,MAAKhB,IAAAiB;AAAA,IAChC,CAAK,GAEDP,GAAA,MAAKV,IAAAa,IAAL;AAAA,EACF;AAAA,EAEA,UAAU;;AACR,KAAA3D,KAAAtJ,IAAAoN,EAAA,MAAKf,OAAL,gBAAArM,EAAa,eAAb,QAAAsJ,EAAyB,oBAAoB,UAAU8D,EAAA,MAAKP,MAIxDO,EAAA,MAAKZ,SAAoBjD,IAAA6D,EAAA,MAAKb,QAAL,QAAAhD,EAAoB,eAC/C,OAAO,QAAQ6D,EAAA,MAAKZ,GAAgB,EAAE,QAAQ,CAAC,CAACc,GAAOC,CAAQ,MAAM;AACnE,MAAAH,EAAA,MAAKb,IAAc,WAAW,oBAAoBe,GAAOC,CAAQ;AAAA,IACnE,CAAC,GAGCH,EAAA,MAAKf,MAAQR,GAAe,OAAOuB,EAAA,MAAKf,EAAM,GAClDW,GAAA,MAAKV,IAAU;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,IAAI,QAAQ;AACV,WAAOc,EAAA,MAAKX;AAAA,EACd;AAAA,EAEA,MAAM,kBAAkBpD,GAAU;AAChC,QAAI+D,EAAA,MAAKf,GAAO;AACd,YAAM,IAAIzD,GAAkB,6CAA6C;AAG3E,WAAAwE,EAAA,MAAKR,IAAa,IAAIvD,GAAU,EAAE2C,EAA6B,GAC/DoB,EAAA,MAAKT,IAAW,IAAItD,CAAQ,GAG5B,eAAe,MAAMA,EAASyD,GAAA,MAAKV,IAAAoB,IAAL,UAA2B,CAAC,GAEnDxB;AAAA,EACT;AAAA,EAEA,MAAM,wBAAwB3C,GAAU;AACtC,QAAI+D,EAAA,MAAKf,GAAO;AACd,YAAM,IAAIzD,GAAkB,6CAA6C;AAG3E,IAAIS,IACF+D,EAAA,MAAKT,IAAW,OAAOtD,CAAQ,IAE/B+D,EAAA,MAAKT,IAAW,MAAK;AAAA,EAEzB;AAAA,EAEA,MAAM,SAAS;;AACb,QAAIS,EAAA,MAAKf,GAAO;AACd,YAAM,IAAIzD,GAAkB,6CAA6C;AAG3E,QAAI,GAACU,KAAAtJ,IAAA,WAAW,WAAX,gBAAAA,EAAmB,SAAnB,QAAAsJ,EAAyB;AAC5B,YAAM,IAAIT,GAAkB,sDAAsD;AAGpF,UAAM4E,IAAiB5B,GAAe,IAAIuB,EAAA,MAAKf,EAAM;AACrD,IAAAR,GAAe,IAAIuB,EAAA,MAAKf,EAAM,GAE9BjC,GAAegD,EAAA,MAAKf,GAAO,WAAW,GAEtC,OAAO,QAAQe,EAAA,MAAKZ,GAAgB,EAAE,QAAQ,CAAC,CAACc,GAAOC,CAAQ,MAAM;AACnE,MAAAH,EAAA,MAAKb,IAAc,WAAW,iBAAiBe,GAAOC,CAAQ;AAAA,IAChE,CAAC;AAED,QAAI;AAEF,YAAM3D,GAAW,EAAG,eAAc;AAAA,IACpC,SAAS0B,GAAK;AAOZ,UALKmC,KACH5B,GAAe,OAAOuB,EAAA,MAAKf,EAAM,GAI/Bf,MAAQ;AACV;AAGF,YAAM,IAAI,MAAMA,CAAG;AAAA,IACrB;AAEA,KAAAS,KAAAxC,IAAAZ,GAAa,IAAIyE,EAAA,MAAKf,EAAM,MAA5B,gBAAA9C,EAA+B,iBAA/B,QAAAwC,EAAA,KAAAxC;AAAA,EACF;AA2OF;AA/VE8C,IAAA,eACAC,KAAA,eACAC,KAAA,eACAC,KAAA,eACAC,KAAA,eACAC,KAAA,eACAC,KAAA,eACAC,KAAA,eACAC,KAAA,eATKT,KAAA,eA0CDiB,KAAW,WAAG;AAChB,MAAIxB,GAAe,IAAIuB,EAAA,MAAKf,EAAM,EAAG,QAAOe,EAAA,MAAKb;AAEnD,GA0EAmB,KAAW,WAAG;AACZ,EAAK7B,GAAe,IAAIuB,EAAA,MAAKf,EAAM,MAEnC,OAAO,QAAQe,EAAA,MAAKZ,GAAgB,EAAE,QAAQ,CAAC,CAACc,GAAOC,CAAQ,MAAM;AACnE,IAAAH,EAAA,MAAKb,IAAc,WAAW,oBAAoBe,GAAOC,CAAQ;AAAA,EACnE,CAAC,GAED1B,GAAe,OAAOuB,EAAA,MAAKf,EAAM,GAGjCe,EAAA,MAAKf,GAAO,QAAQe,EAAA,MAAKb,IAAc,SACvCa,EAAA,MAAKf,GAAO,cAAce,EAAA,MAAKb,IAAc,iBAAiB,aAC1Da,EAAA,MAAKb,IAAc,iBAAiB,aAAa,MACnDa,EAAA,MAAKf,GAAO,KAAI;AAEpB,GAEAmB,KAAoB,WAAG;;AAGrB,QAAMG,KAAY3N,IAAA4J,GAAW,MAAX,gBAAA5J,EAAe;AACjC,SAAO2N,KAAaA,MAAc;AACpC,GAEAT,KAAmB,WAAG;AAGpB,QAAMS,IAAY/D,GAAW,EAAG,aAAY;AAS5C,MAPIiC,GAAe,IAAIuB,EAAA,MAAKf,EAAM,KAC5BsB,MAAc,iBAChBX,GAAA,MAAKP,IAAS,eACd,KAAK,cAAc,IAAI,MAAM,YAAY,CAAC,IAI1C,CAACW,EAAA,MAAKV,QAAciB,KAAA,QAAAA,EAAW,SAAS,aAAY;AACtD,IAAAX,GAAA,MAAKN,IAAa;AAClB,aAASrD,KAAY+D,EAAA,MAAKT,IAAY,CAAAtD,EAAS,EAAI;AAAA,EACrD,WACS+D,EAAA,MAAKV,QAAe,CAACiB,KAAaA,MAAc,yBAAyB;AAChF,IAAAX,GAAA,MAAKN,IAAa;AAClB,aAASrD,KAAY+D,EAAA,MAAKT,IAAY,CAAAtD,EAAS,EAAK;AAAA,EACtD;AACF,GAEM8D,KAAsB,iBAAG;;AAK7B,QAAM,EAAE,iBAAAS,MAAoB9B,GAAG;AAC/B,MAAIlC,GAAW,EAAG,gBAAe,MAAOgE,KASlCR,EAAA,MAAKf,GAAO,cAAYrM,IAAA8J,GAAY,MAAZ,gBAAA9J,EAAgB,MAAM,YAAW;AAC3D,IAAA6L,GAAe,IAAIuB,EAAA,MAAKf,EAAM,GAE9B,OAAO,QAAQe,EAAA,MAAKZ,GAAgB,EAAE,QAAQ,CAAC,CAACc,GAAOC,CAAQ,MAAM;AACnE,MAAAH,EAAA,MAAKb,IAAc,WAAW,iBAAiBe,GAAOC,CAAQ;AAAA,IAChE,CAAC;AAOD,QAAI;AACF,YAAMpD,GAAe,IAAI,OAAO,KAAK,MAAM,iBAAgB,CAAE;AAAA,IAC/D,SAAS0D,GAAO;AACd,cAAQ,MAAMA,CAAK;AAAA,IACrB;AAGA,IAAAT,EAAA,MAAKZ,IAAiBV,GAAG,sBAAsB,iBAAiB,EAAC,GACjEsB,EAAA,MAAKZ,IAAiBV,GAAG,sBAAsB,oBAAoB,EAAC;AAAA,EACtE;AAEJ,GAEAmB,KAAK,WAAG;AACN,EAAI,CAACnB,MAAMsB,EAAA,MAAKd,QAChBU,GAAA,MAAKV,IAAU,KAEflC,GAAegD,EAAA,MAAKf,GAAO,WAAW,GAQtCe,EAAA,MAAKf,GAAO,WAAW,iBAAiB,UAAUe,EAAA,MAAKP,GAAkB,GAEzEC,GAAA,MAAKV,IAAAc,IAAL,YAEAF,GAAA,MAAKT,IAAgB,IAAIT,GAAG,aAAY,IACxC,IAAIA,GAAG,uBAAuBsB,EAAA,MAAKb,GAAa,GAEhDS,GAAA,MAAKR,IAAmB;AAAA,IACtB,CAACV,GAAG,sBAAsB,oBAAoB,GAAG,CAAC,EAAE,OAAA3C,EAAK,MAAO;AAC9D,MAAIA,MAAU,MACZ6D,GAAA,MAAKP,IAAS,cACd,KAAK,cAAc,IAAI,MAAM,SAAS,CAAC,MAEvCK,GAAA,MAAKV,IAAAsB,IAAL,YACAV,GAAA,MAAKP,IAAS,iBACd,KAAK,cAAc,IAAI,MAAM,YAAY,CAAC;AAAA,IAE9C;AAAA,IACA,CAACX,GAAG,sBAAsB,gBAAgB,GAAG,MAAM;AACjD,MAAAsB,EAAA,MAAKf,GAAO,cAAc,IAAI,MAAM,gBAAgB,CAAC;AAAA,IACvD;AAAA,IACA,CAACP,GAAG,sBAAsB,oBAAoB,GAAG,MAAM;AACrD,MAAAsB,EAAA,MAAKf,GAAO,cAAc,IAAI,MAAM,cAAc,CAAC;AAAA,IACrD;AAAA,IACA,CAACP,GAAG,sBAAsB,gBAAgB,GAAG,MAAM;AACjD,MAAAsB,EAAA,MAAKf,GAAO,cAAc,IAAI,MAAM,cAAc,CAAC;AAAA,IACrD;AAAA,IACA,CAACP,GAAG,sBAAsB,oBAAoB,GAAG,MAAM;;AACrD,OAAK9L,IAAAoN,EAAA,MAAKhB,IAAAiB,QAAL,QAAArN,EAAkB,iBACvBoN,EAAA,MAAKf,GAAO,cAAc,IAAI,MAAM,YAAY,CAAC;AAAA,IACnD;AAAA,IACA,CAACP,GAAG,sBAAsB,kBAAkB,GAAG,MAAM;AACnD,MAAAsB,EAAA,MAAKf,GAAO,cAAc,IAAI,MAAM,QAAQ,CAAC;AAAA,IAC/C;AAAA,IACA,CAACP,GAAG,sBAAsB,iBAAiB,GAAG,MAAM;AAClD,MAAAsB,EAAA,MAAKf,GAAO,cAAc,IAAI,MAAM,KAAK,SAAS,UAAU,MAAM,CAAC;AAAA,IACrE;AAAA,IACA,CAACP,GAAG,sBAAsB,oBAAoB,GAAG,MAAM;;AAKrD,QAAI9L,IAAAoN,EAAA,MAAKhB,IAAAiB,QAAL,gBAAArN,EAAkB,iBAAgB,OAAO,KAAK,MAAM,YAAY,UAIpEoN,EAAA,MAAKf,GAAO;AAAA,QACV,IAAI;AAAA,UACF;AAAA,YACE,CAAC,OAAO,KAAK,MAAM,YAAY,OAAO,GAAG;AAAA,YACzC,CAAC,OAAO,KAAK,MAAM,YAAY,SAAS,GAAG;AAAA,YAC3C,CAAC,OAAO,KAAK,MAAM,YAAY,IAAI,GAAG;AAAA,UACpD,GAAc/C,IAAA8D,EAAA,MAAKhB,IAAAiB,QAAL,gBAAA/D,EAAkB,WAAW;AAAA,QAC3C;AAAA,MACA;AAAA,IACM;AAAA,IACA,CAACwC,GAAG,sBAAsB,uBAAuB,GAAG,YAAY;;AAC9D,OAAK9L,IAAAoN,EAAA,MAAKhB,IAAAiB,QAAL,QAAArN,EAAkB,kBAGvB,MAAM,QAAQ,QAAO,GACrB8M,GAAA,MAAKV,IAAA0B,IAAL;AAAA,IACF;AAAA,EACN;AACE,GAEAA,KAAoB,WAAG;AACrB,EAAAhB,GAAA,MAAKV,IAAAW,IAAL;AACF,GAEMA,KAAsB,iBAAG;;AAC7B,MAAI,CAACK,EAAA,MAAKhB,IAAAiB,IAAa;AAIvB,QAAMU,OADe/N,IAAAoN,EAAA,MAAKb,IAAc,cAAnB,gBAAAvM,EAA8B,WAAU,CAAA,GACxB;AAAA,IACnC,CAAC,EAAE,MAAAgO,EAAI,MAAOA,MAAS,OAAO,KAAK,MAAM,UAAU;AAAA,EACzD,GAEUC,IAAiB,CAAC,GAAGb,EAAA,MAAKf,GAAO,UAAU,EAAE;AAAA,IACjD,CAAC,EAAE,MAAA6B,EAAI,MAAOA,MAAS,eAAeA,MAAS;AAAA,EACrD,GAGUC,IAAYJ,EACf,IAAI,CAAC,EAAE,UAAAK,GAAU,MAAAC,GAAM,SAAAC,EAAO,MAAO;AAEpC,UAAM,EAAE,MAAAC,EAAI,IACVN,EAAe;AAAA,MACb,CAACO,MAAUA,EAAM,aAAaJ,KAAYI,EAAM,UAAUH;AAAA,IACtE,KAAe,CAAA;AACP,WAAIE,IAAa,EAAE,MAAAA,GAAM,SAAAD,EAAO,IACzB;AAAA,EACT,CAAC,EACA,OAAO,OAAO,GAKXG,IAHkBN,EAAU;AAAA,IAChC,CAAC,EAAE,MAAAI,EAAI,MAAOA,MAAS;AAAA,EAC7B,EAC2C,IAAI,CAAC,EAAE,SAAAD,EAAO,MAAOA,CAAO,GAC7DI,IAAkBP,EAAU,KAAK,CAAC,EAAE,MAAAI,EAAI,MAAOA,MAAS,SAAS,GAGjEI,MACJpF,KAAAD,IAAAO,SAAA,gBAAAP,EAAkB,gBAAgB,MAAM,OAAxC,gBAAAC,EACI,mBAAkB,CAAA;AACxB,MAAIqF,IAAkBD;AAkBtB,MAhBIA,EAAe,WAEjBC,IAAkBA,EAAgB;AAAA,IAChC,CAACC,MAAO,CAACJ,EAAe,SAASI,CAAE;AAAA,EAC3C,IAGQH,KAAA,QAAAA,EAAiB,YACnBE,IAAkB,CAAC,GAAGA,GAAiBF,EAAgB,OAAO,IAIhEE,IAAkB,CAAC,GAAG,IAAI,IAAIA,CAAe,CAAC,GAI1C,EAFgB,CAACja,GAAG,MACtBA,EAAE,WAAW,EAAE,UAAUA,EAAE,MAAM,CAACA,MAAM,EAAE,SAASA,CAAC,CAAC,GACtCga,GAAgBC,CAAe;AAC9C,QAAI;AACF,YAAM5E,IAAU,IAAI,OAAO,KAAK,MAAM;AAAA,QACpC4E;AAAA,MACV;AACQ,YAAM7E,GAAeC,CAAO;AAAA,IAC9B,SAAS6D,GAAO;AACd,cAAQ,MAAMA,CAAK;AAAA,IACrB;AAEJ;AC3XK,MAAMiB,KAAqB,CAACC,MAAU;;AAC3C,SAAA/O,IAAA,cAA4B+O,EAAW;AAAA,IAAvC;AAAA;AAAA,MAAA5C,GAAA,MAAA6C;AAUE,MAAA7C,GAAA,MAAA8C,GAAc,EAAE,QAAQ,GAAK;AAC7B,MAAA9C,GAAA,MAAA+C,GAAe5E,GAAqB;AACpC,MAAA6B,GAAA,MAAAgD;AACA,MAAAhD,GAAA,MAAAiD;AAAA;AAAA,IAEA,IAAI,SAAS;AACX,aAAIhC,EAAA,MAAKgC,KAAgBhC,EAAA,MAAKgC,KAE1B5F,GAAqB,IAIlB,KAAK,eAGL,KAAK,yBACRC,GAAiB,GAGnBd,GAAa,IAAI,MAAM;AAAA,QACrB,cAAc,MAAMmE,GAAA,MAAKkC,GAAAK,IAAL;AAAA,MAC9B,CAAS,GAEOrC,GAAA,MAAKoC,GAAU,IAAInD,GAAe,IAAI,MAXvB,SAclB,MAAM;AAAA,IACf;AAAA,IAMA,uBAAuB;;AACrB,OAAAjM,IAAAoN,EAAA,MAAKgC,OAAL,QAAApP,EAAc,WACdgN,GAAA,MAAKoC,GAAU,OACfzG,GAAa,OAAO,IAAI,IACxBW,IAAA,MAAM,yBAAN,QAAAA,EAAA;AAAA,IACF;AAAA,IAEA,yBAAyBgG,GAAUC,GAAUC,GAAU;AAGrD,UAFA,MAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GAEvDF,MAAa,mBAAmBE,GAAU;AAC5C,QAAApC,EAAA,MAAK8B,GAAa,wBAAwBM;AAC1C;AAAA,MACF;AAEA,UAAKpC,EAAA,MAAK4B,GAAA3B;AAEV,gBAAQiC,GAAQ;AAAA,UACd,KAAK;AAAA,UACL,KAAK;AACH,iBAAK,KAAI;AACT;AAAA,QACV;AAAA,IACI;AAAA,IAiBA,MAAM,OAAO;;AACX,UAAI,CAAClC,EAAA,MAAK4B,GAAA3B,GAAa,QAAO,MAAM,KAAI;AAExC,YAAMoC,IAAY,IAAI,OAAO,KAAK,MAAM,UAAU,KAAK,SAAS,KAAK,eAAe;AACpF,MAAAA,EAAU,aAAa,KAAK;AAI5B,YAAMtB,IAAY,CAAC,GAAG,KAAK,iBAAiB,OAAO,CAAC,EAAE;AAAA,QACpD,CAAC,EAAE,MAAAD,GAAM,KAAAwB,EAAG,MAAOA,MAAQxB,MAAS,eAAeA,MAAS;AAAA,MACpE,GAEYS,IAAiB,CAAA;AACvB,UAAIgB,IAAmB;AAoCvB,UAlCIxB,EAAU,WACZsB,EAAU,SAAStB,EAAU,IAAI,CAACyB,MAAY;AAC5C,cAAMtB,IAAU,EAAEqB;AAElB,QAAIhB,EAAe,WAAW,KAAKiB,EAAQ,MAAM,SAAS,aACxDjB,EAAe,KAAKL,CAAO;AAG7B,cAAMuB,IAAQ,IAAI,OAAO,KAAK,MAAM;AAAA,UAClCvB;AAAA,UACA,OAAO,KAAK,MAAM,UAAU;AAAA,QACxC;AACU,eAAAuB,EAAM,iBAAiBD,EAAQ,KAC/BC,EAAM,mBAAmB,YACzBA,EAAM,UACJD,EAAQ,SAAS,aACb,OAAO,KAAK,MAAM,cAAc,WAChC,OAAO,KAAK,MAAM,cAAc,WACtCC,EAAM,OAAOD,EAAQ,OACrBC,EAAM,WAAWD,EAAQ,SAClBC;AAAA,MACT,CAAC,IAGC,KAAK,mBAAmB,SAC1BJ,EAAU,aAAa,OAAO,KAAK,MAAM,WAAW,OAEpDA,EAAU,aAAa,OAAO,KAAK,MAAM,WAAW,UAGtDA,EAAU,WAAW,IAAI,OAAO,KAAK,MAAM,qBAAoB,GAC/DA,EAAU,SAAS,QAAQ,KAAK,OAChCA,EAAU,SAAS,SAAS,CAAC,EAAE,KAAK,KAAK,QAAQ,GAE7CvE,GAAM,KAAK,OAAO,GAAG;AACvB,cAAM4E,IAAgB,MAAMvE,GAAyB,KAAK,OAAO;AAEjE,SADwBuE,KAAA,gBAAAA,EAAe,SAAS,YAAUA,KAAA,gBAAAA,EAAe,SAAS,WAEhFL,EAAU,mBAAmB,OAAO,KAAK,MAAM,iBAAiB,MAChEA,EAAU,wBAAwB,OAAO,KAAK,MAAM,sBAAsB,QACjEK,KAAA,QAAAA,EAAe,SAAS,UACjCL,EAAU,mBAAmB,OAAO,KAAK,MAAM,iBAAiB,IAChEA,EAAU,wBAAwB,OAAO,KAAK,MAAM,sBAAsB;AAAA,MAE9E;AAEA,YAAMzF,IAAU,IAAI,OAAO,KAAK,MAAM,YAAYyF,CAAS;AAC3D,MAAAzF,EAAQ,cAAc,MAAM,eAAe,GAC3CA,EAAQ,WAAW,CAACoD,EAAA,MAAK6B,GAAY,QACrCjF,EAAQ,iBAAiB2E,GAEzB,QAAM3O,IAAA6J,GAAc,MAAd,gBAAA7J,EAAkB,UAAUgK,KAElC,KAAK,cAAc,IAAI,MAAM,cAAc,CAAC;AAAA,IAC9C;AAAA,IAEA,OAAO;;AACL,UAAIoD,EAAA,MAAK4B,GAAA3B,IAAa;AACpB,QAAID,EAAA,MAAK4B,GAAA3B,GAAY,cACnBrN,IAAAoN,EAAA,MAAK4B,GAAA3B,GAAY,eAAjB,QAAArN,EAA6B;AAE/B;AAAA,MACF;AACA,aAAO,MAAM,KAAI;AAAA,IACnB;AAAA,IAEA,QAAQ;;AACN,UAAIoN,EAAA,MAAK4B,GAAA3B,IAAa;AACpB,QAAKD,EAAA,MAAK4B,GAAA3B,GAAY,aACpBrN,IAAAoN,EAAA,MAAK4B,GAAA3B,GAAY,eAAjB,QAAArN,EAA6B;AAE/B;AAAA,MACF;AACA,YAAM,MAAK;AAAA,IACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAeA,IAAI,cAAc;AAChB,aAAOoN,EAAA,MAAK8B;AAAA,IACd;AAAA,IAEA,IAAI,eAAe;AACjB,aAAO,KAAK,aAAa,eAAe,KAAK;AAAA,IAC/C;AAAA,IAEA,IAAI,aAAaa,GAAK;AACpB,MAAI,KAAK,gBAAgBA,KACzB,KAAK,aAAa,iBAAiB,GAAGA,CAAG,EAAE;AAAA,IAC7C;AAAA;AAAA,IAGA,IAAI,UAAU;;AAEZ,aACE,KAAK,aAAa,UAAU,OAC5B/P,IAAA,KAAK,cAAc,QAAQ,MAA3B,gBAAAA,EAA8B,QAC9B,KAAK;AAAA,IAET;AAAA,IAEA,IAAI,QAAQ+P,GAAK;AACf,MAAI,KAAK,WAAWA,KACpB,KAAK,aAAa,YAAY,GAAGA,CAAG,EAAE;AAAA,IACxC;AAAA,IAEA,IAAI,kBAAkB;AACpB,aAAO,KAAK,aAAa,mBAAmB,KAAK;AAAA,IACnD;AAAA,IAEA,IAAI,gBAAgBA,GAAK;AACvB,WAAK,aAAa,qBAAqB,GAAGA,CAAG,EAAE;AAAA,IACjD;AAAA,IAEA,IAAI,iBAAiB;AAEnB,aAAO,KAAK,aAAa,kBAAkB,KAAK,KAAK,cAAc;AAAA,IACrE;AAAA,IAEA,IAAI,eAAeA,GAAK;AACtB,WAAK,aAAa,oBAAoB,GAAGA,CAAG,EAAE;AAAA,IAChD;AAAA,IAEA,IAAI,iBAAiB;AACnB,aAAO3C,EAAA,MAAK+B;AAAA,IACd;AAAA,IAEA,IAAI,eAAeY,GAAK;AACtB,YAAMC,IAAU,OAAOD;AACvB,UAAI,CAAC,CAAC,UAAU,WAAW,EAAE,SAASC,CAAO,GAAG;AAC9C,gBAAQ,MAAM,qEAAqEA,CAAO,EAAE;AAC5F;AAAA,MACF;AAEA,MAAAhD,GAAA,MAAKmC,GAAkBY;AAAA,IACzB;AAAA,IAEA,IAAI,aAAa;AACf,UAAI3C,EAAA,MAAK4B,GAAA3B;AACP,gBAAQD,EAAA,MAAK4B,GAAA3B,GAAY,aAAW;AAAA,UAClC,KAAK,OAAO,KAAK,MAAM,YAAY;AACjC,mBAAO;AAAA,UACT,KAAK,OAAO,KAAK,MAAM,YAAY;AACjC,mBAAO;AAAA,UACT;AACE,mBAAO;AAAA,QACnB;AAEM,aAAO,MAAM;AAAA,IACf;AAAA,IAEA,IAAI,SAAS;AACX,aAAID,EAAA,MAAK4B,GAAA3B,KAAoBD,EAAA,MAAK4B,GAAA3B,GAAY,WACvC,MAAM;AAAA,IACf;AAAA,IAEA,IAAI,QAAQ;;AACV,aAAID,EAAA,MAAK4B,GAAA3B,MAAoBrN,IAAAoN,EAAA,MAAK4B,GAAA3B,OAAL,gBAAArN,EAAkB,UACxC,MAAM;AAAA,IACf;AAAA,IAEA,IAAI,MAAM+P,GAAK;;AACb,UAAI3C,EAAA,MAAK4B,GAAA3B,IAAa;AACpB,SACG0C,KAAO,CAAC3C,EAAA,MAAK4B,GAAA3B,GAAY,WACzB,CAAC0C,KAAO3C,EAAA,MAAK4B,GAAA3B,GAAY,cAE1BrN,IAAAoN,EAAA,MAAK4B,GAAA3B,GAAY,eAAjB,QAAArN,EAA6B;AAE/B;AAAA,MACF;AACA,YAAM,QAAQ+P;AAAA,IAChB;AAAA,IAEA,IAAI,SAAS;;AACX,aAAI3C,EAAA,MAAK4B,GAAA3B,OAAoBrN,IAAAoN,EAAA,MAAK4B,GAAA3B,OAAL,gBAAArN,EAAkB,gBAAe,IACvD,MAAM;AAAA,IACf;AAAA,IAEA,IAAI,OAAO+P,GAAK;;AACd,UAAI3C,EAAA,MAAK4B,GAAA3B,IAAa;AACpB,QAAAD,EAAA,MAAK4B,GAAA3B,GAAY,cAAc,CAAC0C,IAChC/P,IAAAoN,EAAA,MAAK4B,GAAA3B,GAAY,eAAjB,QAAArN,EAA6B;AAC7B;AAAA,MACF;AACA,YAAM,SAAS+P;AAAA,IACjB;AAAA,IAEA,IAAI,WAAW;;AAEb,aAAI3C,EAAA,MAAK4B,GAAA3B,QAAerN,IAAAoN,EAAA,MAAK4B,GAAA3B,OAAL,QAAArN,EAAkB,mBACjCsJ,IAAA8D,EAAA,MAAK4B,GAAA3B,OAAL,gBAAA/D,EAAkB,aAAY,MAEhC,MAAM;AAAA,IACf;AAAA,IAEA,IAAI,cAAc;;AAChB,aAAI8D,EAAA,MAAK4B,GAAA3B,QAAerN,IAAAoN,EAAA,MAAK4B,GAAA3B,OAAL,QAAArN,EAAkB,mBACjCsJ,IAAA8D,EAAA,MAAK4B,GAAA3B,OAAL,gBAAA/D,EAAkB,gBAAe,IAEnC,MAAM;AAAA,IACf;AAAA,IAEA,IAAI,YAAYyG,GAAK;;AACnB,UAAI3C,EAAA,MAAK4B,GAAA3B,IAAa;AACpB,QAAAD,EAAA,MAAK4B,GAAA3B,GAAY,cAAc0C,IAC/B/P,IAAAoN,EAAA,MAAK4B,GAAA3B,GAAY,eAAjB,QAAArN,EAA6B;AAC7B;AAAA,MACF;AACA,YAAM,cAAc+P;AAAA,IACtB;AAAA,EACJ,GAtTId,IAAA,eACAC,IAAA,eACAC,IAAA,eACAC,IAAA,eAbFJ,IAAA,eAuCM3B,IAAW,WAAG;;AAChB,YAAO/D,KAAAtJ,IAAA2I,GAAa,IAAI,KAAK,MAAM,MAA5B,gBAAA3I,EAA+B,kBAA/B,gBAAAsJ,EAAA,KAAAtJ;AAAA,EACT,GA2BMqP,KAAa,iBAAG;AAEpB,IAAAjC,EAAA,MAAK6B,GAAY,SAASgB,GAAAjQ,EAAA,iBAAM,WAChCiQ,GAAAjQ,EAAA,iBAAM,cAAN,IAAW,GAGX,KAAK,QAAQiQ,GAAAjQ,EAAA,iBAAM;AAEnB,QAAI;AACF,YAAM,KAAK,KAAI;AAAA,IACjB,SAASsL,GAAK;AACZ,cAAQ,MAAMA,CAAG;AAAA,IACnB;AAAA,EACF,GA/EA4E,GAFFlQ,GAES,sBAAqB;AAAA,IAC1B,GAAI+O,EAAW,sBAAsB;IACrC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACN,IARE/O;AAAA;ACtBF,IAAIzE,KAAE,CAAA1F,MAAG;AAAC,QAAM,UAAUA,CAAC;AAAC,GAAMoJ,KAAE,CAACpJ,GAAEjB,GAAEH,MAAIG,EAAE,IAAIiB,CAAC,KAAG0F,GAAE,YAAU9G,CAAC,GAAMK,KAAE,CAACe,GAAEjB,GAAEH,OAAKwK,GAAEpJ,GAAEjB,GAAE,yBAAyB,GAAEH,IAAEA,EAAE,KAAKoB,CAAC,IAAEjB,EAAE,IAAIiB,CAAC,IAAGiJ,KAAE,CAACjJ,GAAEjB,GAAEH,MAAIG,EAAE,IAAIiB,CAAC,IAAE0F,GAAE,mDAAmD,IAAE3G,aAAa,UAAQA,EAAE,IAAIiB,CAAC,IAAEjB,EAAE,IAAIiB,GAAEpB,CAAC,GAAEuK,KAAE,CAACnJ,GAAEjB,GAAEH,GAAEuI,OAAKiC,GAAEpJ,GAAEjB,GAAE,wBAAwB,GAAgBA,EAAE,IAAIiB,GAAEpB,CAAC,GAAEA,IAAOI,KAAE,MAAK;AAAA,EAAC,mBAAkB;AAAA,EAAC;AAAA,EAAC,sBAAqB;AAAA,EAAC;AAAA,EAAC,cAAcD,GAAE;AAAC,WAAM;AAAA,EAAE;AAAC;AAAE,IAAG,OAAO,mBAAkB,KAAY;AAAA,EAAC,MAAMiB,UAAUhB,GAAC;AAAA,EAAA;AAAE,aAAW,mBAAiBgB;AAAC;AAAI,IAACS,KAAE,cAAczB,GAAC;AAAA,GAAuByH,KAAE,EAAC,IAAIzG,GAAE;AAAC,GAAE,OAAOA,GAAEjB,GAAEH,GAAE;AAAC,GAAE,QAAQoB,GAAE;AAAC,SAAO;AAAI,GAAE,QAAQA,GAAE;AAAC,GAAE,YAAYA,GAAE;AAAC,SAAO,QAAQ,QAAQS,EAAC;AAAC,EAAC,GAA8K6F,KAAE,EAA6C,gBAAeG,GAA8D,GAAEM,KAAE,OAAO,SAAQ,OAAa,OAAO,WAAW,iBAAgB,KAAYR,KAAEQ,KAAET,KAAE,YAAmQ7H,IAAEI,KAAE,cAAcwH,GAAEkD,GAAEF,EAAC,CAAC,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAEJ,GAAE,MAAKxK,EAAC;AAAA,EAAC;AAAA,EAAC,IAAI,WAAU;AAAC,QAAI,IAAE,KAAK,aAAa,UAAU;AAAE,WAAO,MAAI,OAAK,KAAG,MAAI,KAAG,KAAG;AAAA,EAAC;AAAA,EAAC,IAAI,SAAS,GAAE;AAAC,QAAI0I,IAAE,KAAK;AAAS,UAAIA,MAAI,IAAE,KAAK,aAAa,YAAW,OAAO,KAAG,WAAS,IAAE,EAAE,IAAE,KAAK,gBAAgB,UAAU;AAAA,EAAE;AAAA,EAAC,IAAI,oBAAmB;AAAC,WAAM,EAAC,KAAI,EAAC,YAAW,KAAK,YAAW,eAAc,KAAK,eAAc,eAAc,KAAK,eAAc,gBAAe,KAAK,gBAAe,cAAa,KAAK,cAAa,QAAO,EAAC,KAAI,KAAK,SAAQ,GAAE,QAAO,KAAK,QAAO,UAAS,KAAK,UAAS,gBAAe,KAAK,gBAAe,iBAAgB,KAAK,iBAAgB,wBAAuB,KAAK,wBAAuB,WAAU,KAAK,WAAU,YAAW,KAAK,WAAU,EAAC;AAAA,EAAC;AAAA,EAAC,IAAI,iBAAgB;AAAC,QAAI;AAAE,YAAO,IAAElI,GAAE,MAAKR,EAAC,MAAI,OAAK,IAAE,KAAK;AAAA,EAAiB;AAAA,EAAC,IAAI,eAAe,GAAE;AAAC,IAAA0K,GAAE,MAAK1K,IAAE,CAAC;AAAA,EAAC;AAAC;AAAEA,KAAE,oBAAI;AAAQ8H,GAAE,eAAe,IAAI,WAAW,MAAIA,GAAE,eAAe,OAAO,aAAY1H,EAAC,GAAE0H,GAAE,kBAAgB1H;ACAnsE,MAAMyb,IAAgB;AAAA,EACpB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,gCAAgC;AAAA,EAChC,+BAA+B;AAAA,EAC/B,uBAAuB;AAAA,EACvB,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,yBAAyB;AAAA,EACzB,gCAAgC;AAAA,EAChC,gCAAgC;AAAA,EAChC,8BAA8B;AAAA,EAC9B,iCAAiC;AAAA,EACjC,gCAAgC;AAAA,EAChC,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,2BAA2B;AAAA,EAC3B,4BAA4B;AAAA,EAC5B,+BAA+B;AAAA,EAC/B,iCAAiC;AACnC,GACMC,IAA+B;AAAA,EACnC,yBAAyB;AAAA,EACzB,kBAAkB;AACpB,GACMC,KAAe;AAAA,EACnB,2BAA2B;AAAA,EAC3B,2BAA2B;AAAA,EAC3B,wBAAwB;AAAA,EACxB,+BAA+B;AAAA,EAC/B,gBAAgB;AAAA,EAChB,wBAAwB;AAAA,EACxB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,8BAA8B;AAAA,EAC9B,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,qBAAqB;AAAA,EACrB,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,0BAA0B;AAAA,EAC1B,6BAA6B;AAAA,EAC7B,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,oBAAoB;AAAA,EACpB,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,YAAY;AAAA,EACZ,aAAa;AACf,GACMC,KAAsB,OAAO;AAAA,EACjCD;AACF,GACME,IAAoBD,GAAoB;AAAA,EAC5C,CAACE,GAAS,CAACC,GAAKC,CAAQ,OACtBF,EAAQC,CAAG,IAAIC,EAAS,YAAW,GAC5BF;AAAA,EAET,CAAA;AACF,GACMG,KAA8B;AAAA,EAClC,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,sBAAsB;AACxB,GACMC,KAAyBN,GAAoB;AAAA,EACjD,CAACE,GAAS,CAACC,GAAKC,CAAQ,OACtBF,EAAQC,CAAG,IAAIC,EAAS,YAAW,GAC5BF;AAAA,EAET,EAAE,GAAGG,GAA2B;AAClC;AACuC,OAAO;AAAA,EAC5CC;AACF,EAAE;AAAA,EACA,CAACC,GAAQ,CAACJ,GAAKK,CAAS,MAAM;AAC5B,UAAMxB,IAAWiB,EAAkBE,CAAG;AACtC,WAAInB,MACFuB,EAAOC,CAAS,IAAIxB,IAEfuB;AAAA,EACT;AAAA,EACA,EAAE,oBAAoB,eAAc;AACtC;AACA,MAAME,KAAiC,OAAO;AAAA,EAC5CR;AACF,EAAE;AAAA,EACA,CAACM,GAAQ,CAACJ,GAAKnB,CAAQ,MAAM;AAC3B,UAAM0B,IAAUJ,GAAuBH,CAAG;AAC1C,WAAIO,MACFH,EAAOvB,CAAQ,IAAI0B,IAEdH;AAAA,EACT;AAAA,EACA,EAAE,cAAc,qBAAoB;AACtC,GACMI,KAAiB;AAAA,EACrB,WAAW;AAAA,EACX,UAAU;AAAA,EAEV,UAAU;AAAA,EACV,UAAU;AACZ,GACMC,KAAiB;AAAA,EACrB,UAAU;AAAA,EAEV,SAAS;AACX,GAQMC,KAAe;AAAA,EACnB,OAAO;AAAA,EACP,KAAK;AAAA,EACL,OAAO;AACT,GACMC,KAAqB;AAAA,EACzB,aAAa;AAAA,EACb,aAAa;AACf,GACMC,KAAc;AAAA,EAClB,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AACX,GAOMC,KAA0B;AAAA,EAE9B,YAAY;AAEd;ACvKA,SAASC,GAAuBC,GAAY;AAC1C,SAAOA,KAAc,OAAO,SAASA,EAAW,IAAIC,EAAkB,EAAE,KAAK,GAAG;AAClF;AACA,SAASC,GAAmBF,GAAY;AACtC,SAAOA,KAAc,OAAO,SAASA,EAAW,MAAM,KAAK,EAAE,IAAIG,EAAc;AACjF;AACA,SAASF,GAAmBG,GAAW;AACrC,MAAIA,GAAW;AACb,UAAM,EAAE,IAAA/C,GAAI,OAAAgD,GAAO,QAAAC,EAAM,IAAKF;AAC9B,WAAO,CAAC/C,GAAIgD,GAAOC,CAAM,EAAE,OAAO,CAACnd,MAAMA,KAAK,IAAI,EAAE,KAAK,GAAG;AAAA,EAC9D;AACF;AACA,SAASgd,GAAeC,GAAW;AACjC,MAAIA,GAAW;AACb,UAAM,CAAC/C,GAAIgD,GAAOC,CAAM,IAAIF,EAAU,MAAM,GAAG;AAC/C,WAAO,EAAE,IAAA/C,GAAI,OAAO,CAACgD,GAAO,QAAQ,CAACC,EAAM;AAAA,EAC7C;AACF;AACA,SAASC,GAAwBC,GAAa;AAC5C,SAAOA,KAAe,OAAO,SAASA,EAAY,IAAIC,EAAmB,EAAE,KAAK,GAAG;AACrF;AACA,SAASC,GAAoBF,GAAa;AACxC,SAAOA,KAAe,OAAO,SAASA,EAAY,MAAM,KAAK,EAAE,IAAIG,EAAe;AACpF;AACA,SAASF,GAAoBG,GAAY;AACvC,MAAIA,GAAY;AACd,UAAM,EAAE,IAAAvD,GAAI,MAAAX,GAAM,UAAAE,GAAU,OAAAiE,EAAK,IAAKD;AACtC,WAAO,CAACvD,GAAIX,GAAME,GAAUiE,CAAK,EAAE,OAAO,CAAC1d,MAAMA,KAAK,IAAI,EAAE,KAAK,GAAG;AAAA,EACtE;AACF;AACA,SAASwd,GAAgBC,GAAY;AACnC,MAAIA,GAAY;AACd,UAAM,CAACvD,GAAIX,GAAME,GAAUiE,CAAK,IAAID,EAAW,MAAM,GAAG;AACxD,WAAO;AAAA,MACL,IAAAvD;AAAA,MACA,MAAAX;AAAA,MACA,UAAAE;AAAA,MACA,OAAAiE;AAAA,IACN;AAAA,EACE;AACF;AAWA,SAASC,GAAUjE,GAAM;AACvB,SAAOA,EAAK,QAAQ,gBAAgB,CAACkE,GAAIC,MAAOA,EAAG,aAAa;AAClE;AACA,SAASC,GAAcnW,GAAG;AACxB,SAAO,OAAOA,KAAM,YAAY,CAAC,OAAO,MAAMA,CAAC,KAAK,OAAO,SAASA,CAAC;AACvE;AACA,SAASoW,GAAgBC,GAAK;AAC5B,SAAI,OAAOA,KAAO,WACT,KACF,CAAC,MAAMA,CAAG,KAAK,CAAC,MAAM,WAAWA,CAAG,CAAC;AAC9C;AACA,MAAMC,KAAQ,CAACC,MAAO,IAAI,QAAQ,CAAC5I,MAAY,WAAWA,GAAS4I,CAAE,CAAC,GC9DhEtK,KAAK;AAAA,EACT,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,iCAAiC;AAAA,EACjC,gCAAgC;AAAA,EAChC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,gCAAgC;AAAA,EAChC,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,mBAAmB;AAAA,EACnB,yBAAyB;AAAA,EACzB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,0BAA0B;AAAA,EAC1B,MAAM;AAAA,EACN,KAAK;AAAA,EACL,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,iCAAiC;AAAA,EACjC,gCAAgC;AAAA,EAChC,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,kCAAkC;AAAA,EAClC,qCAAqC;AAAA,EACrC,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,wBAAwB;AAAA,EACxB,oBAAoB;AAAA,EACpB,sDAAsD;AAAA,EACtD,yHAAyH;AAAA,EACzH,8GAA8G;AAAA,EAC9G,+DAA+D;AAAA,EAC/D,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,oBAAoB;AAAA,EACpB,gCAAgC;AAAA,EAChC,mCAAmC;AACrC;ACxEA,IAAIvI;AAEJ,MAAM8S,KAAe;AAAA,EACnB,IAAIvK;AACN;AACA,IAAIwK,OAAgB/S,KAAK,WAAW,cAAc,OAAO,SAASA,GAAG,aAAa;AAClF,MAAMgT,KAAc,CAACC,MAAa;AAChC,EAAAF,KAAcE;AAChB,GAIMC,KAAqB,CAACzC,MAAQ;AAClC,MAAI0C,GAAK7J,GAAIC;AACb,QAAM,CAAC6J,CAAI,IAAIL,GAAY,MAAM,GAAG;AACpC,WAASI,IAAML,GAAaC,EAAW,MAAM,OAAO,SAASI,EAAI1C,CAAG,QAAQnH,IAAKwJ,GAAaM,CAAI,MAAM,OAAO,SAAS9J,EAAGmH,CAAG,QAAQlH,IAAKuJ,GAAa,OAAO,OAAO,SAASvJ,EAAGkH,CAAG,MAAMA;AAC7L,GACMhc,IAAI,CAACgc,GAAK4C,IAAO,CAAA,MAAOH,GAAmBzC,CAAG,EAAE;AAAA,EACpD;AAAA,EACA,CAAC1R,GAAGxC,MAAMA,KAAK8W,IAAO,OAAOA,EAAK9W,CAAC,CAAC,IAAI,IAAIA,CAAC;AAC/C,GClBM+W,KAAa;AAAA,EACjB;AAAA,IACE,UAAU;AAAA,IACV,QAAQ;AAAA,EACZ;AAAA,EACE;AAAA,IACE,UAAU;AAAA,IACV,QAAQ;AAAA,EACZ;AAAA,EACE;AAAA,IACE,UAAU;AAAA,IACV,QAAQ;AAAA,EACZ;AACA,GACMC,KAAmB,CAACC,GAAeC,MAAc;AACrD,QAAMC,IAAkCjf,EAAtB+e,MAAkB,IAAMF,GAAWG,CAAS,EAAE,WAAcH,GAAWG,CAAS,EAAE,MAA5B;AACxE,SAAO,GAAGD,CAAa,IAAIE,CAAS;AACtC,GACMC,KAAqB,CAACC,MAAY;AACtC,MAAI,CAACnB,GAAcmB,CAAO;AACxB,WAAO;AACT,QAAMC,IAAkB,KAAK,IAAID,CAAO,GAClCE,IAAWD,MAAoBD,GAC/BG,IAAkB,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,GAAGF,GAAiB,CAAC,GAM5DG,IALY;AAAA,IAChBD,EAAgB,SAAQ;AAAA,IACxBA,EAAgB,WAAU;AAAA,IAC1BA,EAAgB,WAAU;AAAA,EAC9B,EAC+B;AAAA,IAC3B,CAACP,GAAeS,MAAUT,KAAiBD,GAAiBC,GAAeS,CAAK;AAAA,EACpF,EAAI,OAAO,CAAC3X,MAAMA,CAAC,EAAE,KAAK,IAAI;AAC5B,SAAIwX,IACKrf,EAAE,oBAAoB,EAAE,MAAMuf,EAAU,CAAE,IAE5CA;AACT;AACA,SAASE,GAAWN,GAASO,GAAO;AAClC,MAAIL,IAAW;AACf,EAAIF,IAAU,MACZE,IAAW,IACXF,IAAU,IAAIA,IAEhBA,IAAUA,IAAU,IAAI,IAAIA;AAC5B,MAAI/e,IAAI,KAAK,MAAM+e,IAAU,EAAE,GAC3B9U,IAAI,KAAK,MAAM8U,IAAU,KAAK,EAAE,GAChCpY,IAAI,KAAK,MAAMoY,IAAU,IAAI;AACjC,QAAMQ,IAAK,KAAK,MAAMD,IAAQ,KAAK,EAAE,GAC/BE,IAAK,KAAK,MAAMF,IAAQ,IAAI;AAClC,UAAI,MAAMP,CAAO,KAAKA,MAAY,WAChCpY,IAAIsD,IAAIjK,IAAI,MAEd2G,IAAIA,IAAI,KAAK6Y,IAAK,IAAI7Y,IAAI,MAAM,IAChCsD,MAAMtD,KAAK4Y,KAAM,OAAOtV,IAAI,KAAK,MAAMA,IAAIA,KAAK,KAChDjK,IAAIA,IAAI,KAAK,MAAMA,IAAIA,IACfif,IAAW,MAAM,MAAMtY,IAAIsD,IAAIjK;AACzC;AC1DA,IAAAyf,KAAA,MAAkB;AAAA,EAChB,mBAAmB;AAAA,EACnB;AAAA,EACA,sBAAsB;AAAA,EACtB;AAAA,EACA,gBAAgB;AACd,WAAO;AAAA,EACT;AACF;AACA,MAAMC,WAAaC,GAAY;AAC/B;SACA,cAAsBD,GAAK;AAAA,EACzB,cAAc;AACZ,UAAM,GAAG,SAAS,GAClB,KAAK,OAAO;AAAA,EACd;AACF;AACA,MAAME,GAAe;AAAA,EACnB,UAAU;AAAA,EACV;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,aAAa;AAAA,EACb;AACF;AACA,MAAMC,KAAe;AAAA,EACnB,eAAe,WAAW;AACxB,WAAO,IAAIC,GAAe,YAAW;AAAA,EACvC;AAAA,EACA,iBAAiB,WAAW;AAC1B,WAAO,IAAIA,GAAe,YAAW;AAAA,EACvC;AAAA,EACA,mBAAmB;AAAA,EACnB;AAAA,EACA,sBAAsB;AAAA,EACtB;AAAA,EACA,cAAcC,GAAQ;AACpB,WAAO;AAAA,EACT;AACF,GACMD,KAAiB;AAAA,EACrB,gBAAAF;AAAA,EACA,UAAUC;AAAA,EACV,MAAAH;AAAA,EACF,SAAEM;AAAAA,EACA,aAAa,cAA0BA,GAAQ;AAAA,IAC7C,cAAc;AACZ,YAAM,GAAG,SAAS,GAClB,KAAK,YAAY;AAAA,IACnB;AAAA,IACA,IAAI,UAAU;AACZ,aAAO,IAAIF,GAAe,iBAAgB;AAAA,IAC5C;AAAA,EACJ;AAAA,EACE,kBAAkB,cAA+BH,GAAY;AAAA,EAC/D;AAAA,EACE,gBAAgB;AAAA,IACd,KAAK,WAAW;AAAA,IAChB;AAAA,IACA,QAAQ,WAAW;AAAA,IACnB;AAAA,IACA,aAAa,WAAW;AAAA,IACxB;AAAA,EACJ;AAAA,EACE,cAAc;AAAA,IACZ,QAAQM,GAAM;AACZ,aAAO;AAAA,IACT;AAAA,IACA,QAAQA,GAAMC,GAAQ;AAAA,IACtB;AAAA,IACA,WAAWD,GAAM;AAAA,IACjB;AAAA,EACJ;AAAA,EACE,aAAa,WAAuB;AAAA,EACpC;AAAA,EACA,kBAAkB,WAAW;AAAA,EAC7B;AAAA,EACA,WAAW;AAAA,IACT,WAAW,CAAA;AAAA,IACX,IAAI,YAAY;AACd,aAAO;AAAA,IACT;AAAA,EACJ;AAAA,EACE,WAAW5I,GAAO;AAChB,WAAO;AAAA,MACL,SAAS;AAAA,MACT,OAAAA;AAAA,IACN;AAAA,EACE;AAAA,EACA,WAAW,MAAgB;AAAA,IACzB,gBAAgB8I,GAAQC,GAAc;AACpC,aAAO;AAAA,QACL,MAAM;AAAA,UACJ,aAAaD;AAAA,QACvB;AAAA,MACA;AAAA,IACI;AAAA,EACJ;AACA,GACME,KAAW,YAAY,eAAe,cAAc,OAAO,SAAS,WAAW,YAAY;AACjG,OAAO,SAAW,OAAe,OAAO,OAAO,iBAAmB,KAC5DC,KAAY,OAAO,KAAKR,EAAc,EAAE,MAAM,CAAClE,MAAQA,KAAO,UAAU,GACxE2E,IAAaF,MAAY,CAACC,KAAYR,KAAiB,YACvDU,KAAWH,MAAY,CAACC,KAAYT,KAAe,WAAW,UCtG9DY,KAA+B,oBAAI,QAAO,GAC1CC,KAAe,CAACC,MAAY;AAChC,MAAIC,IAAYH,GAAa,IAAIE,CAAO;AACxC,SAAKC,KACHH,GAAa,IAAIE,GAASC,IAA4B,oBAAI,IAAG,CAAE,GAC1DA;AACT,GACMC,KAAW,IAAIC,EAAW;AAAA,EAC9B,CAACC,MAAY;AACX,eAAWC,KAASD;AAClB,iBAAWvM,KAAYkM,GAAaM,EAAM,MAAM;AAC9C,QAAAxM,EAASwM,CAAK;AAAA,EAGpB;AACF;AACA,SAASC,GAAcN,GAASnM,GAAU;AACxC,EAAAkM,GAAaC,CAAO,EAAE,IAAInM,CAAQ,GAClCqM,GAAS,QAAQF,CAAO;AAC1B;AACA,SAASO,GAAgBP,GAASnM,GAAU;AAC1C,QAAMoM,IAAYF,GAAaC,CAAO;AACtC,EAAAC,EAAU,OAAOpM,CAAQ,GACpBoM,EAAU,QACbC,GAAS,UAAUF,CAAO;AAE9B;AC1BA,SAASQ,GAAqBC,GAAc;AAC1C,QAAMC,IAAM,CAAA;AACZ,aAAWC,KAAQF;AACjB,IAAAC,EAAIC,EAAK,IAAI,IAAIA,EAAK;AAExB,SAAOD;AACT;AACA,SAASE,GAAmBC,GAAM;AAChC,MAAIrW;AACJ,UAAQA,IAAKsW,GAA4BD,CAAI,MAAM,OAAOrW,IAAKuW,GAAoBF,GAAM,kBAAkB;AAC7G;AACA,SAASC,GAA4BD,GAAM;AACzC,MAAIrW;AACJ,QAAM,EAAE,kBAAAwW,EAAgB,IAAKpG,GACvBqG,IAAoBJ,EAAK,aAAaG,CAAgB;AAC5D,MAAIC;AACF,YAAQzW,IAAK0W,GAAwBL,CAAI,MAAM,OAAO,SAASrW,EAAG;AAAA,MAChEyW;AAAA,IACN;AAEA;AACA,MAAME,KAAiB,CAACC,GAAKzN,GAAO0N,IAAW,aAAa;AAC1D,QAAMC,IAAOF,EAAI,cAAcC,CAAQ;AACvC,EAAKC,MAELA,EAAK,cAAc3N;AACrB,GACM4N,KAAgB,CAAC/N,GAAIqF,MAAS;AAClC,QAAM2I,IAAe,cAAc3I,CAAI,MACjC4I,IAAOjO,EAAG,WAAW,cAAcgO,CAAY;AACrD,SAAKC,IAEEA,EAAK,WADH,CAAA;AAEX,GACMC,KAAa,CAAClO,GAAIqF,MAAS0I,GAAc/N,GAAIqF,CAAI,EAAE,CAAC,GACpD8I,KAAuB,CAACC,GAAUC,MAClC,CAACD,KAAY,CAACC,IACT,KACLD,KAAY,QAAgBA,EAAS,SAASC,CAAS,IAClD,KACFF;AAAA,EACLC;AAAA,EACAC,EAAU,YAAW,EAAG;AAC5B,GAEMd,KAAsB,CAACc,GAAWR,MAAa;AACnD,MAAI,CAACQ;AACH,WAAO;AACT,QAAMC,IAAUD,EAAU,QAAQR,CAAQ;AAC1C,SAAIS,KAEGf;AAAA,IACLc,EAAU,YAAW,EAAG;AAAA,IACxBR;AAAA,EACJ;AACA;AACA,SAASU,GAAiBC,IAAO,UAAU;AACzC,MAAIxX;AACJ,QAAMyX,IAAWD,KAAQ,OAAO,SAASA,EAAK;AAC9C,SAAKC,KAEGzX,IAAKuX,GAAiBE,EAAS,UAAU,MAAM,OAAOzX,IAAKyX,IAD1D;AAEX;AACA,SAASf,GAAwBI,GAAM;AACrC,MAAI9W;AACJ,QAAMoX,KAAYpX,IAAK8W,KAAQ,OAAO,SAASA,EAAK,gBAAgB,OAAO,SAAS9W,EAAG,KAAK8W,CAAI;AAChG,SAAIM,aAAoB,cAAcA,aAAoB,WACjDA,IAEF;AACT;AACA,SAASM,GAAiBlC,GAAS,EAAE,OAAAmC,IAAQ,GAAG,cAAAC,IAAe,IAAM,oBAAAC,IAAqB,GAAI,IAAK,IAAI;AACrG,MAAIrC,EAAQ;AACV,WAAOA,EAAQ,gBAAgB;AAAA,MAC7B,cAAAoC;AAAA,MACA,oBAAAC;AAAA,IACN,CAAK;AAEH,MAAI7O,IAAKwM;AACT,SAAOxM,KAAM2O,IAAQ,KAAG;AACtB,UAAMG,IAAQ,iBAAiB9O,CAAE;AACjC,QAAI4O,KAAgBE,EAAM,YAAY,OAAOD,KAAsBC,EAAM,eAAe,YAAYA,EAAM,YAAY;AACpH,aAAO;AAET,IAAA9O,IAAKA,EAAG,eACR2O;AAAA,EACF;AACA,SAAO;AACT;AACA,SAASI,GAAuBzb,GAAGH,GAAG6b,GAAIC,GAAI;AAC5C,QAAMC,IAAKD,EAAG,IAAID,EAAG,GACfG,IAAKF,EAAG,IAAID,EAAG,GACfI,IAAgBF,IAAKA,IAAKC,IAAKA;AACrC,MAAIC,MAAkB;AACpB,WAAO;AACT,QAAMC,MAAe/b,IAAI0b,EAAG,KAAKE,KAAM/b,IAAI6b,EAAG,KAAKG,KAAMC;AACzD,SAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGC,CAAU,CAAC;AAC5C;AAIA,SAASC,GAAmBC,GAAaC,GAAc;AACrD,QAAMC,IAAUC,GAAWH,GAAa,CAAC7R,MAAOA,MAAO8R,CAAY;AACnE,SAAIC,KAEGE,GAAcJ,GAAaC,CAAY;AAChD;AACA,SAASE,GAAWH,GAAaK,GAAW;AAC1C,MAAI5Y,GAAIsJ;AACR,MAAIwO;AACJ,OAAKA,MAAU9X,IAAKuY,EAAY,iBAAiB,oBAAoB,MAAM,OAAOvY,IAAK,IAAI;AACzF,QAAI6Y;AACJ,QAAI;AACF,MAAAA,KAAYvP,IAAKwO,EAAM,UAAU,OAAO,SAASxO,EAAG;AAAA,IACtD,QAAQ;AACN;AAAA,IACF;AACA,eAAWwP,KAAQD,KAA8B,CAAA;AAC/C,UAAID,EAAUE,EAAK,YAAY;AAC7B,eAAOA;AAAA,EAEb;AACF;AACA,SAASH,GAAcJ,GAAaC,GAAc;AAChD,MAAIxY,GAAIsJ;AACR,QAAMyP,KAAU/Y,IAAKuY,EAAY,iBAAiB,oBAAoB,MAAM,OAAOvY,IAAK,CAAA,GAClF8X,IAAQiB,KAAU,OAAO,SAASA,EAAOA,EAAO,SAAS,CAAC;AAChE,MAAI,EAAEjB,KAAS,QAAgBA,EAAM;AACnC,mBAAQ;AAAA,MACN;AAAA,MACAS;AAAA,IACN,GACW;AAAA;AAAA,MAEL,OAAO;AAAA,QACL,aAAa,MAAM;AAAA,QACnB;AAAA,QACA,gBAAgB,MAAM;AAAA,QACtB,kBAAkB,MAAM;AAAA,MAChC;AAAA,IACA;AAEE,QAAMS,IAAYlB,KAAS,OAAO,SAASA,EAAM,MAAM,WAAW,GAAGU,CAAY,MAAMV,EAAM,MAAM,SAAS,MAAM;AAClH,UAAQxO,IAAKwO,EAAM,MAAM,aAAa,OAAO,SAASxO,EAAG0P,CAAS;AACpE;AACA,SAASC,GAAejQ,GAAIsG,GAAU4J,IAAe,OAAO,KAAK;AAC/D,QAAMC,IAAUnQ,EAAG,aAAasG,CAAQ;AACxC,SAAO6J,KAAW,OAAO,CAACA,IAAUD;AACtC;AACA,SAASE,GAAepQ,GAAIsG,GAAUnG,GAAO;AAC3C,QAAMkQ,IAAmB,CAAClQ;AAC1B,MAAIA,KAAS,QAAQ,OAAO,MAAMkQ,CAAgB,GAAG;AACnD,IAAIrQ,EAAG,aAAasG,CAAQ,KAC1BtG,EAAG,gBAAgBsG,CAAQ;AAE7B;AAAA,EACF;AACA,EAAI2J,GAAejQ,GAAIsG,GAAU,MAAM,MAAM+J,KAE7CrQ,EAAG,aAAasG,GAAU,GAAG+J,CAAgB,EAAE;AACjD;AACA,SAASC,EAAetQ,GAAIsG,GAAU;AACpC,SAAOtG,EAAG,aAAasG,CAAQ;AACjC;AACA,SAASiK,EAAevQ,GAAIsG,GAAUnG,GAAO;AAC3C,MAAIA,KAAS,MAAM;AACjB,IAAIH,EAAG,aAAasG,CAAQ,KAC1BtG,EAAG,gBAAgBsG,CAAQ;AAE7B;AAAA,EACF;AACA,EAAIgK,EAAetQ,GAAIsG,CAAQ,KAAKnG,KAEpCH,EAAG,gBAAgBsG,GAAUnG,CAAK;AACpC;AACA,SAASqQ,GAAcxQ,GAAIsG,GAAU4J,IAAe,MAAM;AACxD,MAAIlZ;AACJ,UAAQA,IAAKgJ,EAAG,aAAasG,CAAQ,MAAM,OAAOtP,IAAKkZ;AACzD;AACA,SAASO,GAAczQ,GAAIsG,GAAUnG,GAAO;AAC1C,MAAIA,KAAS,MAAM;AACjB,IAAIH,EAAG,aAAasG,CAAQ,KAC1BtG,EAAG,gBAAgBsG,CAAQ;AAE7B;AAAA,EACF;AACA,QAAMoK,IAAY,GAAGvQ,CAAK;AAC1B,EAAIqQ,GAAcxQ,GAAIsG,GAAU,MAAM,MAAMoK,KAE5C1Q,EAAG,aAAasG,GAAUoK,CAAS;AACrC;AC/LA,IAAIC,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL6Q;AAcJ,SAASC,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASJ;AACA,MAAMC,WAA6BxE,EAAW,YAAY;AAAA,EACxD,cAAc;AAGZ,QAFA,MAAK,GACLxJ,GAAa,MAAM6N,IAAkB,MAAM,GACvC,CAAC,KAAK,YAAY;AACpB,WAAK,aAAa,KAAK,YAAY,iBAAiB;AACpD,YAAMI,IAAQpE,GAAqB,KAAK,UAAU;AAClD,WAAK,WAAW,YAAY,KAAK,YAAY,gBAAgBoE,CAAK;AAAA,IACpE;AAAA,EACF;AAAA;AAAA;AAAA,EAGA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACLhK,EAA6B;AAAA,MAC7BG,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,yBAAyBjB,GAAUC,GAAUC,GAAU;AACrD,QAAIxP,GAAIsJ,GAAIC,GAAIwC,GAAIhO;AACpB,IAAIuR,MAAac,EAA6B,qBACxCb,OACDjG,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI,IAEvCxK,KAAY,KAAK,gBACnBxC,GAAa,MAAMgN,KAAmBzQ,IAAK,KAAK,kBAAkB,OAAO,SAASA,EAAG,eAAeiG,CAAQ,CAAC,IAC5GzR,KAAMgO,IAAKqB,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASjO,EAAG,qBAAqB,QAAgBhO,EAAG,KAAKgO,GAAI,IAAI;AAAA,EAGnI;AAAA,EACA,oBAAoB;AAClB,QAAI/L,GAAIsJ;AAOR,IANA,KAAK,WAAW,IAChB,KAAK,aAAa,eAAe,MAAM,GACvC0D,GAAa,MAAMgN,IAAkBK,GAAqB,IAAI,CAAC,GAC3D,KAAK,aAAajK,EAA6B,gBAAgB,OAChE9G,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,qBAAqB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,IAE1HoN,GAAa,MAAM4M,EAAgB,MAExC5M,GAAa,MAAM4M,EAAgB,EAAE,iBAAiB,eAAe,IAAI,GACzE5M,GAAa,MAAM4M,EAAgB,EAAE,iBAAiB,SAAS,IAAI,GAC9D5M,GAAa,MAAM4M,EAAgB,EAAE,aAAa,UAAU,MAC/D5M,GAAa,MAAM4M,EAAgB,EAAE,WAAW;AAAA,EAEpD;AAAA,EACA,uBAAuB;AACrB,QAAIha,GAAIsJ,GAAIC,GAAIwC;AAChB,IAAI,KAAK,aAAaqE,EAA6B,gBAAgB,OAChE9G,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,KAEhIuJ,IAAK6D,GAAa,MAAM4M,EAAgB,MAAM,QAAgBzQ,EAAG,oBAAoB,eAAe,IAAI,IACxGwC,IAAKqB,GAAa,MAAM4M,EAAgB,MAAM,QAAgBjO,EAAG,oBAAoB,SAAS,IAAI,GACnGiB,GAAa,MAAMgN,IAAkB,IAAI;AAAA,EAC3C;AAAA,EACA,YAAY1M,GAAO;AACjB,QAAItN;AACJ,UAAMsa,KAAkBta,IAAKsN,EAAM,aAAY,MAAO,OAAO,SAAStN,EAAG,CAAC;AAE1E,QADkB,CAAC,SAAS,kBAAkB,EAC/B,SAASsa,KAAkB,OAAO,SAASA,EAAe,SAAS;AAElF,UAAIhN,EAAM,SAAS;AACjB,aAAK,eAAeA,EAAM;AAAA,eACjBA,EAAM,SAAS,SAAS;AACjC,cAAM,EAAE,SAAAiN,GAAS,SAAAC,EAAO,IAAKlN,GACvB,EAAE,MAAAmN,GAAM,KAAAC,GAAK,OAAA7I,GAAO,QAAAC,EAAM,IAAK,KAAK,sBAAqB,GACzDxV,IAAIie,IAAUE,GACdte,IAAIqe,IAAUE;AACpB,YAAIpe,IAAI,KAAKH,IAAI,KAAKG,IAAIuV,KAAS1V,IAAI2V;AAAA,QACvCD,MAAU,KAAKC,MAAW;AACxB;AAEF,cAAM6I,IAAc,KAAK,gBAAgB;AAEzC,YADA,KAAK,eAAe,QAChBA,MAAgBxJ,GAAa,OAAO;AACtC,eAAK,UAAU7D,CAAK;AACpB;AAAA,QACF,WAAWqN,MAAgBxJ,GAAa,SAASwJ,MAAgBxJ,GAAa,KAAK;AACjF,eAAK,iBAAiB7D,CAAK;AAC3B;AAAA,QACF;AAAA,MACF;AAAA;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,cAAc;AAChB,WAAOgM,EAAe,MAAM/I,EAAkB,YAAY;AAAA,EAC5D;AAAA,EACA,IAAI,YAAYpH,GAAO;AACrB,IAAAoQ,EAAe,MAAMhJ,EAAkB,cAAcpH,CAAK;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAU,GAAG;AAAA,EACb;AAAA;AAAA;AAAA,EAGA,iBAAiB,GAAG;AAClB,UAAMyR,IAAY,KAAK,cAAczK,EAAc,qBAAqBA,EAAc;AACtF,SAAK;AAAA,MACH,IAAIwF,EAAW,YAAYiF,GAAW,EAAE,UAAU,IAAM,SAAS,GAAI,CAAE;AAAA,IAC7E;AAAA,EACE;AACF;AACAZ,KAAmB,oBAAI,QAAO;AAC9BG,GAAqB,oBAAoB,EAAE,MAAM,OAAM;AACvDA,GAAqB,kBAAkBF;AACvC,SAASI,GAAqBQ,GAAW;AACvC,MAAI7a;AACJ,QAAMyW,IAAoBoE,EAAU;AAAA,IAClCzK,EAA6B;AAAA,EACjC;AACE,SAAIqG,KACMzW,IAAK6a,EAAU,YAAW,MAAO,OAAO,SAAS7a,EAAG,eAAeyW,CAAiB,IAEvFF,GAAoBsE,GAAW,kBAAkB;AAC1D;AACKlF,EAAW,eAAe,IAAI,wBAAwB,KACzDA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAwE;AACJ;AAEA,IAAIW,KAAiCX,IC9KjCR,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAELC,IAAmBC,IAAuBC,IAAeC,IAAkBC,IAAWC,IAAiBC,IAAkBC,IAAeC,IAAoBC,IAAsBC,IAAkBC,IAAoBC,IAAcC,IAAgBC,IAAYC,IAAcC,IAAmBC,IAAqBC,IAAcC;AAc1U,MAAMC,IAAa;AAAA,EACjB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,wBAAwB;AAC1B;AACA,SAASnC,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA,eAQW3J,EAAkB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAahC6L,EAAW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAqBrBA,EAAW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,eAQhBA,EAAW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBASXA,EAAW,KAAK,MAAMA,EAAW,iBAAiB;AAAA,wBAC9CA,EAAW,KAAK,MAAMA,EAAW,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAatDA,EAAW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKhBA,EAAW,KAAK;AAAA,oBAChBA,EAAW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAsBhBA,EAAW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6DAeyBA,EAAW,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAOpEA,EAAW,aAAa,UAAU7L,EAAkB,YAAY,WAAWA,EAAkB,mBAAmB,WAAWA,EAAkB,gBAAgB,WAAW6L,EAAW,KAAK,4DAA4DA,EAAW,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,eAK1QA,EAAW,aAAa,UAAUA,EAAW,WAAW,WAAW7L,EAAkB,YAAY,WAAWA,EAAkB,gBAAgB,WAAW6L,EAAW,KAAK;AAAA;AAAA;AAAA;AAAA,eAIzKA,EAAW,aAAa,KAAKA,EAAW,sBAAsB,UAAUA,EAAW,WAAW,WAAW7L,EAAkB,YAAY,WAAWA,EAAkB,gBAAgB,WAAW6L,EAAW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAY1MA,EAAW,KAAK,MAAM7L,EAAkB,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAmBxC4J,GAAqB,kBAAkB,IAAI;AAAA,YACnEA,GAAqB,gBAAgB,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAepD;AACA,MAAMkC,KAA2B,OAAO,OAAO9L,CAAiB,GAC1D+L,KAAqB;AAC3B,SAASC,GAAe1G,GAAO;AAC7B,EAAA2G,GAAe3G,EAAM,QAAQA,EAAM,YAAY,KAAK;AACtD;AACA,SAAS2G,GAAeC,GAAW5K,GAAO;AACxC,MAAI7R;AACJ,MAAI,CAACyc,EAAU;AACb;AACF,QAAMC,KAAe1c,IAAKyc,EAAU,aAAaL,EAAW,WAAW,MAAM,OAAOpc,IAAKsc,IACnFK,IAASC,GAAoBF,CAAW,GACxCG,IAAoBC,GAAeH,GAAQ9K,CAAK;AACtD,MAAIkL,IAAU;AAcd,MAbA,OAAO,KAAKJ,CAAM,EAAE,QAAQ,CAACtO,MAAS;AACpC,QAAIwO,EAAkB,SAASxO,CAAI,GAAG;AACpC,MAAKoO,EAAU,aAAa,aAAapO,CAAI,EAAE,MAC7CoO,EAAU,aAAa,aAAapO,CAAI,IAAI,EAAE,GAC9C0O,IAAU;AAEZ;AAAA,IACF;AACA,IAAIN,EAAU,aAAa,aAAapO,CAAI,EAAE,MAC5CoO,EAAU,gBAAgB,aAAapO,CAAI,EAAE,GAC7C0O,IAAU;AAAA,EAEd,CAAC,GACGA,GAAS;AACX,UAAMC,IAAM,IAAI,YAAYpM,GAAuB,oBAAoB;AAAA,MACrE,QAAQiM;AAAA,IACd,CAAK;AACD,IAAAJ,EAAU,cAAcO,CAAG;AAAA,EAC7B;AACA,EAAKP,EAAU,wBACbA,EAAU,sBAAsB,IAChCA,EAAU;AAAA,IACR,IAAI,YAAY7L,GAAuB,sBAAsB;AAAA,MAC3D,SAAS;AAAA,MACT,UAAU;AAAA,IAClB,CAAO;AAAA,EACP;AAEA;AACA,SAASgM,GAAoBF,GAAa;AACxC,QAAMO,IAAQP,EAAY,MAAM,KAAK;AACrC,SAAO,OAAO,YAAYO,EAAM,IAAI,CAACC,MAASA,EAAK,MAAM,GAAG,CAAC,CAAC;AAChE;AACA,SAASJ,GAAeJ,GAAa7K,GAAO;AAC1C,SAAO,OAAO,KAAK6K,CAAW,EAAE,OAAO,CAACrO,MAC/BwD,KAAS,SAAS6K,EAAYrO,CAAI,CAAC,CAC3C;AACH;AACA,MAAM8O,WAAuBxH,EAAW,YAAY;AAAA,EAClD,cAAc;AAgEZ,QA/DA,MAAK,GACLxJ,GAAa,MAAMqP,EAAkB,GACrCrP,GAAa,MAAMuP,EAAgB,GACnCvP,GAAa,MAAMyP,EAAY,GAC/BzP,GAAa,MAAM2P,EAAU,GAC7B3P,GAAa,MAAM6P,EAAiB,GACpC7P,GAAa,MAAM6O,IAAmB,MAAM,GAC5C7O,GAAa,MAAM8O,IAAuB,CAAC,GAC3C9O,GAAa,MAAM+O,IAAe,IAAI,GACtC/O,GAAa,MAAMgP,IAAkB,IAAI,GACzChP,GAAa,MAAMiP,IAAW,MAAM,GACpC,KAAK,sBAAsB,IAC3BjP,GAAa,MAAMkP,IAAiB,CAAC+B,MAAkB;AACrD,YAAMlR,IAAQ,KAAK;AACnB,iBAAWmR,KAAYD,GAAe;AACpC,YAAIC,EAAS,SAAS;AACpB;AACF,cAAMC,IAAeD,EAAS;AAC9B,mBAAWvG,KAAQwG,GAAc;AAC/B,cAAIxG,EAAK,QAAQ,WAAWuG,EAAS,UAAU;AAC7C;AACF,cAAIE,IAAkBF,EAAS,mBAAmBA,EAAS,gBAAgB;AAC3E,cAAI,CAACE,KAAmB,CAACrR;AACvB,iBAAK,mBAAmB4K,CAAI;AAAA,eACvB;AACL,gBAAI0G,IAAWD,EAAgB,SAAS;AACxC,oBAAQA,IAAkBA,EAAgB,qBAAqB;AAC7D,cAAIA,EAAgB,QAAQ,YAC1BC,IAAW;AAEf,YAAIA,KACF,KAAK,mBAAmB1G,CAAI;AAAA,UAChC;AAAA,QACF;AACA,YAAI5K;AACF,qBAAW4K,KAAQuG,EAAS;AAC1B,YAAIvG,MAAS5K,KACX,KAAK,mBAAmBA,CAAK;AAAA,MAGrC;AAAA,IACF,CAAC,GACDC,GAAa,MAAMmP,IAAkB,EAAK,GAC1CnP,GAAa,MAAMoP,IAAe,CAAC1F,MAAU;AAC3C,MAAIzI,GAAa,MAAMkO,EAAgB,MAEvC,WAAW,MAAM;AACf,QAAAiB,GAAe1G,CAAK,GACpB7I,GAAa,MAAMsO,IAAkB,EAAK;AAAA,MAC5C,GAAG,CAAC,GACJtO,GAAa,MAAMsO,IAAkB,EAAI;AAAA,IAC3C,CAAC,GACDnP,GAAa,MAAM+P,IAAc,MAAM,GACvC/P,GAAa,MAAMgQ,IAAmB,MAAM;AAE1C,UAAI,CADY/O,GAAa,MAAM8O,EAAY,EAAE,iBAAiB,EAAE,SAAS,IAAM,EACtE,QAAQ;AACnB,QAAI9O,GAAa,MAAM8N,EAAa,KAClC,KAAK,mBAAmB9N,GAAa,MAAM8N,EAAa,CAAC;AAE3D;AAAA,MACF;AACA,WAAK,mBAAmB,KAAK,KAAK;AAAA,IACpC,CAAC,GACG,CAAC,KAAK,YAAY;AACpB,WAAK,aAAa,KAAK,YAAY,iBAAiB;AACpD,YAAMd,IAAQpE,GAAqB,KAAK,UAAU,GAC5CyH,IAAO,KAAK,YAAY,gBAAgBrD,CAAK;AACnD,WAAK,WAAW,gBAAgB,KAAK,WAAW,cAAcqD,CAAI,IAAI,KAAK,WAAW,YAAYA;AAAA,IACpG;AACAzQ,IAAAA,GAAa,MAAMgO,IAAmB,IAAI,iBAAiB5N,GAAa,MAAMiO,EAAe,CAAC,CAAC;AAAA,EACjG;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO,CAACe,EAAW,UAAUA,EAAW,iBAAiB,EAAE,OAAOC,EAAwB,EAAE;AAAA,MAC1F,CAAChO,MAAS,CAAC;AAAA,QACTkC,EAAkB;AAAA,QAClBA,EAAkB;AAAA,QAClBA,EAAkB;AAAA,QAClBA,EAAkB;AAAA,QAClBA,EAAkB;AAAA,QAClBA,EAAkB;AAAA,QAClBA,EAAkB;AAAA,MAC1B,EAAQ,SAASlC,CAAI;AAAA,IACrB;AAAA,EACE;AAAA;AAAA,EAEA,yBAAyBiB,GAAUoO,GAAWlO,GAAU;AACtD,IAAIF,EAAS,iBAAiB8M,EAAW,aACvC,KAAK,WAAW5M;AAAA,EAEpB;AAAA;AAAA,EAEA,IAAI,QAAQ;AACV,QAAItD,IAAQ,KAAK,cAAc,uBAAuB;AACtD,YAAKA,KAAS,OAAO,SAASA,EAAM,aAAa,WAC/CA,IAAQA,EAAM,iBAAiB,EAAE,SAAS,GAAI,CAAE,EAAE,CAAC,IAC9CA;AAAA,EACT;AAAA,EACA,MAAM,mBAAmBA,GAAO;AAC9B,IAAKA,MAELc,GAAa,MAAMkO,IAAehP,CAAK,GACnCA,EAAM,UAAU,SAAS,GAAG,KAC9B,MAAMyJ,EAAW,eAAe,YAAYzJ,EAAM,SAAS,GAE7D,KAAK,iBAAiBA,CAAK;AAAA,EAC7B;AAAA,EACA,oBAAoB;AAClB,QAAIlM;AACJoN,IAAAA,GAAa,MAAM4N,EAAiB,EAAE,QAAQ,MAAM,EAAE,WAAW,IAAM,SAAS,IAAM,GACtFlF,GAAc,MAAM1I,GAAa,MAAMmO,EAAa,CAAC;AACrD,UAAMoC,IAAgB,KAAK,aAAavB,EAAW,KAAK,KAAK,MACvD/J,IAAwB5d,EAAhBkpB,IAAkB,iBAAoB,cAAN;AAC9C,SAAK,aAAa,QAAQ,QAAQ,GAClC,KAAK,aAAa,cAActL,CAAK,GACrC,KAAK,mBAAmB,KAAK,KAAK,GAClC,KAAK,aAAa+J,EAAW,eAAe,EAAE,GAC9CI,GAAe,MAAM,KAAK,sBAAqB,EAAG,KAAK;AACvD,UAAMoB,IAAc,KAAK;AAAA,MACvB;AAAA,IACN;AACI,IAAIA,MACF5Q,GAAa,MAAMkP,IAAc0B,CAAW,GAC5CxQ,GAAa,MAAM8O,EAAY,EAAE,iBAAiB,cAAc9O,GAAa,MAAM+O,EAAiB,CAAC,IAEvG,KAAK,iBAAiB,eAAe,IAAI,GACzC,KAAK,iBAAiB,eAAe,IAAI,GACzC,KAAK,iBAAiB,aAAa,IAAI,GACvC,KAAK,iBAAiB,cAAc,IAAI,GACxC,KAAK,iBAAiB,SAAS,IAAI,IAClCnc,IAAK2V,EAAW,WAAW,QAAgB3V,EAAG,iBAAiB,WAAW,IAAI;AAAA,EACjF;AAAA,EACA,uBAAuB;AACrB,QAAIA;AACJ,IAAA+V,GAAgB,MAAM3I,GAAa,MAAMmO,EAAa,CAAC,GACvD,aAAanO,GAAa,MAAM+N,EAAgB,CAAC,GACjD/N,GAAa,MAAM4N,EAAiB,EAAE,WAAU,GAC5C,KAAK,SACP,KAAK,mBAAmB,KAAK,KAAK,IAEnChb,IAAK2V,EAAW,WAAW,QAAgB3V,EAAG,oBAAoB,WAAW,IAAI,GAClF,KAAK,oBAAoB,eAAe,IAAI,GAC5C,KAAK,oBAAoB,eAAe,IAAI,GAC5C,KAAK,oBAAoB,aAAa,IAAI,GAC1C,KAAK,oBAAoB,cAAc,IAAI,GAC3C,KAAK,oBAAoB,SAAS,IAAI,GAClCoN,GAAa,MAAM8O,EAAY,MACjC9O,GAAa,MAAM8O,EAAY,EAAE,oBAAoB,cAAc9O,GAAa,MAAM+O,EAAiB,CAAC,GACxGnP,GAAa,MAAMkP,IAAc,IAAI,IAEvClP,GAAa,MAAMsO,IAAkB,EAAK;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA,EAIA,iBAAiBjP,GAAQ;AAAA,EACzB;AAAA,EACA,mBAAmBA,GAAQ;AACzBW,IAAAA,GAAa,MAAMkO,IAAe,IAAI;AAAA,EACxC;AAAA,EACA,YAAY5N,GAAO;AACjB,YAAQA,EAAM,MAAI;AAAA,MAChB,KAAK;AACHN,QAAAA,GAAa,MAAMiO,IAAuB3N,EAAM,SAAS;AACzD;AAAA,MACF,KAAK;AACHR,QAAAA,GAAgB,MAAM0O,IAAoBC,EAAoB,EAAE,KAAK,MAAMnO,CAAK;AAChF;AAAA,MACF,KAAK;AACHR,QAAAA,GAAgB,MAAM4O,IAAkBC,EAAkB,EAAE,KAAK,MAAMrO,CAAK;AAC5E;AAAA,MACF,KAAK;AACHR,QAAAA,GAAgB,MAAM8O,IAAcC,EAAc,EAAE,KAAK,IAAI;AAC7D;AAAA,MACF,KAAK;AACH,aAAK,gBAAgBO,EAAW,gBAAgB;AAChD;AAAA,MACF,KAAK;AACHtP,QAAAA,GAAgB,MAAMkP,IAAmBC,EAAmB,EAAE,KAAK,IAAI,GACvE,KAAK,aAAaG,EAAW,kBAAkB,EAAE;AACjD;AAAA,IACR;AAAA,EACE;AAAA,EACA,IAAI,SAASxI,GAAS;AACpB,UAAMiK,IAAgB,OAAOjK,CAAO;AACpC5G,IAAAA,GAAa,MAAMoO,IAAW,MAAMyC,CAAa,IAAI,IAAIA,CAAa;AAAA,EACxE;AAAA,EACA,IAAI,WAAW;AACb,YAAQzQ,GAAa,MAAMgO,EAAS,MAAM,SAAS,IAAIhO,GAAa,MAAMgO,EAAS,GAAG,SAAQ;AAAA,EAChG;AAAA,EACA,IAAI,cAAc;AAChB,WAAO5B,GAAc,MAAM4C,EAAW,WAAW;AAAA,EACnD;AAAA,EACA,IAAI,YAAYjT,GAAO;AACrB,IAAAsQ,GAAc,MAAM2C,EAAW,aAAajT,CAAK;AAAA,EACnD;AAAA,EACA,IAAI,QAAQ;AACV,WAAOmQ,EAAe,MAAM8C,EAAW,KAAK;AAAA,EAC9C;AAAA,EACA,IAAI,MAAMjT,GAAO;AACf,IAAAoQ,EAAe,MAAM6C,EAAW,OAAOjT,CAAK;AAAA,EAC9C;AAAA,EACA,IAAI,mBAAmB;AACrB,WAAOmQ,EAAe,MAAM8C,EAAW,iBAAiB;AAAA,EAC1D;AAAA,EACA,IAAI,iBAAiBjT,GAAO;AAC1B,IAAAoQ,EAAe,MAAM6C,EAAW,mBAAmBjT,CAAK;AAAA,EAC1D;AAAA,EACA,IAAI,kBAAkB;AACpB,WAAOmQ,EAAe,MAAM8C,EAAW,gBAAgB;AAAA,EACzD;AAAA,EACA,IAAI,gBAAgBjT,GAAO;AACzB,IAAAoQ,EAAe,MAAM6C,EAAW,kBAAkBjT,CAAK;AAAA,EACzD;AAAA,EACA,IAAI,aAAa;AACf,WAAOmQ,EAAe,MAAM8C,EAAW,WAAW;AAAA,EACpD;AAAA,EACA,IAAI,WAAWjT,GAAO;AACpB,IAAAoQ,EAAe,MAAM6C,EAAW,aAAajT,CAAK;AAAA,EACpD;AAAA,EACA,IAAI,uBAAuB;AACzB,WAAOmQ,EAAe,MAAM8C,EAAW,sBAAsB;AAAA,EAC/D;AAAA,EACA,IAAI,qBAAqBjT,GAAO;AAC9B,IAAAoQ,EAAe,MAAM6C,EAAW,wBAAwBjT,CAAK;AAAA,EAC/D;AAAA,EACA,IAAI,kBAAkB;AACpB,WAAOmQ,EAAe,MAAM8C,EAAW,aAAa;AAAA,EACtD;AAAA,EACA,IAAI,gBAAgBjT,GAAO;AACzB,IAAAoQ,EAAe,MAAM6C,EAAW,eAAejT,CAAK;AAAA,EACtD;AACF;AACA6R,KAAoB,oBAAI,QAAO;AAC/BC,KAAwB,oBAAI,QAAO;AACnCC,KAAgB,oBAAI,QAAO;AAC3BC,KAAmB,oBAAI,QAAO;AAC9BC,KAAY,oBAAI,QAAO;AACvBC,KAAkB,oBAAI,QAAO;AAC7BC,KAAmB,oBAAI,QAAO;AAC9BC,KAAgB,oBAAI,QAAO;AAC3BC,KAAqB,oBAAI,QAAO;AAChCC,KAAuB,SAASnO,GAAO;AACrC,MAAIA,EAAM,gBAAgB,WAEpBA,EAAM,YAAYF,GAAa,MAAM6N,EAAqB,IAAI;AAChE;AAEJnO,EAAAA,GAAgB,MAAMgP,IAAYC,EAAY,EAAE,KAAK,IAAI,GACzD,aAAa3O,GAAa,MAAM+N,EAAgB,CAAC;AACjD,QAAM2C,IAAuB,KAAK;AAAA,IAChC1B,EAAW;AAAA,EACf;AACE,GAAI,CAAC,MAAM,KAAK,KAAK,EAAE,SAAS9O,EAAM,MAAM,KAAKwQ,MAC/ChR,GAAgB,MAAMkP,IAAmBC,EAAmB,EAAE,KAAK,IAAI;AAE3E;AACAP,KAAmB,oBAAI,QAAO;AAC9BC,KAAqB,SAASrO,GAAO;AACnC,MAAIA,EAAM,gBAAgB,SAAS;AACjC,UAAMyQ,IAAkB,CAAC,KAAK,aAAa3B,EAAW,aAAa;AACnE,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,SAAS9O,EAAM,MAAM,KAAKyQ,IAC/CjR,GAAgB,MAAM8O,IAAcC,EAAc,EAAE,KAAK,IAAI,IAE7D/O,GAAgB,MAAMkP,IAAmBC,EAAmB,EAAE,KAAK,IAAI;AAAA,EAE3E,MAAO,CAAI3O,EAAM,aAAY,EAAG;AAAA,IAC9B,CAACtE,MAAO,CAAC,qBAAqB,yBAAyB,EAAE;AAAA,MACvDA,KAAM,OAAO,SAASA,EAAG;AAAA,IAC/B;AAAA,EACA,KACI8D,GAAgB,MAAMkP,IAAmBC,EAAmB,EAAE,KAAK,IAAI;AAE3E;AACAL,KAAe,oBAAI,QAAO;AAC1BC,KAAiB,WAAW;AAG1B,MAFIzO,GAAa,MAAMgO,EAAS,IAAI,KAEhC,KAAK,aAAagB,EAAW,aAAa;AAC5C;AACF,OAAK,aAAaA,EAAW,eAAe,EAAE;AAC9C,QAAMY,IAAM,IAAIrH,EAAW;AAAA,IACzB/E,GAAuB;AAAA,IACvB,EAAE,UAAU,IAAM,SAAS,IAAM,QAAQ,GAAI;AAAA,EACjD;AACE,OAAK,cAAcoM,CAAG;AACxB;AACAlB,KAAa,oBAAI,QAAO;AACxBC,KAAe,WAAW;AACxB,MAAI,CAAC,KAAK,aAAaK,EAAW,aAAa;AAC7C;AACF,OAAK,gBAAgBA,EAAW,aAAa;AAC7C,QAAMY,IAAM,IAAIrH,EAAW;AAAA,IACzB/E,GAAuB;AAAA,IACvB,EAAE,UAAU,IAAM,SAAS,IAAM,QAAQ,GAAK;AAAA,EAClD;AACE,OAAK,cAAcoM,CAAG;AACxB;AACAhB,KAAoB,oBAAI,QAAO;AAC/BC,KAAsB,WAAW;AAC/BnP,EAAAA,GAAgB,MAAMgP,IAAYC,EAAY,EAAE,KAAK,IAAI,GACzD,aAAa3O,GAAa,MAAM+N,EAAgB,CAAC;AACjD,QAAM6C,IAAW,SAAS,KAAK,QAAQ;AACvC,EAAIA,IAAW,KAEfhR,GAAa,MAAMmO,IAAkB,WAAW,MAAM;AACpDrO,IAAAA,GAAgB,MAAM8O,IAAcC,EAAc,EAAE,KAAK,IAAI;AAAA,EAC/D,GAAGmC,IAAW,GAAG,CAAC;AACpB;AACA9B,KAAe,oBAAI,QAAO;AAC1BC,KAAoB,oBAAI,QAAO;AAC/BgB,GAAe,oBAAoB,EAAE,MAAM,OAAM;AACjDA,GAAe,kBAAkBlD;AAC5BtE,EAAW,eAAe,IAAI,iBAAiB,KAClDA,EAAW,eAAe,OAAO,mBAAmBwH,EAAc;ACnlBpE,IAAIxD,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL8U,IAAKC,IAAOC,IAAaC,IAAWC,IAASC;AACjD,MAAMC,GAAmB;AAAA,EACvB,YAAYvV,GAAImN,GAAM,EAAE,cAAA+C,EAAY,IAAK,EAAE,cAAc,UAAU;AACjE/M,IAAAA,GAAa,MAAMkS,EAAO,GAC1BlS,GAAa,MAAM8R,IAAK,MAAM,GAC9B9R,GAAa,MAAM+R,IAAO,MAAM,GAChC/R,GAAa,MAAMgS,IAAa,MAAM,GACtChS,GAAa,MAAMiS,IAA2B,oBAAI,IAAG,CAAE,GACvDpR,GAAa,MAAMiR,IAAKjV,CAAE,GAC1BgE,GAAa,MAAMkR,IAAO/H,CAAI,GAC9BnJ,GAAa,MAAMmR,IAAa,IAAI,IAAIjF,CAAY,CAAC;AAAA,EACvD;AAAA,EACA,CAAC,OAAO,QAAQ,IAAI;AAClB,WAAO9L,GAAa,MAAMiR,IAASC,EAAU,EAAE,OAAM;AAAA,EACvD;AAAA,EACA,IAAI,SAAS;AACX,WAAOlR,GAAa,MAAMiR,IAASC,EAAU,EAAE;AAAA,EACjD;AAAA,EACA,IAAI,QAAQ;AACV,QAAIte;AACJ,YAAQA,IAAK,CAAC,GAAGoN,GAAa,MAAMiR,IAASC,EAAU,CAAC,EAAE,KAAK,GAAG,MAAM,OAAOte,IAAK;AAAA,EACtF;AAAA,EACA,IAAI,MAAM+P,GAAK;AACb,QAAI/P;AACJ,IAAI+P,MAAQ,KAAK,UAEjB/C,GAAa,MAAMoR,IAA2B,oBAAI,IAAG,CAAE,GACvD,KAAK,IAAI,IAAIpe,IAAK+P,KAAO,OAAO,SAASA,EAAI,MAAM,GAAG,MAAM,OAAO/P,IAAK,CAAA,CAAE;AAAA,EAC5E;AAAA,EACA,WAAW;AACT,WAAO,KAAK;AAAA,EACd;AAAA,EACA,KAAKiU,GAAO;AACV,WAAO,CAAC,GAAG7G,GAAa,MAAMiR,IAASC,EAAU,CAAC,EAAErK,CAAK;AAAA,EAC3D;AAAA,EACA,SAAS;AACP,WAAO7G,GAAa,MAAMiR,IAASC,EAAU,EAAE,OAAM;AAAA,EACvD;AAAA,EACA,QAAQjV,GAAUmV,GAAS;AACzBpR,IAAAA,GAAa,MAAMiR,IAASC,EAAU,EAAE,QAAQjV,GAAUmV,CAAO;AAAA,EACnE;AAAA,EACA,OAAOC,GAAQ;AACb,QAAIze,GAAIsJ;AAER,IADAmV,EAAO,QAAQ,CAAChqB,MAAM2Y,GAAa,MAAMgR,EAAS,EAAE,IAAI3pB,CAAC,CAAC,GACtD,OAAK,UAAU,MAAM,GAAGuL,IAAKoN,GAAa,MAAM6Q,EAAG,MAAM,QAAgBje,EAAG,aAAa,GAAGoN,GAAa,MAAM8Q,EAAK,CAAC,EAAE,SAG1H5U,IAAK8D,GAAa,MAAM6Q,EAAG,MAAM,QAAgB3U,EAAG,aAAa,GAAG8D,GAAa,MAAM8Q,EAAK,CAAC,IAAI,GAAG,KAAK,KAAK,EAAE;AAAA,EACnH;AAAA,EACA,UAAUO,GAAQ;AAChB,QAAIze;AACJ,IAAAye,EAAO,QAAQ,CAAChqB,MAAM2Y,GAAa,MAAMgR,EAAS,EAAE,OAAO3pB,CAAC,CAAC,IAC5DuL,IAAKoN,GAAa,MAAM6Q,EAAG,MAAM,QAAgBje,EAAG,aAAa,GAAGoN,GAAa,MAAM8Q,EAAK,CAAC,IAAI,GAAG,KAAK,KAAK,EAAE;AAAA,EACnH;AAAA,EACA,SAASQ,GAAO;AACd,WAAOtR,GAAa,MAAMiR,IAASC,EAAU,EAAE,IAAII,CAAK;AAAA,EAC1D;AAAA,EACA,OAAOA,GAAOC,GAAO;AACnB,WAAI,OAAOA,IAAU,MACfA,KACF,KAAK,IAAID,CAAK,GACP,OAEP,KAAK,OAAOA,CAAK,GACV,MAGP,KAAK,SAASA,CAAK,KACrB,KAAK,OAAOA,CAAK,GACV,OAET,KAAK,IAAIA,CAAK,GACP;AAAA,EACT;AAAA,EACA,QAAQE,GAAUC,GAAU;AAC1B,gBAAK,OAAOD,CAAQ,GACpB,KAAK,IAAIC,CAAQ,GACVD,MAAaC;AAAA,EACtB;AACF;AACAZ,KAAM,oBAAI,QAAO;AACjBC,KAAQ,oBAAI,QAAO;AACnBC,KAAc,oBAAI,QAAO;AACzBC,KAAY,oBAAI,QAAO;AACvBC,KAAU,oBAAI,QAAO;AACrBC,KAAa,WAAW;AACtB,SAAOlR,GAAa,MAAMgR,EAAS,EAAE,OAAOhR,GAAa,MAAMgR,EAAS,IAAIhR,GAAa,MAAM+Q,EAAW;AAC5G;ACxGA,MAAMW,KAAqB,CAACC,IAAgB,OAAOA,EAAc,MAAM,KAAK,GACtEC,KAAoB,CAACC,IAAe,OAAO;AAC/C,QAAM,CAAC/Q,GAAME,GAAU8Q,CAAY,IAAID,EAAa,MAAM,GAAG,GACvD5M,IAAQ6M,IAAe,mBAAmBA,CAAY,IAAI;AAChE,SAAO;AAAA,IACL,MAAMhR,MAAS,OAAO+C,GAAe,WAAWA,GAAe;AAAA,IAC/D,UAAA7C;AAAA,IACA,OAAAiE;AAAA,EACJ;AACA,GACM8M,KAAqB,CAACJ,IAAgB,IAAIK,IAAmB,CAAA,MAC1DN,GAAmBC,CAAa,EAAE,IAAI,CAACE,MAAiB;AAC7D,QAAMI,IAAeL,GAAkBC,CAAY;AACnD,SAAO;AAAA,IACL,GAAGG;AAAA,IACH,GAAGC;AAAA,EACT;AACE,CAAC,GAEGC,KAAc,CAACC,MACdA,IAED,MAAM,QAAQA,CAAa,IACtBA,EAAc,IAAI,CAACC,MACpB,OAAOA,KAAkB,WACpBR,GAAkBQ,CAAa,IAEjCA,CACR,IAEC,OAAOD,KAAkB,WACpBJ,GAAmBI,CAAa,IAElC,CAACA,CAAa,IAZZ,CAAA,GAcLE,KAAqB,CAAC,EAAE,MAAAvR,GAAM,OAAAmE,GAAO,UAAAjE,EAAQ,IAAK,EAAE,MAAM,kBACzDiE,IAEE,GAAGnE,MAAS,aAAa,OAAO,IAAI,IAAIE,CAAQ,IAAI;AAAA,EACzDiE;AACJ,CAAG,KAHQjE,GAKLsR,KAAyB,CAACC,IAAa,OACpC,MAAM,UAAU,IAAI,KAAKA,GAAYF,EAAkB,EAAE,KAAK,GAAG,GAEpEG,KAAmB,CAACnP,GAAKtH,MAAU,CAAC+M,MAAQA,EAAIzF,CAAG,MAAMtH,GACzD0W,KAAqB,CAACC,MAAc;AACxC,QAAMC,IAAQ,OAAO,QAAQD,CAAS,EAAE,IAAI,CAAC,CAACrP,GAAKtH,CAAK,MAC/CyW,GAAiBnP,GAAKtH,CAAK,CACnC;AACD,SAAO,CAAC6W,MAAcD,EAAM,MAAM,CAACE,MAASA,EAAKD,CAAS,CAAC;AAC7D,GACME,KAAqB,CAAC3R,GAAM4R,IAAS,CAAA,GAAIC,IAAiB,CAAA,MAAO;AACrE,QAAML,IAAQT,GAAYc,CAAc,EAAE,IAAIP,EAAkB,GAC1DQ,IAAkB,CAACL,MAChBD,EAAM,KAAK,CAACE,MAASA,EAAKD,CAAS,CAAC;AAE7C,QAAM,KAAKG,CAAM,EAAE,OAAOE,CAAe,EAAE,QAAQ,CAACL,MAAc;AAChE,IAAAA,EAAU,OAAOzR;AAAA,EACnB,CAAC;AACH,GACM+R,KAAoB,CAACpU,GAAOqU,IAAkB,MAAM,OAAS;AACjE,MAAI,EAAErU,KAAS,QAAgBA,EAAM;AACnC,WAAO,CAAA;AACT,QAAMsU,IAAa,OAAOD,KAAoB,aAAaA,IAAkBV,GAAmBU,CAAe;AAC/G,SAAO,MAAM,KAAKrU,EAAM,UAAU,EAAE,OAAOsU,CAAU;AACvD,GACMC,KAAY,CAACzX,MAAO;AACxB,MAAIhJ;AAEJ,SADyB,CAAC,GAAGA,IAAKgJ,EAAG,0BAA0B,QAAgBhJ,EAAG,WAAWgJ,EAAG,aAAauH,EAAkB,uBAAuB;AAExJ,GCrEMmQ,KAAkB,CAACC,MAAgB;AACvC,MAAI3gB;AACJ,QAAM,EAAE,OAAAkM,GAAO,mBAAA0U,EAAiB,IAAKD;AACrC,MAAI;AACF,UAAME,IAAqBD,KAAqB,uBAAuBA,IAAoB,sBAAsBA,KAAqB,6BAA6BA,IAAoB,4BAA4B;AACnN,QAAIC,GAAoB;AACtB,YAAMC,KAAgB9gB,IAAK4gB,EAAkBC,CAAkB,MAAM,OAAO,SAAS7gB,EAAG,KAAK4gB,CAAiB;AAC9G,UAAIE,aAAwB;AAC1B,eAAOA,EAAa,MAAM,MAAM;AAAA,QAChC,CAAC;AAAA,IAEL,MAAO,CAAI5U,KAAS,QAAgBA,EAAM,wBACxCA,EAAM,sBAAqB,IAClBA,KAAS,QAAgBA,EAAM,qBACxCA,EAAM,kBAAiB;AAAA,EAE3B,SAASrW,GAAG;AACV,YAAQ,MAAMA,CAAC;AAAA,EACjB;AACF,GACMkrB,KAAoB,oBAAoBC,KAAW,mBAAmB,0BAA0BA,KAAW,yBAAyB,4BAA4BA,KAAW,2BAA2B,QACtMC,KAAiB,CAACN,MAAgB;AACtC,MAAI3gB;AACJ,QAAM,EAAE,iBAAAkhB,EAAe,IAAKP;AAC5B,MAAII,IAAmB;AACrB,UAAMD,KAAgB9gB,IAAKkhB,KAAmB,OAAO,SAASA,EAAgBH,EAAiB,MAAM,OAAO,SAAS/gB,EAAG,KAAKkhB,CAAe;AAC5I,QAAIJ,aAAwB;AAC1B,aAAOA,EAAa,MAAM,MAAM;AAAA,MAChC,CAAC;AAAA,EAEL;AACF,GACMK,KAAuB,uBAAuBH,KAAW,sBAAsB,6BAA6BA,KAAW,4BAA4B,QACnJI,KAAuB,CAACT,MAAgB;AAC5C,QAAM,EAAE,iBAAAO,GAAiB,OAAAhV,EAAK,IAAKyU,GAC7BU,IAAuBH,KAAmB,OAAO,SAASA,EAAgBC,EAAoB;AACpG,SAAI,CAACE,KAAwB,gCAAgCnV,KAAS,4BAA4BA,KAASA,EAAM,8BAA8BA,EAAM,2BAA2BoF,GAAwB,aAC/LpF,IAEFmV;AACT,GACMC,KAAe,CAACX,MAAgB;AACpC,MAAI3gB;AACJ,QAAM,EAAE,OAAAkM,GAAO,iBAAAgV,GAAiB,mBAAAN,IAAoB1U,EAAK,IAAKyU;AAC9D,MAAI,CAACzU,KAAS,CAACgV;AACb,WAAO;AACT,QAAMK,IAA2BH,GAAqBT,CAAW;AACjE,MAAI,CAACY;AACH,WAAO;AACT,MAAIA,MAA6BX,KAAqBW,MAA6BrV;AACjF,WAAO;AAET,MAAIqV,EAAyB,UAAU,SAAS,GAAG,GAAG;AACpD,QAAIC,IAAcD,EAAyB;AAC3C,QAAI,EAAEJ,MAAwBK;AAC5B,aAAOrK;AAAA,QACLoK;AAAA;AAAA;AAAA,QAGAX;AAAA,MACR;AAEI,WAAOY,KAAe,QAAgBA,EAAYL,EAAoB,KAAG;AACvE,UAAIK,EAAYL,EAAoB,MAAMP;AACxC,eAAO;AACT,MAAAY,KAAexhB,IAAKwhB,EAAYL,EAAoB,MAAM,OAAO,SAASnhB,EAAG;AAAA,IAC/E;AAAA,EACF;AACA,SAAO;AACT,GACMyhB,KAAuB,uBAAuBT,KAAW,sBAAsB,6BAA6BA,KAAW,4BAA4B,QACnJU,KAAsB,CAACf,MAAgB;AAC3C,QAAM,EAAE,iBAAAO,GAAiB,OAAAhV,EAAK,IAAKyU;AACnC,SAAO,CAAC,EAAEO,KAAmB,QAAgBA,EAAgBO,EAAoB,MAAMvV,KAAS,8BAA8BA;AAChI;AC1EA,IAAIyV;AACJ,MAAMC,KAAiB,MAAM;AAC3B,MAAI5hB,GAAIsJ;AACR,SAAIqY,OAEJA,MAAerY,KAAMtJ,IAAKghB,OAAa,OAAO,SAAShhB,EAAG,kBAAkB,OAAO,SAASsJ,EAAG,KAAKtJ,GAAI,OAAO,GACxG2hB;AACT,GACME,KAAwB,OAAOC,IAAUF,SAAqB;AAClE,MAAI,CAACE;AACH,WAAO;AACT,QAAMC,IAAaD,EAAQ;AAC3B,EAAAA,EAAQ,SAASC,IAAa,IAAI;AAClC,QAAMC,IAAkB,IAAI,gBAAe,GACrCC,IAAkB,MAAM,QAAQ,KAAK;AAAA,IACzCC,GAAuBJ,GAASE,EAAgB,MAAM;AAAA,IACtDG,GAAcL,GAASC,CAAU;AAAA,EACrC,CAAG;AACD,SAAAC,EAAgB,MAAK,GACdC;AACT,GACMC,KAAyB,CAACJ,GAASM,MAChC,IAAI,QAAQ,CAACnY,MAAY;AAC9B,EAAA6X,EAAQ,iBAAiB,gBAAgB,MAAM7X,EAAQ,EAAI,GAAG,EAAE,QAAAmY,GAAQ;AAC1E,CAAC,GAEGD,KAAgB,OAAOL,GAASC,MAAe;AACnD,WAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,QAAID,EAAQ,WAAWC;AACrB,aAAO;AACT,UAAMnP,GAAM,EAAE;AAAA,EAChB;AACA,SAAOkP,EAAQ,WAAWC;AAC5B,GACMM,KAAW,0BAA0B;AAAA,EACzC1M,EAAW,UAAU;AACvB,GACM2M,KAAgB,CAACR,IAAUF,SAC3BjM,EAAW,WAAW,4BAA4B,EAAE,WAAW0M,KAC1D,KACF,QAAQP,KAAW,OAAO,SAASA,EAAQ,4BAA6B,YAE3ES,KAAuB,CAACT,IAAUF,SAC/BF,GAAoB,EAAE,iBAAiBV,IAAU,OAAOc,EAAO,CAAE,GAEpEU,KAAsBD,GAAoB,GAC1CE,KAAeH,GAAa,GAC5BI,KAAmB,CAAC,CAAC/M,EAAW,uCAChCgN,KAAgB,CAAC,CAAChN,EAAW,QChD7BiN,KAAoB,CAACjC,MAClBL,GAAkBK,EAAY,OAAO,CAACX,MACpC,CAAC/O,GAAe,WAAWA,GAAe,QAAQ,EAAE;AAAA,EACzD+O,EAAU;AAChB,CACG,EAAE,KAAK,CAACrrB,GAAGiI,MAAMjI,EAAE,QAAQiI,EAAE,OAAO,IAAI,EAAE,GAEvCimB,KAA2B,CAAClC,MACzBL,GAAkBK,EAAY,OAAO,CAACX,MACpCA,EAAU,SAAS9O,GAAe,WAAW,CAACD,GAAe,WAAWA,GAAe,QAAQ,EAAE;AAAA,EACtG+O,EAAU;AAChB,CACG,GAEG8C,KAAuB,CAACnC,GAAahC,MAAU;AACnD,QAAMwB,IAASyC,GAAkBjC,CAAW,GACtCoC,IAAuBF,GAAyBlC,CAAW,GAC3DqC,IAAmB,CAAC,CAACD,EAAqB;AAChD,MAAK5C,EAAO;AAEZ,QAAIxB,MAAU,MAASqE,KAAoBrE,MAAU;AACnD,MAAAuB,GAAmBhP,GAAe,UAAUiP,GAAQ4C,CAAoB;AAAA,aAC/DpE,MAAU,MAAQ,CAACqE,KAAoBrE,MAAU,IAAO;AACjE,UAAIsE,IAAW9C,EAAO,CAAC;AACvB,YAAM,EAAE,SAAA9V,EAAO,IAAKsW;AACpB,UAAI,EAAEtW,KAAW,QAAgBA,EAAQ,sBAAsB;AAC7D,cAAM6Y,IAAgBvN,EAAW,aAAa;AAAA,UAC5C;AAAA,QACR,GACYwN,IAAgBD,IAAgB,CAACA,GAAe,GAAGvN,EAAW,UAAU,SAAS,IAAIA,EAAW,UAAU,WAC1GyN,IAAyBjD,EAAO,OAAO,CAACH,MACrCmD,EAAc;AAAA,UACnB,CAACE,MAASrD,EAAU,SAAS,YAAW,EAAG,WAAWqD,EAAK,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,QAClF,CACO,EAAE,KAAK,CAACC,GAAYC,MAAe;AAClC,gBAAMC,IAAOL,EAAc;AAAA,YACzB,CAACE,MAASC,EAAW,SAAS,YAAW,EAAG,WAAWD,EAAK,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,UACnF,GACcI,IAAON,EAAc;AAAA,YACzB,CAACE,MAASE,EAAW,SAAS,YAAW,EAAG,WAAWF,EAAK,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,UACnF;AACQ,iBAAOG,IAAOC;AAAA,QAChB,CAAC;AACD,QAAIL,EAAuB,CAAC,MAC1BH,IAAWG,EAAuB,CAAC;AAAA,MAEvC;AACA,YAAM,EAAE,UAAAhV,GAAU,OAAAiE,GAAO,MAAAnE,EAAI,IAAK+U;AAClC,MAAA/C,GAAmBhP,GAAe,UAAUiP,GAAQ4C,CAAoB,GACxE7C,GAAmBhP,GAAe,SAASiP,GAAQ;AAAA,QACjD,EAAE,UAAA/R,GAAU,OAAAiE,GAAO,MAAAnE,EAAI;AAAA,MAC7B,CAAK;AAAA,IACH;AAAA;AACF,GACMwV,KAAc,CAACpnB,GAAGH,MAClBG,MAAMH,IACD,KACLG,KAAK,QAAQH,KAAK,QAElB,OAAOG,KAAM,OAAOH,IACf,KACL,OAAOG,KAAM,YAAY,OAAO,MAAMA,CAAC,KAAK,OAAO,MAAMH,CAAC,IACrD,KACL,OAAOG,KAAM,WACR,KACL,MAAM,QAAQA,CAAC,IACVqnB,GAAYrnB,GAAGH,CAAC,IAClB,OAAO,QAAQG,CAAC,EAAE;AAAA;AAAA,EAEvB,CAAC,CAACmU,GAAKtH,CAAK,MAAMsH,KAAOtU,KAAKunB,GAAYva,GAAOhN,EAAEsU,CAAG,CAAC;AAC3D,GAEMkT,KAAc,CAACC,GAAIC,MAAO;AAC9B,QAAMC,IAAW,MAAM,QAAQF,CAAE,GAC3BG,IAAW,MAAM,QAAQF,CAAE;AACjC,SAAIC,MAAaC,IACR,KACHD,KAAYC,IAEdH,EAAG,WAAWC,EAAG,SACZ,KACFD,EAAG,MAAM,CAACtnB,GAAG5H,MAAMgvB,GAAYpnB,GAAGunB,EAAGnvB,CAAC,CAAC,CAAC,IAHtC;AAIX,GCzDMsvB,KAAmB,OAAO,OAAO3S,EAAW;AAClD,IAAI4Q;AACJ,MAAMgC,KAAuBpC,GAAqB,EAAG,KAAK,CAACqC,OACzDjC,KAAkBiC,GACXjC,GACR,GACKkC,KAAqB,UAAUxD,MAAgB;AACnD,QAAM,QAAQ;AAAA,IACZA,EAAY,OAAO,CAACrkB,MAAMA,CAAC,EAAE,IAAI,OAAO8nB,MAAe;AACrD,UAAI,EAAE,eAAeA,KAAcA,aAAsBzO,EAAW;AAClE;AAEF,YAAMtH,IAAO+V,EAAW;AACxB,UAAI,CAAC/V,EAAK,SAAS,GAAG;AACpB;AACF,YAAMgW,IAAW1O,EAAW,eAAe,IAAItH,CAAI;AACnD,MAAIgW,KAAYD,aAAsBC,MAEtC,MAAM1O,EAAW,eAAe,YAAYtH,CAAI,GAChDsH,EAAW,eAAe,QAAQyO,CAAU;AAAA,IAC9C,CAAC;AAAA,EACL;AACA,GACME,KAAY,IAAI3O,EAAW,UAAS,GACpC4O,KAAkB,CAACC,MAASA,MAAOF,GAAU,gBAAgBE,GAAM,WAAW,EAAE,KAAK,eAAeA,IACpGC,KAAgB;AAAA,EACpB,YAAY;AAAA,IACV,IAAI9D,GAAarT,GAAO;AACtB,YAAM,EAAE,OAAApB,EAAK,IAAKyU;AAClB,WAAKrT,KAAS,OAAO,SAASA,EAAM,UAAU;AAE9C,eAAOpB,KAAS,OAAO,SAASA,EAAM;AAAA,IACxC;AAAA,IACA,aAAa,CAAC,WAAW,SAAS,SAAS;AAAA,EAC/C;AAAA,EACE,gBAAgB;AAAA,IACd,IAAIyU,GAAarT,GAAO;AACtB,UAAItN;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,WAAKrT,KAAS,OAAO,SAASA,EAAM,UAAU;AAE9C,gBAAQtN,IAAKkM,KAAS,OAAO,SAASA,EAAM,UAAU,OAAO,SAASlM,EAAG;AAAA,IAC3E;AAAA,IACA,aAAa,CAAC,WAAW,SAAS,SAAS;AAAA,EAC/C;AAAA,EACE,mBAAmB;AAAA,IACjB,IAAI2gB,GAAarT,GAAO;AACtB,UAAItN,GAAIsJ;AACR,YAAM,EAAE,OAAA4C,EAAK,IAAKyU;AAClB,WAAKrT,KAAS,OAAO,SAASA,EAAM,UAAU;AAE9C,gBAAQhE,KAAMtJ,IAAKkM,KAAS,OAAO,SAASA,EAAM,UAAU,OAAO,SAASlM,EAAG,YAAY,OAAOsJ,IAAK;AAAA,IACzG;AAAA,IACA,aAAa,CAAC,WAAW,SAAS,SAAS;AAAA,EAC/C;AAAA,EACE,YAAY;AAAA,IACV,IAAIqX,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,cAAQ3gB,IAAKkM,KAAS,OAAO,SAASA,EAAM,eAAe,OAAOlM,IAAK;AAAA,IACzE;AAAA,IACA,aAAa,CAAC,QAAQ;AAAA,EAC1B;AAAA,EACE,aAAa;AAAA,IACX,IAAI2gB,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,cAAQ3gB,IAAKkM,KAAS,OAAO,SAASA,EAAM,gBAAgB,OAAOlM,IAAK;AAAA,IAC1E;AAAA,IACA,aAAa,CAAC,QAAQ;AAAA,EAC1B;AAAA,EACE,aAAa;AAAA,IACX,IAAI2gB,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,cAAQ3gB,IAAKkM,KAAS,OAAO,SAASA,EAAM,WAAW,OAAOlM,IAAK;AAAA,IACrE;AAAA,IACA,IAAImJ,GAAOwX,GAAa;AACtB,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,MAAKzU,MAED/C,IACF+C,EAAM,MAAK,KAEVlM,IAAKkM,EAAM,KAAI,MAAO,QAAgBlM,EAAG,MAAM,MAAM;AAAA,MACtD,CAAC;AAAA,IAEL;AAAA,IACA,aAAa,CAAC,QAAQ,WAAW,SAAS,SAAS;AAAA,EACvD;AAAA,EACE,gBAAgB;AAAA;AAAA;AAAA;AAAA,IAId,IAAI2gB,GAAarT,GAAO;AACtB,YAAM,EAAE,OAAApB,EAAK,IAAKyU;AAClB,aAAKzU,IAEAoB,IAEEA,EAAM,SAAS,YADb,CAACpB,EAAM,SAFP;AAAA,IAIX;AAAA,IACA,aAAa,CAAC,WAAW,SAAS;AAAA,EACtC;AAAA,EACE,YAAY;AAAA,IACV,IAAIyU,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,cAAQ3gB,IAAKkM,KAAS,OAAO,SAASA,EAAM,UAAU,OAAOlM,IAAK;AAAA,IACpE;AAAA,IACA,aAAa,CAAC,UAAU,SAAS,SAAS;AAAA,EAC9C;AAAA,EACE,mBAAmB;AAAA,IACjB,IAAI2gB,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,cAAQ3gB,IAAKkM,KAAS,OAAO,SAASA,EAAM,iBAAiB,OAAOlM,IAAK;AAAA,IAC3E;AAAA,IACA,IAAImJ,GAAOwX,GAAa;AACtB,YAAM,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,MAAKzU,KAEA,OAAO,SAAS,CAAC/C,CAAK,MAE3B+C,EAAM,eAAe,CAAC/C;AAAA,IACxB;AAAA,IACA,aAAa,CAAC,cAAc,WAAW;AAAA,EAC3C;AAAA,EACE,YAAY;AAAA,IACV,IAAIwX,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,cAAQ3gB,IAAKkM,KAAS,OAAO,SAASA,EAAM,UAAU,OAAOlM,IAAK;AAAA,IACpE;AAAA,IACA,IAAImJ,GAAOwX,GAAa;AACtB,YAAM,EAAE,OAAAzU,GAAO,SAAS,EAAE,aAAAwY,EAAW,IAAK,CAAA,EAAE,IAAK/D;AACjD,UAAKzU,GAEL;AAAA,QAAAA,EAAM,QAAQ/C;AACd,YAAI;AACF,gBAAMwb,IAA2BhP,EAAW,aAAa,QAAQ,yBAAyB,MAAM,MAC1FiP,IAAoB1Y,EAAM,aAAa,OAAO;AACpD,cAAIwY,GAAa;AACf,YAAIC,KACFhP,EAAW,aAAa,WAAW,yBAAyB;AAC9D;AAAA,UACF;AACA,cAAIiP,KAAqB,CAACD;AACxB;AAEFhP,UAAAA,EAAW,aAAa;AAAA,YACtB;AAAA,YACAxM,IAAQ,SAAS;AAAA,UAC3B;AAAA,QACM,SAAStT,GAAG;AACV,kBAAQ,MAAM,4BAA4BA,CAAC;AAAA,QAC7C;AAAA;AAAA,IACF;AAAA,IACA,aAAa,CAAC,cAAc;AAAA,IAC5B,2BAA2B;AAAA,MACzB,CAACgvB,GAASlE,MAAgB;AACxB,cAAM;AAAA,UACJ,SAAS,EAAE,aAAA+D,EAAW;AAAA,QAChC,IAAY/D,GACE,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,YAAI,GAACzU,KAASA,EAAM,SAASwY;AAE7B,cAAI;AACF,kBAAMI,IAAYnP,EAAW,aAAa,QAAQ,yBAAyB,MAAM;AACjF,YAAA8O,GAAc,WAAW,IAAIK,GAAWnE,CAAW,GACnDkE,EAAQC,CAAS;AAAA,UACnB,SAASjvB,GAAG;AACV,oBAAQ,MAAM,4BAA4BA,CAAC;AAAA,UAC7C;AAAA,MACF;AAAA,IACN;AAAA,EACA;AAAA,EACE,WAAW;AAAA,IACT,IAAI8qB,GAAa;AACf,YAAM,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,aAAOzU,KAAS,OAAO,SAASA,EAAM;AAAA,IACxC;AAAA,IACA,IAAI/C,GAAOwX,GAAa;AACtB,YAAM,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,MAAKzU,MAELA,EAAM,OAAO/C;AAAA,IACf;AAAA,IACA,aAAa,CAAC,kBAAkB;AAAA,EACpC;AAAA,EACE,aAAa;AAAA,IACX,IAAIwX,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,cAAQ3gB,IAAKkM,KAAS,OAAO,SAASA,EAAM,WAAW,OAAOlM,IAAK;AAAA,IACrE;AAAA,IACA,IAAImJ,GAAOwX,GAAa;AACtB,YAAM,EAAE,OAAAzU,GAAO,SAAS,EAAE,cAAA6Y,EAAY,IAAK,CAAA,EAAE,IAAKpE;AAClD,UAAKzU,GAEL;AAAA,YAAI;AACF,UAAI/C,KAAS,OACXwM,EAAW,aAAa,WAAW,0BAA0B,IACpD,CAACzJ,EAAM,aAAa,OAAO,KAAK,CAAC6Y,KAC1CpP,EAAW,aAAa;AAAA,YACtB;AAAA,YACAxM,EAAM,SAAQ;AAAA,UAC1B;AAAA,QAEM,SAAStT,GAAG;AACV,kBAAQ,MAAM,6BAA6BA,CAAC;AAAA,QAC9C;AACA,QAAK,OAAO,SAAS,CAACsT,CAAK,MAE3B+C,EAAM,SAAS,CAAC/C;AAAA;AAAA,IAClB;AAAA,IACA,aAAa,CAAC,cAAc;AAAA,IAC5B,2BAA2B;AAAA,MACzB,CAAC0b,GAASlE,MAAgB;AACxB,cAAM;AAAA,UACJ,SAAS,EAAE,cAAAoE,EAAY;AAAA,QACjC,IAAYpE;AACJ,YAAI,CAAAoE;AAEJ,cAAI;AACF,kBAAM,EAAE,OAAA7Y,EAAK,IAAKyU;AAClB,gBAAI,CAACzU;AACH;AACF,kBAAM8Y,IAAarP,EAAW,aAAa;AAAA,cACzC;AAAA,YACZ;AACU,gBAAIqP,KAAc;AAChB;AACF,YAAAP,GAAc,YAAY,IAAI,CAACO,GAAYrE,CAAW,GACtDkE,EAAQ,CAACG,CAAU;AAAA,UACrB,SAASnvB,GAAG;AACV,oBAAQ,MAAM,6BAA6BA,CAAC;AAAA,UAC9C;AAAA,MACF;AAAA,IACN;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAIE,kBAAkB;AAAA,IAChB,IAAI8qB,GAAa;AACf,YAAM,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,aAAI,QAAQzU,KAAS,OAAO,SAASA,EAAM,UAAW,MAC7C,SACLA,EAAM,SAASA,EAAM,WAAW,IAC3B,QACLA,EAAM,SAAS,MACV,QACLA,EAAM,SAAS,OACV,WACF;AAAA,IACT;AAAA,IACA,aAAa,CAAC,cAAc;AAAA,EAChC;AAAA,EACE,kBAAkB;AAAA,IAChB,IAAIyU,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,cAAQ3gB,IAAKkM,KAAS,OAAO,SAASA,EAAM,gBAAgB,OAAOlM,IAAK;AAAA,IAC1E;AAAA,IACA,IAAImJ,GAAOwX,GAAa;AACtB,YAAM,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,MAAI,CAACzU,KAAS,CAACuG,GAActJ,CAAK,MAElC+C,EAAM,cAAc/C;AAAA,IACtB;AAAA,IACA,aAAa,CAAC,cAAc,gBAAgB;AAAA,EAChD;AAAA,EACE,eAAe;AAAA,IACb,IAAIwX,GAAa;AACf,YAAM,EAAE,OAAAzU,GAAO,SAAS,EAAE,iBAAA+Y,EAAe,IAAK,CAAA,EAAE,IAAKtE;AACrD,aAAIsE,MAAoB,CAAC/Y,KAAS,CAACA,EAAM,YAAY,OAAO,MAAMA,EAAM,QAAQ,KAAK,CAAC,OAAO,SAASA,EAAM,QAAQ,KAC3G+Y,IAEF,OAAO,SAAS/Y,KAAS,OAAO,SAASA,EAAM,QAAQ,IAAIA,EAAM,WAAW,OAAO;AAAA,IAC5F;AAAA,IACA,aAAa,CAAC,kBAAkB,kBAAkB,SAAS;AAAA,EAC/D;AAAA,EACE,cAAc;AAAA,IACZ,IAAIyU,GAAa;AACf,YAAM,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,cAAQzU,KAAS,OAAO,SAASA,EAAM,cAAc;AAAA,IACvD;AAAA,IACA,aAAa,CAAC,WAAW,WAAW,SAAS;AAAA,EACjD;AAAA,EACE,eAAe;AAAA,IACb,IAAIyU,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,UAAI,GAAG3gB,IAAKkM,KAAS,OAAO,SAASA,EAAM,aAAa,QAAgBlM,EAAG;AACzE;AACF,YAAMklB,IAAQhZ,EAAM,SAAS,MAAM,CAAC,GAC9BiZ,IAAMjZ,EAAM,SAAS,IAAIA,EAAM,SAAS,SAAS,CAAC;AACxD,UAAI,GAACgZ,KAAS,CAACC;AAEf,eAAO,CAAC,OAAOD,EAAM,QAAQ,CAAC,CAAC,GAAG,OAAOC,EAAI,QAAQ,CAAC,CAAC,CAAC;AAAA,IAC1D;AAAA,IACA,aAAa,CAAC,kBAAkB,WAAW,YAAY,gBAAgB;AAAA,EAC3E;AAAA,EACE,eAAe;AAAA,IACb,IAAIxE,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU,GACZyE,KAAcplB,IAAKkM,KAAS,OAAO,SAASA,EAAM,aAAa,OAAOlM,IAAK,CAAA;AACjF,aAAO,MAAM,KAAKolB,CAAU,EAAE,IAAI,CAACrmB,GAAGrK,MAAM;AAAA,QAC1C,OAAO0wB,EAAW,MAAM1wB,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,QACrC,OAAO0wB,EAAW,IAAI1wB,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,MAC3C,CAAO;AAAA,IACH;AAAA,IACA,aAAa,CAAC,YAAY,SAAS;AAAA,EACvC;AAAA,EACE,iBAAiB;AAAA,IACf,IAAIisB,GAAa;AACf,YAAM,EAAE,OAAAzU,GAAO,SAAS,EAAE,mBAAAmZ,EAAiB,IAAK,CAAA,EAAE,IAAK1E,GACjD2E,IAAwB;AAAA,QAC5BjU,GAAY;AAAA,QACZA,GAAY;AAAA,MACpB,EAAQ,SAASgU,CAAiB,IAAIA,IAAoB;AACpD,UAAI,CAACnZ;AACH,eAAOoZ;AACT,YAAM,EAAE,YAAAC,EAAU,IAAKrZ;AACvB,UAAI8X,GAAiB,SAASuB,CAAU;AACtC,eAAIA,MAAelU,GAAY,UACtBiU,IAEFC;AAET,YAAMC,IAAWtZ,EAAM;AACvB,aAAIsZ,MAAa,QACRnU,GAAY,OACV,OAAO,SAASmU,CAAQ,IAC1BnU,GAAY,YAEdiU;AAAA,IACT;AAAA,IACA,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN;AAAA,EACA;AAAA,EACE,uBAAuB;AAAA,IACrB,IAAI3E,GAAa;AACf,YAAM,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,UAAI,CAACzU;AACH,eAAO,OAAO;AAChB,YAAM,EAAE,kBAAAuZ,EAAgB,IAAKvZ,GACvBqZ,IAAad,GAAc,gBAAgB,IAAI9D,CAAW;AAChE,cAAK8E,KAAoB,QAAQ,OAAO,MAAMA,CAAgB,MAAMF,MAAelU,GAAY,OACtF,IAEFoU;AAAA,IACT;AAAA,IACA,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN;AAAA,EACA;AAAA,EACE,iBAAiB;AAAA,IACf,IAAI9E,GAAa;AACf,YAAM;AAAA,QACJ,OAAAzU;AAAA;AAAA,QAEA,SAAS,EAAE,gBAAAwZ,IAAiB,OAAO,CAAA;AAAA,MAC3C,IAAU/E;AACJ,UAAI,CAACzU;AACH,eAAO;AACT,UAAI,OAAOA,EAAM,iBAAkB;AACjC,eAAI,OAAO,MAAMA,EAAM,aAAa,IAC3B,KACFA,EAAM,eAAeA,EAAM;AAGpC,UAAI,EADSuY,GAAc,gBAAgB,IAAI9D,CAAW,MAAMtP,GAAY;AAE1E,eAAO;AACT,YAAMsU,IAAWzZ,EAAM;AACvB,UAAI,CAACyZ;AACH,eAAO;AACT,UAAI,CAACA,EAAS;AACZ,eAAO;AACT,YAAMC,IAAgBD,EAAS,IAAIA,EAAS,SAAS,CAAC,IAAID;AAC1D,aAAOxZ,EAAM,eAAe0Z;AAAA,IAC9B;AAAA,IACA,aAAa,CAAC,WAAW,cAAc,YAAY,WAAW,SAAS;AAAA,EAC3E;AAAA;AAAA,EAEE,oBAAoB;AAAA,IAClB,IAAIjF,GAAa;AACf,aAAOiC,GAAkBjC,CAAW,EAAE;AAAA,QACpC,CAAC,EAAE,MAAAzS,GAAM,OAAAmE,GAAO,UAAAjE,EAAQ,OAAQ,EAAE,MAAAF,GAAM,OAAAmE,GAAO,UAAAjE,EAAQ;AAAA,MAC/D;AAAA,IACI;AAAA,IACA,aAAa,CAAC,WAAW;AAAA,IACzB,kBAAkB,CAAC,YAAY,aAAa;AAAA,EAChD;AAAA,EACE,uBAAuB;AAAA,IACrB,IAAIuS,GAAa;AACf,aAAOkC,GAAyBlC,CAAW,EAAE;AAAA,QAC3C,CAAC,EAAE,MAAAzS,GAAM,OAAAmE,GAAO,UAAAjE,EAAQ,OAAQ,EAAE,MAAAF,GAAM,OAAAmE,GAAO,UAAAjE,EAAQ;AAAA,MAC/D;AAAA,IACI;AAAA,IACA,aAAa,CAAC,WAAW;AAAA,IACzB,kBAAkB,CAAC,YAAY,eAAe,QAAQ;AAAA,IACtD,2BAA2B;AAAA,MACzB,CAACyX,GAAUlF,MAAgB;AACzB,YAAI3gB,GAAIsJ;AACR,cAAM,EAAE,OAAA4C,GAAO,SAAA7B,EAAO,IAAKsW;AAC3B,YAAI,CAACzU;AACH;AACF,cAAM4Z,IAAiC,CAACxY,MAAU;AAChD,cAAI6F;AAOJ,UANI,CAAC9I,EAAQ,oBAEQiD,KAAS,CAAC,CAAC2D,GAAe,UAAUA,GAAe,SAAS,EAAE;AAAA;AAAA,aAEhFkC,IAAM7F,KAAS,OAAO,SAASA,EAAM,UAAU,OAAO,SAAS6F,EAAI;AAAA,UAChF,KAGU2P,GAAqBnC,GAAa,EAAI;AAAA,QACxC;AACA,eAAAzU,EAAM;AAAA,UACJ;AAAA,UACA4Z;AAAA,QACV,IACS9lB,IAAKkM,EAAM,eAAe,QAAgBlM,EAAG;AAAA,UAC5C;AAAA,UACA8lB;AAAA,QACV,IACSxc,IAAK4C,EAAM,eAAe,QAAgB5C,EAAG;AAAA,UAC5C;AAAA,UACAwc;AAAA,QACV,GACe,MAAM;AACX,cAAI3S,GAAK4S;AACT,UAAA7Z,EAAM;AAAA,YACJ;AAAA,YACA4Z;AAAA,UACZ,IACW3S,IAAMjH,EAAM,eAAe,QAAgBiH,EAAI;AAAA,YAC9C;AAAA,YACA2S;AAAA,UACZ,IACWC,IAAM7Z,EAAM,eAAe,QAAgB6Z,EAAI;AAAA,YAC9C;AAAA,YACAD;AAAA,UACZ;AAAA,QACQ;AAAA,MACF;AAAA,IACN;AAAA,EACA;AAAA,EACE,mBAAmB;AAAA,IACjB,IAAInF,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,UAAI,CAACzU;AACH,eAAO,CAAA;AACT,YAAM,CAAC8Z,CAAa,IAAI1F,GAAkBpU,GAAO;AAAA,QAC/C,MAAM+E,GAAe;AAAA,MAC7B,CAAO;AACD,aAAO,MAAM,MAAMjR,IAAKgmB,KAAiB,OAAO,SAASA,EAAc,SAAS,OAAOhmB,IAAK,CAAA,CAAE,EAAE;AAAA,QAC9F,CAAC,EAAE,MAAAwkB,GAAM,WAAAyB,GAAW,SAAAC,SAAe;AAAA,UACjC,MAAM3B,GAAgBC,CAAI;AAAA,UAC1B,WAAAyB;AAAA,UACA,SAAAC;AAAA,QACV;AAAA,MACA;AAAA,IACI;AAAA,IACA,aAAa,CAAC,aAAa,gBAAgB;AAAA,IAC3C,kBAAkB,CAAC,YAAY,eAAe,QAAQ;AAAA,IACtD,2BAA2B;AAAA,MACzB,CAACrB,GAASlE,MAAgB;AACxB,YAAI3gB;AACJ,cAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,YAAI,CAACzU;AACH;AACF,cAAM8Z,IAAgB9Z,EAAM;AAAA,UAC1B;AAAA,QACV,GACcia,KAAuBnmB,IAAKkM,EAAM,eAAe,OAAO,SAASlM,EAAG;AAAA,UACxE;AAAA,QACV;AACQ,eAAAgmB,KAAiB,QAAgBA,EAAc,iBAAiB,QAAQnB,CAAO,GAC/EsB,KAAuB,QAAgBA,EAAoB,iBAAiB,QAAQtB,CAAO,GACpF,MAAM;AACX,UAAAmB,KAAiB,QAAgBA,EAAc,oBAAoB,QAAQnB,CAAO,GAClFsB,KAAuB,QAAgBA,EAAoB,oBAAoB,QAAQtB,CAAO;AAAA,QAChG;AAAA,MACF;AAAA,IACN;AAAA,EACA;AAAA;AAAA,EAEE,YAAY;AAAA,IACV,IAAIlE,GAAa;AACf,UAAI3gB,GAAIsJ;AACR,YAAM,EAAE,OAAA4C,GAAO,iBAAAgV,EAAe,IAAKP;AAGnC,UAFI,CAACzU,KAAS,CAACgV,KAEX,CAACA,EAAgB;AACnB,eAAO;AACT,UAAIA,EAAgB,4BAA4BhV;AAC9C,eAAO;AACT,UAAIgV,EAAgB,mCAAmC;AACrD,gBAAOlhB,IAAKkM,EAAM,cAAc,QAAgBlM,EAAG,SAAS,GAAG,IAExDmX;AAAA,UACLjL;AAAA,UACAgV,EAAgB;AAAA,QAC1B,IAJiB;AAMX,UAAIA,EAAgB,wBAAwB,UAAU,SAAS,GAAG,GAAG;AACnE,YAAIM,IAAcN,EAAgB,wBAAwB;AAC1D,eAAOM,KAAe,QAAgBA,EAAY,2BAAyB;AACzE,cAAIA,EAAY,4BAA4BtV;AAC1C,mBAAO;AACT,UAAAsV,KAAelY,IAAKkY,EAAY,4BAA4B,OAAO,SAASlY,EAAG;AAAA,QACjF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA,IAAIH,GAAOwX,GAAa;AACtB,YAAM,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,UAAKzU;AAEL,YAAI/C,GAAO;AACT,cAAI,CAAC6X,GAAS,yBAAyB;AACrC,oBAAQ,KAAK,gDAAgD;AAC7D;AAAA,UACF;AACA,cAAI,CAAC9U,EAAM,yBAAyB;AAClC,oBAAQ;AAAA,cACN;AAAA,YACZ;AACU;AAAA,UACF;AACA,gBAAMka,IAAe,MAAM;AACzB,oBAAQ;AAAA,cACN;AAAA,YACZ;AAAA,UACQ;AACA,UAAAla,EAAM,wBAAuB,EAAG,MAAM,CAACZ,MAAQ;AAC7C,gBAAIA,EAAI,SAAS,IAAI;AACnB,kBAAI,CAACY,EAAM,KAAK;AACd,wBAAQ;AAAA,kBACN;AAAA,gBAChB;AACc;AAAA,cACF;AACA,kBAAIA,EAAM,eAAe,KAAKA,EAAM,YAAY,QAAQ;AACtD,sBAAMma,IAAU,MAAM;AACpB,kBAAAna,EAAM,oBAAoB,kBAAkBoa,CAAM,GAClDpa,EAAM,UAAU;AAAA,gBAClB,GACMoa,IAAS,MAAM;AACnB,kBAAApa,EAAM,wBAAuB,EAAG,MAAMka,CAAY,GAClDC,EAAO;AAAA,gBACT;AACA,gBAAAna,EAAM,iBAAiB,kBAAkBoa,CAAM,GAC/Cpa,EAAM,UAAU,YAChB,WAAW,MAAM;AACf,kBAAIA,EAAM,eAAe,KACvBka,EAAY,GACdC,EAAO;AAAA,gBACT,GAAG,GAAG;AAAA,cACR;AACE,sBAAM/a;AAAA,YAEV;AACE,oBAAMA;AAAA,UAEV,CAAC;AAAA,QACH,MAAO,CAAI0V,GAAS,2BAClBA,GAAS,qBAAoB;AAAA,IAEjC;AAAA,IACA,aAAa,CAAC,yBAAyB,uBAAuB;AAAA,EAClE;AAAA,EACE,oBAAoB;AAAA,IAClB,IAAIL,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,aAAO,CAAC,IAAI3gB,IAAKkM,KAAS,OAAO,SAASA,EAAM,oBAAoB,OAAOlM,IAAK,CAAA,CAAE,EAAE,IAAI,CAACumB,OAAoB;AAAA,QAC3G,GAAGA;AAAA,MACX,EAAQ;AAAA,IACJ;AAAA,IACA,aAAa,CAAC,WAAW,WAAW;AAAA,IACpC,uBAAuB,CAAC,gBAAgB,iBAAiB;AAAA,EAC7D;AAAA;AAAA,EAEE,wBAAwB;AAAA,IACtB,IAAI5F,GAAa;AACf,UAAI3gB,GAAIsJ,GAAIC;AACZ,YAAM,EAAE,OAAA2C,EAAK,IAAKyU;AAClB,cAAQpX,KAAMD,IAAK4C,KAAS,OAAO,SAASA,EAAM,oBAAoB,OAAO,SAAS5C,GAAItJ,IAAKkM,EAAM,oBAAoB,OAAO,SAASlM,EAAG,aAAa,MAAM,OAAO,SAASuJ,EAAG;AAAA,IACpL;AAAA,IACA,IAAIJ,GAAOwX,GAAa;AACtB,YAAM,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,UAAI,EAAEzU,KAAS,QAAgBA,EAAM,kBAAkB;AACrD,gBAAQ;AAAA,UACN;AAAA,QACV;AACQ;AAAA,MACF;AACA,YAAMsa,IAAcrd,GACd8K,IAAQ,MAAM,UAAU,UAAU;AAAA,QACtC/H,EAAM;AAAA,QACN,CAAC5X,MAAMA,EAAE,MAAMkyB;AAAA,MACvB;AACM,MAAIta,EAAM,gBAAgB,iBAAiB+H,MACzC/H,EAAM,gBAAgB,gBAAgB+H;AAAA,IAE1C;AAAA,IACA,aAAa,CAAC,SAAS;AAAA,IACvB,uBAAuB,CAAC,gBAAgB,mBAAmB,QAAQ;AAAA,EACvE;AAAA,EACE,qBAAqB;AAAA,IACnB,IAAI0M,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,aAAO,CAAC,IAAI3gB,IAAKkM,KAAS,OAAO,SAASA,EAAM,gBAAgB,OAAOlM,IAAK,CAAA,CAAE;AAAA,IAChF;AAAA,IACA,aAAa,CAAC,WAAW,WAAW;AAAA,IACpC,mBAAmB,CAAC,YAAY,aAAa;AAAA,EACjD;AAAA,EACE,wBAAwB;AAAA,IACtB,IAAI2gB,GAAa;AACf,UAAI3gB,GAAIsJ;AACR,YAAM,EAAE,OAAA4C,EAAK,IAAKyU;AAClB,cAAQrX,IAAK,CAAC,IAAItJ,IAAKkM,KAAS,OAAO,SAASA,EAAM,gBAAgB,OAAOlM,IAAK,CAAA,CAAE,EAAE;AAAA,QACpF,CAACoS,MAAeA,EAAW;AAAA,MACnC,MAAY,OAAO,SAAS9I,EAAG;AAAA,IAC3B;AAAA,IACA,IAAIH,GAAOwX,GAAa;AACtB,YAAM,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,UAAI,EAAEzU,KAAS,QAAgBA,EAAM,cAAc;AACjD,gBAAQ;AAAA,UACN;AAAA,QACV;AACQ;AAAA,MACF;AACA,YAAMua,IAAetd;AACrB,iBAAW0G,KAAS3D,EAAM;AACxB,QAAA2D,EAAM,UAAU4W,KAAgB5W,EAAM;AAAA,IAE1C;AAAA,IACA,aAAa,CAAC,SAAS;AAAA,IACvB,mBAAmB,CAAC,YAAY,eAAe,QAAQ;AAAA,EAC3D;AAAA,EACE,mBAAmB;AAAA,IACjB,IAAI8Q,GAAa;AACf,aAAOW,GAAaX,CAAW;AAAA,IACjC;AAAA,IACA,IAAIxX,GAAOwX,GAAarT,GAAO;AAC7B,UAAItN,GAAIsJ;AACR,MAAKH,KAGHuX,GAAgBC,CAAW,GACTrT,EAAM,UACP,GAAGtN,IAAK2gB,EAAY,UAAU,QAAgB3gB,EAAG,YAC/DsJ,IAAKqX,EAAY,UAAU,QAAgBrX,EAAG,MAAK,MALtD2X,GAAeN,CAAW;AAAA,IAO9B;AAAA;AAAA,IAEA,YAAY,CAAC,oBAAoB,wBAAwB;AAAA;AAAA,IAEzD,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,IACN;AAAA,EACA;AAAA,EACE,gBAAgB;AAAA;AAAA,IAEd,IAAIA,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,aAAI,EAAEzU,KAAS,QAAgBA,EAAM,aAAalM,IAAKkM,EAAM,WAAW,OAAO,SAASlM,EAAG,WAAW,iBAC7F,KACF,CAAC,CAACkM,EAAM,OAAO;AAAA,IACxB;AAAA,IACA,IAAI/C,GAAOwX,GAAa;AACtB,UAAI3gB,GAAIsJ;AACR,YAAM,EAAE,OAAA4C,EAAK,IAAKyU;AAClB,UAAKzU,KAED,EAAA/C,OAAWnJ,IAAKkM,EAAM,WAAW,OAAO,SAASlM,EAAG,WAAW,mBAE/D,GAACmJ,OAAWG,IAAK4C,EAAM,WAAW,OAAO,SAAS5C,EAAG,WAAW,cAEpE;AAAA,YAAI,OAAO4C,EAAM,OAAO,UAAW,YAAY;AAC7C,kBAAQ;AAAA,YACN;AAAA,UACV;AACQ;AAAA,QACF;AACA,QAAAA,EAAM,OAAO,OAAM,EAAG,MAAM,MAAM;AAAA,QAClC,CAAC;AAAA;AAAA,IACH;AAAA,IACA,cAAc,CAAC,WAAW,cAAc,YAAY;AAAA,EACxD;AAAA;AAAA,EAEE,mBAAmB;AAAA;AAAA,IAEjB,MAAM;AACJ,aAAO;AAAA,IACT;AAAA,IACA,IAAI6I,GAAQ4L,GAAa;AACvB,YAAM,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,UAAKzU,GAEL;AAAA,YAAI,EAAEA,EAAM,kCAAkCyJ,EAAW,wCAAwC;AAC/F,kBAAQ;AAAA,YACN;AAAA,UACV;AACQ;AAAA,QACF;AACA,QAAAzJ,EAAM,+BAA8B;AAAA;AAAA,IACtC;AAAA,IACA,aAAa,CAAC,8CAA8C;AAAA,EAChE;AAAA,EACE,4BAA4B;AAAA,IAC1B,IAAIyU,GAAa;AACf,YAAM,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,UAAI,CAAC6B,MAAuB,CAACD,GAAqBrW,CAAK;AACrD,eAAOkF,GAAmB;AAAA,IAE9B;AAAA,EACJ;AAAA,EACE,qBAAqB;AAAA,IACnB,IAAIuP,GAAa;AACf,YAAM,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,UAAI,CAAC8B,MAAgB,CAACH,GAAcpW,CAAK;AACvC,eAAOkF,GAAmB;AACvB,UAAIlF,KAAS,QAAgBA,EAAM;AACtC,eAAOkF,GAAmB;AAAA,IAE9B;AAAA,EACJ;AAAA,EACE,wBAAwB;AAAA,IACtB,IAAIuP,GAAa;AACf,YAAM,EAAE,OAAAzU,EAAK,IAAKyU;AAClB,UAAIsB,OAAoB,OAAU/V,KAAS,OAAO,SAASA,EAAM,WAAW;AAC1E,eAAOkF,GAAmB;AAAA,IAG9B;AAAA;AAAA;AAAA;AAAA,IAIA,2BAA2B;AAAA,MACzB,CAACyT,MAAY;AACX,QAAI5C,MAAmB,QACrBgC,GAAqB;AAAA,UACnB,CAACC,MAAcW,EAAQX,IAAY,SAAS9S,GAAmB,WAAW;AAAA,QACtF;AAAA,MAEM;AAAA,IACN;AAAA,EACA;AAAA,EACE,sBAAsB;AAAA;AAAA,IAEpB,IAAIuP,GAAa,EAAE,cAAA+F,IAAe,gBAAe,IAAK,CAAA,GAAI;AACxD,UAAI1mB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,UAAI,CAACgC,MAAiB,GAAG3iB,IAAKkM,KAAS,OAAO,SAASA,EAAM,WAAW,QAAgBlM,EAAG;AACzF,eAAOoR,GAAmB;AAE5B,UAAI,EAAAsV,KAAgB,QAAQA,MAAiB;AAE7C,eAAOtV,GAAmB;AAAA,IAC5B;AAAA,IACA,2BAA2B;AAAA,MACzB,CAACyT,GAASlE,MAAgB;AACxB,YAAI3gB;AACJ,cAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,eAAKzU,KAE0BA,EAAM,yBAAyBA,EAAM,aAAa,uBAAuB,MAErGlM,IAAKkM,KAAS,OAAO,SAASA,EAAM,WAAW,QAAgBlM,EAAG,kBAAkB,CAAC2mB,MAAqB;AAEzG,UAAA9B,EAAQ,EAAE,cADW8B,IAAmB,cAAc,iBAC9B;AAAA,QAC1B,CAAC,EAAE,MAAM,CAAC9Y,MAAU;AAClB,UAAIA,EAAM,SAAS,sBACjBgX,EAAQ,EAAE,cAAc,MAAM,IAE9BA,EAAQ,EAAE,cAAc,iBAAiB;AAAA,QAE7C,CAAC,GAEI,MAAM;AACX,cAAI1R;AACJ,WAACA,IAAMjH,KAAS,OAAO,SAASA,EAAM,WAAW,QAAgBiH,EAAI,wBAAuB,EAAG,MAAM,MAAM;AAAA,UAC3G,CAAC;AAAA,QACH,KAlBE;AAAA,MAmBJ;AAAA,IACN;AAAA,EACA;AAAA,EACE,yBAAyB;AAAA,IACvB,IAAIyT,GAActZ,GAAO;AACvB,UAAI,CAACoV;AACH,eAAOtR,GAAmB;AAC5B,WAAK9D,KAAS,OAAO,SAASA,EAAM,kBAAkB;AACpD,eAAO8D,GAAmB;AAAA,IAG9B;AAAA;AAAA;AAAA;AAAA,IAIA,aAAa,CAAC,yCAAyC;AAAA,IACvD,2BAA2B;AAAA,MACzB,CAACyT,GAASlE,MAAgB;AACxB,YAAI3gB;AACJ,cAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,eAAKzU,KAE0BA,EAAM,yBAAyBA,EAAM,aAAa,uBAAuB,MAErGlM,IAAKkM,KAAS,OAAO,SAASA,EAAM,WAAW,QAAgBlM,EAAG,kBAAkB,CAAC2mB,MAAqB;AAEzG,UAAA9B,EAAQ,EAAE,cADW8B,IAAmB,cAAc,iBAC9B;AAAA,QAC1B,CAAC,EAAE,MAAM,CAAC9Y,MAAU;AAClB,UAAIA,EAAM,SAAS,sBACjBgX,EAAQ,EAAE,cAAc,MAAM,IAE9BA,EAAQ,EAAE,cAAc,iBAAiB;AAAA,QAE7C,CAAC,GAEI,MAAM;AACX,cAAI1R;AACJ,WAACA,IAAMjH,KAAS,OAAO,SAASA,EAAM,WAAW,QAAgBiH,EAAI,wBAAuB,EAAG,MAAM,MAAM;AAAA,UAC3G,CAAC;AAAA,QACH,KAlBE;AAAA,MAmBJ;AAAA,IACN;AAAA,EACA;AAAA,EACE,2BAA2B;AAAA,IACzB,IAAIwN,GAAa;AACf,UAAI3gB;AACJ,YAAM,EAAE,OAAAkM,EAAK,IAAKyU;AAClB,UAAI,EAAEzU,KAAS,QAAgBA,EAAM;AACnC,eAAOkF,GAAmB;AAE5B,UAAI,GAAGpR,IAAKkM,EAAM,oBAAoB,QAAgBlM,EAAG;AACvD,eAAOoR,GAAmB;AAAA,IAG9B;AAAA,IACA,aAAa,CAAC,WAAW,WAAW;AAAA,IACpC,uBAAuB,CAAC,gBAAgB,iBAAiB;AAAA,EAC7D;AAAA,EACE,4BAA4B;AAAA,IAC1B,IAAIuP,GAAa;AACf,UAAI3gB,GAAIsJ;AACR,YAAM,EAAE,OAAA4C,EAAK,IAAKyU;AAClB,UAAI,EAAEzU,KAAS,QAAgBA,EAAM;AACnC,eAAOkF,GAAmB;AAE5B,YAAM9H,KAAMtJ,IAAKkM,EAAM,gBAAgB,OAAO,SAASlM,EAAG,WAAW,OAAOsJ,IAAK,MAAM;AACrF,eAAO8H,GAAmB;AAAA,IAG9B;AAAA,IACA,aAAa,CAAC,WAAW,WAAW;AAAA,IACpC,mBAAmB,CAAC,YAAY,aAAa;AAAA,EACjD;AAAA,EACE,WAAW;AAAA,IACT,IAAIuP,GAAa;AACf,YAAM,EAAE,SAAS,EAAE,WAAAkG,EAAS,IAAK,CAAA,EAAE,IAAKlG;AACxC,aAAOkG,KAAgC;AAAA,IACzC;AAAA,EACJ;AACA,GCp4BMC,KAAa;AAAA;AAAA;AAAA;AAAA,EAIjB,CAAC3W,EAAc,qBAAqB,EAAEsU,GAAe9D,GAAa,EAAE,QAAAoG,KAAU;AAC5E,QAAI/mB,GAAIsJ,GAAIC;AACZ,UAAM,EAAE,OAAA2C,EAAK,IAAKyU,GACZqG,IAAmBD,KAA0B;AACnD,QAAIE,GACAC;AACJ,QAAIhb,KAAS8a,KAAoB,MAAM;AACrC,YAAM,CAACnX,CAAK,IAAIyQ,GAAkBpU,GAAO;AAAA,QACvC,MAAM+E,GAAe;AAAA,QACrB,OAAO;AAAA,MACf,CAAO,GACKkW,IAAM,MAAM,UAAU,KAAK,MAAMnnB,IAAK6P,KAAS,OAAO,SAASA,EAAM,SAAS,OAAO7P,IAAK,CAAA,GAAI,CAAC5D,GAAG1H,GAAG0yB,MACrG1yB,MAAM,IACD0H,EAAE,UAAU4qB,IACjBtyB,MAAM0yB,EAAG,SAAS,IACbhrB,EAAE,aAAa4qB,IACjB5qB,EAAE,aAAa4qB,KAAoB5qB,EAAE,UAAU4qB,CACvD;AACD,UAAIG,GAAK;AACP,cAAM/T,IAAQ,sBAAsB,KAAK+T,EAAI,IAAI,MAAK7d,IAAK4C,KAAS,OAAO,SAASA,EAAM;AAAA,UACxF;AAAA,QACV,MAAc,OAAyB,SAAT5C,EAAG,KACnB6B,IAAM,IAAI,IAAIgc,EAAI,MAAM/T,CAAI;AAElC,QAAA8T,IADyB,IAAI,gBAAgB/b,EAAI,IAAI,EAAE,IAAI,OAAO,EAC5B,MAAM,GAAG,EAAE,IAAI,CAACkc,MAAW,CAACA,CAAM,GACxEJ,IAAoB9b,EAAI;AAAA,MAC1B;AAAA,IACF;AACA,UAAMmc,IAAgB7C,EAAc,cAAc,IAAI9D,CAAW;AAEjE,QAAI4G,KAAuBhe,IADDkb,EAAc,kBAAkB,IAAI9D,CAAW,EACvB,KAAK,CAACvkB,GAAG1H,GAAG0yB,MACxD1yB,MAAM0yB,EAAG,SAAS,KAAKE,MAAkBlrB,EAAE,UACtCA,EAAE,aAAa4qB,KAAoB5qB,EAAE,WAAW4qB,IAElD5qB,EAAE,aAAa4qB,KAAoB5qB,EAAE,UAAU4qB,CACvD,MAAM,OAAO,SAASzd,EAAG;AAC1B,WAAIwd,KAAU,QAAQQ,KAAuB,SAC3CA,IAAsB,KAEjB;AAAA,MACL,kBAAAP;AAAA,MACA,mBAAAC;AAAA,MACA,oBAAAC;AAAA,MACA,qBAAAK;AAAA,IACN;AAAA,EACE;AAAA,EACA,CAACpX,EAAc,mBAAmB,EAAEsU,GAAe9D,GAAa;AAG9D,IAAA8D,EAFY,aAEK,EAAE,IAAI,IAAO9D,CAAW;AAAA,EAC3C;AAAA,EACA,CAACxQ,EAAc,kBAAkB,EAAEsU,GAAe9D,GAAa;AAC7D,QAAI3gB,GAAIsJ,GAAIC,GAAIwC;AAChB,UAAM0E,IAAM,eAEN+W,IAAS/C,EAAc,gBAAgB,IAAI9D,CAAW,MAAMtP,GAAY,MACxEoW,IAAoB,GAAGznB,IAAK2gB,EAAY,YAAY,QAAgB3gB,EAAG,mBACvE0nB,IAAQjD,EAAc,sBAAsB,IAAI9D,CAAW,IAAI;AACrE,QAAI6G,KAAUC,KAAqB,CAACC,GAAO;AACzC,YAAMC,KAAere,IAAKmb,EAAc,cAAc,IAAI9D,CAAW,MAAM,OAAO,SAASrX,EAAG,CAAC;AAC/F,UAAIqe,GAAa;AACf,cAAMC,KAAoB7b,KAAMxC,IAAKoX,EAAY,YAAY,OAAO,SAASpX,EAAG,qBAAqB,OAAOwC,IAAK,GAC3G8b,IAAeF,IAAcC;AACnC,QAAAnD,EAAc,iBAAiB,IAAIoD,GAAclH,CAAW;AAAA,MAC9D;AAAA,IACF;AACA,IAAA8D,EAAchU,CAAG,EAAE,IAAI,IAAOkQ,CAAW;AAAA,EAC3C;AAAA,EACA,CAACxQ,EAAc,2BAA2B,EAAEsU,GAAe9D,GAAa,EAAE,QAAAoG,KAAU;AAClF,UAAMtW,IAAM,qBACNtH,IAAQ4d;AACd,IAAAtC,EAAchU,CAAG,EAAE,IAAItH,GAAOwX,CAAW;AAAA,EAC3C;AAAA,EACA,CAACxQ,EAAc,kBAAkB,EAAEsU,GAAe9D,GAAa;AAG7D,IAAA8D,EAFY,YAEK,EAAE,IAAI,IAAO9D,CAAW;AAAA,EAC3C;AAAA,EACA,CAACxQ,EAAc,oBAAoB,EAAEsU,GAAe9D,GAAa;AAC/D,UAAMlQ,IAAM;AAEZ,IAAKgU,EAAc,YAAY,IAAI9D,CAAW,KAC5C8D,EAAc,YAAY,IAAI,MAAM9D,CAAW,GAEjD8D,EAAchU,CAAG,EAAE,IAAI,IAAOkQ,CAAW;AAAA,EAC3C;AAAA,EACA,CAACxQ,EAAc,kBAAkB,EAAEsU,GAAe9D,GAAa,EAAE,QAAAoG,KAAU;AACzE,UAAMtW,IAAM,aACNtH,IAAQ,CAAC,CAAC4d;AAChB,WAAAtC,EAAchU,CAAG,EAAE,IAAItH,GAAOwX,CAAW,GAClC,EAAE,WAAWxX,EAAK;AAAA,EAC3B;AAAA,EACA,CAACgH,EAAc,oBAAoB,EAAEsU,GAAe9D,GAAa,EAAE,QAAAoG,KAAU;AAC3E,UAAMtW,IAAM,eACNtH,IAAQ4d;AACd,IAAI5d,KAASsb,EAAc,WAAW,IAAI9D,CAAW,KACnD8D,EAAc,WAAW,IAAI,IAAO9D,CAAW,GAEjD8D,EAAchU,CAAG,EAAE,IAAItH,GAAOwX,CAAW;AAAA,EAC3C;AAAA,EACA,CAACxQ,EAAc,kBAAkB,EAAEsU,GAAe9D,GAAa,EAAE,QAAAoG,KAAU;AACzE,UAAMtW,IAAM,oBACNtH,IAAQ4d;AACd,IAAAtC,EAAchU,CAAG,EAAE,IAAItH,GAAOwX,CAAW;AAAA,EAC3C;AAAA,EACA,CAACxQ,EAAc,0BAA0B,EAAEsU,GAAe9D,GAAa;AACrE,QAAI3gB,GAAIsJ,GAAIC;AACZ,UAAMkH,IAAM,oBACNkX,KAAe3nB,IAAKykB,EAAc,cAAc,IAAI9D,CAAW,MAAM,OAAO,SAAS3gB,EAAG,CAAC;AAC/F,QAAI,OAAO,MAAM,OAAO2nB,CAAW,CAAC;AAClC;AACF,UAAMC,KAAoBre,KAAMD,IAAKqX,EAAY,YAAY,OAAO,SAASrX,EAAG,qBAAqB,OAAOC,IAAK,GAC3GJ,IAAQwe,IAAcC;AAC5B,IAAAnD,EAAchU,CAAG,EAAE,IAAItH,GAAOwX,CAAW;AAAA,EAC3C;AAAA;AAAA,EAEA,CAACxQ,EAAc,4BAA4B,EAAE2X,GAAgBnH,GAAa,EAAE,QAAAoG,KAAU;AACpF,QAAI/mB;AACJ,UAAM,EAAE,SAAAqK,EAAO,IAAKsW,GACdR,IAASyC,GAAkBjC,CAAW,GACtCP,IAAiBd,GAAYyH,CAAM,GACnCgB,KAAqB/nB,IAAKogB,EAAe,CAAC,MAAM,OAAO,SAASpgB,EAAG;AACzE,IAAI+nB,KAAqB,CAAC1d,EAAQ,uBAChCsL,EAAW,aAAa;AAAA,MACtB;AAAA,MACAoS;AAAA,IACR,GAEI7H,GAAmBhP,GAAe,SAASiP,GAAQC,CAAc;AAAA,EACnE;AAAA,EACA,CAACjQ,EAAc,+BAA+B,EAAE2X,GAAgBnH,GAAa,EAAE,QAAAoG,KAAU;AACvF,UAAM5G,IAASyC,GAAkBjC,CAAW,GACtCP,IAAiB2G,KAA0B,CAAA;AACjD,IAAA7G,GAAmBhP,GAAe,UAAUiP,GAAQC,CAAc;AAAA,EACpE;AAAA,EACA,CAACjQ,EAAc,8BAA8B,EAAE2X,GAAgBnH,GAAa,EAAE,QAAAoG,KAAU;AACtF,IAAAjE,GAAqBnC,GAAaoG,CAAM;AAAA,EAC1C;AAAA;AAAA,EAEA,CAAC5W,EAAc,uBAAuB,EAAEsU,GAAe9D,GAAa,EAAE,QAAAoG,KAAU;AAC9E,UAAMtW,IAAM,0BACNtH,IAAQ4d;AACd,IAAAtC,EAAchU,CAAG,EAAE,IAAItH,GAAOwX,CAAW;AAAA,EAC3C;AAAA,EACA,CAACxQ,EAAc,yBAAyB,EAAEsU,GAAe9D,GAAa,EAAE,QAAAoG,KAAU;AAChF,UAAMtW,IAAM,0BACNtH,IAAQ4d;AACd,IAAAtC,EAAchU,CAAG,EAAE,IAAItH,GAAOwX,CAAW;AAAA,EAC3C;AAAA;AAAA,EAEA,CAACxQ,EAAc,uBAAuB,EAAEsU,GAAe9D,GAAa;AAClE,UAAMlQ,IAAM;AAEZ,IAAIgU,EAAc,kBAAkB,IAAI9D,CAAW,KACjD8D,EAAc,kBAAkB,IAAI,IAAO9D,CAAW,GAExD8D,EAAchU,CAAG,EAAE,IAAI,IAAOkQ,CAAW;AAAA,EAC3C;AAAA,EACA,CAACxQ,EAAc,sBAAsB,EAAEsU,GAAe9D,GAAa;AAGjE,IAAA8D,EAFY,YAEK,EAAE,IAAI,IAAO9D,CAAW;AAAA,EAC3C;AAAA,EACA,CAACxQ,EAAc,8BAA8B,EAAEsU,GAAe9D,GAAarT,GAAO;AAChF,UAAMmD,IAAM;AAEZ,IAAIgU,EAAc,WAAW,IAAI9D,CAAW,KAC1C8D,EAAc,WAAW,IAAI,IAAO9D,CAAW,GAEjD8D,EAAchU,CAAG,EAAE,IAAI,IAAOkQ,GAAarT,CAAK;AAAA,EAClD;AAAA,EACA,CAAC6C,EAAc,6BAA6B,EAAEsU,GAAe9D,GAAa;AAGxE,IAAA8D,EAFY,mBAEK,EAAE,IAAI,IAAO9D,CAAW;AAAA,EAC3C;AAAA,EACA,CAACxQ,EAAc,wBAAwB,EAAEsU,GAAe9D,GAAa;AACnE,UAAMlQ,IAAM;AAEZ,IAAIgU,EAAc,kBAAkB,IAAI9D,CAAW,KACjD8D,EAAc,kBAAkB,IAAI,IAAO9D,CAAW,GAExD8D,EAAchU,CAAG,EAAE,IAAI,IAAOkQ,CAAW;AAAA,EAC3C;AAAA,EACA,CAACxQ,EAAc,uBAAuB,EAAEsU,GAAe9D,GAAa;AAGlE,IAAA8D,EAFY,gBAEK,EAAE,IAAI,IAAO9D,CAAW;AAAA,EAC3C;AAAA,EACA,CAACxQ,EAAc,qBAAqB,EAAEsU,GAAe9D,GAAa;AAGhE,IAAA8D,EAFY,mBAEK,EAAE,IAAI,IAAO9D,CAAW;AAAA,EAC3C;AACF,GC7MMqH,KAAmB,CAAC;AAAA,EACxB,OAAA9b;AAAA,EACA,mBAAA0U;AAAA,EACA,iBAAAM;AAAA,EACF,eAAEuD,IAAgBwD;AAAAA,EAClB,YAAEnB,IAAaoB;AAAAA,EACb,SAAA7d,IAAU,CAAA;AAAA,EACV,yCAAA8d,IAA0C;AAC5C,MAAM;AACJ,QAAM1S,IAAY,CAAA,GACZkL,IAAc;AAAA;AAAA;AAAA,IAGlB,SAAS,EAAE,GAAGtW,EAAO;AAAA,EACzB;AACE,MAAI+d,IAAQ,OAAO,OAAO;AAAA,IACxB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,EACzB,CAAG;AACD,QAAMC,IAAc,CAACC,MAAmB;AACtC,IAAIA,KAAkB,SAElB5E,GAAY4E,GAAgBF,CAAK,MAGrCA,IAAQ,OAAO,OAAO;AAAA,MACpB,GAAGA;AAAA,MACH,GAAGE;AAAA,IACT,CAAK,GACD7S,EAAU,QAAQ,CAAC8S,MAAOA,EAAGH,CAAK,CAAC;AAAA,EACrC,GACMI,IAAwB,MAAM;AAClC,UAAMC,IAAY,OAAO,QAAQhE,CAAa,EAAE;AAAA,MAC9C,CAACiE,GAAY,CAACC,GAAW,EAAE,KAAAC,EAAG,CAAE,OAC9BF,EAAWC,CAAS,IAAIC,EAAIjI,CAAW,GAChC+H;AAAA,MAET,CAAA;AAAA,IACN;AACI,IAAAL,EAAYI,CAAS;AAAA,EACvB,GACMI,IAAsB,CAAA;AAC5B,MAAIC;AACJ,QAAMC,IAAoB,OAAOC,GAAsBC,MAAwB;AAC7E,QAAIjpB,GAAIsJ,GAAIC,GAAIwC,GAAIhO,GAAImrB,GAAIC,GAAIC,GAAIvkB,GAAIwkB,GAAIC,GAAIC,IAAIC,IAAIC,IAAIC,IAAIC;AAChE,UAAMC,KAAgB,CAAC,CAACd;AAMxB,QALAA,IAAkB;AAAA,MAChB,GAAGnI;AAAA,MACH,GAAGmI,KAA4C,CAAA;AAAA,MAC/C,GAAGE;AAAA,IACT,GACQY;AACF;AACF,UAAMzF,GAAmB,GAAG,OAAO,OAAO6E,CAAoB,CAAC;AAC/D,UAAMa,KAAoCpU,EAAU,SAAS,KAAKwT,MAAwB,KAAKd,GACzF2B,KAAenJ,EAAY,UAAUmI,EAAgB,OACrDiB,OAAsB/pB,IAAK2gB,EAAY,UAAU,OAAO,SAAS3gB,EAAG,kBAAkBsJ,IAAKwf,EAAgB,UAAU,OAAO,SAASxf,EAAG,aACxI0gB,OAA2BzgB,IAAKoX,EAAY,UAAU,OAAO,SAASpX,EAAG,uBAAuBwC,IAAK+c,EAAgB,UAAU,OAAO,SAAS/c,EAAG,kBAClJke,OAAuBlsB,IAAK4iB,EAAY,UAAU,OAAO,SAAS5iB,EAAG,mBAAmBmrB,IAAKJ,EAAgB,UAAU,OAAO,SAASI,EAAG,cAC1IgB,OAAkBf,IAAKxI,EAAY,UAAU,OAAO,SAASwI,EAAG,cAAcC,IAAKN,EAAgB,UAAU,OAAO,SAASM,EAAG,SAChIe,KAAkBxJ,EAAY,oBAAoBmI,EAAgB,iBAClEsB,KAAgB,CAAC,CAACzJ,EAAY,UAAUmJ,MAAgBD,KACxDQ,KAAqB,CAAC,GAAGxlB,IAAK8b,EAAY,UAAU,QAAgB9b,EAAG,gBAAgBklB,MAAqBF,KAC5GS,KAA0B,CAAC,GAAGjB,IAAK1I,EAAY,UAAU,QAAgB0I,EAAG,qBAAqBW,MAA0BH,KAC3HU,KAAsB,CAAC,GAAGjB,IAAK3I,EAAY,UAAU,QAAgB2I,EAAG,iBAAiBW,MAAsBJ,KAC/GW,KAAiB,CAAC,GAAGjB,KAAK5I,EAAY,UAAU,QAAgB4I,GAAG,YAAYW,MAAiBL,KAChGY,KAAmB,CAAC,CAAC9J,EAAY,oBAAoBwJ,MAAmBN,KACxEa,KAAoBN,MAAiBC,MAAsBC,MAA2BC,MAAuBC,MAAkBC,IAC/HE,KAAiClV,EAAU,WAAW,KAAKwT,MAAwB,KAAKd,GACxFyC,KAAa,CAAC,CAAC9B,EAAgB,UAAUgB,MAAgBa,KACzDE,KAAkB,CAAC,GAAGrB,KAAKV,EAAgB,UAAU,QAAgBU,GAAG,gBAAgBO,MAAqBY,KAC7GG,KAAuB,CAAC,GAAGrB,KAAKX,EAAgB,UAAU,QAAgBW,GAAG,qBAAqBO,MAA0BW,KAC5HI,KAAmB,CAAC,GAAGrB,KAAKZ,EAAgB,UAAU,QAAgBY,GAAG,iBAAiBO,MAAsBU,KAChHK,KAAc,CAAC,GAAGrB,KAAKb,EAAgB,UAAU,QAAgBa,GAAG,YAAYO,MAAiBS,KACjGM,KAAgB,CAAC,CAACnC,EAAgB,oBAAoBqB,MAAmBQ,KACzEO,KAAiBN,MAAcC,MAAmBC,MAAwBC,MAAoBC,MAAeC;AAEnH,QAAI,EADkBP,MAAqBQ,KACvB;AAClB,aAAO,QAAQpC,CAAe,EAAE;AAAA,QAC9B,CAAC,CAACqC,IAAgB/G,EAAU,MAAM;AAChC,UAAAzD,EAAYwK,EAAc,IAAI/G;AAAA,QAChC;AAAA,MACR,GACMoE,EAAqB,GACrBM,IAAkB;AAClB;AAAA,IACF;AACA,WAAO,QAAQrE,CAAa,EAAE;AAAA,MAC5B,CAAC;AAAA,QACCkE;AAAA,QACA;AAAA,UACE,KAAAC;AAAA,UACA,aAAAwC,KAAc,CAAA;AAAA,UACd,kBAAAC,KAAmB,CAAA;AAAA,UACnB,uBAAAC,KAAwB,CAAA;AAAA,UACxB,mBAAAC,KAAoB,CAAA;AAAA,UACpB,cAAAC,KAAe,CAAA;AAAA,UACf,YAAAC,KAAa,CAAA;AAAA,UACb,2BAAAC,KAA4B,CAAA;AAAA,QACtC;AAAA,MACA,MAAY;AACJ,QAAK7C,EAAoBF,EAAS,MAChCE,EAAoBF,EAAS,IAAI,CAAA;AAEnC,cAAM9D,KAAU,CAACvX,OAAU;AACzB,gBAAMoM,KAAYkP,GAAIjI,GAAarT,EAAK;AACxC,UAAA+a,EAAY,EAAE,CAACM,EAAS,GAAGjP,IAAW;AAAA,QACxC;AACA,YAAIiS;AACJ,QAAAA,KAAc9C,EAAoBF,EAAS,EAAE,aAC7CyC,GAAY,QAAQ,CAACta,OAAc;AACjC,UAAI6a,MAAevB,OACjBzJ,EAAY,MAAM,oBAAoB7P,IAAW6a,EAAW,GAC5D9C,EAAoBF,EAAS,EAAE,cAAc,SAE3CiC,OACF9B,EAAgB,MAAM,iBAAiBhY,IAAW+T,EAAO,GACzDgE,EAAoBF,EAAS,EAAE,cAAc9D;AAAA,QAEjD,CAAC,GACD8G,KAAc9C,EAAoBF,EAAS,EAAE,kBAC7C0C,GAAiB,QAAQ,CAACva,OAAc;AACtC,cAAIqC,IAAK4S;AACT,UAAI4F,MAAetB,QAChBlX,KAAMwN,EAAY,MAAM,eAAe,QAAgBxN,GAAI;AAAA,YAC1DrC;AAAA,YACA6a;AAAA,UACd,GACY9C,EAAoBF,EAAS,EAAE,mBAAmB,SAEhDkC,QACD9E,KAAM+C,EAAgB,MAAM,eAAe,QAAgB/C,GAAI;AAAA,YAC9DjV;AAAA,YACA+T;AAAA,UACd,GACYgE,EAAoBF,EAAS,EAAE,mBAAmB9D;AAAA,QAEtD,CAAC,GACD8G,KAAc9C,EAAoBF,EAAS,EAAE,uBAC7C2C,GAAsB,QAAQ,CAACxa,OAAc;AAC3C,cAAIqC,IAAK4S;AACT,UAAI4F,MAAerB,QAChBnX,KAAMwN,EAAY,MAAM,oBAAoB,QAAgBxN,GAAI;AAAA,YAC/DrC;AAAA,YACA6a;AAAA,UACd,GACY9C,EAAoBF,EAAS,EAAE,wBAAwB,SAErDmC,QACD/E,KAAM+C,EAAgB,MAAM,oBAAoB,QAAgB/C,GAAI;AAAA,YACnEjV;AAAA,YACA+T;AAAA,UACd,GACYgE,EAAoBF,EAAS,EAAE,wBAAwB9D;AAAA,QAE3D,CAAC,GACD8G,KAAc9C,EAAoBF,EAAS,EAAE,mBAC7C4C,GAAkB,QAAQ,CAACza,OAAc;AACvC,cAAIqC,IAAK4S;AACT,UAAI4F,MAAepB,QAChBpX,KAAMwN,EAAY,MAAM,gBAAgB,QAAgBxN,GAAI;AAAA,YAC3DrC;AAAA,YACA6a;AAAA,UACd,GACY9C,EAAoBF,EAAS,EAAE,oBAAoB,SAEjDoC,QACDhF,KAAM+C,EAAgB,MAAM,gBAAgB,QAAgB/C,GAAI;AAAA,YAC/DjV;AAAA,YACA+T;AAAA,UACd,GACYgE,EAAoBF,EAAS,EAAE,oBAAoB9D;AAAA,QAEvD,CAAC,GACD8G,KAAc9C,EAAoBF,EAAS,EAAE,cAC7C6C,GAAa,QAAQ,CAAC1a,OAAc;AAClC,cAAIqC,IAAK4S;AACT,UAAI4F,MAAenB,QAChBrX,KAAMwN,EAAY,MAAM,WAAW,QAAgBxN,GAAI;AAAA,YACtDrC;AAAA,YACA6a;AAAA,UACd,GACY9C,EAAoBF,EAAS,EAAE,eAAe,SAE5CqC,QACDjF,KAAM+C,EAAgB,MAAM,WAAW,QAAgB/C,GAAI,iBAAiBjV,IAAW+T,EAAO,GAC/FgE,EAAoBF,EAAS,EAAE,eAAe9D;AAAA,QAElD,CAAC,GACD8G,KAAc9C,EAAoBF,EAAS,EAAE,YAC7C8C,GAAW,QAAQ,CAAC3a,OAAc;AAChC,UAAI6a,MAAelB,OACjB9J,EAAY,gBAAgB;AAAA,YAC1B7P;AAAA,YACA6a;AAAA,UACd,GACY9C,EAAoBF,EAAS,EAAE,aAAa,SAE1CsC,OACFnC,EAAgB,gBAAgB;AAAA,YAC9BhY;AAAA,YACA+T;AAAA,UACd,GACYgE,EAAoBF,EAAS,EAAE,aAAa9D;AAAA,QAEhD,CAAC;AACD,cAAM+G,KAAuB/C,EAAoBF,EAAS,EAAE;AAS5D,YARIiD,MAAwBlB,OACR,MAAM,QAAQkB,EAAoB,IAAIA,KAAuB,CAACA,EAAoB,GAC1F,QAAQ,CAACC,OAAa;AAC9B,UAAI,OAAOA,MAAa,cACtBA,GAAQ;AAAA,QAEZ,CAAC,GAECX,IAAgB;AAClB,gBAAMY,KAAeJ,GAA0B,IAAI,CAACziB,OAAOA,GAAG4b,IAASiE,CAAe,CAAC,EAAE,OAAO,CAAC+C,OAAa,OAAOA,MAAa,UAAU;AAC5I,UAAAhD,EAAoBF,EAAS,EAAE,4BAA4BmD,GAAa,WAAW,IAAIA,GAAa,CAAC,IAAIA;AAAA,QAC3G,MAAO,CAAIpB,OACT7B,EAAoBF,EAAS,EAAE,4BAA4B;AAAA,MAE/D;AAAA,IACN,GACI,OAAO,QAAQG,CAAe,EAAE,QAAQ,CAAC,CAACqC,IAAgB/G,EAAU,MAAM;AACxE,MAAAzD,EAAYwK,EAAc,IAAI/G;AAAA,IAChC,CAAC,GACDoE,EAAqB,GACrBM,IAAkB;AAAA,EACpB;AACA,SAAAC,EAAkB,EAAE,OAAA7c,GAAO,mBAAA0U,GAAmB,iBAAAM,GAAiB,SAAA7W,EAAO,CAAE,GACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAML,SAAS0hB,GAAQ;AACf,YAAM,EAAE,MAAA/d,GAAM,QAAA+Y,EAAM,IAAKgF;AACzB,UAAIjF,EAAW9Y,CAAI,KAAKoa,EAAM,kBAAkB,MAAM;AACpD,QAAAC,EAAYvB,EAAW9Y,CAAI,EAAEyW,GAAe9D,GAAaoL,CAAM,CAAC;AAChE;AAAA,MACF;AACA,MAAI/d,MAAS,8BACX+a,EAAkB,EAAE,OAAOhC,GAAQ,IAC1B/Y,MAAS,mCAClB+a,EAAkB,EAAE,mBAAmBhC,GAAQ,IACtC/Y,MAAS,iCAClB+a,EAAkB,EAAE,iBAAiBhC,GAAQ,IACpC/Y,MAAS,2BAClB,OAAO,QAAQ+Y,KAA0B,EAAE,EAAE,QAAQ,CAAC,CAACiF,GAAYC,CAAW,MAAM;AAClF,QAAAtL,EAAY,QAAQqL,CAAU,IAAIC;AAAA,MACpC,CAAC,GACDzD,EAAqB;AAAA,IAEzB;AAAA,IACA,WAAW;AACT,aAAOJ;AAAA,IACT;AAAA,IACA,UAAU/e,GAAU;AAClB,aAAA0f,EAAkB,CAAA,GAAItT,EAAU,SAAS,CAAC,GAC1CA,EAAU,KAAKpM,CAAQ,GACvBA,EAAS+e,CAAK,GACP,MAAM;AACX,cAAM8D,IAAMzW,EAAU,QAAQpM,CAAQ;AACtC,QAAI6iB,KAAO,MACTnD,EAAkB,CAAA,GAAItT,EAAU,SAAS,CAAC,GAC1CA,EAAU,OAAOyW,GAAK,CAAC;AAAA,MAE3B;AAAA,IACF;AAAA,EACJ;AACA;ACvRA,IAAIvS,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,IAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAELoR,IAAUC,IAAoBC,GAAaC,IAA0BC,IAAqBC,IAAwBC,IAAyBC,IAAiBC,IAAoBC,IAAsBC,IAAeC,IAAiBC,IAAmBC,IAA8BC;AA2B3R,MAAMC,KAAoB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACMC,KAAsB,IACtBC,KAAsB,OACtBC,KAA6B,MAC7BC,KAAoB,MACpBC,KAAoB,GACpBnR,IAAa;AAAA,EACjB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,+BAA+B;AAAA,EAC/B,8BAA8B;AAAA,EAC9B,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AAAA,EACN,kBAAkB;AAAA,EAClB,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,wBAAwB;AAAA,EACxB,gBAAgB;AAAA,EAChB,qBAAqB;AACvB;AACA,MAAMoR,WAAwBrQ,GAAe;AAAA,EAC3C,cAAc;AACZ,UAAK,GACLhR,GAAa,MAAMwgB,EAAkB,GACrCxgB,GAAa,MAAM2gB,EAAe,GAClC3gB,GAAa,MAAM6gB,EAA4B,GAC/C,KAAK,sBAAsB,CAAA,GAC3B,KAAK,iCAAiD,oBAAI,IAAG,GAC7D7gB,GAAa,MAAMggB,IAAU,IAAI5N,GAAmB,MAAMnC,EAAW,OAAO,CAAC,GAC7EjQ,GAAa,MAAMigB,IAAoB,MAAM,GAC7CjgB,GAAa,MAAMkgB,GAAa,MAAM,GACtClgB,GAAa,MAAMmgB,IAA0B,IAAI,GACjDngB,GAAa,MAAMogB,IAAqB,MAAM,GAC9CpgB,GAAa,MAAMqgB,IAAwB,MAAM,GACjDrgB,GAAa,MAAMsgB,IAAyB,CAACnf,MAAU;AACrD,UAAItN;AACJ,OAACA,IAAKoN,EAAa,MAAMif,CAAW,MAAM,QAAgBrsB,EAAG,SAASsN,CAAK;AAAA,IAC7E,CAAC,GACDnB,GAAa,MAAMugB,IAAiB,MAAM,GAC1CvgB,GAAa,MAAM0gB,IAAe,CAACh3B,MAAM;AACvC,YAAM,EAAE,KAAA4a,GAAK,UAAAgd,EAAQ,IAAK53B;AAG1B,UAAI,EAFiB43B,MAAahd,MAAQ,OAAOA,MAAQ,QACpByc,GAAkB,SAASzc,CAAG,IAChD;AACjB,aAAK,oBAAoB,SAASrD,EAAa,MAAMyf,EAAa,CAAC;AACnE;AAAA,MACF;AACA,WAAK,wBAAwBh3B,CAAC;AAAA,IAChC,CAAC,GACD,KAAK,iBAAiB,IAAI;AAC1B,QAAI63B,IAAY,CAAA;AAChB1gB,IAAAA,GAAa,MAAMuf,IAAqB,CAAC9D,MAAc;AACrD,aAAO,QAAQA,CAAS,EAAE,QAAQ,CAAC,CAACE,GAAWgF,CAAU,MAAM;AAC7D,YAAIhF,KAAa+E,KAAaA,EAAU/E,CAAS,MAAMgF;AACrD;AACF,aAAK,oBAAoBhF,GAAWgF,CAAU;AAC9C,cAAMre,IAAWqZ,EAAU,YAAW,GAChC3L,IAAM,IAAIrH,EAAW;AAAA,UACzB5E,GAA+BzB,CAAQ;AAAA,UACvC,EAAE,UAAU,IAAM,QAAQqe,EAAU;AAAA,QAC9C;AACQ,aAAK,cAAc3Q,CAAG;AAAA,MACxB,CAAC,GACD0Q,IAAYjF;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO,MAAM,mBAAmB;AAAA,MAC9BrM,EAAW;AAAA,MACXA,EAAW;AAAA,MACXA,EAAW;AAAA,MACXA,EAAW;AAAA,MACXA,EAAW;AAAA,MACXA,EAAW;AAAA,MACXA,EAAW;AAAA,MACXA,EAAW;AAAA,MACXA,EAAW;AAAA,MACXA,EAAW;AAAA,MACXA,EAAW;AAAA,MACXA,EAAW;AAAA,IACjB;AAAA,EACE;AAAA,EACA,IAAI,aAAa;AACf,WAAOhP,EAAa,MAAMif,CAAW;AAAA,EACvC;AAAA,EACA,IAAI,WAAWljB,GAAO;AACpB,QAAInJ,GAAIsJ;AAMR,QALI8D,EAAa,MAAMif,CAAW,OAC/BrsB,IAAKoN,EAAa,MAAMof,EAAsB,MAAM,QAAgBxsB,EAAG,KAAK,IAAI,GACjFgN,GAAa,MAAMwf,IAAwB,MAAM,IAEnDxf,GAAa,MAAMqf,GAAaljB,CAAK,GACjC,CAACiE,EAAa,MAAMif,CAAW,KAAK,CAAC,KAAK,aAAajQ,EAAW,gBAAgB,GAAG;AACvFtP,MAAAA,GAAgB,MAAM6f,IAAoBC,EAAoB,EAAE,KAAK,IAAI;AACzE;AAAA,IACF;AACA5f,IAAAA,GAAa,MAAMwf,KAAyBljB,IAAK8D,EAAa,MAAMif,CAAW,MAAM,OAAO,SAAS/iB,EAAG;AAAA,MACtG8D,EAAa,MAAMmf,EAAmB;AAAA,IAC5C,CAAK;AAAA,EACH;AAAA,EACA,IAAI,oBAAoB;AACtB,QAAIvsB;AACJ,YAAQA,IAAKoN,EAAa,MAAMgf,EAAkB,MAAM,OAAOpsB,IAAK;AAAA,EACtE;AAAA,EACA,IAAI,kBAAkBwV,GAAS;AAC7B,QAAIxV;AACJ,IAAI,KAAK,aAAaoc,EAAW,kBAAkB,KACjD,KAAK,gBAAgBA,EAAW,kBAAkB,GAEpDpP,GAAa,MAAMof,IAAoB5W,CAAO,IAC7CxV,IAAKoN,EAAa,MAAMif,CAAW,MAAM,QAAgBrsB,EAAG,SAAS;AAAA,MACpE,MAAM;AAAA,MACN,QAAQ,KAAK;AAAA,IACnB,CAAK;AAAA,EACH;AAAA,EACA,IAAI,mBAAmB;AACrB,WAAOsZ,EAAe,MAAM8C,EAAW,iBAAiB;AAAA,EAC1D;AAAA,EACA,IAAI,iBAAiBjT,GAAO;AAC1B,IAAAoQ,EAAe,MAAM6C,EAAW,mBAAmBjT,CAAK;AAAA,EAC1D;AAAA,EACA,IAAI,oBAAoB;AACtB,WAAOqQ,GAAc,MAAM4C,EAAW,mBAAmB;AAAA,EAC3D;AAAA,EACA,IAAI,kBAAkBjT,GAAO;AAC3B,IAAAsQ,GAAc,MAAM2C,EAAW,qBAAqBjT,CAAK;AAAA,EAC3D;AAAA,EACA,IAAI,kBAAkB;AACpB,WAAO8P,GAAe,MAAMmD,EAAW,gBAAgB;AAAA,EACzD;AAAA,EACA,IAAI,gBAAgBjT,GAAO;AACzB,IAAAiQ,GAAe,MAAMgD,EAAW,kBAAkBjT,CAAK;AAAA,EACzD;AAAA,EACA,IAAI,YAAY;AACd,WAAOmQ,EAAe,MAAM8C,EAAW,UAAU;AAAA,EACnD;AAAA,EACA,IAAI,UAAUjT,GAAO;AACnB,IAAAoQ,EAAe,MAAM6C,EAAW,YAAYjT,CAAK;AAAA,EACnD;AAAA,EACA,IAAI,WAAW;AACb,WAAOqQ,GAAc,MAAM4C,EAAW,SAAS;AAAA,EACjD;AAAA,EACA,IAAI,SAASjT,GAAO;AAClB,IAAAsQ,GAAc,MAAM2C,EAAW,WAAWjT,CAAK;AAAA,EACjD;AAAA,EACA,IAAI,iBAAiB;AACnB,WAAO8P,GAAe,MAAMmD,EAAW,gBAAgB;AAAA,EACzD;AAAA,EACA,IAAI,eAAejT,GAAO;AACxB,IAAAiQ,GAAe,MAAMgD,EAAW,kBAAkBjT,CAAK;AAAA,EACzD;AAAA,EACA,IAAI,mBAAmB;AACrB,WAAOmQ,EAAe,MAAM8C,EAAW,oBAAoB;AAAA,EAC7D;AAAA,EACA,IAAI,iBAAiBjT,GAAO;AAC1B,IAAAoQ,EAAe,MAAM6C,EAAW,sBAAsBjT,CAAK;AAAA,EAC7D;AAAA,EACA,IAAI,eAAe;AACjB,WAAOmQ,EAAe,MAAM8C,EAAW,cAAc;AAAA,EACvD;AAAA,EACA,IAAI,aAAajT,GAAO;AACtB,IAAAoQ,EAAe,MAAM6C,EAAW,gBAAgBjT,CAAK;AAAA,EACvD;AAAA,EACA,IAAI,cAAc;AAChB,WAAOmQ,EAAe,MAAM8C,EAAW,aAAa;AAAA,EACtD;AAAA,EACA,IAAI,YAAYjT,GAAO;AACrB,IAAAoQ,EAAe,MAAM6C,EAAW,eAAejT,CAAK;AAAA,EACtD;AAAA,EACA,IAAI,sBAAsB;AACxB,WAAOmQ,EAAe,MAAM8C,EAAW,sBAAsB;AAAA,EAC/D;AAAA,EACA,IAAI,oBAAoBjT,GAAO;AAC7B,IAAAoQ,EAAe,MAAM6C,EAAW,wBAAwBjT,CAAK;AAAA,EAC/D;AAAA,EACA,IAAI,iBAAiB;AACnB,WAAOmQ,EAAe,MAAM8C,EAAW,gBAAgB;AAAA,EACzD;AAAA,EACA,IAAI,eAAejT,GAAO;AACxB,IAAAoQ,EAAe,MAAM6C,EAAW,kBAAkBjT,CAAK;AAAA,EACzD;AAAA,EACA,yBAAyBmG,GAAUC,GAAUC,GAAU;AACrD,QAAIxP,GAAIsJ,GAAIC,GAAIwC,GAAIhO,GAAImrB,GAAIC,GAAIC,GAAIvkB,GAAIwkB,GAAIC,GAAIC;AAEhD,QADA,MAAM,yBAAyBja,GAAUC,GAAUC,CAAQ,GACvDF,MAAa8M,EAAW;AAC1B,MAAI5M,MAAaD,KAAYC,MAAa,MACpC,KAAK,aAAa4M,EAAW,OAAO,KACtC,QAAQ;AAAA,QACN;AAAA,MACZ,GAEQ,KAAK,eAAc,KACV5M,MAAaD,KAAYC,MAAa,QAC/C,KAAK,cAAa;AAAA,aAEXF,MAAa8M,EAAW;AACjChP,MAAAA,EAAa,MAAM+e,EAAQ,EAAE,QAAQ3c;AAAA,aAC5BF,MAAa8M,EAAW,qBAAqB5M,MAAaD;AACnE,OAACvP,IAAKoN,EAAa,MAAMif,CAAW,MAAM,QAAgBrsB,EAAG,SAAS;AAAA,QACpE,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,kBAAkB,KAAK,aAAaoc,EAAW,iBAAiB;AAAA,QAC1E;AAAA,MACA,CAAO;AAAA,aACQ9M,MAAa8M,EAAW;AACjC,OAAC7S,IAAK6D,EAAa,MAAMif,CAAW,MAAM,QAAgB9iB,EAAG,SAAS;AAAA,QACpE,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,oBAAoBD,IAAK,KAAK,aAAa8S,EAAW,mBAAmB,MAAM,OAAO9S,IAAK;AAAA,QACrG;AAAA,MACA,CAAO;AAAA,aACQgG,MAAa8M,EAAW,oBAAoB5M,MAAaD;AAClE,OAACxD,IAAKqB,EAAa,MAAMif,CAAW,MAAM,QAAgBtgB,EAAG,SAAS;AAAA,QACpE,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,gBAAgB,KAAK,aAAaqQ,EAAW,gBAAgB,IAAI,CAAC,KAAK,aAAaA,EAAW,gBAAgB,IAAI;AAAA,UACnH,kBAAkB,KAAK,aAAaA,EAAW,mBAAmB,IAAI,CAAC,KAAK,aAAaA,EAAW,mBAAmB,IAAI,KAAK,aAAaA,EAAW,gBAAgB,IAAI,CAAC,KAAK,aAAaA,EAAW,gBAAgB,IAAI;AAAA,QACxO;AAAA,MACA,CAAO;AAAA,aACQ9M,MAAa8M,EAAW,uBAAuB5M,MAAaD;AACrE,OAACxR,IAAKqP,EAAa,MAAMif,CAAW,MAAM,QAAgBtuB,EAAG,SAAS;AAAA,QACpE,MAAM;AAAA,QACN,QAAQ;AAAA;AAAA;AAAA,UAGN,kBAAkB,KAAK,aAAaqe,EAAW,mBAAmB,IAAI,CAAC,KAAK,aAAaA,EAAW,mBAAmB,IAAI,KAAK,aAAaA,EAAW,gBAAgB,IAAI,CAAC,KAAK,aAAaA,EAAW,gBAAgB,IAAI;AAAA,QACxO;AAAA,MACA,CAAO;AAAA,aACQ9M,MAAa8M,EAAW;AACjC,OAAC8M,IAAK9b,EAAa,MAAMif,CAAW,MAAM,QAAgBnD,EAAG,SAAS;AAAA,QACpE,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,kBAAkB,KAAK,aAAa9M,EAAW,oBAAoB;AAAA,QAC7E;AAAA,MACA,CAAO;AAAA,aACQ9M,MAAa8M,EAAW,oBAAoB;AACrD,YAAMpT,IAAKwG,KAAY2Z,IAAK,KAAK,YAAW,MAAO,OAAO,SAASA,EAAG,eAAe3Z,CAAQ,IAAI;AACjGxC,MAAAA,GAAa,MAAMof,IAAoBpjB,CAAE,IACxCogB,IAAKhc,EAAa,MAAMif,CAAW,MAAM,QAAgBjD,EAAG,SAAS;AAAA,QACpE,MAAM;AAAA,QACN,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACH,MAAO,CAAI9Z,MAAa8M,EAAW,QAAQ5M,MAAaD,KACtDyD,GAAYxD,CAAQ,IACnB3K,IAAKuI,EAAa,MAAMif,CAAW,MAAM,QAAgBxnB,EAAG,SAAS;AAAA,MACpE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,WAAW2K;AAAA,MACrB;AAAA,IACA,CAAO,KACQF,MAAa8M,EAAW,QAAQ5M,MAAaD,KACrD8Z,IAAKjc,EAAa,MAAMif,CAAW,MAAM,QAAgBhD,EAAG,SAAS;AAAA,MACpE,MAAMlZ,EAAc;AAAA,MACpB,QAAQX,KAAY;AAAA,IAC5B,CAAO,IACQF,MAAa8M,EAAW,kBAAkB5M,MAAaD,KAC/D+Z,IAAKlc,EAAa,MAAMif,CAAW,MAAM,QAAgB/C,EAAG,SAAS;AAAA,MACpE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,cAAc,KAAK,aAAalN,EAAW,cAAc;AAAA,MACnE;AAAA,IACA,CAAO,IACQ9M,MAAa8M,EAAW,iBAAiB5M,MAAaD,OAC9Dga,IAAKnc,EAAa,MAAMif,CAAW,MAAM,QAAgB9C,EAAG,SAAS;AAAA,MACpE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,aAAa,KAAK,aAAanN,EAAW,aAAa;AAAA,MACjE;AAAA,IACA,CAAO;AAAA,EAEL;AAAA,EACA,oBAAoB;AAClB,QAAIpc,GAAIsJ,GAAIC;AACZ,SAAK,iBAAiB,IAAI,GACtB,CAAC6D,EAAa,MAAMif,CAAW,KAAK,CAAC,KAAK,aAAajQ,EAAW,gBAAgB,KACpFtP,GAAgB,MAAM6f,IAAoBC,EAAoB,EAAE,KAAK,IAAI,IAE1E5sB,IAAKoN,EAAa,MAAMif,CAAW,MAAM,QAAgBrsB,EAAG,SAAS;AAAA,MACpE,MAAM;AAAA,MACN,QAAQghB;AAAAA,IACd,CAAK,IACA1X,IAAK8D,EAAa,MAAMif,CAAW,MAAM,QAAgB/iB,EAAG,SAAS;AAAA,MACpE,MAAM;AAAA,MACN,QAAQ,KAAK;AAAA,IACnB,CAAK,GACD,MAAM,kBAAiB,GACnB8D,EAAa,MAAMif,CAAW,KAAK,CAACjf,EAAa,MAAMof,EAAsB,KAC/Exf,GAAa,MAAMwf,KAAyBjjB,IAAK6D,EAAa,MAAMif,CAAW,MAAM,OAAO,SAAS9iB,EAAG;AAAA,MACtG6D,EAAa,MAAMmf,EAAmB;AAAA,IAC9C,CAAO,GAECnf,EAAa,MAAMsf,EAAe,MAAM,UAAUtf,EAAa,MAAMif,CAAW,KAAK,KAAK,SAC5F,WAAW,MAAM;AACf,UAAIlZ,GAAK4S,GAAK6H;AACd,OAAK7H,KAAO5S,IAAM,KAAK,UAAU,OAAO,SAASA,EAAI,eAAe,QAAgB4S,EAAI,YACrF6H,IAAMxgB,EAAa,MAAMif,CAAW,MAAM,QAAgBuB,EAAI,SAAS;AAAA,QACtE,MAAMzd,EAAc;AAAA,QACpB,QAAQ/C,EAAa,MAAMsf,EAAe;AAAA,MACtD,CAAW;AAAA,IAEL,GAAG,CAAC,GAEN,KAAK,aAAatQ,EAAW,UAAU,IAAI,KAAK,eAAc,IAAK,KAAK,cAAa;AAAA,EACvF;AAAA,EACA,uBAAuB;AACrB,QAAIpc,GAAIsJ,GAAIC,GAAIwC,GAAIhO,GAAImrB;AAGxB,SAFClpB,IAAK,MAAM,yBAAyB,QAAgBA,EAAG,KAAK,IAAI,GACjE,KAAK,eAAc,GACfoN,EAAa,MAAMif,CAAW,GAAG;AACnC,YAAMwB,IAAezgB,EAAa,MAAMif,CAAW,EAAE,SAAQ;AAC7Drf,MAAAA,GAAa,MAAM0f,IAAiB,CAAC,GAAGpjB,IAAKukB,EAAa,0BAA0B,QAAgBvkB,EAAG,OAAO,IAC7GC,IAAK6D,EAAa,MAAMif,CAAW,MAAM,QAAgB9iB,EAAG,SAAS;AAAA,QACpE,MAAM;AAAA,QACN,QAAQ;AAAA,MAChB,CAAO,IACAwC,IAAKqB,EAAa,MAAMif,CAAW,MAAM,QAAgBtgB,EAAG,SAAS;AAAA,QACpE,MAAM;AAAA,QACN,QAAQ;AAAA,MAChB,CAAO,IACAhO,IAAKqP,EAAa,MAAMif,CAAW,MAAM,QAAgBtuB,EAAG,SAAS;AAAA,QACpE,MAAMoS,EAAc;AAAA,QACpB,QAAQ;AAAA,MAChB,CAAO;AAAA,IACH;AACA,IAAI/C,EAAa,MAAMof,EAAsB,OAC1CtD,IAAK9b,EAAa,MAAMof,EAAsB,MAAM,QAAgBtD,EAAG,KAAK,IAAI,GACjFlc,GAAa,MAAMwf,IAAwB,MAAM,IAEnD,KAAK,mBAAmB,IAAI,GACxBpf,EAAa,MAAMkf,EAAwB,MAC7Clf,EAAa,MAAMkf,EAAwB,EAAE,OAAM,GACnDtf,GAAa,MAAMsf,IAA0B,IAAI;AAAA,EAErD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiBpgB,GAAO;AACtB,QAAIlM;AACJ,UAAM,iBAAiBkM,CAAK,IAC3BlM,IAAKoN,EAAa,MAAMif,CAAW,MAAM,QAAgBrsB,EAAG,SAAS;AAAA,MACpE,MAAM;AAAA,MACN,QAAQkM;AAAA,IACd,CAAK,GACIA,EAAM,aAAa,UAAU,MAChCA,EAAM,WAAW;AAAA,EAErB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAmBA,GAAO;AACxB,QAAIlM;AACJ,UAAM,mBAAmBkM,CAAK,IAC7BlM,IAAKoN,EAAa,MAAMif,CAAW,MAAM,QAAgBrsB,EAAG,SAAS;AAAA,MACpE,MAAM;AAAA,MACN,QAAQ;AAAA,IACd,CAAK;AAAA,EACH;AAAA,EACA,oBAAoB2oB,GAAWP,GAAO;AACpC,IAAA0F,GAAoB,KAAK,qBAAqBnF,GAAWP,CAAK;AAAA,EAChE;AAAA,EACA,iBAAiB5S,GAAS;AACxB,QAAI,CAACA;AACH;AACF,UAAM,EAAE,gCAAAuY,EAA8B,IAAK;AAC3C,QAAIA,EAA+B,IAAIvY,CAAO;AAC5C;AACF,UAAMwY,IAA6B,KAAK,2BAA2B,KAAK,IAAI,GACtEC,IAA+B,KAAK,6BAA6B,KAAK,IAAI,GAC1EC,IAAcC;AAAA,MAClB3Y;AAAA,MACAwY;AAAA,MACAC;AAAA,IACN;AACI,WAAO,OAAO9d,CAAa,EAAE,QAAQ,CAACyK,MAAc;AAClD,MAAApF,EAAQ,iBAAiBoF,GAAWxN,EAAa,MAAMqf,EAAuB,CAAC;AAAA,IACjF,CAAC,GACDsB,EAA+B,IAAIvY,GAAS0Y,CAAW;AAAA,EACzD;AAAA,EACA,mBAAmB1Y,GAAS;AAC1B,QAAI,CAACA;AACH;AACF,UAAM,EAAE,gCAAAuY,EAA8B,IAAK;AAC3C,QAAI,CAACA,EAA+B,IAAIvY,CAAO;AAC7C;AAEF,IADoBuY,EAA+B,IAAIvY,CAAO,EACnD,GACXuY,EAA+B,OAAOvY,CAAO,GAC7C,OAAO,OAAOrF,CAAa,EAAE,QAAQ,CAACyK,MAAc;AAClD,MAAApF,EAAQ,oBAAoBoF,GAAWxN,EAAa,MAAMqf,EAAuB,CAAC;AAAA,IACpF,CAAC;AAAA,EACH;AAAA,EACA,2BAA2BzjB,GAAI;AAC7B,QAAI,CAACA;AACH;AACF,UAAMolB,IAAM,KAAK;AAEjB,IADcA,EAAI,QAAQplB,CAAE,IAChB,OAEZolB,EAAI,KAAKplB,CAAE,GACPoE,EAAa,MAAMif,CAAW,KAChC,OAAO,QAAQjf,EAAa,MAAMif,CAAW,EAAE,SAAQ,CAAE,EAAE;AAAA,MACzD,CAAC,CAAC1D,GAAWgF,CAAU,MAAM;AAC3B,QAAAG,GAAoB,CAAC9kB,CAAE,GAAG2f,GAAWgF,CAAU;AAAA,MACjD;AAAA,IACR;AAAA,EAEE;AAAA,EACA,6BAA6B3kB,GAAI;AAC/B,UAAMolB,IAAM,KAAK,qBACXna,IAAQma,EAAI,QAAQplB,CAAE;AAC5B,IAAIiL,IAAQ,KAEZma,EAAI,OAAOna,GAAO,CAAC;AAAA,EACrB;AAAA,EACA,gBAAgB;AACd,SAAK,iBAAiB,WAAWnH,GAAgB,MAAMggB,IAAiBC,EAAiB,CAAC;AAAA,EAC5F;AAAA,EACA,iBAAiB;AACf,SAAK,oBAAoB,WAAWjgB,GAAgB,MAAMggB,IAAiBC,EAAiB,CAAC,GAC7F,KAAK,oBAAoB,SAAS3f,EAAa,MAAMyf,EAAa,CAAC;AAAA,EACrE;AAAA;AAAA,EAEA,IAAI,UAAU;AACZ,WAAOzf,EAAa,MAAM+e,EAAQ;AAAA,EACpC;AAAA,EACA,IAAI,QAAQhjB,GAAO;AACjB,IAAAsQ,GAAc,MAAM2C,EAAW,SAASjT,CAAK;AAAA,EAC/C;AAAA,EACA,wBAAwB,GAAG;AACzB,QAAInJ,GAAIsJ,GAAIC,GAAIwC,GAAIhO,GAAImrB,GAAIC,GAAIC,GAAIvkB;AACpC,UAAMwpB,IAAS,EAAE;AAEjB,UADmB9kB,KAAMD,KAAMtJ,IAAKquB,EAAO,aAAajS,EAAW,SAAS,MAAM,OAAO,SAASpc,EAAG,MAAM,GAAG,MAAM,OAAOsJ,IAAK+kB,KAAU,OAAO,SAASA,EAAO,aAAa,OAAO9kB,IAAK,CAAA,GAAI,IAAI,CAACkH,MAAQA,MAAQ,UAAU,MAAMA,CAAG,EAAE,OAAO,OAAO,EACzO,SAAS,EAAE,GAAG;AACzB;AAEF,QAAImK,GAAWmM,GAAQ/J;AAMvB,QALI5P,EAAAA,EAAa,MAAM+e,EAAQ,EAAE,SAAS,KAAK,EAAE,IAAI,YAAW,CAAE,EAAE,KAEhE,EAAE,QAAQ,OAAO/e,EAAa,MAAM+e,EAAQ,EAAE,SAAS,SAAS,KAE/C,EAAE,aAAa,EAAE,QAAQ,OAAO,EAAE,QAAQ,QAC3C/e,EAAa,MAAM+e,EAAQ,EAAE,SAAS,WAAW;AAErE,cAAQ,EAAE,KAAG;AAAA,QACX,KAAK;AAAA,QACL,KAAK;AACH,UAAAvR,IAAYxN,EAAa,MAAMif,CAAW,EAAE,WAAW,cAAclc,EAAc,qBAAqBA,EAAc,qBACtH,KAAK;AAAA,YACH,IAAIwF,EAAW,YAAYiF,GAAW;AAAA,cACpC,UAAU;AAAA,cACV,SAAS;AAAA,YACrB,CAAW;AAAA,UACX;AACQ;AAAA,QACF,KAAK;AACH,UAAAA,IAAY,KAAK,WAAW,SAAQ,EAAG,qBAAqB,QAAQzK,EAAc,uBAAuBA,EAAc,oBACvH,KAAK;AAAA,YACH,IAAIwF,EAAW,YAAYiF,GAAW;AAAA,cACpC,UAAU;AAAA,cACV,SAAS;AAAA,YACrB,CAAW;AAAA,UACX;AACQ;AAAA,QACF,KAAK;AACH,UAAAA,IAAY,KAAK,WAAW,SAAQ,EAAG,oBAAoBzK,EAAc,gCAAgCA,EAAc,gCACvH,KAAK;AAAA,YACH,IAAIwF,EAAW,YAAYiF,GAAW;AAAA,cACpC,UAAU;AAAA,cACV,SAAS;AAAA,YACrB,CAAW;AAAA,UACX;AACQ;AAAA,QACF,KAAK;AACH,eAAK;AAAA,YACH,IAAIjF,EAAW;AAAA,cACbxF,EAAc;AAAA,cACd,EAAE,UAAU,IAAM,SAAS,GAAI;AAAA,YAC3C;AAAA,UACA;AACQ;AAAA,QACF,KAAK;AAAA,QACL,KAAK,KAAK;AACR,gBAAMme,IAAc,KAAK;AAAA,YACvBlS,EAAW;AAAA,UACrB,IAAY,CAAC,KAAK,aAAaA,EAAW,6BAA6B,IAAI+Q;AACnE,UAAApG,IAAS,KAAK;AAAA,cACVhb,IAAK,KAAK,WAAW,WAAW,qBAAqB,OAAOA,IAAK,KAAKuiB;AAAA,YACxE;AAAA,UACV,GACQtR,IAAM,IAAIrH,EAAW,YAAYxF,EAAc,oBAAoB;AAAA,YACjE,UAAU;AAAA,YACV,SAAS;AAAA,YACT,QAAA4W;AAAA,UACV,CAAS,GACD,KAAK,cAAc/J,CAAG;AACtB;AAAA,QACF;AAAA,QACA,KAAK;AAAA,QACL,KAAK,KAAK;AACR,gBAAMsR,IAAc,KAAK;AAAA,YACvBlS,EAAW;AAAA,UACrB,IAAY,CAAC,KAAK,aAAaA,EAAW,4BAA4B,IAAI+Q;AAClE,UAAApG,IAAS,KAAK;AAAA,cACVhpB,IAAK,KAAK,WAAW,WAAW,qBAAqB,OAAOA,IAAK,KAAKuwB;AAAA,YACxE;AAAA,UACV,GACQtR,IAAM,IAAIrH,EAAW,YAAYxF,EAAc,oBAAoB;AAAA,YACjE,UAAU;AAAA,YACV,SAAS;AAAA,YACT,QAAA4W;AAAA,UACV,CAAS,GACD,KAAK,cAAc/J,CAAG;AACtB;AAAA,QACF;AAAA,QACA,KAAK,WAAW;AACd,gBAAMuR,IAAO,KAAK,aAAanS,EAAW,uBAAuB,IAAI,CAAC,KAAK,aAAaA,EAAW,uBAAuB,IAAIgR;AAC9H,UAAArG,IAAS,KAAK;AAAA,cACVmC,IAAK,KAAK,WAAW,WAAW,gBAAgB,OAAOA,IAAK,KAAKqF;AAAA,YACnE;AAAA,UACV,GACQvR,IAAM,IAAIrH,EAAW,YAAYxF,EAAc,sBAAsB;AAAA,YACnE,UAAU;AAAA,YACV,SAAS;AAAA,YACT,QAAA4W;AAAA,UACV,CAAS,GACD,KAAK,cAAc/J,CAAG;AACtB;AAAA,QACF;AAAA,QACA,KAAK,aAAa;AAChB,gBAAMuR,IAAO,KAAK,aAAanS,EAAW,yBAAyB,IAAI,CAAC,KAAK,aAAaA,EAAW,yBAAyB,IAAIgR;AAClI,UAAArG,IAAS,KAAK;AAAA,cACVoC,IAAK,KAAK,WAAW,WAAW,gBAAgB,OAAOA,IAAK,KAAKoF;AAAA,YACnE;AAAA,UACV,GACQvR,IAAM,IAAIrH,EAAW,YAAYxF,EAAc,sBAAsB;AAAA,YACnE,UAAU;AAAA,YACV,SAAS;AAAA,YACT,QAAA4W;AAAA,UACV,CAAS,GACD,KAAK,cAAc/J,CAAG;AACtB;AAAA,QACF;AAAA,QACA,KAAK,KAAK;AACR,gBAAMwR,KAAgBpF,IAAK,KAAK,WAAW,SAAQ,EAAG,sBAAsB,OAAOA,IAAK;AACxF,UAAArC,IAAS,KAAK;AAAA,YACZyH,IAAenB;AAAA,YACfC;AAAA,UACV,EAAU,QAAQ,CAAC,GACXtQ,IAAM,IAAIrH,EAAW,YAAYxF,EAAc,6BAA6B;AAAA,YAC1E,UAAU;AAAA,YACV,SAAS;AAAA,YACT,QAAA4W;AAAA,UACV,CAAS,GACD,KAAK,cAAc/J,CAAG;AACtB;AAAA,QACF;AAAA,QACA,KAAK,KAAK;AACR,gBAAMwR,KAAgB3pB,IAAK,KAAK,WAAW,SAAQ,EAAG,sBAAsB,OAAOA,IAAK;AACxF,UAAAkiB,IAAS,KAAK;AAAA,YACZyH,IAAenB;AAAA,YACfE;AAAA,UACV,EAAU,QAAQ,CAAC,GACXvQ,IAAM,IAAIrH,EAAW,YAAYxF,EAAc,6BAA6B;AAAA,YAC1E,UAAU;AAAA,YACV,SAAS;AAAA,YACT,QAAA4W;AAAA,UACV,CAAS,GACD,KAAK,cAAc/J,CAAG;AACtB;AAAA,QACF;AAAA,QACA,KAAK;AAAA,QACL,KAAK,KAAK;AACR,UAAI,EAAE,YACJlQ,GAAgB,MAAMkgB,IAA8BC,EAA8B,EAAE,KAAK,IAAI;AAE/F;AAAA,QACF;AAAA,QACA,KAAK,KAAK;AACR,UAAArS,IAAY,KAAK,WAAW,SAAQ,EAAG,aAAazK,EAAc,yBAAyBA,EAAc,yBACzG6M,IAAM,IAAIrH,EAAW,YAAYiF,GAAW;AAAA,YAC1C,UAAU;AAAA,YACV,SAAS;AAAA,UACnB,CAAS,GACD,KAAK,cAAcoC,CAAG;AACtB;AAAA,QACF;AAAA,MAGN;AAAA,EACE;AACF;AACAmP,KAAW,oBAAI,QAAO;AACtBC,KAAqB,oBAAI,QAAO;AAChCC,IAAc,oBAAI,QAAO;AACzBC,KAA2B,oBAAI,QAAO;AACtCC,KAAsB,oBAAI,QAAO;AACjCC,KAAyB,oBAAI,QAAO;AACpCC,KAA0B,oBAAI,QAAO;AACrCC,KAAkB,oBAAI,QAAO;AAC7BC,KAAqB,oBAAI,QAAO;AAChCC,KAAuB,WAAW;AAChC,MAAI5sB;AACJ,OAAK,aAAagoB,GAAiB;AAAA,IACjC,OAAO,KAAK;AAAA,IACZ,mBAAmB,KAAK;AAAA,IACxB,SAAS;AAAA,MACP,kBAAkB,KAAK,aAAa5L,EAAW,iBAAiB;AAAA,MAChE,iBAAiB,KAAK,aAAaA,EAAW,gBAAgB,IAAI,CAAC,KAAK,aAAaA,EAAW,gBAAgB,IAAI;AAAA,MACpH;AAAA;AAAA,SAEGpc,IAAK,KAAK;AAAA,UACToc,EAAW;AAAA,QACrB,MAAc,OAAOpc,IAAK;AAAA;AAAA,MAEpB,gBAAgB,KAAK,aAAaoc,EAAW,gBAAgB,IAAI,CAAC,KAAK,aAAaA,EAAW,gBAAgB,IAAI;AAAA,MACnH,kBAAkB,KAAK,aAAaA,EAAW,mBAAmB,IAAI,CAAC,KAAK,aAAaA,EAAW,mBAAmB,IAAI,KAAK,aAAaA,EAAW,gBAAgB,IAAI,CAAC,KAAK,aAAaA,EAAW,gBAAgB,IAAI;AAAA,MAC9N,kBAAkB,KAAK,aAAaA,EAAW,oBAAoB;AAAA;AAAA,MAEnE,cAAc,KAAK,aAAaA,EAAW,cAAc;AAAA,MACzD,aAAa,KAAK,aAAaA,EAAW,aAAa;AAAA,MACvD,qBAAqB,KAAK;AAAA,QACxBA,EAAW;AAAA,MACnB;AAAA,IACA;AAAA,EACA,CAAG;AACH;AACAyQ,KAAgB,oBAAI,QAAO;AAC3BC,KAAkB,oBAAI,QAAO;AAC7BC,KAAoB,SAASl3B,GAAG;AAC9B,MAAImK;AACJ,QAAM,EAAE,SAAAyuB,GAAS,QAAAC,GAAQ,KAAAje,GAAK,UAAAgd,EAAQ,IAAK53B,GACrC84B,IAAelB,MAAahd,MAAQ,OAAOA,MAAQ;AACzD,MAAIke,OAAkB3uB,IAAKoN,EAAa,MAAMkf,EAAwB,MAAM,QAAgBtsB,EAAG,OAAO;AACpG,SAAK,oBAAoB,SAASoN,EAAa,MAAMyf,EAAa,CAAC;AACnE;AAAA,EACF;AACA,MAAI4B,KAAWC,KAAU,CAACC,KAAgB,CAACzB,GAAkB,SAASzc,CAAG,GAAG;AAC1E,SAAK,oBAAoB,SAASrD,EAAa,MAAMyf,EAAa,CAAC;AACnE;AAAA,EACF;AACA,QAAMwB,IAASx4B,EAAE,QACX+4B,IAAeP,aAAkB,gBAAgBA,EAAO,QAAQ,kBAAkB,wBAAwBA,EAAO,QAAQ,YAAW,MAAO;AACjJ,EAAI,CAAC,KAAK,aAAa,cAAc,WAAW,WAAW,EAAE,SAAS5d,CAAG,KAAK,EAAErD,EAAa,MAAM+e,EAAQ,EAAE,SAAS,KAAK1b,EAAI,YAAW,CAAE,EAAE,KAAKA,MAAQ,OAAOrD,EAAa,MAAM+e,EAAQ,EAAE,SAAS,SAAS,MAAM,CAACyC,KACtN/4B,EAAE,eAAc,GAElB,KAAK,iBAAiB,SAASuX,EAAa,MAAMyf,EAAa,GAAG,EAAE,MAAM,IAAM;AAClF;AACAG,KAA+B,oBAAI,QAAO;AAC1CC,KAAiC,WAAW;AAC1C,EAAK7f,EAAa,MAAMkf,EAAwB,MAC9Ctf,GAAa,MAAMsf,IAA0BtL,GAAS;AAAA,IACpD;AAAA,EACN,CAAK,GACD,KAAK,YAAY5T,EAAa,MAAMkf,EAAwB,CAAC,IAE/Dlf,EAAa,MAAMkf,EAAwB,EAAE,OAAO;AACtD;AACA,MAAMjQ,KAA2B,OAAO,OAAO9L,CAAiB,GAC1Dse,KAAsB,OAAO,OAAOxe,EAAY,GAChDye,KAA2B,CAACC,MAAU;AAC1C,MAAI/uB,GAAIsJ,GAAIC,GAAIwC;AAChB,MAAI,EAAE,oBAAAijB,MAAuBD,EAAM;AACnC,EAAI,CAACC,OAAwBhvB,IAAK+uB,EAAM,aAAa,QAAgB/uB,EAAG,SAAS,GAAG,OAClF2V,EAAW,eAAe,QAAQoZ,CAAK,GACtC,EAAE,oBAAAC,MAAuBD,EAAM;AAElC,QAAME,KAA6BljB,KAAMxC,KAAMD,IAAKylB,KAAS,OAAO,SAASA,EAAM,iBAAiB,OAAO,SAASzlB,EAAG,KAAKylB,GAAO3e,EAA6B,uBAAuB,MAAM,OAAO,SAAS7G,EAAG,UAAU,OAAO,SAASwC,EAAG,KAAKxC,GAAI,KAAK;AAC3P,SAAK,MAAM,QAAQylB,KAAsBC,CAAyB,KAE1DD,KAAsBC,GAA2B;AAAA,IACvD,CAAC3f,MAAa+M,GAAyB,SAAS/M,CAAQ;AAAA,EAC5D,IAHW,CAAA;AAIX,GACM4f,KAAkB,CAACC,MAAgC;AACvD,MAAInvB,GAAIsJ;AACR,UAAMtJ,IAAKmvB,EAA4B,aAAa,QAAgBnvB,EAAG,SAAS,GAAG,KAAQ2V,EAAW,eAAe;AAAA,KAClHrM,IAAK6lB,EAA4B,aAAa,OAAO,SAAS7lB,EAAG,YAAW;AAAA,EACjF,KAAO,EAAE6lB,aAAuCxZ,EAAW,eAAe;AAAA,IACtEwZ,EAA4B,SAAS,YAAW;AAAA,EACpD,MACIxZ,EAAW,eAAe,QAAQwZ,CAA2B,GAExDN,GAAoB;AAAA,IACzB,CAACne,MAAaA,KAAYye;AAAA,EAC9B;AACA,GACMC,KAAuB,CAACL,MACrBG,GAAgBH,CAAK,KAAK,CAAC,CAACD,GAAyBC,CAAK,EAAE,QAE/DM,KAAiB,CAACC,MAAU;AAChC,MAAItvB;AACJ,UAAQA,IAAKsvB,KAAS,OAAO,SAASA,EAAM,SAAS,OAAO,SAAStvB,EAAG,KAAKsvB,GAAO,GAAG;AACzF,GACMC,KAAuB;AAAA,EAC3B,CAAChf,EAAkB,oBAAoB,GAAGmP;AAAA,EAC1C,CAACnP,EAAkB,uBAAuB,GAAGmP;AAAA,EAC7C,CAACnP,EAAkB,cAAc,GAAG8e;AAAA,EACpC,CAAC9e,EAAkB,cAAc,GAAG,CAACif,MAAWA,KAAU,OAAO,SAASA,EAAO,IAAIH,EAAc,EAAE,KAAK,GAAG;AAAA,EAC7G,CAAC9e,EAAkB,oBAAoB,GAAG,CAACkf,MAAWA,KAAU,OAAO,SAASA,EAAO,KAAK,GAAG;AAAA,EAC/F,CAAClf,EAAkB,oBAAoB,GAAGgB;AAAA,EAC1C,CAAChB,EAAkB,sBAAsB,GAAGwB;AAC9C,GACM2d,KAAU,OAAOX,GAAOzf,GAAUqgB,MAAc;AACpD,MAAI3vB,GAAIsJ;AAIR,MAHKylB,EAAM,eACT,MAAMnc,GAAM,CAAC,GAEX,OAAO+c,KAAc,aAAaA,KAAa;AACjD,WAAOpW,EAAewV,GAAOzf,GAAUqgB,CAAS;AAElD,MAAI,OAAOA,KAAc;AACvB,WAAOvW,GAAe2V,GAAOzf,GAAUqgB,CAAS;AAElD,MAAI,OAAOA,KAAc;AACvB,WAAOlW,GAAcsV,GAAOzf,GAAUqgB,CAAS;AAEjD,MAAI,MAAM,QAAQA,CAAS,KAAK,CAACA,EAAU;AACzC,WAAOZ,EAAM,gBAAgBzf,CAAQ;AAEvC,QAAMS,KAAOzG,KAAMtJ,IAAKuvB,GAAqBjgB,CAAQ,MAAM,OAAO,SAAStP,EAAG,KAAKuvB,IAAsBI,CAAS,MAAM,OAAOrmB,IAAKqmB;AACpI,SAAOZ,EAAM,aAAazf,GAAUS,CAAG;AACzC,GACM6f,KAA+B,CAAC5mB,MAAO;AAC3C,MAAIhJ;AACJ,SAAO,CAAC,GAAGA,IAAKgJ,EAAG,YAAY,QAAgBhJ,EAAG,KAAKgJ,GAAI,iBAAiB;AAC9E,GACM6mB,KAAiC,CAACzY,GAAU0Y,MAA+B;AAC/E,MAAIF,GAA6BxY,CAAQ;AACvC;AAEF,QAAM2Y,IAAqC,CAACC,GAAWC,MAAgC;AACrF,QAAIjwB,GAAIsJ;AACR,IAAI8lB,GAAqBY,CAAS,KAChCC,EAA4BD,CAAS;AAEvC,UAAM,EAAE,UAAAE,IAAW,CAAA,EAAE,IAAKF,KAAgC,CAAA,GACpDG,KAAkB7mB,KAAMtJ,IAAKgwB,KAAa,OAAO,SAASA,EAAU,eAAe,OAAO,SAAShwB,EAAG,aAAa,OAAOsJ,IAAK,CAAA;AAErI,IADoB,CAAC,GAAG4mB,GAAU,GAAGC,CAAc,EACvC;AAAA,MACV,CAACpB,MAAUc;AAAA,QACTd;AAAA,QACAkB;AAAA,MACR;AAAA,IACA;AAAA,EACE,GACM5hB,IAAO+I,KAAY,OAAO,SAASA,EAAS,SAAS,YAAW;AACtE,MAAI/I,EAAK,SAAS,GAAG,KAAK,CAAC+gB,GAAqBhY,CAAQ,GAAG;AACzDzB,IAAAA,EAAW,eAAe,YAAYtH,CAAI,EAAE,KAAK,MAAM;AACrD,MAAA0hB,EAAmC3Y,GAAU0Y,CAA0B;AAAA,IACzE,CAAC;AACD;AAAA,EACF;AACA,EAAAC,EAAmC3Y,GAAU0Y,CAA0B;AACzE,GACMhC,KAAsB,CAACM,GAAKzF,GAAW5Y,MAAQ;AACnD,EAAAqe,EAAI,QAAQ,CAACplB,MAAO;AAClB,QAAI2f,KAAa3f,GAAI;AACnB,MAAAA,EAAG2f,CAAS,IAAI5Y;AAChB;AAAA,IACF;AACA,UAAMqgB,IAAgBtB,GAAyB9lB,CAAE,GAC3CsG,IAAWqZ,EAAU,YAAW;AACtC,IAAKyH,EAAc,SAAS9gB,CAAQ,KAEpCogB,GAAQ1mB,GAAIsG,GAAUS,CAAG;AAAA,EAC3B,CAAC;AACH,GACMoe,KAAgC,CAAC/W,GAAU4W,GAA4BC,MAAiC;AAC5G,EAAA4B,GAA+BzY,GAAU4W,CAA0B;AACnE,QAAMqC,IAAoC,CAACrT,MAAQ;AACjD,QAAIhd;AACJ,UAAMgJ,KAAMhJ,IAAKgd,KAAO,OAAO,SAASA,EAAI,aAAY,EAAG,CAAC,MAAM,OAAOhd,IAAKgd,EAAI;AAClF,IAAAgR,EAA2BhlB,CAAE;AAAA,EAC/B,GACMsnB,IAAsC,CAACtT,MAAQ;AACnD,QAAIhd;AACJ,UAAMgJ,KAAMhJ,IAAKgd,KAAO,OAAO,SAASA,EAAI,aAAY,EAAG,CAAC,MAAM,OAAOhd,IAAKgd,EAAI;AAClF,IAAAiR,EAA6BjlB,CAAE;AAAA,EACjC;AACA,EAAAoO,EAAS;AAAA,IACPjH,EAAc;AAAA,IACdkgB;AAAA,EACJ,GACEjZ,EAAS;AAAA,IACPjH,EAAc;AAAA,IACdmgB;AAAA,EACJ;AACE,QAAMC,IAAmB,CAACnT,MAAkB;AAC1C,IAAAA,EAAc,QAAQ,CAACoT,MAAmB;AACxC,YAAM;AAAA,QACJ,YAAAC,IAAa,CAAA;AAAA,QACb,cAAAnT,IAAe,CAAA;AAAA,QACf,MAAAtP;AAAA,QACA,QAAAqgB;AAAA,QACA,eAAAqC;AAAA,MACR,IAAUF;AACJ,MAAIxiB,MAAS,eACX,MAAM,UAAU,QAAQ;AAAA,QACtByiB;AAAA,QACA,CAAC3Z,MAAS+Y;AAAA,UACR/Y;AAAA,UACAkX;AAAA,QACZ;AAAA,MACA,GACQ,MAAM,UAAU,QAAQ;AAAA,QACtB1Q;AAAA,QACA,CAACxG,MAAS+Y;AAAA,UACR/Y;AAAA,UACAmX;AAAA,QACZ;AAAA,MACA,KACiBjgB,MAAS,gBAAgB0iB,MAAkBtgB,EAA6B,4BAC7Egf,GAAqBf,CAAM,IAC7BL,EAA2BK,CAAM,IAEjCJ,EAA6BI,CAAM;AAAA,IAGzC,CAAC;AAAA,EACH;AACA,MAAIsC,IAAc,CAAA;AAClB,QAAMC,IAAoB,CAACtjB,MAAU;AACnC,UAAMujB,IAASvjB,EAAM;AACrB,IAAIujB,EAAO,SAAS,YAEpBF,EAAY;AAAA,MACV,CAAC7Z,MAAS+Y,GAA+B/Y,GAAMmX,CAA4B;AAAA,IACjF,GACI0C,IAAc;AAAA,MACZ,GAAGE,EAAO,iBAAiB,EAAE,SAAS,GAAI,CAAE;AAAA,IAClD,GACIF,EAAY;AAAA,MACV,CAAC7Z,MAAS+Y,GAA+B/Y,GAAMkX,CAA0B;AAAA,IAC/E;AAAA,EACE;AACA,EAAA5W,EAAS,iBAAiB,cAAcwZ,CAAiB;AACzD,QAAMlb,IAAW,IAAI,iBAAiB6a,CAAgB;AACtD,SAAA7a,EAAS,QAAQ0B,GAAU;AAAA,IACzB,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,EACb,CAAG,GACmB,MAAM;AACxB,IAAAyY,GAA+BzY,GAAU6W,CAA4B,GACrE7W,EAAS,oBAAoB,cAAcwZ,CAAiB,GAC5Dlb,EAAS,WAAU,GACnB0B,EAAS;AAAA,MACPjH,EAAc;AAAA,MACdkgB;AAAA,IACN,GACIjZ,EAAS;AAAA,MACPjH,EAAc;AAAA,MACdmgB;AAAA,IACN;AAAA,EACE;AAEF;AACK3a,EAAW,eAAe,IAAI,kBAAkB,KACnDA,EAAW,eAAe,OAAO,oBAAoB6X,EAAe;AAEtE,IAAIsD,KAA2BtD;ACh6B/B,MAAMpR,KAAa;AAAA,EACjB,WAAW;AAAA,EACX,QAAQ;AACV;AACA,SAASnC,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+GJ;AACA,MAAM6W,WAAqBpb,EAAW,YAAY;AAAA,EAChD,cAAc;AA0CZ,QAzCA,MAAK,GAIL,KAAK,gBAAgB,MAAM;AACzB,UAAI3V;AACJ,UAAI,CAAC0X,GAAiB,MAAM,EAAE,cAAc,IAAO,oBAAoB,IAAO;AAC5E;AACF,YAAMsZ,IAAY,KAAK;AACvB,UAAIA,MAAc,UAAUA,MAAc,SAAS;AACjD,aAAK,MAAM,eAAe,0BAA0B;AACpD;AAAA,MACF;AACA,YAAMC,IAAe,iBAAiB,IAAI,GACpCC,KAAgBlxB,IAAKuW,GAAoB,MAAM,MAAM,KAAK,MAAM,MAAM,OAAOvW,IAAKoW,GAAmB,IAAI;AAC/G,UAAI,CAAC8a;AACH;AACF,YAAM,EAAE,GAAGC,GAAY,OAAOC,EAAc,IAAKF,EAAa,sBAAqB,GAC7E,EAAE,GAAGG,GAAU,OAAOC,EAAY,IAAK,KAAK,sBAAqB,GACjEC,IAAeF,IAAWC,GAC1BE,IAAiBL,IAAaC,GAC9BK,IAAaR,EAAa;AAAA,QAC9B;AAAA,MACR,GACYS,IAAcD,IAAa,WAAWA,EAAW,QAAQ,MAAM,EAAE,CAAC,IAAI,GACtEE,IAAYV,EAAa;AAAA,QAC7B;AAAA,MACR,GACYW,IAAaD,IAAY,WAAWA,EAAU,QAAQ,MAAM,EAAE,CAAC,IAAI,GACnEE,IAAWR,IAAWF,IAAaO,IAAcE,GACjDE,IAAYP,IAAeC,IAAiBE,IAAcE;AAChE,UAAIC,IAAW,GAAG;AAChB,aAAK,MAAM,YAAY,4BAA4B,GAAGA,CAAQ,IAAI;AAClE;AAAA,MACF;AACA,UAAIC,IAAY,GAAG;AACjB,aAAK,MAAM,YAAY,4BAA4B,GAAGA,CAAS,IAAI;AACnE;AAAA,MACF;AACA,WAAK,MAAM,eAAe,0BAA0B;AAAA,IACtD,GACI,CAAC,KAAK,YAAY;AACpB,WAAK,aAAa,KAAK,YAAY,iBAAiB;AACpD,YAAM1X,IAAQpE,GAAqB,KAAK,UAAU;AAClD,WAAK,WAAW,YAAY,KAAK,YAAY,gBAAgBoE,CAAK;AAAA,IACpE;AAEA,QADA,KAAK,UAAU,KAAK,WAAW,cAAc,QAAQ,GACjD,OAAO,UAAU,eAAe,KAAK,MAAM,WAAW,GAAG;AAC3D,YAAM4W,IAAY,KAAK;AACvB,aAAO,KAAK,WACZ,KAAK,YAAYA;AAAA,IACnB;AAAA,EACF;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO,CAAC5U,GAAW,WAAWA,GAAW,MAAM;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,YAAY;AACd,WAAO5C,GAAc,MAAM4C,GAAW,SAAS;AAAA,EACjD;AAAA,EACA,IAAI,UAAUjT,GAAO;AACnB,IAAAsQ,GAAc,MAAM2C,GAAW,WAAWjT,CAAK;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAS;AACX,WAAOqQ,GAAc,MAAM4C,GAAW,MAAM;AAAA,EAC9C;AAAA,EACA,IAAI,OAAOjT,GAAO;AAChB,IAAAsQ,GAAc,MAAM2C,GAAW,QAAQjT,CAAK;AAAA,EAC9C;AACF;AACA4nB,GAAa,oBAAoB,EAAE,MAAM,OAAM;AAC/CA,GAAa,kBAAkB9W;AAC1BtE,EAAW,eAAe,IAAI,eAAe,KAChDA,EAAW,eAAe,OAAO,iBAAiBob,EAAY;AAEhE,IAAIgB,KAAwBhB,ICnNxBpX,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAELf,IAAkBgY,IAAgBC,IAAkBC,IAAgBC,IAAkBC,IAAeC;AAezG,MAAMjW,KAAa;AAAA,EACjB,mBAAmB;AAAA,EACnB,UAAU;AAAA,EACV,YAAY;AACd;AACA,SAASnC,GAAgBC,GAAQoY,IAAS,IAAI;AAC5C;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA8EE,KAAK,oBAAoBpY,GAAQoY,CAAM,CAAC;AAAA;AAAA;AAAA;AAAA,oCAIVvB,GAAa,kBAAkB,IAAI;AAAA,YAC3DA,GAAa,gBAAgB,EAAE,CAAC;AAAA;AAAA;AAAA,YAGhC,KAAK,sBAAsB7W,CAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM9C;AACA,SAASqY,GAAoBrY,GAAQoY,GAAQ;AAC3C;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAIJ;AACA,SAASE,KAAwB;AAC/B,SAAO;AACT;AACA,MAAMC,WAA0B9c,EAAW,YAAY;AAAA,EACrD,cAAc;AAqCZ,QApCA,MAAK,GAELxJ,GAAa,MAAMimB,EAAa,GAChCjmB,GAAa,MAAM6N,IAAkB,MAAM,GAC3C,KAAK,eAAe,IACpB,KAAK,YAAY,MACjB7N,GAAa,MAAM6lB,IAAgB,CAAC,MAAM;AACxC,MAAK,KAAK,gBACR,KAAK,YAAY,CAAC,GAEpB,WAAW5kB,GAAa,MAAM6kB,EAAgB,GAAG,CAAC;AAAA,IACpD,CAAC,GACD9lB,GAAa,MAAM8lB,IAAkB,MAAM;AACzC,UAAIjyB,GAAIsJ;AACR,OAACA,KAAMtJ,IAAK,KAAK,cAAc,OAAO,SAASA,EAAG,kBAAkB,QAAgBsJ,EAAG,KAAKtJ,CAAE;AAAA,IAChG,CAAC,GAGDmM,GAAa,MAAM+lB,IAAgB,CAAC,MAAM;AACxC,YAAM,EAAE,KAAAzhB,EAAG,IAAK;AAChB,UAAI,CAAC,KAAK,SAAS,SAASA,CAAG,GAAG;AAChC,aAAK,oBAAoB,SAASrD,GAAa,MAAM8kB,EAAc,CAAC;AACpE;AAAA,MACF;AACA,MAAK,KAAK,gBACR,KAAK,YAAY,CAAC;AAAA,IAEtB,CAAC,GACD/lB,GAAa,MAAMgmB,IAAkB,CAAC,MAAM;AAC1C,YAAM,EAAE,SAAA1D,GAAS,QAAAC,GAAQ,KAAAje,EAAG,IAAK;AACjC,UAAIge,KAAWC,KAAU,CAAC,KAAK,SAAS,SAASje,CAAG,GAAG;AACrD,aAAK,oBAAoB,SAASrD,GAAa,MAAM8kB,EAAc,CAAC;AACpE;AAAA,MACF;AACA,WAAK,iBAAiB,SAAS9kB,GAAa,MAAM8kB,EAAc,GAAG,EAAE,MAAM,IAAM;AAAA,IACnF,CAAC,GACG,CAAC,KAAK,YAAY;AACpB,WAAK,aAAa,KAAK,YAAY,iBAAiB;AACpD,YAAM9X,IAAQpE,GAAqB,KAAK,UAAU,GAC5CyH,IAAO,KAAK,YAAY,gBAAgBrD,CAAK;AACnD,WAAK,WAAW,gBAAgB,KAAK,WAAW,cAAcqD,CAAI,IAAI,KAAK,WAAW,YAAYA;AAAA,IACpG;AACA,SAAK,YAAY,KAAK,WAAW,cAAc,eAAe;AAAA,EAChE;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL;AAAA,MACArB,GAAW;AAAA,MACXhM,EAA6B;AAAA,MAC7BG,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,SAAS;AACP,SAAK,iBAAiB,SAASnD,GAAa,MAAM4kB,EAAc,CAAC,GACjE,KAAK,iBAAiB,WAAW5kB,GAAa,MAAM+kB,EAAgB,CAAC,GACrE,KAAK,WAAW;AAAA,EAClB;AAAA,EACA,UAAU;AACR,SAAK,oBAAoB,SAAS/kB,GAAa,MAAM4kB,EAAc,CAAC,GACpE,KAAK,oBAAoB,WAAW5kB,GAAa,MAAM+kB,EAAgB,CAAC,GACxE,KAAK,oBAAoB,SAAS/kB,GAAa,MAAM8kB,EAAc,CAAC,GACpE,KAAK,WAAW;AAAA,EAClB;AAAA,EACA,yBAAyB5iB,GAAUC,GAAUC,GAAU;AACrD,QAAIxP,GAAIsJ,GAAIC,GAAIwC,GAAIhO;AACpB,IAAIuR,MAAac,EAA6B,oBACxCb,OACDjG,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI,IAEvCxK,KAAY,KAAK,gBACnBxC,GAAa,MAAMgN,KAAmBzQ,IAAK,KAAK,kBAAkB,OAAO,SAASA,EAAG,eAAeiG,CAAQ,CAAC,IAC5GzR,KAAMgO,IAAKqB,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASjO,EAAG,qBAAqB,QAAgBhO,EAAG,KAAKgO,GAAI,IAAI,MAEtHuD,MAAa,cAAcE,MAAaD,IAC7CC,KAAY,OACd,KAAK,OAAM,IAEX,KAAK,QAAO,IAELF,MAAa8M,GAAW,qBAAqB,KAAK,aAAa5M,MAAaD,IACrF,KAAK,UAAU,YAAYC,IAClBF,MAAaiB,EAAkB,eACxC,KAAK,WAAW,cAAc,8BAA8B,EAAE,YAAY,KAAK,YAAY,sBAAqB,IAElHnD,GAAa,MAAM6kB,EAAgB,EAAE,KAAK,IAAI;AAAA,EAChD;AAAA,EACA,oBAAoB;AAClB,QAAIjyB,GAAIsJ,GAAIC;AACZ,UAAM,EAAE,OAAAuO,EAAK,IAAKQ,GAAmB,KAAK,YAAY,OAAO;AAC7D,IAAAR,EAAM;AAAA,MACJ;AAAA,MACA,sCAAsC,KAAK,SAAS;AAAA,IAC1D,GACS,KAAK,aAAa,UAAU,IAG/B,KAAK,QAAO,IAFZ,KAAK,OAAM,GAIb,KAAK,aAAa,QAAQ,QAAQ;AAClC,UAAMrB,IAAoB,KAAK;AAAA,MAC7BrG,EAA6B;AAAA,IACnC;AACI,IAAIqG,MACFzJ;AAAAA,MACE;AAAA,MACAgN;AAAAA;AAAAA,OAECha,IAAK,KAAK,YAAW,MAAO,OAAO,SAASA,EAAG,eAAeyW,CAAiB;AAAA,IACxF,IACOlN,KAAMD,IAAK8D,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAAS1Q,EAAG,qBAAqB,QAAgBC,EAAG,KAAKD,GAAI,IAAI,IAE/HqM,EAAW,eAAe,YAAY,eAAe,EAAE,KAAK,MAAM7I,GAAgB,MAAMslB,IAAeC,EAAe,EAAE,KAAK,IAAI,CAAC;AAAA,EACpI;AAAA,EACA,uBAAuB;AACrB,QAAIryB,GAAIsJ;AACR,SAAK,QAAO,IACXA,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI,GACzC,KAAK,oBAAoB,cAAc5M,GAAa,MAAM6kB,EAAgB,CAAC,GAC3E,KAAK,oBAAoB,SAAS7kB,GAAa,MAAM6kB,EAAgB,CAAC,GACtE,KAAK,oBAAoB,SAAS7kB,GAAa,MAAM4kB,EAAc,CAAC;AAAA,EACtE;AAAA,EACA,IAAI,WAAW;AACb,WAAO,CAAC,SAAS,GAAG;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,mBAAmB;AACrB,WAAOxY,GAAc,MAAM4C,GAAW,iBAAiB;AAAA,EACzD;AAAA,EACA,IAAI,iBAAiBjT,GAAO;AAC1B,IAAAsQ,GAAc,MAAM2C,GAAW,mBAAmBjT,CAAK;AAAA,EACzD;AAAA,EACA,IAAI,kBAAkB;AACpB,WAAOqQ,GAAc,MAAMpJ,EAA6B,gBAAgB;AAAA,EAC1E;AAAA,EACA,IAAI,gBAAgBjH,GAAO;AACzB,IAAAsQ,GAAc,MAAMrJ,EAA6B,kBAAkBjH,CAAK;AAAA,EAC1E;AAAA,EACA,IAAI,WAAW;AACb,WAAOmQ,EAAe,MAAM8C,GAAW,QAAQ;AAAA,EACjD;AAAA,EACA,IAAI,SAASjT,GAAO;AAClB,IAAAoQ,EAAe,MAAM6C,GAAW,UAAUjT,CAAK;AAAA,EACjD;AAAA,EACA,IAAI,YAAY;AACd,WAAOmQ,EAAe,MAAM8C,GAAW,UAAU;AAAA,EACnD;AAAA,EACA,IAAI,UAAUjT,GAAO;AACnB,IAAAoQ,EAAe,MAAM6C,GAAW,YAAYjT,CAAK;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA,EAIA,YAAYpL,GAAI;AAAA,EAChB;AACF;AACAic,KAAmB,oBAAI,QAAO;AAC9BgY,KAAiB,oBAAI,QAAO;AAC5BC,KAAmB,oBAAI,QAAO;AAC9BC,KAAiB,oBAAI,QAAO;AAC5BC,KAAmB,oBAAI,QAAO;AAC9BC,KAAgB,oBAAI,QAAO;AAC3BC,KAAkB,WAAW;AAC3B,OAAK,iBAAiB,cAAcjlB,GAAa,MAAM6kB,EAAgB,CAAC,GACxE,KAAK,iBAAiB,SAAS7kB,GAAa,MAAM6kB,EAAgB,CAAC,GACnE,KAAK,iBAAiB,SAAS7kB,GAAa,MAAM4kB,EAAc,CAAC;AACjE,QAAMU,IAAmB,KAAK;AAC9B,EAAIA,KAAoB,KAAK,cAC3B,KAAK,UAAU,YAAYA;AAE/B;AACAD,GAAkB,oBAAoB,EAAE,MAAM,OAAM;AACpDA,GAAkB,kBAAkBxY;AACpCwY,GAAkB,sBAAsBF;AACxCE,GAAkB,wBAAwBD;AACrC7c,EAAW,eAAe,IAAI,qBAAqB,KACtDA,EAAW,eAAe,OAAO,uBAAuB8c,EAAiB;AChU3E,MAAME,KAAc;AAAA;AAAA;AAAA;AAIpB,SAASJ,GAAoBrY,GAAQ;AACnC;AAAA;AAAA,IAEE;AAAA;AAAA,eAEW3J,EAAkB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMhCA,EAAkB,mBAAmB;AAAA;AAAA;AAAA;AAAA,eAI1CA,EAAkB,mBAAmB;AAAA,oBAChCA,EAAkB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAM9BoiB,EAAW;AAAA,0BACZA,EAAW;AAAA;AAAA;AAAA;AAIrC;AACA,SAASH,KAAwB;AAC/B;AAAA;AAAA,IAEE;AAAA,iCAC6B/9B,EAAE,eAAe,CAAC;AAAA,gCACnBA,EAAE,cAAc,CAAC;AAAA;AAAA;AAGjD;AACA,MAAMm+B,KAAkB,CAAC5pB,MAAO;AAC9B,QAAMqJ,IAAQrJ,EAAG,oBAAoBvU,EAAE,cAAc,IAAIA,EAAE,eAAe;AAC1E,EAAAuU,EAAG,aAAa,cAAcqJ,CAAK;AACrC;AACA,MAAMwgB,WAA2BJ,GAAkB;AAAA,EACjD,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTliB,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvBqiB,GAAgB,IAAI;AAAA,EACtB;AAAA,EACA,yBAAyBtjB,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAaiB,EAAkB,uBACjCqiB,GAAgB,IAAI;AAAA,EAExB;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,oBAAoB;AACtB,WAAOtZ,EAAe,MAAM/I,EAAkB,mBAAmB;AAAA,EACnE;AAAA,EACA,IAAI,kBAAkBpH,GAAO;AAC3B,IAAAoQ,EAAe,MAAMhJ,EAAkB,qBAAqBpH,CAAK;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,0BAA0B;AAC5B,WAAOqQ,GAAc,MAAMjJ,EAAkB,yBAAyB;AAAA,EACxE;AAAA,EACA,IAAI,wBAAwBpH,GAAO;AACjC,IAAAsQ,GAAc,MAAMlJ,EAAkB,2BAA2BpH,CAAK;AAAA,EACxE;AAAA,EACA,cAAc;AACZ,UAAM6T,IAAM,IAAIrH,EAAW;AAAA,MACzBxF,EAAc;AAAA,MACd;AAAA,QACE,UAAU;AAAA,QACV,SAAS;AAAA,MACjB;AAAA,IACA;AACI,SAAK,cAAc6M,CAAG;AAAA,EACxB;AACF;AACA6V,GAAmB,sBAAsBN;AACzCM,GAAmB,wBAAwBL;AACtC7c,EAAW,eAAe,IAAI,sBAAsB,KACvDA,EAAW,eAAe,OAAO,wBAAwBkd,EAAkB;AChG7E,MAAMC,KAAW;AAAA;AAAA,SAGXC,KAAY;AAAA;AAAA;AAGlB,SAASR,GAAoBrY,GAAQ;AACnC;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAmBoB4Y,EAAQ;AAAA,yBACPC,EAAS;AAAA;AAAA;AAAA;AAIlC;AACA,SAASP,KAAwB;AAC/B;AAAA;AAAA,IAEE;AAAA,kCAC8B/9B,EAAE,iBAAiB,CAAC;AAAA,mCACnBA,EAAE,kBAAkB,CAAC;AAAA;AAAA;AAGxD;AACA,MAAMu+B,KAAoB,CAAChqB,MAAO;AAChC,EAAAA,EAAG,aAAa,gBAAgByX,GAAUzX,CAAE,EAAE,UAAU;AAC1D;AACA,MAAMiqB,WAA4BR,GAAkB;AAAA,EAClD,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTliB,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvB,KAAK,aAAa,QAAQ,QAAQ,GAClC,KAAK,aAAa,cAAc9b,EAAE,iBAAiB,CAAC,GACpDu+B,GAAkB,IAAI;AAAA,EACxB;AAAA,EACA,yBAAyB1jB,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAaiB,EAAkB,2BACjCyiB,GAAkB,IAAI;AAAA,EAE1B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,qBAAqB;AACvB,WAAOE,GAAqB,MAAM3iB,EAAkB,oBAAoB;AAAA,EAC1E;AAAA,EACA,IAAI,mBAAmB4iB,GAAM;AAC3BC,IAAAA,GAAqB,MAAM7iB,EAAkB,sBAAsB4iB,CAAI;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,wBAAwB;AAC1B,WAAOD;AAAAA,MACL;AAAA,MACA3iB,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,IAAI,sBAAsB4iB,GAAM;AAC9BC,IAAAA,GAAqB,MAAM7iB,EAAkB,yBAAyB4iB,CAAI;AAAA,EAC5E;AAAA,EACA,cAAc;AACZ,SAAK;AAAA,MACH,IAAIxd,EAAW,YAAYxF,EAAc,gCAAgC;AAAA,QACvE,UAAU;AAAA,QACV,SAAS;AAAA,MACjB,CAAO;AAAA,IACP;AAAA,EACE;AACF;AACA8iB,GAAoB,sBAAsBV;AAC1CU,GAAoB,wBAAwBT;AAC5C,MAAMU,KAAuB,CAAClqB,GAAIsG,MAAa;AAC7C,QAAM6J,IAAUnQ,EAAG,aAAasG,CAAQ;AACxC,SAAO6J,IAAUgG,GAAmBhG,CAAO,IAAI,CAAA;AACjD,GACMia,KAAuB,CAACpqB,GAAIsG,GAAU6jB,MAAS;AACnD,MAAI,EAAEA,KAAQ,QAAgBA,EAAK,SAAS;AAC1C,IAAAnqB,EAAG,gBAAgBsG,CAAQ;AAC3B;AAAA,EACF;AACA,QAAM+jB,IAAY3T,GAAuByT,CAAI;AAE7C,EADenqB,EAAG,aAAasG,CAAQ,MACxB+jB,KAEfrqB,EAAG,aAAasG,GAAU+jB,CAAS;AACrC;AACK1d,EAAW,eAAe,IAAI,uBAAuB,KACxDA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAsd;AACJ;ACtHA,MAAMK,KAAY,0hBACZC,KAAW;AACjB,SAAShB,GAAoBrY,GAAQ;AACnC;AAAA;AAAA,IAEE;AAAA;AAAA,eAEW3J,EAAkB,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,oBAM7BA,EAAkB,gBAAgB;AAAA;AAAA;AAAA;AAAA,eAIvCA,EAAkB,gBAAgB;AAAA,oBAC7BA,EAAkB,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAM3B+iB,EAAS;AAAA,0BACVC,EAAQ;AAAA;AAAA;AAAA;AAIlC;AACA,SAASf,KAAwB;AAC/B;AAAA;AAAA,IAEE;AAAA,iCAC6B/9B,EAAE,eAAe,CAAC;AAAA,gCACnBA,EAAE,cAAc,CAAC;AAAA;AAAA;AAGjD;AACA,MAAMm+B,KAAkB,CAAC5pB,MAAO;AAC9B,QAAMqJ,IAAQrJ,EAAG,iBAAiBvU,EAAE,cAAc,IAAIA,EAAE,eAAe;AACvE,EAAAuU,EAAG,aAAa,cAAcqJ,CAAK;AACrC;AACA,MAAMmhB,WAAwBf,GAAkB;AAAA,EAC9C,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTliB,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvBqiB,GAAgB,IAAI;AAAA,EACtB;AAAA,EACA,yBAAyBtjB,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAaiB,EAAkB,oBACjCqiB,GAAgB,IAAI;AAAA,EAExB;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,iBAAiB;AACnB,WAAOtZ,EAAe,MAAM/I,EAAkB,gBAAgB;AAAA,EAChE;AAAA,EACA,IAAI,eAAepH,GAAO;AACxB,IAAAoQ,EAAe,MAAMhJ,EAAkB,kBAAkBpH,CAAK;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,uBAAuB;AACzB,WAAOqQ,GAAc,MAAMjJ,EAAkB,sBAAsB;AAAA,EACrE;AAAA,EACA,IAAI,qBAAqBpH,GAAO;AAC9B,IAAAsQ,GAAc,MAAMlJ,EAAkB,wBAAwBpH,CAAK;AAAA,EACrE;AAAA,EACA,cAAc;AACZ,UAAMyR,IAAY,KAAK,iBAAiBzK,EAAc,0BAA0BA,EAAc;AAC9F,SAAK;AAAA,MACH,IAAIwF,EAAW,YAAYiF,GAAW,EAAE,UAAU,IAAM,SAAS,GAAI,CAAE;AAAA,IAC7E;AAAA,EACE;AACF;AACA4Y,GAAgB,sBAAsBjB;AACtCiB,GAAgB,wBAAwBhB;AACnC7c,EAAW,eAAe,IAAI,mBAAmB,KACpDA,EAAW,eAAe,OAAO,qBAAqB6d,EAAe;ACnGvE,IAAI7Z,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GACjBA,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAELzO,IAASmnB,IAAoBC,IAAiBC,IAAO1mB,IAAS2mB,IAAaC,IAAeC,IAAeC,IAAiBC,IAAeC,IAAiBC,IAAiBC,IAAmBC,IAAgBC;AAUlN,SAASpa,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAyCE,KAAK,oBAAoBA,CAAM,CAAC;AAAA;AAAA;AAGtC;AACA,SAASqY,GAAoBrY,GAAQ;AACnC;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAIJ;AACA,MAAMkC,KAAa;AAAA,EACjB,MAAM;AAAA,EACN,QAAQ;AACV;AACA,MAAMkY,WAA0B3e,EAAW,YAAY;AAAA,EACrD,cAAc;AACZ,UAAK,GACLxJ,GAAa,MAAMwnB,EAAK,GACxBxnB,GAAa,MAAMynB,EAAW,GAC9BznB,GAAa,MAAM2nB,EAAa,GAChC3nB,GAAa,MAAM6nB,EAAa,GAChC7nB,GAAa,MAAM+nB,EAAe,GAClC/nB,GAAa,MAAMioB,EAAc,GACjCjoB,GAAa,MAAMG,IAAS,EAAK,GACjCH,GAAa,MAAMsnB,IAAoB,IAAI,GAC3CtnB,GAAa,MAAMunB,IAAiB,IAAI;AAAA,EAC1C;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO,CAACtX,GAAW,MAAMA,GAAW,MAAM;AAAA,EAC5C;AAAA,EACA,IAAI,OAAO;AACT,WAAO9C,EAAe,MAAM8C,GAAW,IAAI;AAAA,EAC7C;AAAA,EACA,IAAI,KAAKjT,GAAO;AACd,IAAAoQ,EAAe,MAAM6C,GAAW,MAAMjT,CAAK;AAAA,EAC7C;AAAA,EACA,YAAYmE,GAAO;AACjB,YAAQA,EAAM,MAAI;AAAA,MAChB,KAAK;AACHR,QAAAA,GAAgB,MAAMknB,IAAeC,EAAe,EAAE,KAAK,MAAM3mB,CAAK;AACtE;AAAA,MACF,KAAK;AACHR,QAAAA,GAAgB,MAAMonB,IAAiBC,EAAiB,EAAE,KAAK,MAAM7mB,CAAK;AAC1E;AAAA,MACF,KAAK;AACHR,QAAAA,GAAgB,MAAMsnB,IAAgBC,EAAgB,EAAE,KAAK,MAAM/mB,CAAK;AACxE;AAAA,IACR;AAAA,EACE;AAAA,EACA,oBAAoB;AAClBR,IAAAA,GAAgB,MAAM6mB,IAAO1mB,EAAO,EAAE,KAAK,IAAI,GAC1C,KAAK,SACR,KAAK,OAAO,WAEd,KAAK,iBAAiB,UAAU,IAAI,GACpC,KAAK,iBAAiB,YAAY,IAAI,GACtC,KAAK,iBAAiB,WAAW,IAAI;AAAA,EACvC;AAAA,EACA,uBAAuB;AACrB,SAAK,oBAAoB,UAAU,IAAI,GACvC,KAAK,oBAAoB,YAAY,IAAI,GACzC,KAAK,oBAAoB,WAAW,IAAI;AAAA,EAC1C;AAAA,EACA,yBAAyBqC,GAAUC,GAAUC,GAAU;AACrD1C,IAAAA,GAAgB,MAAM6mB,IAAO1mB,EAAO,EAAE,KAAK,IAAI,GAC3CqC,MAAa8M,GAAW,QAAQ5M,MAAaD,MAC3C,KAAK,OACPzC,GAAgB,MAAM8mB,IAAaC,EAAa,EAAE,KAAK,IAAI,IAE3D/mB,GAAgB,MAAMgnB,IAAeC,EAAe,EAAE,KAAK,IAAI;AAAA,EAGrE;AAAA,EACA,QAAQ;AACN/mB,IAAAA,GAAa,MAAMymB,IAAoBlc,IAAkB;AACzD,UAAMgd,IAAiB,CAAC,KAAK,cAAc,IAAI,MAAM,SAAS,EAAE,UAAU,IAAM,YAAY,GAAI,CAAE,CAAC,GAC7FC,IAAmB,CAAC,KAAK,cAAc,IAAI,MAAM,WAAW,EAAE,UAAU,IAAM,SAAS,IAAM,YAAY,GAAI,CAAE,CAAC;AACtH,QAAID,KAAkBC;AACpB;AACF,UAAMC,IAAY,KAAK;AAAA,MACrB;AAAA,IACN;AACI,IAAAA,KAAa,QAAgBA,EAAU,MAAK;AAAA,EAC9C;AAAA,EACA,IAAI,WAAW;AACb,WAAO,CAAC,UAAU,KAAK;AAAA,EACzB;AACF;AACAnoB,KAAU,oBAAI,QAAO;AACrBmnB,KAAqB,oBAAI,QAAO;AAChCC,KAAkB,oBAAI,QAAO;AAC7BC,KAAQ,oBAAI,QAAO;AACnB1mB,KAAU,WAAW;AACnB,MAAIG,CAAAA,GAAa,MAAMd,EAAO,MAE9BU,GAAa,MAAMV,IAAS,EAAI,GAC5B,CAAC,KAAK,aAAY;AACpB,SAAK,aAAa,KAAK,YAAY,iBAAiB;AACpD,UAAM8N,IAAQpE,GAAqB,KAAK,UAAU;AAClD,SAAK,WAAW,YAAY,KAAK,YAAY,gBAAgBoE,CAAK,GAClE,eAAe,MAAM;AACnB,YAAM,EAAE,OAAAtC,EAAK,IAAKQ,GAAmB,KAAK,YAAY,OAAO;AAC7D,MAAAR,EAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACR;AAAA,IACI,CAAC;AAAA,EACH;AACF;AACA8b,KAAc,oBAAI,QAAO;AACzBC,KAAgB,WAAW;AACzB,MAAI7zB;AACJ,GAACA,IAAKoN,GAAa,MAAMsmB,EAAe,MAAM,QAAgB1zB,EAAG,aAAa,iBAAiB,MAAM,GACrG,KAAK,cAAc,IAAI,MAAM,QAAQ,EAAE,UAAU,IAAM,SAAS,GAAI,CAAE,CAAC,GACvE,KAAK,iBAAiB,iBAAiB,MAAM,KAAK,SAAS,EAAE,MAAM,IAAM;AAC3E;AACA8zB,KAAgB,oBAAI,QAAO;AAC3BC,KAAkB,WAAW;AAC3B,MAAI/zB;AACJ,GAACA,IAAKoN,GAAa,MAAMsmB,EAAe,MAAM,QAAgB1zB,EAAG,aAAa,iBAAiB,OAAO,GACtG,KAAK,cAAc,IAAI,MAAM,SAAS,EAAE,UAAU,IAAM,SAAS,GAAI,CAAE,CAAC;AAC1E;AACAg0B,KAAgB,oBAAI,QAAO;AAC3BC,KAAkB,SAAS3mB,GAAO;AAChCN,EAAAA,GAAa,MAAM0mB,IAAiBpmB,EAAM,aAAa,GAClD6J,GAAqB,MAAM7J,EAAM,aAAa,MACjD,KAAK,OAAO,CAAC,KAAK;AAEtB;AACA4mB,KAAkB,oBAAI,QAAO;AAC7BC,KAAoB,SAAS7mB,GAAO;AAClC,MAAItN;AACJ,EAAKmX,GAAqB,MAAM7J,EAAM,aAAa,OAChDtN,IAAKoN,GAAa,MAAMqmB,EAAkB,MAAM,QAAgBzzB,EAAG,MAAK,GACrEoN,GAAa,MAAMsmB,EAAe,KAAKtmB,GAAa,MAAMsmB,EAAe,MAAMpmB,EAAM,iBAAiB,KAAK,SAC7G,KAAK,OAAO;AAGlB;AACA8mB,KAAiB,oBAAI,QAAO;AAC5BC,KAAmB,SAAS/mB,GAAO;AACjC,MAAItN,GAAIsJ,GAAIC,GAAIwC,GAAIhO;AACpB,QAAM,EAAE,KAAA0S,GAAK,SAAAikB,GAAS,QAAAhG,GAAQ,SAAAD,EAAO,IAAKnhB;AAC1C,EAAIonB,KAAWhG,KAAUD,KAGpB,KAAK,SAAS,SAAShe,CAAG,MAG/BnD,EAAM,eAAc,GACpBA,EAAM,gBAAe,GACjBmD,MAAQ,SACNnD,EAAM,YACPhE,KAAMtJ,IAAK,KAAK,2BAA2B,OAAO,SAASA,EAAG,UAAU,QAAgBsJ,EAAG,KAAKtJ,CAAE,KAElG+L,KAAMxC,IAAK,KAAK,uBAAuB,OAAO,SAASA,EAAG,UAAU,QAAgBwC,EAAG,KAAKxC,CAAE,GAEjG,KAAK,KAAI,KACAkH,MAAQ,cAChB1S,IAAKqP,GAAa,MAAMqmB,EAAkB,MAAM,QAAgB11B,EAAG,MAAK,GACzE,KAAK,OAAO;AAEhB;AACAu2B,GAAkB,oBAAoB,EAAE,MAAM,OAAM;AACpDA,GAAkB,kBAAkBra;AACpCqa,GAAkB,sBAAsB/B;AACnC5c,EAAW,eAAe,IAAI,qBAAqB,KACtDA,EAAW,eAAe,OAAO,uBAAuB2e,EAAiB;ACrP3E,IAAI3a,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAELf,IAAkB2a,IAAgBC,IAAaC,IAAWC,IAAWC,IAAWC,IAAYC,IAAaC,IAAuBC,IAAsBC,IAAwBC,IAAmBC,IAAqBC,IAAoBC,IAAsBC,IAAoBC,IAAsBC,IAAqBC,IAAuBla,IAAkBC,IAAoBka,IAAqBC,IAAuBta,IAAoBC;AAUhc,SAASxB,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAuPI,KAAK,yBAAyBA,CAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAK7C;AACA,SAAS6b,GAAyB7b,GAAQ;AACxC,SAAO;AACT;AACA,MAAM8b,WAAyBrgB,EAAW,YAAY;AAAA,EACpD,cAAc;AAkCZ,QAjCA,MAAK,GACLxJ,GAAa,MAAMgpB,EAAoB,GACvChpB,GAAa,MAAMkpB,EAAiB,GACpClpB,GAAa,MAAMopB,EAAkB,GACrCppB,GAAa,MAAMspB,EAAkB,GACrCtpB,GAAa,MAAMwpB,EAAmB,GACtCxpB,GAAa,MAAMuP,EAAgB,GACnCvP,GAAa,MAAM0pB,EAAmB,GACtC1pB,GAAa,MAAMqP,EAAkB,GACrCrP,GAAa,MAAM6N,IAAkB,MAAM,GAC3C7N,GAAa,MAAMwoB,IAAgB,MAAM,GACzCxoB,GAAa,MAAMyoB,IAAa,MAAM,GACtCzoB,GAAa,MAAM0oB,IAAW,MAAM,GACpC1oB,GAAa,MAAM2oB,IAAW,EAAE,GAChC3oB,GAAa,MAAM4oB,IAAW,EAAE,GAChC5oB,GAAa,MAAM6oB,IAAY,MAAM;AACnC,UAAI,KAAK,MAAM,QAAQ,gBAAgB,GAAG;AACxC,cAAM,EAAE,OAAAld,EAAK,IAAKQ,GAAmB,KAAK,YAAY,OAAO;AAC7D,QAAAR,EAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACV;AAAA,MACM;AAAA,IACF,CAAC,GACD3L,GAAa,MAAM8oB,IAAa,MAAM;AACpC,YAAM,EAAE,OAAAnd,EAAK,IAAKQ,GAAmB,KAAK,YAAY,OAAO;AAC7D,MAAAR,EAAM,eAAe,6BAA6B;AAAA,IACpD,CAAC,GACD3L,GAAa,MAAM+oB,IAAuB,MAAM;AAC9C,YAAMe,IAAW,KAAK,WAAW,cAAc,oBAAoB;AACnE,MAAIA,KACFA,EAAS,WAAW,OAAOA,CAAQ;AAAA,IACvC,CAAC,GACG,CAAC,KAAK,YAAY;AACpB,WAAK,aAAa,KAAK,YAAY,iBAAiB;AACpD,YAAM7b,IAAQpE,GAAqB,KAAK,UAAU,GAC5CyH,IAAO,KAAK,YAAY,gBAAgBrD,CAAK;AACnD,WAAK,WAAW,gBAAgB,KAAK,WAAW,cAAcqD,CAAI,IAAI,KAAK,WAAW,YAAYA;AAAA,IACpG;AACA,SAAK,YAAY,KAAK,WAAW,cAAc,YAAY,GAC3DzQ,GAAa,MAAM4nB,IAAa,KAAK,WAAW,cAAc,aAAa,CAAC,GAC5E5nB,GAAa,MAAM6nB,IAAW,KAAK,WAAW,cAAc,WAAW,CAAC,GACxE,KAAK,QAAQ,KAAK,WAAW,cAAc,QAAQ,GACnD,KAAK,aAAa,KAAK,WAAW,cAAc,aAAa;AAAA,EAC/D;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACAzkB,EAA6B;AAAA,IACnC;AAAA,EACE;AAAA,EACA,yBAAyBd,GAAUC,GAAUC,GAAU;AACrD,QAAIxP,GAAIsJ,GAAIC,GAAIwC,GAAIhO;AACpB,IAAIuR,MAAac,EAA6B,oBACxCb,OACDjG,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI,IAEvCxK,KAAY,KAAK,gBACnBxC,GAAa,MAAMgN,KAAmBzQ,IAAK,KAAK,kBAAkB,OAAO,SAASA,EAAG,eAAeiG,CAAQ,CAAC,IAC5GzR,KAAMgO,IAAKqB,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASjO,EAAG,qBAAqB,QAAgBhO,EAAG,KAAKgO,GAAI,IAAI,OAEtHuD,MAAa,cAAcA,MAAa,mBAAmBC,MAAaC,OAC7EA,KAAY,QACd,KAAK,MAAM,gBAAgBF,CAAQ,GACnCxC,GAAgB,MAAMuoB,IAAmBC,EAAmB,EAAE,KAAK,IAAI,MAEvE,KAAK,MAAM,aAAahmB,GAAUE,CAAQ,GAC1C1C,GAAgB,MAAMyoB,IAAoBC,EAAoB,EAAE,KAAK,IAAI;AAAA,EAG/E;AAAA,EACA,oBAAoB;AAClB,QAAIx1B,GAAIsJ,GAAIC;AACZ,UAAM,EAAE,OAAAuO,EAAK,IAAKQ,GAAmB,KAAK,YAAY,OAAO;AAC7D,IAAAR,EAAM;AAAA,MACJ;AAAA,MACA,sCAAsC,KAAK,SAAS;AAAA,IAC1D,GACI1K,GAAa,MAAM0nB,EAAS,EAAE,UAAUxc,GAAmB,KAAK,YAAY,UAAU,GACtFlL,GAAa,MAAM0nB,EAAS,EAAE,WAAWxc,GAAmB,KAAK,YAAY,WAAW,GACxFlL,GAAa,MAAM0nB,EAAS,EAAE,QAAQxc;AAAA,MACpC,KAAK;AAAA,MACL;AAAA,IACN,GACIlL,GAAa,MAAM0nB,EAAS,EAAE,gBAAgBxc;AAAA,MAC5C,KAAK;AAAA,MACL;AAAA,IACN;AACI,UAAM7B,IAAoB,KAAK;AAAA,MAC7BrG,EAA6B;AAAA,IACnC;AACI,IAAIqG,MACFzJ,GAAa,MAAMgN,KAAmBha,IAAK,KAAK,YAAW,MAAO,OAAO,SAASA,EAAG;AAAA,MACnFyW;AAAA,IACR,CAAO,IACAlN,KAAMD,IAAK8D,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAAS1Q,EAAG,qBAAqB,QAAgBC,EAAG,KAAKD,GAAI,IAAI,IAE/H,KAAK,UAAS,GACd,KAAK,WAAW,iBAAiB,WAAW8D,GAAa,MAAM4nB,EAAU,CAAC,GAC1E,KAAK,WAAW,iBAAiB,YAAY5nB,GAAa,MAAM6nB,EAAW,CAAC,GAC5EnoB,GAAgB,MAAMuoB,IAAmBC,EAAmB,EAAE,KAAK,IAAI,GACvExf,GAAc,KAAK,WAAW1I,GAAa,MAAM8nB,EAAqB,CAAC;AAAA,EACzE;AAAA,EACA,uBAAuB;AACrB,QAAIl1B,GAAIsJ;AACRwD,IAAAA,GAAgB,MAAMyoB,IAAoBC,EAAoB,EAAE,KAAK,IAAI,IACxElsB,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI,GACzC,KAAK,WAAW,oBAAoB,WAAW5M,GAAa,MAAM4nB,EAAU,CAAC,GAC7E,KAAK,WAAW,oBAAoB,YAAY5nB,GAAa,MAAM6nB,EAAW,CAAC,GAC/Elf,GAAgB,KAAK,WAAW3I,GAAa,MAAM8nB,EAAqB,CAAC;AAAA,EAC3E;AAAA,EACA,iBAAiBlY,GAAK;AACpB,QAAIhd;AACJ,KAACA,IAAKoN,GAAa,MAAM0nB,EAAS,EAAE,YAAY,QAAgB90B,EAAG,MAAM;AAAA,MACvE;AAAA,MACA,GAAG,KAAK,gBAAgBgd,CAAG,IAAI,GAAG;AAAA,IACxC;AAAA,EACE;AAAA,EACA,YAAY;AACV,QAAIhd,GAAIsJ;AACR,UAAM4sB,IAAe,KAAK,MAAM,gBAAgB;AAChD,KAACl2B,IAAKoN,GAAa,MAAM0nB,EAAS,EAAE,aAAa,QAAgB90B,EAAG,MAAM,YAAY,SAAS,GAAGk2B,CAAY,GAAG,IAChH5sB,IAAK8D,GAAa,MAAM0nB,EAAS,EAAE,UAAU,QAAgBxrB,EAAG,MAAM,YAAY,QAAQ,GAAG4sB,CAAY,GAAG;AAAA,EAC/G;AAAA,EACA,eAAeC,GAAU;AACvB,UAAMF,IAAW,KAAK,WAAW,cAAc,oBAAoB;AAGnE,QAFAA,EAAS,cAAc,IACvB,KAAK,UAAU,UAAU,OAAO,YAAY,CAAC,EAAEE,KAAY,QAAgBA,EAAS,OAAO,GACvF,EAAEA,KAAY,QAAgBA,EAAS;AACzC;AACF,UAAMC,IAAa;AAAA,MACjB,GAAmB,oBAAI,IAAI;AAAA,QACzB,CAAC,KAAK,MAAM;AAAA,QACZ,GAAGD,EAAS,QAAQ,CAACthC,MAAM,CAACA,EAAE,OAAOA,EAAE,GAAG,CAAC;AAAA,QAC3C,CAAC,KAAK,MAAM;AAAA,MACpB,CAAO;AAAA,IACP;AACImY,IAAAA,GAAa,MAAM+nB,IAAW,CAAC,GAAGqB,CAAU,CAAC;AAC7C,UAAMC,IAAaD,EAAW,IAAG;AACjC,eAAW,CAAC1hC,GAAG4hC,CAAM,KAAKF,EAAW,QAAO,GAAI;AAC9C,YAAM,CAACG,GAASC,CAAM,IAAI,CAAC9hC,MAAM,GAAGA,MAAM0hC,EAAW,SAAS,CAAC,GACzD95B,IAAIi6B,IAAU,mCAAmC,GAAGD,IAAS,GAAG,KAEhEzkB,IAAQ,UADH2kB,IAASH,IAAaD,EAAW1hC,IAAI,CAAC,KACrB4hC,KAAU,GAAG,IAAIC,KAAWC,IAAS,KAAK,wBAAwB,KACxFC,IAAYzV,GAAS;AAAA,QACzB;AAAA,QACA;AAAA,MACR,GACYvI,IAAUE;AAAA,QACd,KAAK;AAAA,QACL,qCAAqCjkB,IAAI,CAAC;AAAA,MAClD;AACM,MAAA+jB,EAAQ,MAAM,YAAY,KAAKnc,CAAC,GAChCmc,EAAQ,MAAM,YAAY,SAAS5G,CAAK,GACxCokB,EAAS,OAAOQ,CAAS;AAAA,IAC3B;AAAA,EACF;AAAA,EACA,gBAAgBzZ,GAAK;AACnB,WAAOjF;AAAA,MACLiF,EAAI;AAAA,MACJA,EAAI;AAAA,MACJ5P,GAAa,MAAMwnB,EAAW,EAAE,sBAAqB;AAAA,MACrDxnB,GAAa,MAAMynB,EAAS,EAAE,sBAAqB;AAAA,IACzD;AAAA,EACE;AAAA,EACA,IAAI,WAAW;AACb,WAAO,KAAK,aAAa,UAAU;AAAA,EACrC;AAAA,EACA,YAAY7X,GAAK;AACf,YAAQA,EAAI,MAAI;AAAA,MACd,KAAK;AACHlQ,QAAAA,GAAgB,MAAM0O,IAAoBC,EAAoB,EAAE,KAAK,MAAMuB,CAAG;AAC9E;AAAA,MACF,KAAK;AACH,aAAK,UAAS;AACd;AAAA,MACF,KAAK;AACHlQ,QAAAA,GAAgB,MAAM6oB,IAAqBC,EAAqB,EAAE,KAAK,MAAM5Y,CAAG;AAChF;AAAA,MACF,KAAK;AACHlQ,QAAAA,GAAgB,MAAM2oB,IAAoBC,EAAoB,EAAE,KAAK,MAAM1Y,CAAG;AAC9E;AAAA,MACF,KAAK;AACHlQ,QAAAA,GAAgB,MAAM4O,IAAkBC,EAAkB,EAAE,KAAK,IAAI;AACrE;AAAA,MACF,KAAK;AACH7O,QAAAA,GAAgB,MAAM+oB,IAAqBC,EAAqB,EAAE,KAAK,IAAI;AAC3E;AAAA,IACR;AAAA,EACE;AAAA,EACA,IAAI,WAAW;AACb,WAAO,CAAC,WAAW,cAAc,aAAa,WAAW;AAAA,EAC3D;AACF;AACA9b,KAAmB,oBAAI,QAAO;AAC9B2a,KAAiB,oBAAI,QAAO;AAC5BC,KAAc,oBAAI,QAAO;AACzBC,KAAY,oBAAI,QAAO;AACvBC,KAAY,oBAAI,QAAO;AACvBC,KAAY,oBAAI,QAAO;AACvBC,KAAa,oBAAI,QAAO;AACxBC,KAAc,oBAAI,QAAO;AACzBC,KAAwB,oBAAI,QAAO;AACnCC,KAAuB,oBAAI,QAAO;AAClCC,KAAyB,SAASpY,GAAK;AACrC,QAAMlE,IAAO1L,GAAa,MAAM0nB,EAAS,EAAE;AAC3C,MAAI,CAAChc;AACH;AACF,QAAM4d,IAAe,KAAK,gBAAgB1Z,CAAG,GAKvCxE,IAAe,qCAJApL,GAAa,MAAM2nB,EAAS,EAAE,UAAU,CAAC7P,GAAOxwB,GAAGiiC,MAAQ;AAC9E,UAAMxR,IAAMwR,EAAIjiC,IAAI,CAAC;AACrB,WAAOywB,KAAO,QAAQuR,KAAgBxR,KAASwR,KAAgBvR;AAAA,EACjE,CAAC,IACwE,CAAC;AAC1E,GAAIrM,EAAK,gBAAgBN,KAAgB,CAACM,EAAK,MAAM,eACnDA,EAAK,eAAeN,GACpBM,EAAK,MAAM;AAAA,IACT;AAAA,IACA;AAAA,EACN;AAEA;AACAuc,KAAoB,oBAAI,QAAO;AAC/BC,KAAsB,WAAW;AAC/B,EAAI,KAAK,aAAa,UAAU,KAAK,CAAC,KAAK,gBAE3C,KAAK,iBAAiB,SAAS,IAAI,GACnC,KAAK,iBAAiB,eAAe,IAAI,GACzC,KAAK,iBAAiB,gBAAgB,IAAI;AAC5C;AACAC,KAAqB,oBAAI,QAAO;AAChCC,KAAuB,WAAW;AAChC,MAAIx1B,GAAIsJ;AACR,OAAK,oBAAoB,SAAS,IAAI,GACtC,KAAK,oBAAoB,eAAe,IAAI,GAC5C,KAAK,oBAAoB,gBAAgB,IAAI,GAC7C,KAAK,oBAAoB,gBAAgB,IAAI,IAC5CtJ,IAAK2V,EAAW,WAAW,QAAgB3V,EAAG,oBAAoB,aAAa,IAAI,IACnFsJ,IAAKqM,EAAW,WAAW,QAAgBrM,EAAG,oBAAoB,eAAe,IAAI;AACxF;AACAmsB,KAAqB,oBAAI,QAAO;AAChCC,KAAuB,SAAS1Y,GAAK;AACnC,MAAIhd;AACJgN,EAAAA,GAAa,MAAM2nB,IAAgB3X,EAAI,aAAY,EAAG,SAAS,KAAK,KAAK,CAAC,IACzEhd,IAAK2V,EAAW,WAAW,QAAgB3V,EAAG,iBAAiB,aAAa,MAAM,EAAE,MAAM,GAAI,CAAE;AACnG;AACA21B,KAAsB,oBAAI,QAAO;AACjCC,KAAwB,SAAS5Y,GAAK;AACpC,MAAIhd;AACJ,EAAIgd,EAAI,gBAAgB,WACtBlQ,GAAgB,MAAM2oB,IAAoBC,EAAoB,EAAE,KAAK,MAAM1Y,CAAG,GAChF,KAAK,iBAAiB,gBAAgB,MAAM,EAAE,MAAM,IAAM,IACzDhd,IAAK2V,EAAW,WAAW,QAAgB3V,EAAG,iBAAiB,eAAe,IAAI;AACrF;AACA0b,KAAmB,oBAAI,QAAO;AAC9BC,KAAqB,WAAW;AAC9B,MAAI3b;AACJ,GAACA,IAAK2V,EAAW,WAAW,QAAgB3V,EAAG,oBAAoB,aAAa,IAAI,GACpF,KAAK,gBAAgB,YAAY,EAAK,GACtC,KAAK,MAAM,WAAW,KAAK,aAAa,UAAU;AACpD;AACA61B,KAAsB,oBAAI,QAAO;AACjCC,KAAwB,WAAW;AACjC,MAAI91B,GAAIsJ;AACR,OAAK,oBAAoB,gBAAgB,IAAI,IAC5CtJ,IAAK2V,EAAW,WAAW,QAAgB3V,EAAG,oBAAoB,eAAe,IAAI,GACtF,KAAK,gBAAgB,YAAY,EAAK,GACtC,KAAK,MAAM,WAAW,KAAK,aAAa,UAAU,IACjDsJ,IAAK8D,GAAa,MAAM0nB,EAAS,EAAE,kBAAkB,QAAgBxrB,EAAG,MAAM,eAAe,WAAW;AAC3G;AACAkS,KAAqB,oBAAI,QAAO;AAChCC,KAAuB,SAASuB,GAAK;AACnC,EAAIA,EAAI,gBAAgB,SAASA,EAAI,YAAY,MAGjD,KAAK;AAAA,IACH;AAAA,IACAA,EAAI,YAAY,KAAKA,EAAI,gBAAgB;AAAA,EAC7C,GACE,KAAK,iBAAiBA,CAAG,GACzBlQ,GAAgB,MAAMqoB,IAAsBC,EAAsB,EAAE,KAAK,MAAMpY,CAAG,GAC9E,KAAK,aAAaA,EAAI,gBAAgB,WAAW,CAAC5P,GAAa,MAAMunB,EAAc,OACrF,KAAK,MAAM,WAAW,IACtB,KAAK,MAAM,gBAAgB,KAAK,gBAAgB3X,CAAG,GACnD,KAAK,MAAM;AAAA,IACT,IAAI,MAAM,SAAS,EAAE,SAAS,IAAM,UAAU,GAAI,CAAE;AAAA,EAC1D;AAEA;AACAgZ,GAAiB,oBAAoB,EAAE,MAAM,OAAM;AACnDA,GAAiB,kBAAkB/b;AACnC+b,GAAiB,2BAA2BD;AACvCpgB,EAAW,eAAe,IAAI,oBAAoB,KACrDA,EAAW,eAAe,OAAO,sBAAsBqgB,EAAgB;AC7kBzE,IAAIrc,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL6Q;AAIJ,SAASC,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6BJ;AACA,MAAM0c,WAAwBjhB,EAAW,YAAY;AAAA,EACnD,cAAc;AAGZ,QAFA,MAAK,GACLxJ,GAAa,MAAM6N,IAAkB,MAAM,GACvC,CAAC,KAAK,YAAY;AACpB,WAAK,aAAa,KAAK,YAAY,iBAAiB;AACpD,YAAMI,IAAQpE,GAAqB,KAAK,UAAU;AAClD,WAAK,WAAW,YAAY,KAAK,YAAY,gBAAgBoE,CAAK;AAAA,IACpE;AAAA,EACF;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO,CAAChK,EAA6B,gBAAgB;AAAA,EACvD;AAAA,EACA,yBAAyBd,GAAUC,GAAUC,GAAU;AACrD,QAAIxP,GAAIsJ,GAAIC,GAAIwC,GAAIhO;AACpB,IAAIuR,MAAac,EAA6B,qBACxCb,OACDjG,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI,IAEvCxK,KAAY,KAAK,gBACnBxC,GAAa,MAAMgN,KAAmBzQ,IAAK,KAAK,kBAAkB,OAAO,SAASA,EAAG,eAAeiG,CAAQ,CAAC,IAC5GzR,KAAMgO,IAAKqB,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASjO,EAAG,qBAAqB,QAAgBhO,EAAG,KAAKgO,GAAI,IAAI;AAAA,EAGnI;AAAA,EACA,oBAAoB;AAClB,QAAI/L,GAAIsJ,GAAIC;AACZ,UAAMkN,IAAoB,KAAK;AAAA,MAC7BrG,EAA6B;AAAA,IACnC;AACI,IAAIqG,MACFzJ,GAAa,MAAMgN,KAAmBha,IAAK,KAAK,YAAW,MAAO,OAAO,SAASA,EAAG;AAAA,MACnFyW;AAAA,IACR,CAAO,IACAlN,KAAMD,IAAK8D,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAAS1Q,EAAG,qBAAqB,QAAgBC,EAAG,KAAKD,GAAI,IAAI;AAAA,EAEjI;AAAA,EACA,uBAAuB;AACrB,QAAItJ,GAAIsJ;AACR,KAACA,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI;AAAA,EAC3C;AACF;AACAA,KAAmB,oBAAI,QAAO;AAC9B4c,GAAgB,oBAAoB,EAAE,MAAM,OAAM;AAClDA,GAAgB,kBAAkB3c;AAC7BtE,EAAW,eAAe,IAAI,mBAAmB,KACpDA,EAAW,eAAe,OAAO,qBAAqBihB,EAAe;ACvGvE,IAAIjd,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL6Q;AAIJ,SAASC,GAAgBC,GAAQoY,IAAS,IAAI;AAC5C;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAwCE,KAAK,oBAAoBpY,GAAQoY,CAAM,CAAC;AAAA;AAAA;AAG9C;AACA,SAASC,GAAoBrY,GAAQoY,GAAQ;AAC3C;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAIJ;AACA,MAAMuE,WAAyBlhB,EAAW,YAAY;AAAA,EACpD,cAAc;AAGZ,QAFA,MAAK,GACLxJ,GAAa,MAAM6N,IAAkB,MAAM,GACvC,CAAC,KAAK,YAAY;AACpB,WAAK,aAAa,KAAK,YAAY,iBAAiB;AACpD,YAAMI,IAAQpE,GAAqB,KAAK,UAAU;AAClD,WAAK,WAAW,YAAY,KAAK,YAAY,gBAAgBoE,CAAK;AAAA,IACpE;AAAA,EACF;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO,CAAChK,EAA6B,gBAAgB;AAAA,EACvD;AAAA,EACA,yBAAyBd,GAAUC,GAAUC,GAAU;AACrD,QAAIxP,GAAIsJ,GAAIC,GAAIwC,GAAIhO;AACpB,IAAIuR,MAAac,EAA6B,qBACxCb,OACDjG,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI,IAEvCxK,KAAY,KAAK,gBACnBxC,GAAa,MAAMgN,KAAmBzQ,IAAK,KAAK,kBAAkB,OAAO,SAASA,EAAG,eAAeiG,CAAQ,CAAC,IAC5GzR,KAAMgO,IAAKqB,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASjO,EAAG,qBAAqB,QAAgBhO,EAAG,KAAKgO,GAAI,IAAI;AAAA,EAGnI;AAAA,EACA,oBAAoB;AAClB,QAAI/L,GAAIsJ,GAAIC;AACZ,UAAM,EAAE,OAAAuO,EAAK,IAAKQ,GAAmB,KAAK,YAAY,OAAO;AAC7D,IAAAR,EAAM;AAAA,MACJ;AAAA,MACA,sCAAsC,KAAK,SAAS;AAAA,IAC1D;AACI,UAAMrB,IAAoB,KAAK;AAAA,MAC7BrG,EAA6B;AAAA,IACnC;AACI,IAAIqG,MACFzJ,GAAa,MAAMgN,KAAmBha,IAAK,KAAK,YAAW,MAAO,OAAO,SAASA,EAAG;AAAA,MACnFyW;AAAA,IACR,CAAO,IACAlN,KAAMD,IAAK8D,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAAS1Q,EAAG,qBAAqB,QAAgBC,EAAG,KAAKD,GAAI,IAAI;AAAA,EAEjI;AAAA,EACA,uBAAuB;AACrB,QAAItJ,GAAIsJ;AACR,KAACA,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI;AAAA,EAC3C;AACF;AACAA,KAAmB,oBAAI,QAAO;AAC9B6c,GAAiB,oBAAoB,EAAE,MAAM,OAAM;AACnDA,GAAiB,kBAAkB5c;AACnC4c,GAAiB,sBAAsBtE;AAClC5c,EAAW,eAAe,IAAI,oBAAoB,KACrDA,EAAW,eAAe,OAAO,sBAAsBkhB,EAAgB;ACnIzE,IAAIld,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2tB;AAMJ,SAASvE,GAAoBrY,GAAQ6c,GAAO;AAC1C;AAAA;AAAA,IAEE;AAAA,YACQ7iB,GAAW6iB,EAAM,aAAa,CAAC;AAAA;AAAA;AAG3C;AACA,MAAMC,WAA6BH,GAAiB;AAAA,EAClD,cAAc;AACZ,QAAI72B;AACJ,UAAK,GACLmM,GAAa,MAAM2qB,IAAO,MAAM,GAChC9pB,GAAa,MAAM8pB,IAAO,KAAK,WAAW,cAAc,MAAM,CAAC,GAC/D1pB,GAAa,MAAM0pB,EAAK,EAAE,cAAc5iB,IAAYlU,IAAK,KAAK,kBAAkB,OAAOA,IAAK,CAAC;AAAA,EAC/F;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO,CAAC,GAAG,MAAM,oBAAoBuQ,EAAkB,cAAc;AAAA,EACvE;AAAA,EACA,yBAAyBjB,GAAUC,GAAUC,GAAU;AACrD,IAAIF,MAAaiB,EAAkB,mBACjCnD,GAAa,MAAM0pB,EAAK,EAAE,cAAc5iB,GAAW,CAAC1E,CAAQ,IAE9D,MAAM,yBAAyBF,GAAUC,GAAUC,CAAQ;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,gBAAgB;AAClB,WAAOyJ,GAAe,MAAM1I,EAAkB,cAAc;AAAA,EAC9D;AAAA,EACA,IAAI,cAAc0mB,GAAM;AACtB,IAAA7d,GAAe,MAAM7I,EAAkB,gBAAgB0mB,CAAI;AAAA,EAC7D;AACF;AACAH,KAAQ,oBAAI,QAAO;AACnBE,GAAqB,sBAAsBzE;AACtC5c,EAAW,eAAe,IAAI,wBAAwB,KACzDA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAqhB;AACJ;AChEA,MAAME,KAAqB;AAAA,EACzB,GAAGziC,EAAE,eAAe;AAAA,EACpB,GAAGA,EAAE,cAAc;AAAA,EACnB,GAAGA,EAAE,sBAAsB;AAAA,EAC3B,GAAGA,EAAE,kBAAkB;AACzB,GACM0iC,KAAuB;AAAA,EAC3B,GAAG1iC,EAAE,oDAAoD;AAAA,EACzD,GAAGA;AAAA,IACD;AAAA,EACJ;AAAA,EACE,GAAGA;AAAA,IACD;AAAA,EACJ;AAAA,EACE,GAAGA,EAAE,6DAA6D;AACpE,GACM2iC,KAAc,CAACvpB,MAAU;AAC7B,MAAI7N,GAAIsJ;AACR,SAAIuE,EAAM,SAAS,IACV,OACF;AAAA,IACL,QAAQ7N,IAAKk3B,GAAmBrpB,EAAM,IAAI,MAAM,OAAO7N,IAAK,SAAS6N,EAAM,IAAI;AAAA,IAC/E,UAAUvE,IAAK6tB,GAAqBtpB,EAAM,IAAI,MAAM,OAAOvE,IAAKuE,EAAM;AAAA,EAC1E;AACA;ACzBA,IAAI8L,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAELkuB;AAWJ,SAAS9E,GAAoBnY,GAAO;AAClC;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAgBoBA,EAAM,cAAc;AAAA,QACpCkd,GAAmB,EAAE,MAAM,CAACld,EAAM,gBAAgB,SAASA,EAAM,mBAAmB,CAAC;AAAA;AAAA;AAAA;AAI7F;AACA,SAASmd,GAAsB1pB,GAAO;AACpC,SAAOA,EAAM,QAAQupB,GAAYvpB,CAAK,MAAM;AAC9C;AACA,SAASypB,GAAmBzpB,GAAO;AACjC,MAAI7N;AACJ,QAAM,EAAE,OAAAw3B,GAAO,SAAAC,EAAO,KAAMz3B,IAAKo3B,GAAYvpB,CAAK,MAAM,OAAO7N,IAAK,CAAA;AACpE,MAAIyd,IAAO;AACX,SAAI+Z,MACF/Z,KAAQ,qBAAqB5P,EAAM,IAAI,eAAe2pB,CAAK,iBACzDC,MACFha,KAAQ,qBAAqB5P,EAAM,IAAI,gBAAgB4pB,CAAO,gBACzDha;AACT;AACA,MAAMuR,KAAqB;AAAA,EACzBze,EAAkB;AAAA,EAClBA,EAAkB;AACpB;AACA,MAAMmnB,WAAyBpD,GAAkB;AAAA,EAC/C,cAAc;AACZ,UAAM,GAAG,SAAS,GAClBnoB,GAAa,MAAMkrB,IAAa,IAAI;AAAA,EACtC;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO,CAAC,GAAG,MAAM,oBAAoB,GAAGrI,EAAkB;AAAA,EAC5D;AAAA,EACA,mBAAmBnhB,GAAO;AACxB,WAAO,KAAK,YAAY,mBAAmBA,CAAK;AAAA,EAClD;AAAA,EACA,yBAAyByB,GAAUC,GAAUC,GAAU;AACrD,QAAIxP;AAEJ,QADA,MAAM,yBAAyBsP,GAAUC,GAAUC,CAAQ,GACvD,CAACwf,GAAmB,SAAS1f,CAAQ;AACvC;AACF,UAAMqoB,KAAc33B,IAAK,KAAK,eAAe,OAAOA,IAAK;AAAA,MACvD,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,IACpB;AAEI,QADA,KAAK,OAAOu3B,GAAsBI,CAAU,GACxC,KAAK,SACP,KAAK,WAAW,cAAc,MAAM,EAAE,OAAO,SAAS,KAAK,cAAc,IACzE,KAAK,WAAW,cAAc,UAAU,EAAE,YAAY,KAAK,mBAAmBA,CAAU,GACpF,CAAC,KAAK,aAAa,YAAY,IAAG;AACpC,YAAM,EAAE,OAAAH,EAAK,IAAKJ,GAAYO,CAAU;AACxC,MAAIH,KACF,KAAK,aAAa,cAAcA,CAAK;AAAA,IACzC;AAAA,EAEJ;AAAA,EACA,IAAI,aAAa;AACf,WAAOpqB,GAAa,MAAMiqB,EAAW;AAAA,EACvC;AAAA,EACA,IAAI,WAAWluB,GAAO;AACpB6D,IAAAA,GAAa,MAAMqqB,IAAaluB,CAAK;AAAA,EACvC;AAAA,EACA,IAAI,iBAAiB;AACnB,WAAO8P,GAAe,MAAM,gBAAgB;AAAA,EAC9C;AAAA,EACA,IAAI,eAAe9P,GAAO;AACxB,IAAAiQ,GAAe,MAAM,kBAAkBjQ,CAAK;AAAA,EAC9C;AAAA,EACA,IAAI,oBAAoB;AACtB,WAAOqQ,GAAc,MAAM,mBAAmB;AAAA,EAChD;AAAA,EACA,IAAI,kBAAkBrQ,GAAO;AAC3B,IAAAsQ,GAAc,MAAM,qBAAqBtQ,CAAK;AAAA,EAChD;AACF;AACAkuB,KAAc,oBAAI,QAAO;AACzBK,GAAiB,sBAAsBnF;AACvCmF,GAAiB,qBAAqBJ;AACjC3hB,EAAW,eAAe,IAAI,oBAAoB,KACrDA,EAAW,eAAe,OAAO,sBAAsB+hB,EAAgB;AAEzE,IAAIE,KAA6BF,IC/H7B/d,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI0uB,IAAe/K;AAGnB,SAASyF,GAAoBrY,GAAQ;AACnC;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAqFI4d,GAAuB,CAAE;AAAA;AAAA;AAAA;AAIjC;AACA,SAASA,KAA0B;AA2BjC,SAAO;AAAA;AAAA,qCA1BW;AAAA,IAChB,EAAE,MAAM,CAAC,SAAS,GAAG,GAAG,aAAa,kBAAiB;AAAA,IACtD,EAAE,MAAM,CAAC,GAAG,GAAG,aAAa,cAAa;AAAA,IACzC,EAAE,MAAM,CAAC,GAAG,GAAG,aAAa,oBAAmB;AAAA,IAC/C,EAAE,MAAM,CAAC,GAAG,GAAG,aAAa,6CAA4C;AAAA,IACxE,EAAE,MAAM,CAAC,GAAG,GAAG,aAAa,4BAA2B;AAAA,IACvD,EAAE,MAAM,CAAC,KAAU,GAAG,GAAG,aAAa,gBAAe;AAAA,IACrD,EAAE,MAAM,CAAC,KAAU,GAAG,GAAG,aAAa,mBAAkB;AAAA,IACxD,EAAE,MAAM,CAAC,GAAQ,GAAG,aAAa,iBAAgB;AAAA,IACjD,EAAE,MAAM,CAAC,GAAQ,GAAG,aAAa,mBAAkB;AAAA,IACnD,EAAE,MAAM,CAAC,aAAa,GAAG,aAAa,yBAAwB;AAAA,IAC9D,EAAE,MAAM,CAAC,aAAa,GAAG,aAAa,yBAAwB;AAAA,EAClE,EACyB,IAAI,CAAC,EAAE,MAAAC,GAAM,aAAAC,QAI3B;AAAA;AAAA;AAAA,mCAHUD,EAAK;AAAA,IACpB,CAACtnB,GAAKwD,MAAUA,IAAQ,IAAI,0DAA0DxD,CAAG,YAAY,qBAAqBA,CAAG;AAAA,EACnI,EAAM,KAAK,EAAE,CAI8B;AAAA;AAAA,kCAETunB,CAAW;AAAA;AAAA,KAG1C,EAAE,KAAK,EAAE,CAG6B;AAAA;AAEzC;AACA,MAAMC,WAAqC3D,GAAkB;AAAA,EAC3D,cAAc;AACZ,UAAM,GAAG,SAAS,GAClBnoB,GAAa,MAAM0rB,IAAe,CAAC,MAAM;AACvC,UAAI73B;AACJ,UAAI,CAAC,KAAK;AACR;AACF,YAAMk4B,KAAWl4B,IAAK,KAAK,eAAe,OAAO,SAASA,EAAG,cAAc,UAAU;AACrF,UAAI,CAACk4B;AACH;AACF,YAAMC,IAAO,EAAE,aAAY,GACrBC,IAAgBD,EAAK,CAAC,MAAM,QAAQA,EAAK,SAAS,IAAI,GACtDE,IAAuBF,EAAK,SAASD,CAAO;AAClD,MAAIE,KAAiB,CAACC,MACpB,KAAK,OAAO;AAAA,IAEhB,CAAC,GACDlsB,GAAa,MAAM2gB,IAAiB,CAAC,MAAM;AACzC,UAAI,CAAC,KAAK;AACR;AACF,YAAM6B,IAAe,EAAE,aAAa,EAAE,QAAQ,OAAO,EAAE,QAAQ;AAC/D,OAAK,EAAE,QAAQ,YAAYA,MAAiB,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YACxE,KAAK,OAAO,IACZ,EAAE,eAAc,GAChB,EAAE,gBAAe;AAAA,IAErB,CAAC;AAAA,EACH;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACnB,KAAK,SACP,KAAK,iBAAiB,SAASvhB,GAAa,MAAMyqB,EAAa,CAAC,GAChE,SAAS,iBAAiB,WAAWzqB,GAAa,MAAM0f,EAAe,CAAC;AAAA,EAE5E;AAAA,EACA,uBAAuB;AACrB,SAAK,oBAAoB,SAAS1f,GAAa,MAAMyqB,EAAa,CAAC,GACnE,SAAS,oBAAoB,WAAWzqB,GAAa,MAAM0f,EAAe,CAAC;AAAA,EAC7E;AAAA,EACA,yBAAyBxd,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAa,WACX,KAAK,QACP,KAAK,iBAAiB,SAASlC,GAAa,MAAMyqB,EAAa,CAAC,GAChE,SAAS,iBAAiB,WAAWzqB,GAAa,MAAM0f,EAAe,CAAC,MAExE,KAAK,oBAAoB,SAAS1f,GAAa,MAAMyqB,EAAa,CAAC,GACnE,SAAS,oBAAoB,WAAWzqB,GAAa,MAAM0f,EAAe,CAAC;AAAA,EAGjF;AACF;AACA+K,KAAgB,oBAAI,QAAO;AAC3B/K,KAAkB,oBAAI,QAAO;AAC7BmL,GAA6B,sBAAsB1F;AAC9C5c,EAAW,eAAe,IAAI,iCAAiC,KAClEA,EAAW,eAAe,OAAO,mCAAmCsiB,EAA4B;ACrMlG,IAAIte,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GACjBA,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAELmvB;AAWJ,MAAMC,KAAsB;AAAA;AAAA,SAGtBC,KAAqB;AAAA;AAAA;AAG3B,SAASjG,GAAoBrY,GAAQ;AACnC;AAAA;AAAA,IAEE;AAAA;AAAA,eAEW3J,EAAkB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMhCA,EAAkB,mBAAmB;AAAA;AAAA;AAAA;AAAA,eAI1CA,EAAkB,mBAAmB;AAAA,oBAChCA,EAAkB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAM9BgoB,EAAmB;AAAA,0BACpBC,EAAkB;AAAA;AAAA;AAAA;AAI5C;AACA,SAAShG,KAAwB;AAC/B;AAAA;AAAA,IAEE;AAAA,iCAC6B/9B,EAAE,uBAAuB,CAAC;AAAA,gCAC3BA,EAAE,sBAAsB,CAAC;AAAA;AAAA;AAGzD;AACA,MAAMm+B,KAAkB,CAAC5pB,MAAO;AAC9B,QAAMqJ,IAAQrJ,EAAG,oBAAoBvU,EAAE,sBAAsB,IAAIA,EAAE,uBAAuB;AAC1F,EAAAuU,EAAG,aAAa,cAAcqJ,CAAK;AACrC;AACA,MAAMomB,WAA8BhG,GAAkB;AAAA,EACpD,cAAc;AACZ,UAAM,GAAG,SAAS,GAClBtmB,GAAa,MAAMmsB,IAAkB,IAAI;AAAA,EAC3C;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACT/nB,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvBqiB,GAAgB,IAAI;AAAA,EACtB;AAAA,EACA,yBAAyBtjB,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAaiB,EAAkB,uBACjCqiB,GAAgB,IAAI;AAAA,EAExB;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,6BAA6B;AAC/B,WAAOpZ,GAAc,MAAMjJ,EAAkB,4BAA4B;AAAA,EAC3E;AAAA,EACA,IAAI,2BAA2BpH,GAAO;AACpC,IAAAsQ,GAAc,MAAMlJ,EAAkB,8BAA8BpH,CAAK;AAAA,EAC3E;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,oBAAoB;AACtB,WAAOmQ,EAAe,MAAM/I,EAAkB,mBAAmB;AAAA,EACnE;AAAA,EACA,IAAI,kBAAkBpH,GAAO;AAC3B,IAAAoQ,EAAe,MAAMhJ,EAAkB,qBAAqBpH,CAAK;AAAA,EACnE;AAAA,EACA,YAAY,GAAG;AACb6D,IAAAA,GAAa,MAAMsrB,IAAkB,CAAC;AACtC,UAAMI,IAAiBtrB,GAAa,MAAMkrB,EAAgB,aAAa,cACjEhrB,IAAQ,KAAK,oBAAoB,IAAIqI,EAAW;AAAA,MACpDxF,EAAc;AAAA,MACd,EAAE,UAAU,IAAM,SAAS,GAAI;AAAA,IACrC,IAAQ,IAAIwF,EAAW;AAAA,MACjBxF,EAAc;AAAA,MACd,EAAE,UAAU,IAAM,SAAS,IAAM,QAAQuoB,EAAc;AAAA,IAC7D;AACI,SAAK,cAAcprB,CAAK;AAAA,EAC1B;AACF;AACAgrB,KAAmB,oBAAI,QAAO;AAC9BG,GAAsB,sBAAsBlG;AAC5CkG,GAAsB,wBAAwBjG;AACzC7c,EAAW,eAAe,IAAI,yBAAyB,KAC1DA,EAAW,eAAe;AAAA,EACxB;AAAA,EACA8iB;AACJ;ACnIA,MAAM,EAAE,oBAAAE,IAAoB,cAAAC,GAAY,IAAKroB,GACvC,EAAE,4BAAAsoB,IAA4B,oBAAAC,GAAkB,IAAK3oB,GACrD4oB,KAAe;AACrB,SAASxG,GAAoBrY,GAAQ;AACnC;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAaWye,EAAkB,UAAUC,EAAY;AAAA,eACxCD,EAAkB,UAAUC,EAAY;AAAA;AAAA;AAAA;AAAA;AAAA,eAKxCD,EAAkB,UAAUC,EAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAU1BG,EAAY;AAAA;AAAA,yDAMgBtkC,EAAE,MAAM,CAAC;AAAA;AAAA;AAGlE;AACA,MAAMukC,KAAuB,CAAChwB,MAAO;AACnC,MAAIhJ;AACJ,QAAMi5B,IAAoBjwB,EAAG,eAAe,CAACA,EAAG,iBAC1CqJ,IAA4B5d,EAApBwkC,IAAsB,iBAAoB,cAAN;AAClD,EAAAjwB,EAAG,aAAa,cAAcqJ,CAAK;AACnC,QAAM6mB,KAAYl5B,IAAKgJ,EAAG,eAAe,OAAO,SAAShJ,EAAG,cAAc,mBAAmB;AAC7F,EAAIk5B,MACFA,EAAS,cAAczkC,EAAE,MAAM,IACjCwkC,IAAoBjwB,EAAG,gBAAgB,eAAe,IAAIA,EAAG,aAAa,iBAAiB,MAAM;AACnG;AACA,MAAMmwB,WAAwB1G,GAAkB;AAAA,EAC9C,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTkG;AAAA,MACAC;AAAA,IACN;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvBI,GAAqB,IAAI;AAAA,EAC3B;AAAA,EACA,yBAAyB1pB,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GAC3DwpB,GAAqB,IAAI;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,cAAc;AAChB,WAAO1f,EAAe,MAAM/I,EAAkB,YAAY;AAAA,EAC5D;AAAA,EACA,IAAI,YAAYpH,GAAO;AACrB,IAAAoQ,EAAe,MAAMhJ,EAAkB,cAAcpH,CAAK;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,kBAAkB;AACpB,WAAOmQ,EAAe,MAAM/I,EAAkB,kBAAkB;AAAA,EAClE;AAAA,EACA,IAAI,gBAAgBpH,GAAO;AACzB,IAAAoQ,EAAe,MAAMhJ,EAAkB,oBAAoBpH,CAAK;AAAA,EAClE;AAAA,EACA,cAAc;AACZ,IAAI,CAAC,KAAK,eAAe,KAAK,oBAE9B,KAAK;AAAA,MACH,IAAIwM,EAAW,YAAYkjB,IAA4B;AAAA,QACrD,UAAU;AAAA,QACV,SAAS;AAAA,MACjB,CAAO;AAAA,IACP,GACQ,KAAK,aAAaD,EAAY,KAChC,KAAK;AAAA,MACH,IAAIjjB,EAAW,YAAYmjB,IAAoB;AAAA,QAC7C,UAAU;AAAA,QACV,SAAS;AAAA,MACnB,CAAS;AAAA,IACT;AAAA,EAEE;AACF;AACAK,GAAgB,sBAAsB5G;AACjC5c,EAAW,eAAe,IAAI,mBAAmB,KACpDA,EAAW,eAAe,OAAO,qBAAqBwjB,EAAe;ACnHvE,IAAIxf,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL6Q,IAAkBof;AAetB,MAAMhd,KAAa;AAAA,EACjB,eAAe;AAAA,EACf,aAAa;AACf,GACMid,KAAwB,KACxBC,KAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAc7B,SAASrf,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sFAMkFmf,EAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAe5F9oB,EAAkB,aAAa,UAAUA,EAAkB,YAAY;AAAA,eACvEA,EAAkB,aAAa,UAAUA,EAAkB,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAUvEA,EAAkB,aAAa,UAAUA,EAAkB,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAa9D+oB,EAAoB;AAAA,wDACY7kC,EAAE,eAAe,CAAC;AAAA;AAAA;AAG1E;AACA,MAAM8kC,WAA8B5jB,EAAW,YAAY;AAAA,EACzD,cAAc;AAIZ,QAHA,MAAK,GACLxJ,GAAa,MAAM6N,IAAkB,MAAM,GAC3C7N,GAAa,MAAMitB,IAAQC,EAAqB,GAC5C,CAAC,KAAK,YAAY;AACpB,WAAK,aAAa,KAAK,YAAY,iBAAiB;AACpD,YAAMjf,IAAQpE,GAAqB,KAAK,UAAU;AAClD,WAAK,WAAW,YAAY,KAAK,YAAY,gBAAgBoE,CAAK;AAAA,IACpE;AAAA,EACF;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACLhK,EAA6B;AAAA,MAC7BG,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClB6L,GAAW;AAAA,IACjB;AAAA,EACE;AAAA,EACA,yBAAyB9M,GAAUC,GAAUC,GAAU;AACrD,QAAIxP,GAAIsJ,GAAIC,GAAIwC,GAAIhO;AACpB,IAAIuR,MAAa8M,GAAW,iBAAiB7M,MAAaC,IACxD,KAAK,eAAe,OAAOA,CAAQ,IAC1BF,MAAac,EAA6B,qBAC/Cb,OACDjG,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI,IAEvCxK,KAAY,KAAK,gBACnBxC,GAAa,MAAMgN,KAAmBzQ,IAAK,KAAK,kBAAkB,OAAO,SAASA,EAAG,eAAeiG,CAAQ,CAAC,IAC5GzR,KAAMgO,IAAKqB,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASjO,EAAG,qBAAqB,QAAgBhO,EAAG,KAAKgO,GAAI,IAAI;AAAA,EAGnI;AAAA,EACA,oBAAoB;AAClB,QAAI/L,GAAIsJ,GAAIC;AACZ,UAAMkN,IAAoB,KAAK;AAAA,MAC7BrG,EAA6B;AAAA,IACnC;AACI,IAAIqG,MACFzJ,GAAa,MAAMgN,KAAmBha,IAAK,KAAK,YAAW,MAAO,OAAO,SAASA,EAAG;AAAA,MACnFyW;AAAA,IACR,CAAO,IACAlN,KAAMD,IAAK8D,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAAS1Q,EAAG,qBAAqB,QAAgBC,EAAG,KAAKD,GAAI,IAAI;AAAA,EAEjI;AAAA,EACA,uBAAuB;AACrB,QAAItJ,GAAIsJ;AACR,KAACA,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,eAAe;AACjB,WAAO5M,GAAa,MAAMgsB,EAAM;AAAA,EAClC;AAAA,EACA,IAAI,aAAaxmB,GAAO;AACtB5F,IAAAA,GAAa,MAAMosB,IAAQxmB,CAAK;AAChC,UAAM,EAAE,OAAAkF,EAAK,IAAKQ,GAAmB,KAAK,YAAY,OAAO;AAC7D,IAAAR,EAAM;AAAA,MACJ;AAAA,MACA,mDAAmDlF,CAAK;AAAA,IAC9D;AAAA,EACE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,cAAc;AAChB,WAAO0G,EAAe,MAAM/I,EAAkB,YAAY;AAAA,EAC5D;AAAA,EACA,IAAI,YAAYpH,GAAO;AACrB,IAAAoQ,EAAe,MAAMhJ,EAAkB,cAAcpH,CAAK;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,eAAe;AACjB,WAAOmQ,EAAe,MAAM/I,EAAkB,aAAa;AAAA,EAC7D;AAAA,EACA,IAAI,aAAapH,GAAO;AACtB,IAAAoQ,EAAe,MAAMhJ,EAAkB,eAAepH,CAAK;AAAA,EAC7D;AAAA,EACA,IAAI,kBAAkB;AACpB,WAAOqQ,GAAc,MAAMpJ,EAA6B,gBAAgB;AAAA,EAC1E;AAAA,EACA,IAAI,gBAAgBjH,GAAO;AACzB,IAAAsQ,GAAc,MAAMrJ,EAA6B,kBAAkBjH,CAAK;AAAA,EAC1E;AAAA,EACA,IAAI,aAAa;AACf,WAAOmQ,EAAe,MAAM8C,GAAW,WAAW;AAAA,EACpD;AAAA,EACA,IAAI,WAAWjT,GAAO;AACpB,IAAAoQ,EAAe,MAAM6C,GAAW,aAAajT,CAAK;AAAA,EACpD;AACF;AACA6Q,KAAmB,oBAAI,QAAO;AAC9Bof,KAAS,oBAAI,QAAO;AACpBG,GAAsB,oBAAoB,EAAE,MAAM,OAAM;AACxDA,GAAsB,kBAAkBtf;AACnCtE,EAAW,eAAe,IAAI,yBAAyB,KAC1DA,EAAW,eAAe;AAAA,EACxB;AAAA,EACA4jB;AACJ;AC5MA,MAAMC,KAAU;AAAA;AAAA,SAGVC,KAAU;AAAA;AAAA,SAGVC,KAAW;AAAA;AAAA;AAGjB,SAASnH,GAAoBrY,GAAQ;AACnC;AAAA;AAAA,IAEE;AAAA;AAAA,oBAEgB3J,EAAkB,kBAAkB;AAAA,eACzCA,EAAkB,kBAAkB;AAAA;AAAA;AAAA;AAAA,eAIpCA,EAAkB,kBAAkB;AAAA;AAAA;AAAA;AAAA,eAIpCA,EAAkB,kBAAkB;AAAA;AAAA;AAAA;AAAA,eAIpCA,EAAkB,kBAAkB;AAAA;AAAA;AAAA;AAAA,oBAI/BA,EAAkB,kBAAkB;AAAA,eACzCA,EAAkB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAM1BipB,EAAO;AAAA,yBACPC,EAAO;AAAA,4BACJA,EAAO;AAAA,0BACTC,EAAQ;AAAA;AAAA;AAAA;AAIlC;AACA,SAASlH,KAAwB;AAC/B;AAAA;AAAA,IAEE;AAAA,gCAC4B/9B,EAAE,MAAM,CAAC;AAAA,kCACPA,EAAE,QAAQ,CAAC;AAAA;AAAA;AAG7C;AACA,MAAMm+B,KAAkB,CAAC5pB,MAAO;AAC9B,QAAM2wB,IAAQ3wB,EAAG,qBAAqB,OAChCqJ,IAAgB5d,EAARklC,IAAU,WAAc,MAAN;AAChC,EAAA3wB,EAAG,aAAa,cAAcqJ,CAAK;AACrC;AACA,MAAMunB,WAAwBnH,GAAkB;AAAA,EAC9C,WAAW,qBAAqB;AAC9B,WAAO,CAAC,GAAG,MAAM,oBAAoBliB,EAAkB,kBAAkB;AAAA,EAC3E;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvBqiB,GAAgB,IAAI;AAAA,EACtB;AAAA,EACA,yBAAyBtjB,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAaiB,EAAkB,sBACjCqiB,GAAgB,IAAI;AAAA,EAExB;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,mBAAmB;AACrB,WAAOpZ,GAAc,MAAMjJ,EAAkB,kBAAkB;AAAA,EACjE;AAAA,EACA,IAAI,iBAAiBpH,GAAO;AAC1B,IAAAsQ,GAAc,MAAMlJ,EAAkB,oBAAoBpH,CAAK;AAAA,EACjE;AAAA,EACA,cAAc;AACZ,UAAMyR,IAAY,KAAK,qBAAqB,QAAQzK,EAAc,uBAAuBA,EAAc;AACvG,SAAK;AAAA,MACH,IAAIwF,EAAW,YAAYiF,GAAW,EAAE,UAAU,IAAM,SAAS,GAAI,CAAE;AAAA,IAC7E;AAAA,EACE;AACF;AACAgf,GAAgB,sBAAsBrH;AACtCqH,GAAgB,wBAAwBpH;AACnC7c,EAAW,eAAe,IAAI,mBAAmB,KACpDA,EAAW,eAAe,OAAO,qBAAqBikB,EAAe;ACxFvE,MAAMC,KAAU;AAAA;AAAA;AAGhB,SAAStH,GAAoBrY,GAAQ;AACnC;AAAA;AAAA,IAEE;AAAA;AAAA,eAEW3J,EAAkB,YAAY;AAAA;AAAA;AAAA;AAAA,oBAIzBA,EAAkB,YAAY;AAAA;AAAA;AAAA;AAAA,eAInCA,EAAkB,YAAY;AAAA,oBACzBA,EAAkB,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAMvBspB,EAAO;AAAA,0BACRA,EAAO;AAAA;AAAA;AAAA;AAIjC;AACA,SAASrH,KAAwB;AAC/B;AAAA;AAAA,IAEE;AAAA,iCAC6B/9B,EAAE,+BAA+B,CAAC;AAAA,gCACnCA,EAAE,8BAA8B,CAAC;AAAA;AAAA;AAGjE;AACA,MAAMm+B,KAAkB,CAAC5pB,MAAO;AAC9B,QAAMqJ,IAAQrJ,EAAG,aAAavU,EAAE,8BAA8B,IAAIA,EAAE,+BAA+B;AACnG,EAAAuU,EAAG,aAAa,cAAcqJ,CAAK;AACrC;AACA,MAAMynB,WAAuBrH,GAAkB;AAAA,EAC7C,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTliB,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvBqiB,GAAgB,IAAI;AAAA,EACtB;AAAA,EACA,yBAAyBtjB,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAaiB,EAAkB,gBACjCqiB,GAAgB,IAAI;AAAA,EAExB;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,sBAAsB;AACxB,WAAOpZ,GAAc,MAAMjJ,EAAkB,qBAAqB;AAAA,EACpE;AAAA,EACA,IAAI,oBAAoBpH,GAAO;AAC7B,IAAAsQ,GAAc,MAAMlJ,EAAkB,uBAAuBpH,CAAK;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,aAAa;AACf,WAAOmQ,EAAe,MAAM/I,EAAkB,YAAY;AAAA,EAC5D;AAAA,EACA,IAAI,WAAWpH,GAAO;AACpB,IAAAoQ,EAAe,MAAMhJ,EAAkB,cAAcpH,CAAK;AAAA,EAC5D;AAAA,EACA,cAAc;AACZ,UAAMyR,IAAY,KAAK,aAAazK,EAAc,yBAAyBA,EAAc;AACzF,SAAK;AAAA,MACH,IAAIwF,EAAW,YAAYiF,GAAW,EAAE,UAAU,IAAM,SAAS,GAAI,CAAE;AAAA,IAC7E;AAAA,EACE;AACF;AACAkf,GAAe,sBAAsBvH;AACrCuH,GAAe,wBAAwBtH;AAClC7c,EAAW,eAAe,IAAI,kBAAkB,KACnDA,EAAW,eAAe,OAAO,oBAAoBmkB,EAAc;AClGrE,IAAIngB,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI4wB;AAOJ,MAAM3d,KAAa;AAAA,EACjB,OAAO;AACT,GACM4d,KAAgB,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,GACpCC,KAAe;AACrB,SAAS1H,GAAoBnY,GAAO;AAClC;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAOoBA,EAAM,qBAAwB6f,EAAY;AAAA;AAAA;AAGlE;AACA,SAASzH,KAAwB;AAC/B,SAAO/9B,EAAE,eAAe;AAC1B;AACA,MAAMylC,WAAgCzH,GAAkB;AAAA,EACtD,cAAc;AACZ,QAAIzyB;AACJ,UAAK,GACLmM,GAAa,MAAM4tB,IAAQ,IAAIxb,GAAmB,MAAMnC,GAAW,OAAO;AAAA,MACxE,cAAc4d;AAAA,IACpB,CAAK,CAAC,GACF,KAAK,YAAY,KAAK,WAAW,cAAc,mBAAmB,GAClE,KAAK,UAAU,YAAY,IAAIh6B,IAAK,KAAK,sBAAsB,OAAOA,IAAKi6B,EAAY;AAAA,EACzF;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACT1pB,EAAkB;AAAA,MAClB6L,GAAW;AAAA,IACjB;AAAA,EACE;AAAA,EACA,yBAAyB9M,GAAUC,GAAUC,GAAU;AAKrD,QAJA,MAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAa8M,GAAW,UAC1BhP,GAAa,MAAM2sB,EAAM,EAAE,QAAQvqB,IAEjCF,MAAaiB,EAAkB,qBAAqB;AACtD,YAAM4pB,IAAkB3qB,IAAW,CAACA,IAAW,OAAO,KAChDgf,IAAgB,OAAO,MAAM2L,CAAe,IAAsBF,KAAlBE;AACtD,WAAK,UAAU,YAAY,GAAG3L,CAAY,KAC1C,KAAK;AAAA,QACH;AAAA,QACA/5B,EAAE,gCAAgC,EAAE,cAAA+5B,EAAY,CAAE;AAAA,MAC1D;AAAA,IACI;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,QAAQ;AACV,WAAOphB,GAAa,MAAM2sB,EAAM;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,MAAM5wB,GAAO;AACf,IAAKA,IAEM,MAAM,QAAQA,CAAK,IAC5BiE,GAAa,MAAM2sB,EAAM,EAAE,QAAQ5wB,EAAM,KAAK,GAAG,IACxC,OAAOA,KAAU,aAC1BiE,GAAa,MAAM2sB,EAAM,EAAE,QAAQ5wB,KAJnCiE,GAAa,MAAM2sB,EAAM,EAAE,QAAQ;AAAA,EAMvC;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,oBAAoB;AACtB,WAAO9gB;AAAA,MACL;AAAA,MACA1I,EAAkB;AAAA,MAClB0pB;AAAAA,IACN;AAAA,EACE;AAAA,EACA,IAAI,kBAAkB9wB,GAAO;AAC3B,IAAAiQ,GAAe,MAAM7I,EAAkB,qBAAqBpH,CAAK;AAAA,EACnE;AAAA,EACA,cAAc;AACZ,QAAInJ,GAAIsJ;AACR,UAAM8wB,IAAiB,MAAM,KAAKhtB,GAAa,MAAM2sB,EAAM,EAAE,OAAM,GAAI,CAACpnB,MAAQ,CAACA,CAAG,EAAE;AAAA,MACpF,CAAChe,GAAGiI,MAAMjI,IAAIiI;AAAA,IACpB,GACUmqB,KAAUzd,KAAMtJ,IAAKo6B,EAAe,KAAK,CAAC9lC,MAAMA,IAAI,KAAK,iBAAiB,MAAM,OAAO0L,IAAKo6B,EAAe,CAAC,MAAM,OAAO9wB,IAAK2wB,IAC9Hjd,IAAM,IAAIrH,EAAW;AAAA,MACzBxF,EAAc;AAAA,MACd,EAAE,UAAU,IAAM,SAAS,IAAM,QAAA4W,EAAM;AAAA,IAC7C;AACI,SAAK,cAAc/J,CAAG;AAAA,EACxB;AACF;AACA+c,KAAS,oBAAI,QAAO;AACpBG,GAAwB,sBAAsB3H;AAC9C2H,GAAwB,wBAAwB1H;AAC3C7c,EAAW,eAAe,IAAI,4BAA4B,KAC7DA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAukB;AACJ;ACzHA,MAAMG,KAAW;AAAA;AAAA,SAGXC,KAAY;AAAA;AAAA;AAGlB,SAAS/H,GAAoBrY,GAAQ;AACnC;AAAA;AAAA,IAEE;AAAA;AAAA,eAEW3J,EAAkB,YAAY;AAAA,oBACzBA,EAAkB,YAAY;AAAA;AAAA;AAAA;AAAA,eAInCA,EAAkB,YAAY;AAAA,oBACzBA,EAAkB,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAMxB8pB,EAAQ;AAAA,2BACPC,EAAS;AAAA;AAAA;AAAA;AAIpC;AACA,SAAS9H,KAAwB;AAC/B;AAAA;AAAA,IAEE;AAAA,gCAC4B/9B,EAAE,MAAM,CAAC;AAAA,iCACRA,EAAE,OAAO,CAAC;AAAA;AAAA;AAG3C;AACA,MAAMm+B,KAAkB,CAAC5pB,MAAO;AAC9B,QAAMqJ,IAAQrJ,EAAG,cAAcvU,EAAE,MAAM,IAAIA,EAAE,OAAO;AACpD,EAAAuU,EAAG,aAAa,cAAcqJ,CAAK;AACrC;AACA,MAAMkoB,WAAwB9H,GAAkB;AAAA,EAC9C,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTliB,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvBqiB,GAAgB,IAAI;AAAA,EACtB;AAAA,EACA,yBAAyBtjB,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,IACvDF,MAAaiB,EAAkB,gBAAgBjB,MAAaiB,EAAkB,eAChFqiB,GAAgB,IAAI;AAAA,EAExB;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,cAAc;AAChB,WAAOtZ,EAAe,MAAM/I,EAAkB,YAAY;AAAA,EAC5D;AAAA,EACA,IAAI,YAAYpH,GAAO;AACrB,IAAAoQ,EAAe,MAAMhJ,EAAkB,cAAcpH,CAAK;AAAA,EAC5D;AAAA,EACA,cAAc;AACZ,UAAMyR,IAAY,KAAK,cAAczK,EAAc,qBAAqBA,EAAc;AACtF,SAAK;AAAA,MACH,IAAIwF,EAAW,YAAYiF,GAAW,EAAE,UAAU,IAAM,SAAS,GAAI,CAAE;AAAA,IAC7E;AAAA,EACE;AACF;AACA2f,GAAgB,sBAAsBhI;AACtCgI,GAAgB,wBAAwB/H;AACnC7c,EAAW,eAAe,IAAI,mBAAmB,KACpDA,EAAW,eAAe,OAAO,qBAAqB4kB,EAAe;AClFvE,MAAMne,KAAa;AAAA,EACjB,iBAAiB;AAAA,EACjB,KAAK;AACP;AACA,SAASnC,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwBJ;AACA,MAAMsgB,KAAuB,CAACxxB,MAAO;AACnC,EAAAA,EAAG,MAAM,eAAe,kBAAkB;AAC5C,GACMyxB,KAAqB,CAACzxB,GAAI0xB,MAAU;AACxC,EAAA1xB,EAAG,MAAM,kBAAkB,IAAI,QAAQ0xB,CAAK;AAC9C;AACA,MAAMC,WAAyBhlB,EAAW,YAAY;AAAA,EACpD,WAAW,qBAAqB;AAC9B,WAAO,CAACyG,GAAW,iBAAiBA,GAAW,GAAG;AAAA,EACpD;AAAA,EACA,cAAc;AAEZ,QADA,MAAK,GACD,CAAC,KAAK,YAAY;AACpB,WAAK,aAAa,KAAK,YAAY,iBAAiB;AACpD,YAAMhC,IAAQpE,GAAqB,KAAK,UAAU;AAClD,WAAK,WAAW,YAAY,KAAK,YAAY,gBAAgBoE,CAAK;AAAA,IACpE;AACA,SAAK,QAAQ,KAAK,WAAW,cAAc,QAAQ;AAAA,EACrD;AAAA,EACA,yBAAyB9K,GAAUC,GAAUC,GAAU;AACrD,IAAIF,MAAa8M,GAAW,QACtB5M,KAAY,OACd,KAAK,MAAM,gBAAgB4M,GAAW,GAAG,IAEzC,KAAK,MAAM,aAAaA,GAAW,KAAK5M,CAAQ,IAGhDF,MAAa8M,GAAW,oBACtB5M,KAAY,OACdgrB,GAAqB,KAAK,KAAK,IAE/BC,GAAmB,KAAK,OAAOjrB,CAAQ;AAAA,EAG7C;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,iBAAiB;AACnB,WAAOgK,GAAc,MAAM4C,GAAW,eAAe;AAAA,EACvD;AAAA,EACA,IAAI,eAAejT,GAAO;AACxB,IAAAsQ,GAAc,MAAM2C,GAAW,KAAKjT,CAAK;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,MAAM;AACR,WAAOqQ,GAAc,MAAM4C,GAAW,GAAG;AAAA,EAC3C;AAAA,EACA,IAAI,IAAIjT,GAAO;AACb,IAAAsQ,GAAc,MAAM2C,GAAW,KAAKjT,CAAK;AAAA,EAC3C;AACF;AACAwxB,GAAiB,oBAAoB,EAAE,MAAM,OAAM;AACnDA,GAAiB,kBAAkB1gB;AAC9BtE,EAAW,eAAe,IAAI,oBAAoB,KACrDA,EAAW,eAAe,OAAO,sBAAsBglB,EAAgB;AC3FzE,IAAIhhB,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2tB;AAMJ,MAAM8D,WAAmC/D,GAAiB;AAAA,EACxD,cAAc;AACZ,UAAK,GACL1qB,GAAa,MAAM2qB,IAAO,MAAM,GAChC9pB,GAAa,MAAM8pB,IAAO,KAAK,WAAW,cAAc,MAAM,CAAC;AAAA,EACjE;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTvmB,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,yBAAyBjB,GAAUC,GAAUC,GAAU;AAErD,QADA,MAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,IACvDF,MAAaiB,EAAkB,yBAAyBjB,MAAaiB,EAAkB,eACrFf,MAAaD,KAAYC,KAAY;AAEvC,UADApC,GAAa,MAAM0pB,EAAK,EAAE,cAActnB,GACpCA,MAAa,IAAI;AACnB,cAAMqrB,IAAgBpmC,EAAE,0BAA0B;AAAA,UAChD,aAAa+a;AAAA,QACzB,CAAW;AACD,aAAK,aAAa,kBAAkBqrB,CAAa;AAAA,MACnD;AACE,aAAK,gBAAgB,gBAAgB;AAAA,EAI7C;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,sBAAsB;AACxB,WAAOrhB,GAAc,MAAMjJ,EAAkB,qBAAqB;AAAA,EACpE;AAAA,EACA,IAAI,oBAAoBpH,GAAO;AAC7B,IAAAsQ,GAAc,MAAMlJ,EAAkB,uBAAuBpH,CAAK;AAAA,EACpE;AACF;AACA2tB,KAAQ,oBAAI,QAAO;AACdnhB,EAAW,eAAe,IAAI,+BAA+B,KAChEA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAilB;AACJ;ACpEA,IAAIjhB,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL6Q;AAYJ,SAASC,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBJ;AACA,MAAM4gB,WAA8BnlB,EAAW,YAAY;AAAA,EACzD,cAAc;AAGZ,QAFA,MAAK,GACLxJ,GAAa,MAAM6N,IAAkB,MAAM,GACvC,CAAC,KAAK,YAAY;AACpB,WAAK,aAAa,KAAK,YAAY,iBAAiB;AACpD,YAAMI,IAAQpE,GAAqB,KAAK,UAAU;AAClD,WAAK,WAAW,YAAY,KAAK,YAAY,gBAAgBoE,CAAK;AAAA,IACpE;AAAA,EACF;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACLhK,EAA6B;AAAA,MAC7BG,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,QAAIvQ,GAAIsJ,GAAIC;AACZ,UAAMkN,IAAoB,KAAK;AAAA,MAC7BrG,EAA6B;AAAA,IACnC;AACI,IAAIqG,MACFzJ;AAAAA,MACE;AAAA,MACAgN;AAAAA;AAAAA,OAECha,IAAK,KAAK,YAAW,MAAO,OAAO,SAASA,EAAG,eAAeyW,CAAiB;AAAA,IACxF,IACOlN,KAAMD,IAAK8D,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAAS1Q,EAAG,qBAAqB,QAAgBC,EAAG,KAAKD,GAAI,IAAI;AAAA,EAEjI;AAAA,EACA,uBAAuB;AACrB,QAAItJ,GAAIsJ;AACR,KAACA,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI;AAAA,EAC3C;AAAA,EACA,yBAAyB1K,GAAUC,GAAUC,GAAU;AACrD,QAAIxP,GAAIsJ,GAAIC,GAAIwC,GAAIhO;AACpB,IAAI;AAAA,MACFwS,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB,EAAM,SAASjB,CAAQ,KACjB,KAAK,OAAM,GAETA,MAAac,EAA6B,qBACxCb,OACDjG,KAAMtJ,IAAKoN,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI,IAEvCxK,KAAY,KAAK,gBACnBxC,GAAa,MAAMgN,KAAmBzQ,IAAK,KAAK,kBAAkB,OAAO,SAASA,EAAG,eAAeiG,CAAQ,CAAC,IAC5GzR,KAAMgO,IAAKqB,GAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASjO,EAAG,qBAAqB,QAAgBhO,EAAG,KAAKgO,GAAI,IAAI;AAAA,EAGnI;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,oBAAoB;AACtB,WAAOyN,GAAc,MAAMjJ,EAAkB,mBAAmB;AAAA,EAClE;AAAA,EACA,IAAI,kBAAkBpH,GAAO;AAC3B,IAAAsQ,GAAc,MAAMlJ,EAAkB,qBAAqBpH,CAAK;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,qBAAqB;AACvB,UAAMgQ,IAAU,KAAK,aAAa5I,EAAkB,oBAAoB;AACxE,QAAK4I;AAEL,aAAOA,EAAQ,MAAM,KAAK,EAAE,IAAI,CAAC4hB,MAAU,CAACA,CAAK;AAAA,EACnD;AAAA,EACA,IAAI,mBAAmB5xB,GAAO;AAC5B,QAAI,CAACA,GAAO;AACV,WAAK,gBAAgBoH,EAAkB,oBAAoB;AAC3D;AAAA,IACF;AACA,SAAK,aAAaA,EAAkB,sBAAsBpH,EAAM,KAAK,GAAG,CAAC;AAAA,EAC3E;AAAA,EACA,SAAS;AACP,UAAMsmB,IAAS,KAAK,oBACduL,IAAe,KAAK;AAC1B,QAAI,EAAEvL,KAAUuL;AACd;AACF,UAAM,CAAC1+B,GAAGH,GAAGE,GAAGb,CAAC,IAAIi0B,GACf/f,IAAMsrB,EAAa,MAAM,GAAG,EAAE,CAAC,GAC/BC,IAAgB,iBAAiB,IAAI,GACrC,EAAE,UAAAC,GAAU,WAAAC,GAAW,UAAAC,GAAU,WAAAC,EAAS,IAAKJ,GAC/CK,IAAYL,EAAc,iBAAiB,sCAAsC,EAAE,KAAI,KAAM;AACnG,QAAIM,GACAC;AACJ,QAAIF,MAAc,QAAQ;AACxB,YAAMG,IAAY,SAASP,CAAQ,IAAI7+B,GACjCq/B,IAAY,SAASP,CAAS,IAAI3/B,GAClCmgC,IAAY,SAASP,CAAQ,IAAI/+B,GACjCu/B,IAAY,SAASP,CAAS,IAAI7/B;AACxC,MAAA+/B,IAASE,IAAY,IAAIA,IAAY,KAAK,IAAIA,GAAWE,CAAS,GAClEH,IAASE,IAAY,IAAIA,IAAY,KAAK,IAAIA,GAAWE,CAAS;AAAA,IACpE,OAAO;AACL,YAAMC,IAAW,KAAK,IAAI,SAASX,CAAQ,IAAI7+B,GAAG,SAAS8+B,CAAS,IAAI3/B,CAAC,GACnEsgC,IAAW,KAAK,IAAI,SAASV,CAAQ,IAAI/+B,GAAG,SAASg/B,CAAS,IAAI7/B,CAAC,GAEnEugC,IADiBF,IAAW,IACHA,IAAWC,IAAW,IAAIA,IAAW;AACpE,MAAAP,IAASQ,GACTP,IAASO;AAAA,IACX;AACA,UAAM,EAAE,OAAAjkB,EAAK,IAAKQ,GAAmB,KAAK,YAAY,OAAO,GACvD0jB,IAAW1jB,GAAmB,KAAK,YAAY,KAAK,EAAE,OACtD2jB,IAAM,KAAK,WAAW,cAAc,KAAK,GAEzCC,IADgB,KAAK,IAAIX,GAAQC,CAAM,IAAI,IAChB,QAAQ;AACzC,IAAA1jB,EAAM,YAAY,GAAGokB,CAAQ,UAAU,WAAW,WAAW,GAC7DpkB,EAAM,YAAY,GAAGokB,CAAQ,WAAW,WAAW,WAAW,GAC9DpkB,EAAM,QAAQ,GAAGzb,IAAIk/B,CAAM,MAC3BzjB,EAAM,SAAS,GAAGtc,IAAIggC,CAAM;AAC5B,UAAMW,IAAS,MAAM;AACnB,MAAAH,EAAS,QAAQ,GAAG,KAAK,WAAWT,CAAM,MAC1CS,EAAS,SAAS,GAAG,KAAK,YAAYR,CAAM,MAC5CQ,EAAS,UAAU;AAAA,IACrB;AACA,IAAIC,EAAI,QAAQvsB,MACdusB,EAAI,SAAS,MAAM;AACjB,WAAK,WAAWA,EAAI,cACpB,KAAK,YAAYA,EAAI,eACrBE,EAAM,GACNF,EAAI,SAAS;AAAA,IACf,GACAA,EAAI,MAAMvsB,GACVysB,EAAM,IAERA,EAAM,GACNH,EAAS,YAAY,cAAc1/B,IAAIi/B,CAAM,QAAQp/B,IAAIq/B,CAAM;AAAA,EACjE;AACF;AACAxhB,KAAmB,oBAAI,QAAO;AAC9B8gB,GAAsB,oBAAoB,EAAE,MAAM,OAAM;AACxDA,GAAsB,kBAAkB7gB;AACnCtE,EAAW,eAAe,IAAI,yBAAyB,KAC1DA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAmlB;AACJ;AAEA,IAAIsB,KAAkCtB,ICnMlCnhB,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2tB;AAMJ,MAAMuF,WAAgCxF,GAAiB;AAAA,EACrD,cAAc;AACZ,UAAK,GACL1qB,GAAa,MAAM2qB,IAAO,MAAM,GAChC9pB,GAAa,MAAM8pB,IAAO,KAAK,WAAW,cAAc,MAAM,CAAC,GAC/D1pB,GAAa,MAAM0pB,EAAK,EAAE,cAAc5iB,GAAW,CAAC;AAAA,EACtD;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO,CAAC,GAAG,MAAM,oBAAoB3D,EAAkB,kBAAkB;AAAA,EAC3E;AAAA,EACA,yBAAyBjB,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAaiB,EAAkB,sBAAsBf,KAAY,SACnEpC,GAAa,MAAM0pB,EAAK,EAAE,cAAc5iB,GAAW,WAAW1E,CAAQ,CAAC;AAAA,EAE3E;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,mBAAmB;AACrB,WAAOyJ,GAAe,MAAM1I,EAAkB,kBAAkB;AAAA,EAClE;AAAA,EACA,IAAI,iBAAiBpH,GAAO;AAC1B,IAAAiQ,GAAe,MAAM7I,EAAkB,oBAAoBpH,CAAK;AAAA,EAClE;AACF;AACA2tB,KAAQ,oBAAI,QAAO;AACdnhB,EAAW,eAAe,IAAI,4BAA4B,KAC7DA,EAAW,eAAe;AAAA,EACxB;AAAA,EACA0mB;AACJ;AClDA,MAAMjgB,KAAa;AAAA,EACjB,aAAa;AACf,GACM+Q,KAAsB,IACtBmP,KAAe,CAACC,MAAe;AAAA;AAAA;AAAA;AAAA;AAAA,iEAK4BA,CAAU;AAAA;AAAA;AAG3E,SAAShK,GAAoBrY,GAAQ6c,GAAO;AAC1C;AAAA;AAAA,IAEE;AAAA,wBACoBuF,GAAavF,EAAM,UAAU,CAAC;AAAA;AAAA;AAGtD;AACA,MAAMnE,KAAkB,CAAC5pB,GAAIuzB,MAAe;AAC1C,EAAAvzB,EAAG,aAAa,cAAcvU,EAAE,kCAAkC,EAAE,YAAA8nC,EAAU,CAAE,CAAC;AACnF;AACA,SAAS/J,KAAwB;AAC/B,SAAO/9B,EAAE,eAAe;AAC1B;AACA,MAAM+nC,KAAe;AACrB,MAAMC,WAAgChK,GAAkB;AAAA,EACtD,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTliB,EAAkB;AAAA,MAClB6L,GAAW;AAAA,IACjB;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvB,KAAK,aAAanD;AAAA,MAChB;AAAA,MACAmD,GAAW;AAAA,MACX+Q;AAAAA,IACN;AAAA,EACE;AAAA,EACA,yBAAyB7d,GAAUoO,GAAWlO,GAAU;AACtD,UAAM,yBAAyBF,GAAUoO,GAAWlO,CAAQ,GAC5DojB,GAAgB,MAAM,KAAK,UAAU,GACjCtjB,MAAa8M,GAAW,gBAC1B,KAAK,aAAanD;AAAA,MAChB;AAAA,MACAmD,GAAW;AAAA,MACX+Q;AAAAA,IACR;AAAA,EAEE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,aAAa;AACf,WAAOlU,GAAe,MAAMmD,GAAW,aAAa+Q,EAAmB;AAAA,EACzE;AAAA,EACA,IAAI,WAAWhkB,GAAO;AACpB,IAAAiQ,GAAe,MAAMgD,GAAW,aAAajT,CAAK,GAClD,KAAK;AAAA,MACH;AAAA,MACA1U,EAAE,kCAAkC,EAAE,YAAY,KAAK,WAAU,CAAE;AAAA,IACzE,GACIkiB,GAAeO,GAAW,MAAM,MAAM,GAAG,KAAK,UAAU;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,mBAAmB;AACrB,WAAO+B;AAAA,MACL;AAAA,MACA1I,EAAkB;AAAA,MAClBisB;AAAAA,IACN;AAAA,EACE;AAAA,EACA,IAAI,iBAAiBvF,GAAM;AACzB,IAAA7d,GAAe,MAAM7I,EAAkB,oBAAoB0mB,CAAI;AAAA,EACjE;AAAA,EACA,cAAc;AACZ,UAAMlQ,IAAS,KAAK,IAAI,KAAK,mBAAmB,KAAK,YAAY,CAAC,GAC5D/J,IAAM,IAAIrH,EAAW,YAAYxF,EAAc,oBAAoB;AAAA,MACvE,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAA4W;AAAA,IACN,CAAK;AACD,SAAK,cAAc/J,CAAG;AAAA,EACxB;AACF;AACAyf,GAAwB,sBAAsBlK;AAC9CkK,GAAwB,wBAAwBjK;AAC3C7c,EAAW,eAAe,IAAI,4BAA4B,KAC7DA,EAAW,eAAe;AAAA,EACxB;AAAA,EACA8mB;AACJ;ACnGA,MAAMrgB,KAAa;AAAA,EACjB,aAAa;AACf,GACM+Q,KAAsB,IACtBuP,KAAc,CAACH,MAAe;AAAA;AAAA;AAAA;AAAA;AAAA,gEAK4BA,CAAU;AAAA;AAAA;AAG1E,SAAShK,GAAoBrY,GAAQ6c,GAAO;AAC1C;AAAA;AAAA,IAEE;AAAA,wBACoB2F,GAAY3F,EAAM,UAAU,CAAC;AAAA;AAAA;AAGrD;AACA,MAAMnE,KAAkB,CAAC5pB,GAAIuzB,MAAe;AAC1C,EAAAvzB,EAAG,aAAa,cAAcvU,EAAE,qCAAqC,EAAE,YAAA8nC,EAAU,CAAE,CAAC;AACtF;AACA,SAAS/J,KAAwB;AAC/B,SAAO/9B,EAAE,cAAc;AACzB;AACA,MAAM+nC,KAAe;AACrB,MAAMG,WAA+BlK,GAAkB;AAAA,EACrD,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTliB,EAAkB;AAAA,MAClB6L,GAAW;AAAA,IACjB;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvB,KAAK,aAAanD;AAAA,MAChB;AAAA,MACAmD,GAAW;AAAA,MACX+Q;AAAA,IACN;AAAA,EACE;AAAA,EACA,yBAAyB7d,GAAUoO,GAAWlO,GAAU;AACtD,UAAM,yBAAyBF,GAAUoO,GAAWlO,CAAQ,GAC5DojB,GAAgB,MAAM,KAAK,UAAU,GACjCtjB,MAAa8M,GAAW,gBAC1B,KAAK,aAAanD;AAAA,MAChB;AAAA,MACAmD,GAAW;AAAA,MACX+Q;AAAA,IACR;AAAA,EAEE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,aAAa;AACf,WAAOlU,GAAe,MAAMmD,GAAW,aAAa+Q,EAAmB;AAAA,EACzE;AAAA,EACA,IAAI,WAAWhkB,GAAO;AACpB,IAAAiQ,GAAe,MAAMgD,GAAW,aAAajT,CAAK,GAClD,KAAK;AAAA,MACH;AAAA,MACA1U,EAAE,qCAAqC,EAAE,YAAY,KAAK,WAAU,CAAE;AAAA,IAC5E,GACIkiB,GAAeO,GAAW,MAAM,MAAM,GAAG,KAAK,UAAU;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,mBAAmB;AACrB,WAAO+B;AAAA,MACL;AAAA,MACA1I,EAAkB;AAAA,MAClBisB;AAAA,IACN;AAAA,EACE;AAAA,EACA,IAAI,iBAAiBvF,GAAM;AACzB,IAAA7d,GAAe,MAAM7I,EAAkB,oBAAoB0mB,CAAI;AAAA,EACjE;AAAA,EACA,cAAc;AACZ,UAAMlQ,IAAS,KAAK,mBAAmB,KAAK,YACtC/J,IAAM,IAAIrH,EAAW,YAAYxF,EAAc,oBAAoB;AAAA,MACvE,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAA4W;AAAA,IACN,CAAK;AACD,SAAK,cAAc/J,CAAG;AAAA,EACxB;AACF;AACA2f,GAAuB,sBAAsBpK;AAC7CoK,GAAuB,wBAAwBnK;AAC1C7c,EAAW,eAAe,IAAI,2BAA2B,KAC5DA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAgnB;AACJ;ACxGA,IAAIhjB,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAEL+b,IAAOjK,IAAeC,IAAiB8P,IAAsBC,IAAwBC,IAAuBC,IAAyBC,IAAkBC,IAAoBC,IAAqBC;AAapM,MAAM/gB,KAAa;AAAA,EACjB,WAAW;AAAA,EACX,eAAe;AAAA,EACf,WAAW;AACb,GACMghB,KAAqB;AAAA,EACzB,GAAG,OAAO,OAAOhhB,EAAU;AAAA,EAC3B7L,EAAkB;AAAA,EAClBA,EAAkB;AAAA,EAClBA,EAAkB;AACpB,GACM2c,KAAoB,CAAC,SAAS,GAAG,GACjCmQ,KAAoB,iBACpBC,KAAmB,CAACt0B,GAAI,EAAE,UAAAu0B,IAAWF,GAAiB,IAAK,CAAA,MAAO;AACtE,MAAIr9B,GAAIsJ;AACR,QAAMk0B,KAAex9B,IAAKgJ,EAAG,qBAAqB,OAAOhJ,IAAK,GACxD,CAAA,EAAG2nB,CAAW,KAAKre,IAAKN,EAAG,kBAAkB,OAAOM,IAAK,CAAA;AAC/D,MAAI4c,IAAU;AACd,EAAI,OAAO,SAASld,EAAG,aAAa,IAClCkd,IAAUld,EAAG,gBACJ,OAAO,SAAS2e,CAAW,MACpCzB,IAAUyB;AAEZ,QAAM8V,IAAYz0B,EAAG,YAAYkL,GAAW,KAAKgS,IAAUsX,EAAY,IAAItpB,GAAWspB,CAAW;AACjG,SAAKx0B,EAAG,eAED,GAAGy0B,CAAS,GAAGF,CAAQ,GAAGrpB,GAAWgS,CAAO,CAAC,KAD3CuX;AAEX,GACMC,KAAsB,CAAC10B,MAAO;AAClC,MAAIhJ;AACJ,QAAMw9B,IAAcx0B,EAAG,kBACjB,CAAA,EAAG2e,CAAW,KAAK3nB,IAAKgJ,EAAG,kBAAkB,OAAOhJ,IAAK,CAAA;AAC/D,MAAIkmB,IAAU;AAMd,MALI,OAAO,SAASld,EAAG,aAAa,IAClCkd,IAAUld,EAAG,gBACJ,OAAO,SAAS2e,CAAW,MACpCzB,IAAUyB,IAER6V,KAAe,QAAQtX,MAAY,MAAM;AAC3C,IAAAld,EAAG,aAAa,kBAAkBvU,EAAE,iCAAiC,CAAC;AACtE;AAAA,EACF;AACA,QAAMkpC,IAAoB30B,EAAG,YAAY2K,GAAmB,KAAKuS,IAAUsX,EAAY,IAAI7pB,GAAmB6pB,CAAW;AACzH,MAAI,CAACx0B,EAAG,cAAc;AACpB,IAAAA,EAAG,aAAa,kBAAkB20B,CAAiB;AACnD;AAAA,EACF;AACA,QAAMC,IAAkBjqB,GAAmBuS,CAAO,GAC5C2X,IAAappC,EAAE,gCAAgC;AAAA,IACnD,aAAakpC;AAAA,IACb,WAAWC;AAAA,EACf,CAAG;AACD,EAAA50B,EAAG,aAAa,kBAAkB60B,CAAU;AAC9C;AACA,SAAStL,GAAoBrY,GAAQ6c,GAAO;AAC1C;AAAA;AAAA,IAEE;AAAA,YACQuG,GAAiBvG,CAAK,CAAC;AAAA;AAAA;AAGnC;AACA,MAAMnE,KAAkB,CAAC5pB,MAAO;AAC9B,EAAAA,EAAG,aAAa,cAAcvU,EAAE,eAAe,CAAC;AAClD;AACA,MAAMqpC,WAAyBjH,GAAiB;AAAA,EAC9C,cAAc;AACZ,UAAK,GACL1qB,GAAa,MAAMywB,EAAoB,GACvCzwB,GAAa,MAAM2wB,EAAqB,GAExC3wB,GAAa,MAAM6wB,EAAgB,GAEnC7wB,GAAa,MAAM+wB,EAAmB,GACtC/wB,GAAa,MAAM2qB,IAAO,MAAM,GAChC3qB,GAAa,MAAM0gB,IAAe,IAAI,GACtC1gB,GAAa,MAAM2gB,IAAiB,CAAC9P,MAAQ;AAC3C,YAAM,EAAE,SAAAyR,GAAS,QAAAC,GAAQ,KAAAje,EAAG,IAAKuM;AACjC,UAAIyR,KAAWC,KAAU,CAACxB,GAAkB,SAASzc,CAAG,GAAG;AACzD,aAAK,oBAAoB,SAASrD,GAAa,MAAMyf,EAAa,CAAC;AACnE;AAAA,MACF;AACA,WAAK,iBAAiB,SAASzf,GAAa,MAAMyf,EAAa,CAAC;AAAA,IAClE,CAAC,GACD7f,GAAa,MAAM8pB,IAAO,KAAK,WAAW,cAAc,MAAM,CAAC,GAC/D1pB,GAAa,MAAM0pB,EAAK,EAAE,YAAY,GAAGwG,GAAiB,IAAI,CAAC;AAAA,EACjE;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO,CAAC,GAAG,MAAM,oBAAoB,GAAGF,IAAoB,UAAU;AAAA,EACxE;AAAA,EACA,oBAAoB;AAClB,UAAM,EAAE,OAAAtlB,EAAK,IAAKQ;AAAA,MAChB,KAAK;AAAA,MACL;AAAA,IACN;AACI,IAAAR,EAAM,YAAY,UAAU,8BAA8B,GAC1DA,EAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACN,GACI,KAAK,aAAa,cAAcrjB,EAAE,eAAe,CAAC,GAClDqY,GAAgB,MAAMkwB,IAAkBC,EAAkB,EAAE,KAAK,IAAI,GACrE,MAAM,kBAAiB;AAAA,EACzB;AAAA,EACA,oBAAoB;AAClB,IAAI,KAAK,aAGL,KAAK,aAAa,WAAW,IAC/B,KAAK,gBAAgB,WAAW,IAEhC,KAAK,aAAa,aAAa,EAAE;AAAA,EAErC;AAAA,EACA,uBAAuB;AACrB,SAAK,QAAO,GACZnwB,GAAgB,MAAMgwB,IAAuBC,EAAuB,EAAE,KAAK,IAAI,GAC/E,MAAM,qBAAoB;AAAA,EAC5B;AAAA,EACA,yBAAyBztB,GAAUC,GAAUC,GAAU;AACrDojB,IAAAA,GAAgB,IAAI,GAChBwK,GAAmB,SAAS9tB,CAAQ,IACtC,KAAK,OAAM,IACFA,MAAa,cAAcE,MAAaD,IAC7CC,KAAY,OACd1C,GAAgB,MAAMkwB,IAAkBC,EAAkB,EAAE,KAAK,IAAI,IAErEnwB,GAAgB,MAAMowB,IAAqBC,EAAqB,EAAE,KAAK,IAAI,IAEpE7tB,MAAa8M,GAAW,aAAa5M,MAAaD,MACvD,KAAK,WACPzC,GAAgB,MAAMowB,IAAqBC,EAAqB,EAAE,KAAK,IAAI,IAE3ErwB,GAAgB,MAAMkwB,IAAkBC,EAAkB,EAAE,KAAK,IAAI,IAGzE,MAAM,yBAAyB3tB,GAAUC,GAAUC,CAAQ;AAAA,EAC7D;AAAA,EACA,SAAS;AACP,IAAK,KAAK,aACR,KAAK,WAAW;AAAA,EAEpB;AAAA,EACA,UAAU;AACR,SAAK,WAAW;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAY;AACd,WAAO8J,EAAe,MAAM8C,GAAW,SAAS;AAAA,EAClD;AAAA,EACA,IAAI,UAAU2hB,GAAM;AAClB,IAAAxkB,EAAe,MAAM6C,GAAW,WAAW2hB,CAAI;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,eAAe;AACjB,WAAOzkB,EAAe,MAAM8C,GAAW,aAAa;AAAA,EACtD;AAAA,EACA,IAAI,aAAa2hB,GAAM;AACrB,IAAAxkB,EAAe,MAAM6C,GAAW,eAAe2hB,CAAI;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,WAAW;AACb,WAAOzkB,EAAe,MAAM8C,GAAW,SAAS;AAAA,EAClD;AAAA,EACA,IAAI,SAAS4hB,GAAU;AACrB,IAAAzkB,EAAe,MAAM6C,GAAW,WAAW4hB,CAAQ;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,gBAAgB;AAClB,WAAO/kB,GAAe,MAAM1I,EAAkB,cAAc;AAAA,EAC9D;AAAA,EACA,IAAI,cAAc0mB,GAAM;AACtB,IAAA7d,GAAe,MAAM7I,EAAkB,gBAAgB0mB,CAAI;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,mBAAmB;AACrB,WAAOhe,GAAe,MAAM1I,EAAkB,kBAAkB;AAAA,EAClE;AAAA,EACA,IAAI,iBAAiB0mB,GAAM;AACzB,IAAA7d,GAAe,MAAM7I,EAAkB,oBAAoB0mB,CAAI;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,gBAAgB;AAClB,UAAMtR,IAAW,KAAK,aAAapV,EAAkB,cAAc;AACnE,QAAKoV;AAEL,aAAOA,EAAS,MAAM,GAAG,EAAE,IAAI,CAACsR,MAAS,CAACA,CAAI;AAAA,EAChD;AAAA,EACA,IAAI,cAAcgH,GAAO;AACvB,QAAIA,KAAS,MAAM;AACjB,WAAK,gBAAgB1tB,EAAkB,cAAc;AACrD;AAAA,IACF;AACA,SAAK,aAAaA,EAAkB,gBAAgB0tB,EAAM,KAAK,GAAG,CAAC;AAAA,EACrE;AAAA,EACA,SAAS;AACP,UAAMC,IAAaZ,GAAiB,IAAI;AACxCI,IAAAA,GAAoB,IAAI,GACpBQ,MAAe9wB,GAAa,MAAM0pB,EAAK,EAAE,cAC3C1pB,GAAa,MAAM0pB,EAAK,EAAE,YAAYoH;AAAA,EAE1C;AACF;AACApH,KAAQ,oBAAI,QAAO;AACnBjK,KAAgB,oBAAI,QAAO;AAC3BC,KAAkB,oBAAI,QAAO;AAC7B8P,KAAuB,oBAAI,QAAO;AAClCC,KAAyB,WAAW;AAClC,EAAIzvB,GAAa,MAAMyf,EAAa,MAGpC7f,GAAa,MAAM6f,IAAe,CAAC7P,MAAQ;AACzC,UAAM,EAAE,KAAAvM,EAAG,IAAKuM;AAChB,QAAI,CAACkQ,GAAkB,SAASzc,CAAG,GAAG;AACpC,WAAK,oBAAoB,SAASrD,GAAa,MAAMyf,EAAa,CAAC;AACnE;AAAA,IACF;AACA,SAAK,kBAAiB;AAAA,EACxB,CAAC,GACD,KAAK,iBAAiB,WAAWzf,GAAa,MAAM0f,EAAe,CAAC,GACpE,KAAK,iBAAiB,SAAS,KAAK,iBAAiB;AACvD;AACAgQ,KAAwB,oBAAI,QAAO;AACnCC,KAA0B,WAAW;AACnC,EAAI3vB,GAAa,MAAMyf,EAAa,MAClC,KAAK,oBAAoB,SAASzf,GAAa,MAAMyf,EAAa,CAAC,GACnE,KAAK,oBAAoB,WAAWzf,GAAa,MAAM0f,EAAe,CAAC,GACvE,KAAK,oBAAoB,SAAS,KAAK,iBAAiB,GACxD9f,GAAa,MAAM6f,IAAe,IAAI;AAE1C;AACAmQ,KAAmB,oBAAI,QAAO;AAC9BC,KAAqB,WAAW;AAC9B,EAAI,CAAC,KAAK,YAAY,CAAC,KAAK,aAAa,UAAU,MACjD,KAAK,aAAa,QAAQ,QAAQ,GAClC,KAAK,OAAM,GACXnwB,GAAgB,MAAM8vB,IAAsBC,EAAsB,EAAE,KAAK,IAAI;AAEjF;AACAK,KAAsB,oBAAI,QAAO;AACjCC,KAAwB,WAAW;AACjC,OAAK,gBAAgB,MAAM,GAC3B,KAAK,QAAO,GACZrwB,GAAgB,MAAMgwB,IAAuBC,EAAuB,EAAE,KAAK,IAAI;AACjF;AACAe,GAAiB,sBAAsBvL;AAClC5c,EAAW,eAAe,IAAI,oBAAoB,KACrDA,EAAW,eAAe,OAAO,sBAAsBmoB,EAAgB;ACzSzE,IAAInkB,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GACjBA,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAELg1B,KAAmB,CAACjoB,GAAK0D,GAAQG,GAAQD,OAAY;AAAA,EACvD,IAAI,EAAE3Q,GAAO;AACX6D,IAAAA,GAAakJ,GAAK0D,GAAQzQ,CAAa;AAAA,EACzC;AAAA,EACA,IAAI,IAAI;AACN,WAAOiE,GAAa8I,GAAK0D,CAAc;AAAA,EACzC;AACF,IACIwkB,IAAQC,IAAYC,IAAeC,IAAYC,IAAaC,IAAkBC,IAAmBC,IAAoBC,IAAKC;AAC9H,MAAMC,GAAe;AAAA,EACnB,YAAYb,GAAO50B,GAAU01B,GAAK;AAChC5yB,IAAAA,GAAa,MAAMiyB,IAAQ,MAAM,GACjCjyB,GAAa,MAAMkyB,IAAY,MAAM,GACrClyB,GAAa,MAAMmyB,IAAe,MAAM,GACxCnyB,GAAa,MAAMoyB,IAAY,MAAM,GACrCpyB,GAAa,MAAMqyB,IAAa,MAAM,GACtCryB,GAAa,MAAMsyB,IAAkB,MAAM,GAC3CtyB,GAAa,MAAMuyB,IAAmB,MAAM,GAC5CvyB,GAAa,MAAMwyB,IAAoB,MAAM,GAC7CxyB,GAAa,MAAMyyB,IAAK,CAAC,GACzBzyB,GAAa,MAAM0yB,IAAU,CAACG,IAAM,YAAY,UAAU;AACxDhyB,MAAAA,GAAa,MAAM4xB,IAAK,sBAAsBxxB,GAAa,MAAMyxB,EAAQ,CAAC,CAAC,GAC3E7xB,GAAa,MAAMuxB,IAAY,YAAY,IAAG,IAAKnxB,GAAa,MAAMkxB,EAAa,CAAC;AACpF,YAAMW,IAAc,MAAM,KAAK;AAC/B,UAAI7xB,GAAa,MAAMmxB,EAAU,IAAIU,GAAa;AAChDjyB,QAAAA,GAAa,MAAMsxB,IAAeU,IAAM5xB,GAAa,MAAMmxB,EAAU,IAAIU,CAAW;AACpF,cAAMF,IAAM,QAAQC,IAAM5xB,GAAa,MAAMixB,EAAU,KAAK,EAAEF,GAAiB,MAAMK,EAAW,EAAE,IAC5FU,KAASF,IAAM5xB,GAAa,MAAMqxB,EAAgB,KAAK,MAAM,KAAK;AACxE,YAAIt1B,IAAQiE,GAAa,MAAMsxB,EAAiB,IAAIQ,IAAQ,KAAK;AAEjE,QADiB/1B,IAAQiE,GAAa,MAAMgxB,EAAM,EAAE,gBACrC,IACbpxB,GAAa,MAAM2xB,IAAoB,KAAK,eAAe,KAAK,WAAWI,CAAG,KAE9E/xB,GAAa,MAAM2xB,IAAoB,QAAQvxB,GAAa,MAAMuxB,EAAkB,CAAC,GACrFx1B,IAAQiE,GAAa,MAAMgxB,EAAM,EAAE,gBAAgBhxB,GAAa,MAAMuxB,EAAkB,IAE1F,KAAK,SAASx1B,CAAK;AAAA,MACrB;AAAA,IACF,CAAC,GACD6D,GAAa,MAAMoxB,IAAQH,CAAK,GAChC,KAAK,WAAW50B,GAChB,KAAK,MAAM01B;AAAA,EACb;AAAA,EACA,QAAQ;AACN,IAAI3xB,GAAa,MAAMwxB,EAAG,MAAM,MAEhC5xB,GAAa,MAAMsxB,IAAe,YAAY,IAAG,CAAE,GACnDtxB,GAAa,MAAMqxB,IAAYjxB,GAAa,MAAMkxB,EAAa,CAAC,GAChEtxB,GAAa,MAAMwxB,IAAa,CAAC,GACjCpxB,GAAa,MAAMyxB,EAAQ,EAAE,KAAK,IAAI;AAAA,EACxC;AAAA,EACA,OAAO;AACL,IAAIzxB,GAAa,MAAMwxB,EAAG,MAAM,MAEhC,qBAAqBxxB,GAAa,MAAMwxB,EAAG,CAAC,GAC5C5xB,GAAa,MAAM4xB,IAAK,CAAC;AAAA,EAC3B;AAAA,EACA,OAAO,EAAE,OAAA1Z,GAAO,UAAAM,GAAU,cAAAgJ,EAAY,GAAI;AACxC,UAAM2Q,IAAWja,IAAQ9X,GAAa,MAAMgxB,EAAM,EAAE,eAC9CgB,IAAgB,KAAK,IAAI5Z,IAAW,KAAK,QAAQ;AACvD,KAAI2Z,IAAW,KAAKA,IAAW,SAASC,KAAiB,QACvD,KAAK,SAASla,CAAK,GAErBlY,GAAa,MAAM0xB,IAAmBxZ,CAAK,GAC3ClY,GAAa,MAAMyxB,IAAkB,YAAY,IAAG,CAAE,GACtD,KAAK,WAAWjZ,GAChB,KAAK,eAAegJ;AAAA,EACtB;AACF;AACA4P,KAAS,oBAAI,QAAO;AACpBC,KAAa,oBAAI,QAAO;AACxBC,KAAgB,oBAAI,QAAO;AAC3BC,KAAa,oBAAI,QAAO;AACxBC,KAAc,oBAAI,QAAO;AACzBC,KAAmB,oBAAI,QAAO;AAC9BC,KAAoB,oBAAI,QAAO;AAC/BC,KAAqB,oBAAI,QAAO;AAChCC,KAAM,oBAAI,QAAO;AACjBC,KAAW,oBAAI,QAAO;AChGtB,IAAIllB,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAELskB,IAAWC,IAAYC,IAAQC,IAAcC,IAAaC,IAAaC,IAAiBC,IAAkBC,IAAoBC,IAAgBC,IAAuBC,IAAqBC,IAAuBC,IAAcC,IAAkBC,IAAoBC,IAAiBC,IAAmBC,IAAsBC,IAAwBhlB,IAAoBC,IAAsBglB,IAAiBC,IAAmBC,IAAcC;AAwBvb,MAAMlD,KAAsB,CAAC10B,MAAO;AAClC,QAAMi1B,IAAQj1B,EAAG,OACX20B,IAAoBhqB,GAAmB,CAACktB,GAAuB73B,CAAE,CAAC,GAClE40B,IAAkBjqB,GAAmB,CAAC3K,EAAG,gBAAgB,GACzD60B,IAAeF,KAAqBC,IAA0DnpC,EAAE,gCAAgC;AAAA,IACpI,aAAakpC;AAAA,IACb,WAAWC;AAAA,EACf,CAAG,IAH4DnpC,EAAE,iCAAiC;AAIhG,EAAAwpC,EAAM,aAAa,kBAAkBJ,CAAU;AACjD;AACA,SAAS9H,GAAyB7b,GAAQ;AACxC;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBA6De3J,EAAkB,mBAAmB,OAAOA,EAAkB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAQ9EA,EAAkB,mBAAmB,OAAOA,EAAkB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eA0BtFA,EAAkB,mBAAmB;AAAA,eACrCA,EAAkB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAMnCA,EAAkB,mBAAmB;AAAA,iBACrCA,EAAkB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,iBAKrCA,EAAkB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAwBtCA,EAAkB,mBAAmB;AAAA,eACrCA,EAAkB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAQdA,EAAkB,qBAAqB;AAAA,gDAC7BA,EAAkB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAkCxEA,EAAkB,mBAAmB;AAAA,eACrCA,EAAkB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAOrCA,EAAkB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCA0BbuqB,GAAsB,kBAAkB,IAAI;AAAA,cACpEA,GAAsB,gBAAgB,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBvD;AACA,MAAMgG,KAAyB,CAAC93B,GAAIiuB,IAAOjuB,EAAG,qBAAqB;AACjE,QAAMid,IAAY,OAAO,SAASjd,EAAG,kBAAkB,IAAIA,EAAG,qBAAqB,GAC7Ekd,IAAU,OAAO,SAASld,EAAG,aAAa,IAAIA,EAAG,gBAAgBA,EAAG;AAC1E,MAAI,OAAO,MAAMkd,CAAO;AACtB,WAAO;AACT,QAAM/c,KAAS8tB,IAAOhR,MAAcC,IAAUD;AAC9C,SAAO,KAAK,IAAI,GAAG,KAAK,IAAI9c,GAAO,CAAC,CAAC;AACvC,GACM03B,KAAyB,CAAC73B,GAAIG,IAAQH,EAAG,MAAM,kBAAkB;AACrE,QAAMid,IAAY,OAAO,SAASjd,EAAG,kBAAkB,IAAIA,EAAG,qBAAqB,GAC7Ekd,IAAU,OAAO,SAASld,EAAG,aAAa,IAAIA,EAAG,gBAAgBA,EAAG;AAC1E,SAAI,OAAO,MAAMkd,CAAO,IACf,IACF/c,KAAS+c,IAAUD,KAAaA;AACzC;AACA,MAAM8a,WAAuB/K,GAAiB;AAAA,EAC5C,cAAc;AACZ,UAAK,GACL7pB,GAAa,MAAM6zB,EAAmB,GACtC7zB,GAAa,MAAMg0B,EAAgB,GAMnCh0B,GAAa,MAAMk0B,EAAe,GAClCl0B,GAAa,MAAMo0B,EAAoB,GACvCp0B,GAAa,MAAMqP,EAAkB,GACrCrP,GAAa,MAAMs0B,EAAe,GAClCt0B,GAAa,MAAMw0B,EAAY,GAC/Bx0B,GAAa,MAAMkzB,IAAW,IAAI,GAClClzB,GAAa,MAAMmzB,IAAY,MAAM,GACrCnzB,GAAa,MAAMozB,IAAQ,MAAM,GACjCpzB,GAAa,MAAMqzB,IAAc,MAAM,GACvCrzB,GAAa,MAAMszB,IAAa,MAAM,GACtCtzB,GAAa,MAAMuzB,IAAa,MAAM,GACtCvzB,GAAa,MAAMwzB,IAAiB,MAAM,GAC1CxzB,GAAa,MAAMyzB,IAAkB,MAAM,GAC3CzzB,GAAa,MAAM0zB,IAAoB,MAAM,GAC7C1zB,GAAa,MAAM2zB,IAAgB,MAAM,GACzC3zB,GAAa,MAAM4zB,IAAuB,MAAM;AAC9C,MAAIjzB,GAAgB,MAAMkzB,IAAqBC,EAAqB,EAAE,KAAK,IAAI,IAC7E7yB,GAAa,MAAMkyB,EAAU,EAAE,MAAK,IAEpClyB,GAAa,MAAMkyB,EAAU,EAAE,KAAI;AAAA,IAEvC,CAAC,GACDnzB,GAAa,MAAM+zB,IAAc,CAAC/2B,MAAU;AAC1C,MAAI,KAAK,aAELsJ,GAActJ,CAAK,MACrB,KAAK,MAAM,gBAAgBA,IAExBiE,GAAa,MAAM0yB,EAAc,KACpC,KAAK,UAAS;AAAA,IAElB,CAAC,GACa,KAAK,WAAW,cAAc,QAAQ,EAC9C;AAAA,MACJ;AAAA,MACA;AAAA,IACN,GACI9yB,GAAa,MAAMuyB,IAAQ,KAAK,WAAW,iBAAiB,eAAe,CAAC,GAC5EvyB,GAAa,MAAMyyB,IAAa,KAAK,WAAW,cAAc,uBAAuB,CAAC,GACtFzyB,GAAa,MAAM0yB,IAAa,KAAK,WAAW,cAAc,uBAAuB,CAAC;AACtF,UAAMzE,IAAgB,iBAAiB,IAAI;AAC3CjuB,IAAAA,GAAa,MAAM2yB,IAAiB;AAAA,MAClC1E,EAAc,iBAAiB,0BAA0B;AAAA,IAC/D,CAAK,GACDjuB,GAAa,MAAM4yB,IAAkB;AAAA,MACnC3E,EAAc,iBAAiB,2BAA2B;AAAA,IAChE,CAAK,GACDjuB,GAAa,MAAMsyB,IAAY,IAAIR,GAAe,KAAK,OAAO1xB,GAAa,MAAM8yB,EAAY,GAAG,EAAE,CAAC;AAAA,EACrG;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACT3vB,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,QAAIvQ;AACJ,UAAM,kBAAiB,GACvB,KAAK,MAAM,aAAa,cAAcvL,EAAE,MAAM,CAAC,GAC/C2Y,GAAa,MAAM2yB,EAAqB,EAAE,KAAK,IAAI,GACnD/yB,GAAa,MAAMqyB,IAAW,KAAK,YAAW,CAAE,IAC/Cr/B,IAAKoN,GAAa,MAAMiyB,EAAS,MAAM,QAAgBr/B,EAAG,iBAAiB,mBAAmB,IAAI;AAAA,EACrG;AAAA,EACA,uBAAuB;AACrB,QAAIA;AACJ,UAAM,qBAAoB,GAC1BoN,GAAa,MAAMkyB,EAAU,EAAE,KAAI,IAClCt/B,IAAKoN,GAAa,MAAMiyB,EAAS,MAAM,QAAgBr/B,EAAG,oBAAoB,mBAAmB,IAAI,GACtGgN,GAAa,MAAMqyB,IAAW,IAAI;AAAA,EACpC;AAAA,EACA,yBAAyB/vB,GAAUC,GAAUC,GAAU;AAErD,IADA,MAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDD,KAAYC,MAEZF,MAAaiB,EAAkB,sBAAsBjB,MAAaiB,EAAkB,gBAAgBjB,MAAaiB,EAAkB,eAAejB,MAAaiB,EAAkB,iBAAiBjB,MAAaiB,EAAkB,kBAAkBjB,MAAaiB,EAAkB,kBACpRnD,GAAa,MAAMkyB,EAAU,EAAE,OAAO;AAAA,MACpC,OAAOwB,GAAuB,IAAI;AAAA,MAClC,UAAU,KAAK,mBAAmB,KAAK;AAAA,MACvC,cAAc,KAAK;AAAA,IAC3B,CAAO,GACD1zB,GAAa,MAAM2yB,EAAqB,EAAE,KAAK,IAAI,GACnDrC,GAAoB,IAAI,KACfpuB,MAAaiB,EAAkB,kBACxC,KAAK,kBAAiB,IAEpBjB,MAAaiB,EAAkB,kBAAkBjB,MAAaiB,EAAkB,oBAClF,KAAK,oBAAoBnD,GAAa,MAAMyyB,EAAkB,GAC9D,KAAK,UAAS;AAAA,EAElB;AAAA,EACA,IAAI,oBAAoB;AACtB,WAAOzyB,GAAa,MAAMyyB,EAAkB;AAAA,EAC9C;AAAA,EACA,IAAI,kBAAkB12B,GAAO;AAC3B,QAAInJ;AACJgN,IAAAA,GAAa,MAAM6yB,IAAoB12B,CAAK,GAC5C,KAAK;AAAA,OACFnJ,IAAKoN,GAAa,MAAMyyB,EAAkB,MAAM,OAAO,SAAS7/B,EAAG,IAAI,CAAC5D,OAAO;AAAA,QAC9E,OAAO0kC,GAAuB,MAAM1kC,EAAE,SAAS;AAAA,QAC/C,KAAK0kC,GAAuB,MAAM1kC,EAAE,OAAO;AAAA,MACnD,EAAQ;AAAA,IACR;AAAA,EACE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,cAAc;AAChB,WAAOkd,EAAe,MAAM/I,EAAkB,YAAY;AAAA,EAC5D;AAAA,EACA,IAAI,YAAYpH,GAAO;AACrB,IAAAoQ,EAAe,MAAMhJ,EAAkB,cAAcpH,CAAK;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,eAAe;AACjB,WAAOmQ,EAAe,MAAM/I,EAAkB,aAAa;AAAA,EAC7D;AAAA,EACA,IAAI,aAAapH,GAAO;AACtB,IAAAoQ,EAAe,MAAMhJ,EAAkB,eAAepH,CAAK;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,gBAAgB;AAClB,WAAO8P,GAAe,MAAM1I,EAAkB,cAAc;AAAA,EAC9D;AAAA,EACA,IAAI,cAAcpH,GAAO;AACvB,IAAAiQ,GAAe,MAAM7I,EAAkB,gBAAgBpH,CAAK;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,mBAAmB;AACrB,WAAO8P,GAAe,MAAM1I,EAAkB,kBAAkB;AAAA,EAClE;AAAA,EACA,IAAI,iBAAiBpH,GAAO;AAC1B,IAAAiQ,GAAe,MAAM7I,EAAkB,oBAAoBpH,CAAK;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,oBAAoB;AACtB,WAAO8P,GAAe,MAAM1I,EAAkB,qBAAqB,CAAC;AAAA,EACtE;AAAA,EACA,IAAI,kBAAkBpH,GAAO;AAC3B,IAAAiQ,GAAe,MAAM7I,EAAkB,qBAAqBpH,CAAK;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,gBAAgB;AAClB,UAAM63B,IAAW,KAAK,aAAazwB,EAAkB,cAAc;AACnE,WAAKywB,IAEEA,EAAS,MAAM,GAAG,EAAE,IAAI,CAACC,MAAaA,EAAS,MAAM,GAAG,EAAE,IAAI,CAACC,MAAY,CAACA,CAAO,CAAC,IADlF,CAAA;AAAA,EAEX;AAAA,EACA,IAAI,cAAc/N,GAAM;AACtB,QAAI,CAACA,GAAM;AACT,WAAK,gBAAgB5iB,EAAkB,cAAc;AACrD;AAAA,IACF;AACA,UAAM4wB,IAAShO,EAAK,IAAI,CAAC7D,MAAUA,EAAM,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG;AAC5D,SAAK,aAAa/e,EAAkB,gBAAgB4wB,CAAM;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,gBAAgB;AAClB,UAAMxb,IAAW,KAAK,aAAapV,EAAkB,cAAc;AACnE,QAAKoV;AAEL,aAAOA,EAAS,MAAM,GAAG,EAAE,IAAI,CAACsR,MAAS,CAACA,CAAI;AAAA,EAChD;AAAA,EACA,IAAI,cAAcgH,GAAO;AACvB,QAAIA,KAAS,MAAM;AACjB,WAAK,gBAAgB1tB,EAAkB,cAAc;AACrD;AAAA,IACF;AACA,SAAK,aAAaA,EAAkB,gBAAgB0tB,EAAM,KAAK,GAAG,CAAC;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,mBAAmB;AACrB,QAAIj+B;AACJ,UAAM,GAAGmlB,IAAM,KAAK,aAAa,KAAKnlB,IAAK,KAAK,kBAAkB,OAAOA,IAAK,CAAA;AAC9E,WAAOmlB;AAAA,EACT;AAAA,EACA,IAAI,qBAAqB;AACvB,QAAInlB;AACJ,UAAM,CAACklB,IAAQ,CAAC,KAAKllB,IAAK,KAAK,kBAAkB,OAAOA,IAAK,CAAA;AAC7D,WAAOklB;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,oBAAoB;AACtB,WAAO1L,GAAc,MAAMjJ,EAAkB,mBAAmB;AAAA,EAClE;AAAA,EACA,IAAI,kBAAkBpH,GAAO;AAC3B,IAAAsQ,GAAc,MAAMlJ,EAAkB,qBAAqBpH,CAAK;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,mBAAmB;AACrB,WAAO8P,GAAe,MAAM1I,EAAkB,kBAAkB;AAAA,EAClE;AAAA,EACA,IAAI,iBAAiBpH,GAAO;AAC1B,IAAAiQ,GAAe,MAAM7I,EAAkB,oBAAoBpH,CAAK;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,aAAa;AACf,WAAOmQ,EAAe,MAAM/I,EAAkB,WAAW;AAAA,EAC3D;AAAA,EACA,IAAI,WAAWpH,GAAO;AACpB,IAAAoQ,EAAe,MAAMhJ,EAAkB,aAAapH,CAAK;AAAA,EAC3D;AAAA;AAAA,EAEA,YAAY;AACV,UAAM,UAAS,GACf,KAAK,kBAAiB,GACtB,KAAK,iBAAgB;AAAA,EACvB;AAAA,EACA,oBAAoB;AAClB,QAAInJ;AACJ,UAAMghC,IAAW,KAAK;AACtB,QAAI,CAACA,EAAS;AACZ;AAEF,QAAII;AACJ,QAAK,KAAK;AAOR,MAAAA,IAAsB;AAAA,SAPF;AACpB,YAAM5D,IAAc,KAAK,kBACnB,CAAA,EAAG6D,IAAc,KAAK,kBAAkB,KAAKrhC,IAAKghC,EAAS;AAAA,QAC/D,CAAC,CAAC9b,GAAOC,CAAG,MAAMD,KAASsY,KAAeA,KAAerY;AAAA,MACjE,MAAY,OAAOnlB,IAAK,CAAA;AAClB,MAAAohC,IAAsBN,GAAuB,MAAMO,CAAW;AAAA,IAChE;AAGA,UAAM,EAAE,OAAAvpB,EAAK,IAAKQ,GAAmB,KAAK,YAAY,WAAW;AACjE,IAAAR,EAAM,YAAY,SAAS,GAAGspB,IAAsB,GAAG,GAAG;AAAA,EAC5D;AAAA,EACA,mBAAmB;AAIjB,QAAI,CAHgB,KAAK,WAAW;AAAA,MAClC;AAAA,IACN,EACqB,iBAAgB,EAAG;AAClC;AACF,UAAME,IAAkBhpB;AAAA,MACtB,KAAK;AAAA,MACL;AAAA,IACN,GACUipB,IAAiBjpB;AAAA,MACrB,KAAK;AAAA,MACL;AAAA,IACN,GACUkpB,IAAQ10B,GAAgB,MAAMqzB,IAAkBC,EAAkB,EAAE,KAAK,MAAMhzB,GAAa,MAAMsyB,EAAW,CAAC,GAC9G+B,IAAS30B,GAAgB,MAAMuzB,IAAiBC,EAAiB,EAAE,KAAK,MAAMkB,GAAO,KAAK,MAAM,aAAa,GAC7GE,IAAW50B,GAAgB,MAAMyzB,IAAsBC,EAAsB,EAAE,KAAK,MAAMgB,GAAO,KAAK,MAAM,aAAa;AAC/H,IAAAF,EAAgB,MAAM,YAAY,cAAcG,CAAM,KACtDH,EAAgB,MAAM,YAAY,kBAAkB,GAAGE,EAAM,MAAM,KAAK,EAAE,GAC1ED,EAAe,MAAM,YAAY,gBAAgB,GAAGG,CAAQ,EAAE,GAC9DH,EAAe,MAAM,YAAY,gBAAgB,GAAGC,EAAM,IAAI,KAAK,IAAI,GACvED,EAAe,MAAM,YAAY,cAAc,SAAS;AAAA,EAC1D;AAAA,EACA,YAAYvkB,GAAK;AAEf,YADA,MAAM,YAAYA,CAAG,GACbA,EAAI,MAAI;AAAA,MACd,KAAK;AACHlQ,QAAAA,GAAgB,MAAM6zB,IAAcC,EAAc,EAAE,KAAK,IAAI;AAC7D;AAAA,MACF,KAAK;AACH9zB,QAAAA,GAAgB,MAAM0O,IAAoBC,EAAoB,EAAE,KAAK,MAAMuB,CAAG;AAC9E;AAAA,MACF,KAAK;AACH,QAAI5P,GAAa,MAAM0yB,EAAc,KACnC9yB,GAAa,MAAM8yB,IAAgB,EAAK;AAC1C;AAAA,MACF,KAAK;AACH9yB,QAAAA,GAAa,MAAM8yB,IAAgB,EAAI;AACvC;AAAA,MACF,KAAK;AACHhzB,QAAAA,GAAgB,MAAM2zB,IAAiBC,EAAiB,EAAE,KAAK,MAAM,IAAI;AACzE;AAAA,MACF,KAAK;AACH,QAAIvpB,GAAqB6F,EAAI,QAAQ,IAAI,KACvC,WAAW,MAAM5P,GAAa,MAAM2yB,EAAqB,EAAE,KAAK,IAAI,GAAG,CAAC;AAE1E;AAAA,IACR;AAAA,EACE;AACF;AACAV,KAAY,oBAAI,QAAO;AACvBC,KAAa,oBAAI,QAAO;AACxBC,KAAS,oBAAI,QAAO;AACpBC,KAAe,oBAAI,QAAO;AAC1BC,KAAc,oBAAI,QAAO;AACzBC,KAAc,oBAAI,QAAO;AACzBC,KAAkB,oBAAI,QAAO;AAC7BC,KAAmB,oBAAI,QAAO;AAC9BC,KAAqB,oBAAI,QAAO;AAChCC,KAAiB,oBAAI,QAAO;AAC5BC,KAAwB,oBAAI,QAAO;AACnCC,KAAsB,oBAAI,QAAO;AACjCC,KAAwB,WAAW;AACjC,SAAO,KAAK,eAAe,CAAC,KAAK,eAAe,CAAC,KAAK,gBAAgB,CAAC,KAAK,cAAc,KAAK,mBAAmB,KAAKvoB,GAAiB,IAAI;AAC9I;AACAwoB,KAAe,oBAAI,QAAO;AAC1BC,KAAmB,oBAAI,QAAO;AAC9BC,KAAqB,SAASuB,GAAK;AACjC,MAAI3hC;AAEJ,QAAM4hC,MADU5hC,IAAK,KAAK,aAAa,QAAQ,IAAIuW,GAAoB,MAAM,IAAI,KAAK,aAAa,QAAQ,CAAC,EAAE,IAAI,KAAK,kBAAkB,OAAOvW,IAAK,MAC3H,sBAAqB,GACzC6hC,IAAY,KAAK,MAAM,sBAAqB,GAC5ChwB,IAAQ8vB,EAAI,aACZG,IAAM,EAAED,EAAU,OAAOD,EAAW,OAAO/vB,IAAQ,IACnDkwB,IAAMH,EAAW,QAAQC,EAAU,OAAOhwB,IAAQ;AACxD,SAAO;AAAA,IACL,KAAK,EAAE,OAAAA,GAAO,KAAAiwB,GAAK,KAAAC,EAAG;AAAA,IACtB,QAAQH;AAAA,IACR,OAAOC;AAAA,EACX;AACA;AACAxB,KAAkB,oBAAI,QAAO;AAC7BC,KAAoB,SAASkB,GAAOQ,GAAO;AACzC,MAAIC,IAAW,GAAGD,IAAQ,GAAG;AAC7B,QAAM,EAAE,OAAAnwB,GAAO,KAAAiwB,GAAK,KAAAC,EAAG,IAAKP,EAAM;AAClC,MAAI,CAAC3vB;AACH,WAAOowB;AAMT,MALK,OAAO,MAAMH,CAAG,MAGnBG,IAAW,OADI,wCAAwCH,CAAG,oCAClC,KAAKG,CAAQ,MAEnC,CAAC,OAAO,MAAMF,CAAG,GAAG;AAEtB,UAAMG,IAAS,wCAAwCH,CAAG;AAC1D,IAAAE,IAAW,OAAOA,CAAQ,KAAKC,CAAM;AAAA,EACvC;AACA,SAAOD;AACT;AACA1B,KAAuB,oBAAI,QAAO;AAClCC,KAAyB,SAASgB,GAAOQ,GAAO;AAC9C,QAAM,EAAE,OAAAnwB,GAAO,KAAAiwB,GAAK,KAAAC,EAAG,IAAKP,EAAM,KAC5BW,IAAWH,IAAQR,EAAM,MAAM;AACrC,MAAIW,IAAWL,IAAM10B,GAAa,MAAMuyB,EAAe,GAAG;AACxD,UAAMyC,IAASZ,EAAM,MAAM,OAAOA,EAAM,OAAO,OAAOp0B,GAAa,MAAMuyB,EAAe;AACxF,WAAO,GAAGwC,IAAWtwB,IAAQ,IAAIuwB,CAAM;AAAA,EACzC;AACA,MAAID,IAAWJ,IAAM30B,GAAa,MAAMwyB,EAAgB,GAAG;AACzD,UAAMwC,IAASZ,EAAM,OAAO,QAAQA,EAAM,MAAM,QAAQp0B,GAAa,MAAMwyB,EAAgB;AAC3F,WAAO,GAAGuC,IAAWtwB,IAAQ,IAAIuwB,IAASZ,EAAM,MAAM,KAAK;AAAA,EAC7D;AACA,SAAO;AACT;AACAhmB,KAAqB,oBAAI,QAAO;AAChCC,KAAuB,SAASuB,GAAK;AACnC,QAAMqlB,IAAc,CAAC,GAAGj1B,GAAa,MAAMmyB,EAAM,CAAC,EAAE;AAAA,IAClD,CAAC3iC,MAAMogB,EAAI,aAAY,EAAG,SAASpgB,CAAC;AAAA,EACxC;AACE,MAAI,CAAC,KAAK,aAAaylC,KAAe,CAACrlB,EAAI,eAAe,SAAS,IAAI,IAAI;AACzElQ,IAAAA,GAAgB,MAAM2zB,IAAiBC,EAAiB,EAAE,KAAK,MAAM,IAAI;AACzE;AAAA,EACF;AACA,QAAMlb,IAAW,KAAK;AACtB,MAAI,CAACA;AACH;AACF,QAAM8c,IAAkBhqB;AAAA,IACtB,KAAK;AAAA,IACL;AAAA,EACJ,GACQiqB,IAAiBjqB;AAAA,IACrB,KAAK;AAAA,IACL;AAAA,EACJ,GACQkpB,IAAQ10B,GAAgB,MAAMqzB,IAAkBC,EAAkB,EAAE,KAAK,MAAMhzB,GAAa,MAAMqyB,EAAW,CAAC;AACpH,MAAI/I,KAAgB1Z,EAAI,UAAUwkB,EAAM,MAAM,QAAQA,EAAM,MAAM;AAClE,EAAA9K,IAAe,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGA,CAAY,CAAC;AACpD,QAAM+K,IAAS30B,GAAgB,MAAMuzB,IAAiBC,EAAiB,EAAE,KAAK,MAAMkB,GAAO9K,CAAY,GACjGgL,IAAW50B,GAAgB,MAAMyzB,IAAsBC,EAAsB,EAAE,KAAK,MAAMgB,GAAO9K,CAAY;AACnH,EAAA4L,EAAgB,MAAM,YAAY,cAAcb,CAAM,KACtDa,EAAgB,MAAM,YAAY,kBAAkB,GAAGd,EAAM,MAAM,KAAK,EAAE,GAC1Ee,EAAe,MAAM,YAAY,gBAAgB,GAAGb,CAAQ,EAAE,GAC9Da,EAAe,MAAM,YAAY,gBAAgB,GAAGf,EAAM,IAAI,KAAK,IAAI;AACvE,QAAMgB,IAAO,KAAK,MAAMp1B,GAAa,MAAMoyB,EAAY,CAAC,IAAI,KAAK,MAAM9I,IAAelR,CAAQ;AAC9F,EAAI,KAAK,IAAIgd,CAAI,IAAI,KAAK9L,IAAe,QAAQA,IAAe,SAEhE1pB,GAAa,MAAMwyB,IAAc9I,IAAelR,CAAQ,GACxD1Y,GAAgB,MAAM2zB,IAAiBC,EAAiB,EAAE,KAAK,MAAMtzB,GAAa,MAAMoyB,EAAY,CAAC;AACvG;AACAiB,KAAkB,oBAAI,QAAO;AAC7BC,KAAoB,SAAS3Z,GAAQ;AACnC,OAAK;AAAA,IACH,IAAIpR,EAAW,YAAYxF,EAAc,uBAAuB;AAAA,MAC9D,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAA4W;AAAA,IACN,CAAK;AAAA,EACL;AACA;AACA4Z,KAAe,oBAAI,QAAO;AAC1BC,KAAiB,WAAW;AAC1BxzB,EAAAA,GAAa,MAAMkyB,EAAU,EAAE,KAAI;AACnC,QAAMvY,IAAS8Z,GAAuB,IAAI;AAC1C,OAAK;AAAA,IACH,IAAIlrB,EAAW,YAAYxF,EAAc,oBAAoB;AAAA,MAC3D,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAA4W;AAAA,IACN,CAAK;AAAA,EACL;AACA;AACAga,GAAe,oBAAoB,EAAE,MAAM,OAAM;AACjDA,GAAe,2BAA2BhL;AACrCpgB,EAAW,eAAe,IAAI,kBAAkB,KACnDA,EAAW,eAAe,OAAO,oBAAoBorB,EAAc;ACzuBrE,IAAIpnB,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACIs5B;AAaJ,MAAMC,KAAiB,GACjBC,KAAW,CAAC35B,MACZA,EAAG,aACE,IACFA,EAAG,aAEN45B,KAAwB,CAACz5B,MAAU,GAAG,KAAK,MAAMA,IAAQ,GAAG,CAAC;AACnE,MAAM05B,WAAyB7M,GAAiB;AAAA,EAC9C,cAAc;AACZ,UAAM,GAAG,SAAS,GAClB7pB,GAAa,MAAMs2B,IAAmB,MAAM;AAC1C,YAAM1b,IAAS,KAAK,MAAM,OACpB/J,IAAM,IAAIrH,EAAW;AAAA,QACzBxF,EAAc;AAAA,QACd;AAAA,UACE,UAAU;AAAA,UACV,SAAS;AAAA,UACT,QAAA4W;AAAA,QACV;AAAA,MACA;AACM,WAAK,cAAc/J,CAAG;AAAA,IACxB,CAAC;AAAA,EACH;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTzM,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvB,KAAK,MAAM,aAAa,cAAc9b,EAAE,QAAQ,CAAC,GACjD,KAAK,MAAM,iBAAiB,SAAS2Y,GAAa,MAAMq1B,EAAiB,CAAC;AAAA,EAC5E;AAAA,EACA,uBAAuB;AACrB,SAAK,MAAM,oBAAoB,SAASr1B,GAAa,MAAMq1B,EAAiB,CAAC,GAC7E,MAAM,qBAAoB;AAAA,EAC5B;AAAA,EACA,yBAAyBnzB,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,IACvDF,MAAaiB,EAAkB,gBAAgBjB,MAAaiB,EAAkB,iBAChF,KAAK,MAAM,gBAAgBoyB,GAAS,IAAI,GACxC,KAAK,MAAM;AAAA,MACT;AAAA,MACAC,GAAsB,KAAK,MAAM,aAAa;AAAA,IACtD,GACM,KAAK,UAAS;AAAA,EAElB;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,cAAc;AAChB,WAAO3pB,GAAe,MAAM1I,EAAkB,cAAcmyB,EAAc;AAAA,EAC5E;AAAA,EACA,IAAI,YAAYv5B,GAAO;AACrB,IAAAiQ,GAAe,MAAM7I,EAAkB,cAAcpH,CAAK;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,aAAa;AACf,WAAOmQ,EAAe,MAAM/I,EAAkB,WAAW;AAAA,EAC3D;AAAA,EACA,IAAI,WAAWpH,GAAO;AACpB,IAAAoQ,EAAe,MAAMhJ,EAAkB,aAAapH,CAAK;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,yBAAyB;AAC3B,WAAOqQ,GAAc,MAAMjJ,EAAkB,wBAAwB;AAAA,EACvE;AAAA,EACA,IAAI,uBAAuBpH,GAAO;AAChC,IAAAsQ,GAAc,MAAMlJ,EAAkB,0BAA0BpH,CAAK;AAAA,EACvE;AACF;AACAs5B,KAAoB,oBAAI,QAAO;AAC1B9sB,EAAW,eAAe,IAAI,oBAAoB,KACrDA,EAAW,eAAe,OAAO,sBAAsBktB,EAAgB;ACtGzE,SAAStQ,GAAoBrY,GAAQ;AACnC;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAgBa3J,EAAkB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAe7C;AACA,SAASiiB,KAAwB;AAC/B,SAAO/9B,EAAE,MAAM;AACjB;AACA,MAAMquC,WAAwBrQ,GAAkB;AAAA,EAC9C,cAAc;AACZ,UAAM,GAAG,SAAS,GAClB,KAAK,YAAY;AAAA,EACnB;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO,CAAC,GAAG,MAAM,oBAAoBliB,EAAkB,UAAU;AAAA,EACnE;AAAA,EACA,oBAAoB;AAClB,QAAIvQ;AACJ,UAAM,kBAAiB,GACvB,KAAK,cAAcA,IAAK,KAAK,eAAe,OAAO,SAASA,EAAG,cAAc,OAAO,MAAM,MACtF,KAAK,cACP,KAAK,UAAU,cAAcvL,EAAE,MAAM;AAAA,EAEzC;AAAA,EACA,yBAAyB6a,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAaiB,EAAkB,cAAc,KAAK,aACpD,KAAK;AAAA,MACH;AAAA,MACA,KAAK,YAAY,SAAS;AAAA,IAClC;AAAA,EAEE;AAAA,EACA,IAAI,YAAY;AACd,WAAO+I,EAAe,MAAM/I,EAAkB,UAAU;AAAA,EAC1D;AAAA,EACA,IAAI,UAAUpH,GAAO;AACnB,IAAAoQ,EAAe,MAAMhJ,EAAkB,YAAYpH,CAAK;AAAA,EAC1D;AAAA,EACA,cAAc;AACZ,UAAM45B,IAAU,CAAC,KAAK,WAChB/lB,IAAM,IAAIrH,EAAW,YAAYxF,EAAc,oBAAoB;AAAA,MACvE,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAQ4yB;AAAA,IACd,CAAK;AACD,SAAK,cAAc/lB,CAAG;AAAA,EACxB;AACF;AACA8lB,GAAgB,sBAAsBvQ;AACtCuQ,GAAgB,wBAAwBtQ;AACnC7c,EAAW,eAAe,IAAI,mBAAmB,KACpDA,EAAW,eAAe,OAAO,qBAAqBmtB,EAAe;ACvFvE,IAAInpB,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,IAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL65B,IAAQC,IAAYC,IAAQnuB,IAAQouB,IAAUC,IAAgBC,IAAeC,IAAOC,IAAUC,IAAaC;AAE/G,MAAMC,KAAU,GACVC,KAAS,GACTC,KAAO,GACPC,KAAmB;AAAA,EACvB,gBAAgBC,GAAUC,GAAO3b,GAAO;AACtC,QAAKA;AAEL,iBAAW,CAAC4b,GAAYC,CAAI,KAAKF;AAC/B,YAAIC,KAAc5b,GAAO;AACvB,gBAAMjf,IAAQif,EAAM4b,CAAU;AAC9B,UAAI,OAAO76B,KAAU,aAAa86B,aAAgBC,MAAY,OAAOD,EAAK,QAAQA,EAAK,aAAa,KAAM,YACxGA,EAAK,eAAe96B,IACX,OAAOA,KAAU,cAAc86B,aAAgBC,KACxDD,EAAK,QAAQA,EAAK,aAAa,IAAI96B,IAEnC86B,EAAK,QAAQ96B;AAAA,QAEjB;AAAA;AAAA,EAEJ;AACF;AACA,MAAMg7B,WAAyBxuB,EAAW,iBAAiB;AAAA,EACzD,YAAYyuB,GAAUhc,GAAOic,IAAYR,IAAkB;AACzD,QAAI7jC;AACJ,UAAK,GACLmM,GAAa,MAAM62B,IAAQ,MAAM,GACjC72B,GAAa,MAAM82B,IAAY,MAAM,GACrC,KAAK,OAAOmB,EAAS,QAAQ,UAAU,EAAI,CAAC,GAC5Cp3B,GAAa,MAAMg2B,IAAQsB,GAAM,IAAI,CAAC,GACtCt3B,GAAa,MAAMi2B,IAAYoB,CAAS,IACvCrkC,IAAKqkC,EAAU,mBAAmB,QAAgBrkC,EAAG,KAAKqkC,GAAW,MAAMj3B,EAAa,MAAM41B,EAAM,GAAG5a,CAAK,GAC7Gic,EAAU,gBAAgB,MAAMj3B,EAAa,MAAM41B,EAAM,GAAG5a,CAAK;AAAA,EACnE;AAAA,EACA,OAAOA,GAAO;AACZhb,IAAAA,EAAa,MAAM61B,EAAU,EAAE,gBAAgB,MAAM71B,EAAa,MAAM41B,EAAM,GAAG5a,CAAK;AAAA,EACxF;AACF;AACA4a,KAAS,oBAAI,QAAO;AACpBC,KAAa,oBAAI,QAAO;AACxB,MAAMqB,KAAQ,CAAC9uB,GAASuuB,IAAQ,OAAO;AACrC,MAAI/1B,GAAM7E;AACV,aAAWgN,KAAQX,EAAQ,cAAc,CAAA;AACvC,QAAIW,EAAK,MAAM,SAAS,IAAI,GAAG;AAC7B,YAAMgd,IAAO,IAAIoR,GAAY;AAC7B,WAAK,CAACv2B,GAAM7E,CAAK,KAAKq7B,GAASruB,EAAK,KAAK;AACvC,YAAI,CAACnI;AACH,UAAAmlB,EAAK,OAAOhqB,CAAK;AAAA,aACd;AACH,gBAAM86B,IAAO,IAAIC,GAAS1uB,GAASW,EAAK,MAAMA,EAAK,YAAY;AAC/D,UAAAgd,EAAK,OAAO8Q,CAAI,GAChBF,EAAM,KAAK,CAAC56B,GAAO86B,CAAI,CAAC;AAAA,QAC1B;AAEF,MAAA9tB,EAAK,QAAQgd,EAAK,SAAQ;AAAA,IAC5B;AAEF,aAAWrc,KAAQtB,EAAQ;AACzB,QAAIsB,EAAK,aAAa4sB,MAAW,EAAE5sB,aAAgB;AACjD,MAAAwtB,GAAMxtB,GAAMitB,CAAK;AAAA,SACZ;AACL,YAAMU,IAAO3tB,EAAK;AAClB,UAAIA,EAAK,aAAa4sB,MAAWe,EAAK,SAAS,IAAI,GAAG;AACpD,cAAMC,IAAQ,CAAA;AACd,YAAID;AACF,eAAK,CAACz2B,GAAM7E,CAAK,KAAKq7B,GAASC,CAAI;AACjC,gBAAI,CAACz2B;AACH,cAAA02B,EAAM,KAAK,IAAI,KAAKv7B,CAAK,CAAC;AAAA,iBACvB;AACH,oBAAM86B,IAAO,IAAIU,GAAcnvB,CAAO;AACtC,cAAAkvB,EAAM,KAAKT,CAAI,GACfF,EAAM,KAAK,CAAC56B,GAAO86B,CAAI,CAAC;AAAA,YAC1B;AAAA,iBACOntB,aAAgB,qBAAqB;AAC9C,gBAAMmtB,IAAO,IAAIW,GAAkBpvB,GAASsB,CAAI;AAChD,UAAA4tB,EAAM,KAAKT,CAAI,GACfF,EAAM,KAAK,CAACE,EAAK,YAAYA,CAAI,CAAC;AAAA,QACpC;AACA,QAAAntB,EAAK;AAAA,UACH,GAAG4tB,EAAM,QAAQ,CAACT,MAASA,EAAK,oBAAoB,CAACA,CAAI,CAAC;AAAA,QACpE;AAAA,MACM;AAAA,IACF;AAEF,SAAOF;AACT,GACMc,KAAM,CAAA,GACNL,KAAW,CAAChgB,MAAS;AACzB,MAAIrb,IAAQ,IAAI27B,IAAO,GAAGrmB,IAASomB,GAAIrgB,CAAI,GAAG9vB,IAAI,GAAG0H;AACrD,MAAIqiB;AACF,WAAOA;AAGT,OADEA,IAAS,CAAA,GACJriB,IAAIooB,EAAK9vB,CAAC,GAAGA;AAClB,IAAI0H,MAAM,OAAOooB,EAAK9vB,IAAI,CAAC,MAAM,OAAO8vB,EAAK9vB,IAAI,CAAC,MAAM,QAAQ8vB,EAAK9vB,IAAI,CAAC,KAAK,EAAEowC,KAAQ,KACnF37B,KACFsV,EAAO,KAAK,CAACklB,IAAQx6B,CAAK,CAAC,GAC7BA,IAAQ,IACRzU,OACS0H,MAAM,OAAOooB,EAAK9vB,IAAI,CAAC,MAAM,OAAO8vB,EAAK9vB,IAAI,CAAC,MAAM,QAAQ,CAAC,EAAEowC,KACxErmB,EAAO,KAAK,CAACmlB,IAAMz6B,EAAM,KAAI,CAAE,CAAC,GAChCA,IAAQ,IACRzU,OAEAyU,KAAS/M,KAAK;AAElB,SAAI+M,KACFsV,EAAO,KAAK,CAACklB,KAASmB,IAAO,IAAI,OAAO,MAAM37B,CAAK,CAAC,GAC/C07B,GAAIrgB,CAAI,IAAI/F;AACrB,GACMsmB,KAAW;AACjB,MAAMC,GAAK;AAAA,EACT,IAAI,QAAQ;AACV,WAAO;AAAA,EACT;AAAA,EACA,IAAI,MAAMj1B,GAAK;AAAA,EACf;AAAA,EACA,WAAW;AACT,WAAO,KAAK;AAAA,EACd;AACF;AACA,MAAMk1B,KAAiC,oBAAI,QAAO;AAClD,MAAMV,GAAa;AAAA,EACjB,cAAc;AACZp4B,IAAAA,GAAa,MAAM+2B,IAAQ,EAAE;AAAA,EAC/B;AAAA,EACA,CAAC,OAAO,QAAQ,IAAI;AAClB,WAAO91B,EAAa,MAAM81B,EAAM,EAAE,OAAM;AAAA,EAC1C;AAAA,EACA,IAAI,SAAS;AACX,WAAO91B,EAAa,MAAM81B,EAAM,EAAE;AAAA,EACpC;AAAA,EACA,KAAKjvB,GAAO;AACV,WAAO7G,EAAa,MAAM81B,EAAM,EAAEjvB,CAAK;AAAA,EACzC;AAAA,EACA,UAAUywB,GAAO;AACf,eAAWQ,KAAQR;AACjB,MAAIQ,aAAgBhB,MAClBe,GAAe,IAAIC,GAAM,IAAI,GAE/B93B,EAAa,MAAM81B,EAAM,EAAE,KAAKgC,CAAI;AAAA,EAExC;AAAA,EACA,WAAW;AACT,WAAO93B,EAAa,MAAM81B,EAAM,EAAE,KAAK,EAAE;AAAA,EAC3C;AACF;AACAA,KAAS,oBAAI,QAAO;AACpB,MAAMgB,WAAiBc,GAAK;AAAA,EAC1B,YAAYxvB,GAASkb,GAAeyU,GAAc;AAChD,UAAK,GACLh5B,GAAa,MAAMm3B,EAAK,GACxBn3B,GAAa,MAAM4I,IAAQ,EAAE,GAC7B5I,GAAa,MAAMg3B,IAAU,MAAM,GACnCh3B,GAAa,MAAMi3B,IAAgB,MAAM,GACzCj3B,GAAa,MAAMk3B,IAAe,MAAM,GACxCr2B,GAAa,MAAMm2B,IAAU3tB,CAAO,GACpCxI,GAAa,MAAMo2B,IAAgB1S,CAAa,GAChD1jB,GAAa,MAAMq2B,IAAe8B,CAAY;AAAA,EAChD;AAAA,EACA,IAAI,gBAAgB;AAClB,WAAO/3B,EAAa,MAAMg2B,EAAc;AAAA,EAC1C;AAAA,EACA,IAAI,qBAAqB;AACvB,WAAOh2B,EAAa,MAAMi2B,EAAa;AAAA,EACzC;AAAA,EACA,IAAI,UAAU;AACZ,WAAOj2B,EAAa,MAAM+1B,EAAQ;AAAA,EACpC;AAAA,EACA,IAAI,QAAQ;AACV,WAAO/1B,EAAa,MAAM2H,EAAM;AAAA,EAClC;AAAA,EACA,IAAI,MAAMvF,GAAU;AAClB,IAAIpC,EAAa,MAAM2H,EAAM,MAAMvF,MAEnCxC,GAAa,MAAM+H,IAAQvF,CAAQ,GAC/B,CAACpC,EAAa,MAAMk2B,IAAOC,EAAQ,KAAKn2B,EAAa,MAAMk2B,IAAOC,EAAQ,EAAE,WAAW,IACrF/zB,KAAY,OACdpC,EAAa,MAAM+1B,EAAQ,EAAE;AAAA,MAC3B/1B,EAAa,MAAMi2B,EAAa;AAAA,MAChCj2B,EAAa,MAAMg2B,EAAc;AAAA,IAC3C,IAEQh2B,EAAa,MAAM+1B,EAAQ,EAAE;AAAA,MAC3B/1B,EAAa,MAAMi2B,EAAa;AAAA,MAChCj2B,EAAa,MAAMg2B,EAAc;AAAA,MACjC5zB;AAAA,IACV,IAGMpC,EAAa,MAAM+1B,EAAQ,EAAE;AAAA,MAC3B/1B,EAAa,MAAMi2B,EAAa;AAAA,MAChCj2B,EAAa,MAAMg2B,EAAc;AAAA,MACjCh2B,EAAa,MAAMk2B,IAAOC,EAAQ,EAAE,SAAQ;AAAA,IACpD;AAAA,EAEE;AAAA,EACA,IAAI,eAAe;AACjB,WAAOn2B,EAAa,MAAM+1B,EAAQ,EAAE;AAAA,MAClC/1B,EAAa,MAAMi2B,EAAa;AAAA,MAChCj2B,EAAa,MAAMg2B,EAAc;AAAA,IACvC;AAAA,EACE;AAAA,EACA,IAAI,aAAaj6B,GAAO;AACtB,QAAI,CAACiE,EAAa,MAAMk2B,IAAOC,EAAQ,KAAKn2B,EAAa,MAAMk2B,IAAOC,EAAQ,EAAE,WAAW;AACzF,WAAK,QAAQp6B,IAAQ,KAAK;AAAA;AAE1B,YAAM,IAAI,aAAa,gCAAgC;AAAA,EAC3D;AACF;AACA4L,KAAS,oBAAI,QAAO;AACpBouB,KAAW,oBAAI,QAAO;AACtBC,KAAiB,oBAAI,QAAO;AAC5BC,KAAgB,oBAAI,QAAO;AAC3BC,KAAQ,oBAAI,QAAO;AACnBC,KAAW,WAAW;AACpB,SAAO0B,GAAe,IAAI,IAAI;AAChC;AACA,MAAMN,WAAsBK,GAAK;AAAA,EAC/B,YAAYI,GAAYC,GAAO;AAC7B,UAAK,GACLl5B,GAAa,MAAMq3B,IAAa,MAAM,GACtCr3B,GAAa,MAAMs3B,IAAQ,MAAM,GACjCz2B,GAAa,MAAMw2B,IAAa4B,CAAU,GAC1Cp4B,GAAa,MAAMy2B,IAAQ4B,IAAQ,CAAC,GAAGA,CAAK,IAAI,CAAC,IAAI,KAAI,CAAE,CAAC;AAAA,EAC9D;AAAA,EACA,IAAI,mBAAmB;AACrB,WAAOj4B,EAAa,MAAMq2B,EAAM;AAAA,EAClC;AAAA,EACA,IAAI,aAAa;AACf,WAAOr2B,EAAa,MAAMo2B,EAAW;AAAA,EACvC;AAAA,EACA,IAAI,cAAc;AAChB,WAAOp2B,EAAa,MAAMq2B,EAAM,EAAEr2B,EAAa,MAAMq2B,EAAM,EAAE,SAAS,CAAC,EAAE;AAAA,EAC3E;AAAA,EACA,IAAI,kBAAkB;AACpB,WAAOr2B,EAAa,MAAMq2B,EAAM,EAAE,CAAC,EAAE;AAAA,EACvC;AAAA;AAAA,EAEA,IAAI,QAAQ;AACV,WAAOr2B,EAAa,MAAMq2B,EAAM,EAAE,IAAI,CAAC3sB,MAASA,EAAK,WAAW,EAAE,KAAK,EAAE;AAAA,EAC3E;AAAA,EACA,IAAI,MAAMtH,GAAU;AAClB,SAAK,QAAQA,CAAQ;AAAA,EACvB;AAAA,EACA,WAAW61B,GAAO;AAChB,UAAMC,IAAkBD,EAAM,KAAI,EAAG;AAAA,MACnC,CAACvuB,MAASA,KAAQ,OAAO,CAAC,IAAI,KAAI,CAAE,IAAIA,EAAK,UAAU,CAAC,GAAGA,CAAI,IAAIA,EAAK,aAAaiuB,KAAW,CAAC,GAAGjuB,EAAK,UAAU,IAAIA,EAAK,WAAW,CAACA,CAAI,IAAI,CAAC,IAAI,KAAKA,CAAI,CAAC;AAAA,IACrK;AACI,IAAKwuB,EAAgB,UACnBA,EAAgB,KAAK,IAAI,MAAM,GACjCt4B,GAAa,MAAMy2B,IAAQ8B;AAAA,MACzBn4B,EAAa,MAAMq2B,EAAM,EAAE,CAAC,EAAE;AAAA,MAC9Br2B,EAAa,MAAMq2B,EAAM;AAAA,MACzB6B;AAAA,MACA,KAAK;AAAA,IACX,CAAK;AAAA,EACH;AACF;AACA9B,KAAc,oBAAI,QAAO;AACzBC,KAAS,oBAAI,QAAO;AACpB,MAAMmB,WAA0BD,GAAc;AAAA,EAC5C,YAAYS,GAAYhB,GAAU;AAChC,UAAMoB,IAAYpB,EAAS,aAAa,WAAW,KAAKA,EAAS,aAAa,MAAM;AACpF,QAAIJ,IAAaI,EAAS,aAAa,YAAY,KAAKA,EAAS,aAAaoB,CAAS,KAAK;AAC5F,IAAIxB,EAAW,WAAW,IAAI,MAC5BA,IAAaA,EAAW,KAAI,EAAG,MAAM,GAAG,EAAE,EAAE,KAAI,IAClD,MAAMoB,CAAU,GAChB,KAAK,aAAapB,GAClB,KAAK,WAAWI,GAChB,KAAK,YAAYoB;AAAA,EACnB;AACF;AACA,SAASD,GAAQE,GAAQ9wC,GAAGiI,GAAGuoB,IAAM,MAAM;AACzC,MAAIzwB,IAAI,GAAGgxC,GAAKC,GAAMngC,GAAIlP,IAAIsG,EAAE,QAAQkC,IAAInK,EAAE;AAC9C,SAAOD,IAAI4B,KAAK5B,IAAIoK,KAAKnK,EAAED,CAAC,KAAKkI,EAAElI,CAAC;AAClC,IAAAA;AACF,SAAOA,IAAI4B,KAAK5B,IAAIoK,KAAKlC,EAAEtG,IAAI,CAAC,KAAK3B,EAAEmK,IAAI,CAAC;AAC1C,IAAAqmB,IAAMvoB,EAAE,EAAEkC,GAAG,EAAExI,CAAC;AAClB,MAAI5B,KAAKoK;AACP,WAAOpK,IAAI4B;AACT,MAAAmvC,EAAO,aAAa7oC,EAAElI,GAAG,GAAGywB,CAAG;AACnC,MAAIzwB,KAAK4B;AACP,WAAO5B,IAAIoK;AACT,MAAA2mC,EAAO,YAAY9wC,EAAED,GAAG,CAAC;AAAA,OACxB;AAEH,SADAgxC,IAAM/wC,EAAED,CAAC,GACFA,IAAI4B;AACT,MAAAkP,IAAK5I,EAAElI,GAAG,GAAGixC,IAAOD,IAAMA,EAAI,cAAcvgB,GACxCugB,KAAOlgC,IACTkgC,IAAMC,IACCjxC,IAAI4B,KAAKsG,EAAElI,CAAC,KAAKixC,KACxBF,EAAO,aAAajgC,GAAIkgC,CAAG,GAAGA,IAAMC,KAEpCF,EAAO,aAAajgC,GAAIkgC,CAAG;AAE/B,WAAOA,KAAOvgB;AACZ,MAAAwgB,IAAOD,EAAI,aAAaD,EAAO,YAAYC,CAAG,GAAGA,IAAMC;AAAA,EAC3D;AACA,SAAO/oC;AACT;ACzTA,MAAMgpC,KAAgB;AAAA,EACpB,QAAQ,CAACz8B,MAAU,OAAOA,CAAK;AACjC;AACA,MAAM08B,GAAgB;AAAA,EACpB,YAAYzB,GAAU;AACpB,SAAK,WAAWA,GAChB,KAAK,QAAQ;AAAA,EACf;AACF;AACA,MAAM0B,KAA4B,oBAAI,QAAO,GACvCC,KAAoC,oBAAI,QAAO,GAC/CC,KAAa;AAAA,EACjB,SAAS,CAAC/B,GAAM7b,MAAU;AACxB,IAAAA,EAAM6b,EAAK,UAAU,IAAI,IAAI4B,GAAgB5B,EAAK,QAAQ;AAAA,EAC5D;AAAA,EACA,IAAI,CAACA,GAAM7b,MAAU;AACnB,QAAIpoB;AACJ,QAAIimC,GAAmBhC,EAAK,YAAY7b,CAAK;AAC3C,UAAI0d,GAAU,IAAI7B,CAAI,MAAMA,EAAK,UAAU;AACzC,QAAA6B,GAAU,IAAI7B,GAAMA,EAAK,QAAQ;AACjC,cAAMiC,IAAM,IAAI/B,GAAiBF,EAAK,UAAU7b,GAAOic,EAAS;AAChE,QAAAJ,EAAK,QAAQiC,CAAG,GAChBH,GAAkB,IAAI9B,GAAMiC,CAAG;AAAA,MACjC;AACE,SAAClmC,IAAK+lC,GAAkB,IAAI9B,CAAI,MAAM,QAAgBjkC,EAAG,OAAOooB,CAAK;AAAA;AAGvE,MAAA6b,EAAK,QAAQ,EAAE,GACf6B,GAAU,OAAO7B,CAAI,GACrB8B,GAAkB,OAAO9B,CAAI;AAAA,EAEjC;AACF,GACMkC,KAAiB,OAAO,KAAKH,EAAU,GACvC3B,KAAY;AAAA,EAChB,gBAAgBP,GAAUC,GAAO3b,GAAO;AACtC,QAAIpoB,GAAIsJ;AACR,QAAK8e;AAEL,iBAAW,CAAC4b,GAAYC,CAAI,KAAKF,GAAO;AACtC,YAAIE,aAAgBW,IAAmB;AACrC,cAAI,CAACX,EAAK,WAAW;AACnB,kBAAMuB,IAAYW,GAAe;AAAA,cAC/B,CAAC7vC,MAAM2tC,EAAK,SAAS,aAAa3tC,CAAC;AAAA,YAC/C;AACU,YAAIkvC,MACFvB,EAAK,YAAYuB,GACjBvB,EAAK,aAAaA,EAAK,SAAS,aAAauB,CAAS;AAAA,UAE1D;AACA,WAACxlC,IAAKgmC,GAAW/B,EAAK,SAAS,MAAM,QAAgBjkC,EAAG,KAAKgmC,IAAY/B,GAAM7b,CAAK;AACpF;AAAA,QACF;AACA,YAAIjf,IAAQ88B,GAAmBjC,GAAY5b,CAAK;AAChD,YAAIjf,aAAiB08B,IAAiB;AACpC,UAAIC,GAAU,IAAI7B,CAAI,MAAM96B,EAAM,YAChC28B,GAAU,IAAI7B,GAAM96B,EAAM,QAAQ,GAClCA,IAAQ,IAAIg7B,GAAiBh7B,EAAM,UAAUA,EAAM,OAAOk7B,EAAS,GACnEJ,EAAK,QAAQ96B,GACb48B,GAAkB,IAAI9B,GAAM96B,CAAK,MAEhCG,IAAKy8B,GAAkB,IAAI9B,CAAI,MAAM,QAAgB36B,EAAG,OAAOH,EAAM,KAAK;AAE7E;AAAA,QACF;AACA,QAAIA,KACE86B,aAAgBC,MACdD,EAAK,cAAc,WAAW,OAAO,MACvC96B,IAAQ,OAAOA,CAAK,IAGpB86B,aAAgBC,KACd,OAAO/6B,KAAU,YACnB86B,EAAK,eAAe96B,IACX,OAAOA,KAAU,aAC1B86B,EAAK,QAAQA,EAAK,aAAa,IAAI96B,IAEnC86B,EAAK,QAAQ96B,KAGf86B,EAAK,QAAQ96B,GACb28B,GAAU,OAAO7B,CAAI,GACrB8B,GAAkB,OAAO9B,CAAI,MAG3BA,aAAgBC,KAClBD,EAAK,QAAQ,UAEbA,EAAK,QAAQ,QACb6B,GAAU,OAAO7B,CAAI,GACrB8B,GAAkB,OAAO9B,CAAI;AAAA,MAGnC;AAAA,EACF;AACF,GACMmC,KAAY;AAAA,EAChB,KAAK,CAACzxC,MAAM,CAACA;AAAA,EACb,MAAM,CAACA,MAAM,CAAC,CAACA;AAAA,EACf,MAAM,CAACA,GAAGiI,MAAMjI,KAAKiI;AAAA,EACrB,MAAM,CAACjI,GAAGiI,MAAMjI,KAAKiI;AAAA,EACrB,KAAK,CAACjI,GAAGiI,MAAMjI,IAAIiI;AAAA,EACnB,MAAM,CAACjI,GAAGiI,MAAMjI,KAAKiI;AAAA,EACrB,KAAK,CAACjI,GAAGiI,MAAMjI,IAAIiI;AAAA,EACnB,MAAM,CAACjI,GAAGiI,MAAMjI,KAAKiI;AAAA,EACrB,MAAM,CAACjI,GAAGiI,MAAMjI,KAAgBiI;AAAA,EAChC,KAAK,CAACjI,GAAGiI,MAAM;AACb,QAAIoD;AACJ,YAAQA,IAAK4lC,GAAchpC,CAAC,MAAM,OAAO,SAASoD,EAAG,KAAK4lC,IAAejxC,CAAC;AAAA,EAC5E;AACF;AACA,SAAS0xC,GAAmBC,GAAM;AAChC,SAAO9B,GAAS8B,GAAM;AAAA,IACpB,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,IAAI;AAAA,IACJ,OAAO;AAAA,EACX,CAAG,EAAE,OAAO,CAAC,EAAE,MAAAt4B,EAAI,MAAOA,MAAS,IAAI;AACvC;AACA,SAASi4B,GAAmBK,GAAMle,IAAQ,IAAI;AAC5C,MAAIpoB,GAAIsJ,GAAIC,GAAIwC,GAAIhO,GAAImrB,GAAIC;AAC5B,QAAM1K,IAAS4nB,GAAmBC,CAAI;AACtC,MAAI7nB,EAAO,WAAW,KAAKA,EAAO,KAAK,CAAC,EAAE,MAAAzQ,EAAI,MAAO,CAACA,CAAI;AACxD,WAAOu4B,GAAkBD,CAAI;AAE/B,QAAMtmC,IAAKye,EAAO,CAAC,MAAM,OAAO,SAASze,EAAG,WAAW,KAAK;AAC1D,UAAMwmC,IAAUpe,GAAO9e,IAAKmV,EAAO,CAAC,MAAM,OAAO,SAASnV,EAAG,KAAK;AAClE,QAAI,CAACk9B;AACH,aAAOD,GAAkBD,CAAI;AAE/B,UAAMG,IAAe,EAAE,GAAGre,EAAK;AAC/B,IAAAoe,EAAQ,QAAQC;AAChB,UAAMC,IAAOjoB,EAAO,MAAM,CAAC;AAC3B,aAAS/pB,IAAI,GAAGA,IAAIgyC,EAAK,QAAQhyC,KAAK,GAAG;AACvC,YAAM2Z,KAAQ9E,IAAKm9B,EAAKhyC,CAAC,MAAM,OAAO,SAAS6U,EAAG,OAC5Co9B,KAAY56B,IAAK26B,EAAKhyC,IAAI,CAAC,MAAM,OAAO,SAASqX,EAAG,OACpD5C,KAASpL,IAAK2oC,EAAKhyC,IAAI,CAAC,MAAM,OAAO,SAASqJ,EAAG;AACvD,MAAIsQ,KAAQs4B,MAAa,QACvBF,EAAap4B,CAAI,IAAIu4B,GAAcz9B,GAAOif,CAAK;AAAA,IAEnD;AACA,WAAOoe;AAAA,EACT;AACA,MAAI/nB,EAAO,WAAW;AACpB,WAAKooB,GAAapoB,EAAO,CAAC,CAAC,IAGpBmoB,GAAcnoB,EAAO,CAAC,EAAE,OAAO2J,CAAK,IAFlCme,GAAkBD,CAAI;AAIjC,MAAI7nB,EAAO,WAAW,GAAG;AACvB,UAAMkoB,KAAYzd,IAAKzK,EAAO,CAAC,MAAM,OAAO,SAASyK,EAAG,OAClD4d,IAAMV,GAAUO,CAAQ;AAC9B,QAAI,CAACG,KAAO,CAACD,GAAapoB,EAAO,CAAC,CAAC;AACjC,aAAO8nB,GAAkBD,CAAI;AAE/B,UAAM3xC,IAAIiyC,GAAcnoB,EAAO,CAAC,EAAE,OAAO2J,CAAK;AAC9C,WAAO0e,EAAInyC,CAAC;AAAA,EACd;AACA,MAAI8pB,EAAO,WAAW,GAAG;AACvB,UAAMkoB,KAAYxd,IAAK1K,EAAO,CAAC,MAAM,OAAO,SAAS0K,EAAG,OAClD2d,IAAMV,GAAUO,CAAQ;AAC9B,QAAI,CAACG,KAAO,CAACD,GAAapoB,EAAO,CAAC,CAAC,KAAK,CAACooB,GAAapoB,EAAO,CAAC,CAAC;AAC7D,aAAO8nB,GAAkBD,CAAI;AAE/B,UAAM3xC,IAAIiyC,GAAcnoB,EAAO,CAAC,EAAE,OAAO2J,CAAK;AAC9C,QAAIue,MAAa;AACf,aAAOG,EAAInyC,GAAG8pB,EAAO,CAAC,EAAE,KAAK;AAE/B,UAAM7hB,IAAIgqC,GAAcnoB,EAAO,CAAC,EAAE,OAAO2J,CAAK;AAC9C,WAAO0e,EAAInyC,GAAGiI,CAAC;AAAA,EACjB;AACF;AACA,SAAS2pC,GAAkBD,GAAM;AAC/B,iBAAQ,KAAK,iCAAiCA,CAAI,IAAI,GAC/C;AACT;AACA,SAASO,GAAa,EAAE,MAAA74B,KAAQ;AAC9B,SAAO,CAAC,UAAU,WAAW,UAAU,OAAO,EAAE,SAASA,CAAI;AAC/D;AACA,SAAS44B,GAAcG,GAAK3e,GAAO;AACjC,QAAM4e,IAAYD,EAAI,CAAC,GACjBE,IAAWF,EAAI,MAAM,EAAE;AAC7B,SAAIA,MAAQ,UAAUA,MAAQ,UACrBA,MAAQ,SAEbC,MAAcC,KAAY,CAAC,KAAK,GAAG,EAAE,SAASD,CAAS,IAClDD,EAAI,MAAM,GAAG,EAAE,IAEpBr0B,GAAgBq0B,CAAG,IACd,WAAWA,CAAG,IAEhB3e,EAAM2e,CAAG;AAClB;AACA,SAASvC,GAAS7xB,GAAKu0B,GAAS;AAC9B,MAAIC,GAAKz8B,GAAOgU;AAChB,QAAMD,IAAS,CAAA;AACf,SAAO9L,KAAK;AACV,IAAA+L,IAAQ,MACRyoB,IAAMx0B,EAAI;AACV,eAAWlC,KAAOy2B;AAChB,MAAAx8B,IAAQw8B,EAAQz2B,CAAG,EAAE,KAAKkC,CAAG,GACzBjI,KAASA,EAAM,QAAQy8B,MACzBzoB,IAAQ;AAAA,QACN,OAAOhU,EAAM,CAAC;AAAA,QACd,MAAM+F;AAAA,QACN,SAAS/F,EAAM,MAAM,CAAC;AAAA,MAChC,GACQy8B,IAAMz8B,EAAM;AAGhB,IAAIy8B,KACF1oB,EAAO,KAAK;AAAA,MACV,OAAO9L,EAAI,OAAO,GAAGw0B,CAAG;AAAA,MACxB,MAAM;AAAA,IACd,CAAO,GAECzoB,KACFD,EAAO,KAAKC,CAAK,GAEnB/L,IAAMA,EAAI,OAAOw0B,KAAOzoB,IAAQA,EAAM,MAAM,SAAS,EAAE;AAAA,EACzD;AACA,SAAOD;AACT;ACtOA,IAAI9E,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAELqsB,IAAWC,IAAeC,IAAiBC,IAAWC,IAAkBC,IAAoBC,IAAiBC,IAAmBC;AAOpI,MAAMC,KAA0B;AAAA,EAC9B,uBAAuB;AAAA,EACvB,iBAAiB;AACnB,GACMC,KAAkB9mB,GAAS,cAAc,UAAU;AACzD8mB,GAAgB;AAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4BA,MAAMC,WAA0BpyB,EAAW,YAAY;AAAA,EACrD,cAAc;AACZ,UAAK,GACLxJ,GAAa,MAAMq7B,EAAgB,GACnCr7B,GAAa,MAAMu7B,EAAe,GAClCv7B,GAAa,MAAMi7B,IAAW,MAAM,GACpCj7B,GAAa,MAAMk7B,IAAe,MAAM,GACxCl7B,GAAa,MAAMm7B,IAAiB,MAAM,GAC1Cn7B,GAAa,MAAMo7B,IAAW,MAAM,GACpCp7B,GAAa,MAAMy7B,IAAa,MAAM,GAClC,KAAK,aACP,KAAK,aAAa,KAAK,cAEvB,KAAK,aAAa,KAAK,aAAa,EAAE,MAAM,QAAQ,GACpD,KAAK,eAAc,IAErB56B,GAAa,MAAMu6B,IAAW,IAAI,iBAAiB,CAACS,MAAiB;AACnE,UAAIhoC;AACJ,MAAI,KAAK,mBAAmB,GAAGA,IAAK,KAAK,oBAAoB,QAAgBA,EAAG,wBAE5EgoC,EAAa,KAAK,CAAC3qB,MAAa;AAClC,cAAMgR,IAAShR,EAAS;AACxB,eAAIgR,MAAW,OACN,KACLA,EAAO,cAAc,qBAChB,KACL,GAAAwZ,GAAwBxqB,EAAS,aAAa,KAE9CA,EAAS,cAAc,WAAW,YAAY;AAAA,MAGpD,CAAC,KACC,KAAK,OAAM;AAAA,IAEf,CAAC,CAAC,GACFrQ,GAAa,MAAM46B,IAAa,KAAK,OAAO,KAAK,IAAI,CAAC,GACtD96B,GAAgB,MAAM06B,IAAkBC,EAAkB,EAAE,KAAK,MAAM,UAAU;AAAA,EACnF;AAAA;AAAA,EAEA,IAAI,kBAAkB;AACpB,WAAO,KAAK,WAAW,cAAc,kBAAkB;AAAA,EACzD;AAAA,EACA,IAAI,WAAW;AACb,QAAIznC;AACJ,YAAQA,IAAKoN,GAAa,MAAMg6B,EAAS,MAAM,OAAOpnC,IAAK,KAAK,YAAY;AAAA,EAC9E;AAAA,EACA,IAAI,SAASmJ,GAAO;AAClB,QAAIA,MAAU,MAAM;AAClB,WAAK,gBAAgB,UAAU;AAC/B;AAAA,IACF;AACA,IAAI,OAAOA,KAAU,WACnB,KAAK,aAAa,YAAYA,CAAK,IAC1BA,aAAiB,wBAC1B6D,GAAa,MAAMo6B,IAAWj+B,CAAK,GACnC6D,GAAa,MAAMs6B,IAAiB,IAAI,GACxC,KAAK,eAAc;AAAA,EAEvB;AAAA,EACA,IAAI,QAAQ;AACV,QAAItnC,GAAIsJ,GAAIC;AACZ,UAAMylB,IAAqB;AAAA,MACzB,GAAG,MAAM,MAAM1lB,KAAMtJ,IAAK,KAAK,oBAAoB,OAAO,SAASA,EAAG,eAAe,OAAOsJ,IAAK,CAAA,CAAE,EAAE;AAAA,QACnG,CAAC,EAAE,MAAA+E,EAAI,MACEw5B,GAAwBx5B,CAAI,KAAKA,EAAK,WAAW,YAAY;AAAA,MAE9E;AAAA,MACM,GAAG,MAAM,KAAK,KAAK,UAAU;AAAA,IACnC,GACU0oB,IAAQ,CAAA;AACd,eAAW5gB,KAAQ6Y,GAAoB;AACrC,YAAM3gB,KAAQ9E,IAAKs+B,GAAwB1xB,EAAK,IAAI,MAAM,OAAO5M,IAAK+I,GAAU6D,EAAK,IAAI;AACzF,UAAI,EAAE,OAAAhN,EAAK,IAAKgN;AAChB,MAAIhN,KAAS,QACPuJ,GAAgBvJ,CAAK,MACvBA,IAAQ,WAAWA,CAAK,IAE1B4tB,EAAM1oB,CAAI,IAAIlF,MAAU,KAAK,KAAOA,KAEpC4tB,EAAM1oB,CAAI,IAAI;AAAA,IAElB;AACA,WAAO0oB;AAAA,EACT;AAAA,EACA,yBAAyBznB,GAAUC,GAAUC,GAAU;AACrD,IAAIF,MAAa,cAAcC,KAAYC,KACzC1C,GAAgB,MAAM46B,IAAiBC,EAAiB,EAAE,KAAK,IAAI;AAAA,EAEvE;AAAA,EACA,oBAAoB;AAClB,SAAK;AAAA,MACH/2B,GAAuB;AAAA,MACvBxD,GAAa,MAAMw6B,EAAW;AAAA,IACpC,GACIx6B,GAAa,MAAMm6B,EAAS,EAAE,QAAQ,MAAM,EAAE,YAAY,IAAM,GAChEn6B,GAAa,MAAMm6B,EAAS,EAAE,QAAQ,KAAK,YAAY;AAAA,MACrD,YAAY;AAAA,MACZ,SAAS;AAAA,IACf,CAAK,GACDz6B,GAAgB,MAAM46B,IAAiBC,EAAiB,EAAE,KAAK,IAAI;AAAA,EACrE;AAAA,EACA,uBAAuB;AACrB,SAAK;AAAA,MACH/2B,GAAuB;AAAA,MACvBxD,GAAa,MAAMw6B,EAAW;AAAA,IACpC,GACIx6B,GAAa,MAAMm6B,EAAS,EAAE,WAAU;AAAA,EAC1C;AAAA,EACA,iBAAiB;AACf,IAAI,KAAK,oBAAoB,uBAAuB,KAAK,aAAan6B,GAAa,MAAMi6B,EAAa,MACpGr6B,GAAa,MAAMq6B,IAAe,KAAK,QAAQ,GAC/C,KAAK,WAAW,IAAIlD;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AAAA;AAAA,MAEL,KAAK,YAAY;AAAA,IACzB,GACM,KAAK,WAAW,cAAc,IAC9B,KAAK,WAAW;AAAA,MACd2D,GAAgB,QAAQ,UAAU,EAAI;AAAA,MACtC,KAAK;AAAA,IACb;AAAA,EAEE;AAAA,EACA,SAAS;AACP,QAAI9nC;AACJ,KAACA,IAAK,KAAK,aAAa,QAAgBA,EAAG,OAAO,KAAK,KAAK;AAAA,EAC9D;AACF;AACAonC,KAAY,oBAAI,QAAO;AACvBC,KAAgB,oBAAI,QAAO;AAC3BC,KAAkB,oBAAI,QAAO;AAC7BC,KAAY,oBAAI,QAAO;AACvBC,KAAmB,oBAAI,QAAO;AAC9BC,KAAqB,SAASQ,GAAM;AAClC,MAAI,OAAO,UAAU,eAAe,KAAK,MAAMA,CAAI,GAAG;AACpD,UAAM9+B,IAAQ,KAAK8+B,CAAI;AACvB,WAAO,KAAKA,CAAI,GAChB,KAAKA,CAAI,IAAI9+B;AAAA,EACf;AACF;AACAu+B,KAAkB,oBAAI,QAAO;AAC7BC,KAAoB,WAAW;AAC7B,MAAI3nC;AACJ,QAAMkoC,IAAa,KAAK,aAAa,UAAU;AAC/C,MAAI,CAACA,KAAcA,MAAe96B,GAAa,MAAMk6B,EAAe;AAClE;AACF,QAAMlwB,IAAW,KAAK,YAAW,GAC3BgtB,KAAYpkC,IAAKoX,KAAY,OAAO,SAASA,EAAS,mBAAmB,OAAO,SAASpX,EAAG;AAAA,IAChGoX;AAAA,IACA8wB;AAAA,EACJ;AACE,MAAI9D,GAAU;AACZp3B,IAAAA,GAAa,MAAMs6B,IAAiBY,CAAU,GAC9Cl7B,GAAa,MAAMo6B,IAAWhD,CAAQ,GACtC,KAAK,eAAc;AACnB;AAAA,EACF;AACA,EAAI+D,GAAWD,CAAU,MACvBl7B,GAAa,MAAMs6B,IAAiBY,CAAU,GAC9Cl+B,GAAQk+B,CAAU,EAAE,KAAK,CAACzD,MAAS;AACjC,UAAM2D,IAAYpnB,GAAS,cAAc,UAAU;AACnD,IAAAonB,EAAU,YAAY3D,GACtBz3B,GAAa,MAAMo6B,IAAWgB,CAAS,GACvC,KAAK,eAAc;AAAA,EACrB,CAAC,EAAE,MAAM,QAAQ,KAAK;AAE1B;AACAR,KAAc,oBAAI,QAAO;AACzBG,GAAkB,qBAAqB,CAAC,UAAU;AAClDA,GAAkB,YAAY1D;AAC9B,SAAS8D,GAAWh9B,GAAK;AACvB,MAAI,CAAC,yBAAyB,KAAKA,CAAG;AACpC,WAAO;AACT,QAAMiI,IAAO,eAAe,KAAKjI,CAAG,IAAI,SAAS,SAAS;AAC1D,MAAI;AACF,QAAI,IAAIA,GAAKiI,CAAI;AAAA,EACnB,QAAY;AACV,WAAO;AAAA,EACT;AACA,SAAO;AACT;AACA,eAAepJ,GAAQq+B,GAAU;AAC/B,QAAMC,IAAW,MAAM,MAAMD,CAAQ;AACrC,MAAIC,EAAS,WAAW;AACtB,UAAM,IAAI;AAAA,MACR,kEAAkEA,EAAS,MAAM;AAAA,IACvF;AAEE,SAAOA,EAAS,KAAI;AACtB;AACK3yB,EAAW,eAAe,IAAI,aAAa,KAC9CA,EAAW,eAAe,OAAO,eAAeoyB,EAAiB;AC/PnE,SAASQ,GAAgB;AAAA,EACvB,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAzX;AACF,GAAG;AACD,QAAMwQ,IAAQkH,GAAgB,EAAE,QAAAF,GAAQ,UAAAC,EAAQ,CAAE,GAC5C,EAAE,GAAAnsC,GAAG,GAAAH,EAAC,IAAKwsC,GAA2BnH,GAAOxQ,CAAS;AAC5D,SAAO,EAAE,GAAA10B,GAAG,GAAAH,EAAC;AACf;AACA,SAASusC,GAAgB;AAAA,EACvB,QAAAF;AAAA,EACA,UAAAC;AACF,GAAG;AACD,SAAO;AAAA,IACL,QAAQG,GAA8BJ,GAAQC,EAAS,YAAY;AAAA,IACnE,UAAU;AAAA,MACR,GAAG;AAAA,MACH,GAAG;AAAA,MACH,OAAOA,EAAS;AAAA,MAChB,QAAQA,EAAS;AAAA,IACvB;AAAA,EACA;AACA;AACA,SAASG,GAA8BpzB,GAASqzB,GAAc;AAC5D,MAAI7oC;AACJ,QAAM8oC,IAAOtzB,EAAQ,sBAAqB,GACpCuzB,KAAc/oC,IAAK6oC,KAAgB,OAAO,SAASA,EAAa,sBAAqB,MAAO,OAAO7oC,IAAK,EAAE,GAAG,GAAG,GAAG,EAAC;AAC1H,SAAO;AAAA,IACL,GAAG8oC,EAAK,IAAIC,EAAW;AAAA,IACvB,GAAGD,EAAK,IAAIC,EAAW;AAAA,IACvB,OAAOD,EAAK;AAAA,IACZ,QAAQA,EAAK;AAAA,EACjB;AACA;AACA,SAASH,GAA2B,EAAE,QAAAH,GAAQ,UAAAC,EAAQ,GAAIzX,GAAW;AACnE,QAAMgY,IAAgBC,GAAYjY,CAAS,MAAM,MAAM,MAAM,KACvDkY,IAAcF,MAAkB,MAAM,WAAW,SACjDG,IAAOC,GAAQpY,CAAS,GACxBqY,IAAUb,EAAO,IAAIA,EAAO,QAAQ,IAAIC,EAAS,QAAQ,GACzDa,IAAUd,EAAO,IAAIA,EAAO,SAAS,IAAIC,EAAS,SAAS,GAC3Dc,IAAcf,EAAOU,CAAW,IAAI,IAAIT,EAASS,CAAW,IAAI;AACtE,MAAIzZ;AACJ,UAAQ0Z,GAAI;AAAA,IACV,KAAK;AACH,MAAA1Z,IAAS,EAAE,GAAG4Z,GAAS,GAAGb,EAAO,IAAIC,EAAS,OAAM;AACpD;AAAA,IACF,KAAK;AACH,MAAAhZ,IAAS,EAAE,GAAG4Z,GAAS,GAAGb,EAAO,IAAIA,EAAO,OAAM;AAClD;AAAA,IACF,KAAK;AACH,MAAA/Y,IAAS,EAAE,GAAG+Y,EAAO,IAAIA,EAAO,OAAO,GAAGc,EAAO;AACjD;AAAA,IACF,KAAK;AACH,MAAA7Z,IAAS,EAAE,GAAG+Y,EAAO,IAAIC,EAAS,OAAO,GAAGa,EAAO;AACnD;AAAA,IACF;AACE,MAAA7Z,IAAS,EAAE,GAAG+Y,EAAO,GAAG,GAAGA,EAAO,EAAC;AAAA,EACzC;AACE,UAAQxX,EAAU,MAAM,GAAG,EAAE,CAAC,GAAC;AAAA,IAC7B,KAAK;AACH,MAAAvB,EAAOuZ,CAAa,KAAKO;AACzB;AAAA,IACF,KAAK;AACH,MAAA9Z,EAAOuZ,CAAa,KAAKO;AACzB;AAAA,EACN;AACE,SAAO9Z;AACT;AACA,SAAS2Z,GAAQpY,GAAW;AAC1B,SAAOA,EAAU,MAAM,GAAG,EAAE,CAAC;AAC/B;AACA,SAASiY,GAAYjY,GAAW;AAC9B,SAAO,CAAC,OAAO,QAAQ,EAAE,SAASoY,GAAQpY,CAAS,CAAC,IAAI,MAAM;AAChE;ACzEA,MAAMwY,WAAoB,MAAM;AAAA;AAAA;AAAA;AAAA,EAI9B,YAAY,EAAE,QAAAzd,IAAS,QAAQ,eAAA0d,GAAe,GAAGp/B,EAAO,GAAI;AAC1D,UAAM,UAAUA,CAAO,GACvB,KAAK,SAAS0hB,GACd,KAAK,gBAAgB0d;AAAA,EACvB;AACF;AACA,MAAMC,WAAoB,MAAM;AAAA;AAAA;AAAA;AAAA,EAI9B,YAAY,EAAE,UAAAC,GAAU,UAAAC,GAAU,GAAGv/B,EAAO,GAAI;AAC9C,UAAM,UAAUA,CAAO,GACvB,KAAK,WAAWs/B,GAChB,KAAK,WAAWC;AAAA,EAClB;AACF;ACnBA,IAAIjwB,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,IAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAELf,IAAkByZ,IAAoBC,IAAiBmW,IAAgB7uB,IAAmB8uB,IAAYC,IAAU5tB,IAAmB6tB,IAAqBC,IAAeC,IAAiBC,IAAkBC,IAAoBC,IAAsBrW,IAAeC,IAAiBL,IAAaC,IAAeC,IAAeC,IAAiBuW,IAAqBC,IAAmBC,IAAeC,IAAiBC,IAAaC,IAAeC,IAAcC,IAAgBC,IAAoBC,IAAuBC,IAAeC,IAAiBC,IAA0BC,IAA4BjX,IAAiBC,IAAmBC,IAAgBC,IAAkB+W,IAAUC,IAAYC,IAAaC,IAAeC,IAAaC,IAAeC,IAAaC;AAgBxvB,SAASC,GAAe;AAAA,EACtB,MAAA59B;AAAA,EACA,MAAAwW;AAAA,EACA,OAAArb;AAAA,EACA,SAAA0iC;AACF,GAAG;AACD,QAAM3G,IAAOlkB,GAAS;AAAA,IACpB;AAAA,EACJ;AACE,EAAAkkB,EAAK,OAAsBl3B,GAC3Bk3B,EAAK,KAAK,IAAI,WAAW,GAEvBA,EAAK,KAAK,IAAIl3B,CAAI,GACpBk3B,EAAK,QAAQ/7B,GACb+7B,EAAK,UAAU2G;AACf,QAAMx5B,IAAQ2O,GAAS,cAAc,MAAM;AAC3C,SAAA3O,EAAM,cAAcmS,GACpB0gB,EAAK,OAAO7yB,CAAK,GACV6yB;AACT;AACA,SAAS4G,GAAgB9iC,GAAIqF,GAAM;AACjC,MAAI09B,IAAkB/iC,EAAG,cAAc,mBAAmBqF,CAAI,IAAI;AAGlE,OAFK09B,KAAmB,OAAO,SAASA,EAAgB,aAAa,WACnEA,IAAkBA,EAAgB,iBAAiB,EAAE,SAAS,GAAI,CAAE,EAAE,CAAC,IACrEA;AACF,WAAAA,IAAkBA,EAAgB,UAAU,EAAI,GACzCA;AAET,QAAMC,IAAoBhjC,EAAG,WAAW;AAAA,IACtC,UAAUqF,CAAI;AAAA,EAClB;AACE,SAAI29B,IACKA,EAAkB,UAAU,EAAI,IAElC;AACT;AACA,SAAS/xB,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqLJ;AACA,MAAMkC,KAAa;AAAA,EACjB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,QAAQ;AACV;AACA,MAAM6vB,WAAwBt2B,EAAW,YAAY;AAAA,EACnD,cAAc;AA4EZ,QA3EA,MAAK,GACLxJ,GAAa,MAAMgQ,EAAiB,GACpChQ,GAAa,MAAM89B,EAAa,GAKhC99B,GAAa,MAAMi+B,EAAkB,GACrCj+B,GAAa,MAAM6nB,EAAa,GAChC7nB,GAAa,MAAMynB,EAAW,GAC9BznB,GAAa,MAAM2nB,EAAa,GAKhC3nB,GAAa,MAAMq+B,EAAa,GAKhCr+B,GAAa,MAAMu+B,EAAW,GAC9Bv+B,GAAa,MAAMy+B,EAAY,GAC/Bz+B,GAAa,MAAM2+B,EAAkB,GAQrC3+B,GAAa,MAAM6+B,EAAa,GAKhC7+B,GAAa,MAAM++B,EAAwB,GAC3C/+B,GAAa,MAAM+nB,EAAe,GAClC/nB,GAAa,MAAMioB,EAAc,GACjCjoB,GAAa,MAAMi/B,EAAQ,GAC3Bj/B,GAAa,MAAMm/B,EAAW,GAC9Bn/B,GAAa,MAAMq/B,EAAW,GAC9Br/B,GAAa,MAAMu/B,EAAW,GAC9Bv/B,GAAa,MAAM6N,IAAkB,IAAI,GACzC7N,GAAa,MAAMsnB,IAAoB,IAAI,GAC3CtnB,GAAa,MAAMunB,IAAiB,IAAI,GACxCvnB,GAAa,MAAM09B,IAAgC,oBAAI,IAAG,CAAE,GAC5D19B,GAAa,MAAM6O,IAAmB,MAAM,GAC5C7O,GAAa,MAAM29B,IAAY,EAAK,GACpC39B,GAAa,MAAM49B,IAAU,IAAI,GAKjC59B,GAAa,MAAMg+B,IAAkB,MAAM;AACzC,YAAM+B,IAAgB9+B,EAAa,MAAMy8B,EAAc,GACjDsC,IAAe,IAAI,IAAI,KAAK,KAAK;AACvC,iBAAWjH,KAAQgH;AACjB,QAAKC,EAAa,IAAIjH,CAAI,KACxB,KAAK,cAAc,IAAI,YAAY,kBAAkB,EAAE,QAAQA,EAAI,CAAE,CAAC;AAG1E,iBAAWA,KAAQiH;AACjB,QAAKD,EAAc,IAAIhH,CAAI,KACzB,KAAK,cAAc,IAAI,YAAY,eAAe,EAAE,QAAQA,EAAI,CAAE,CAAC;AAGvEl4B,MAAAA,GAAa,MAAM68B,IAAgBsC,CAAY;AAAA,IACjD,CAAC,GACDhgC,GAAa,MAAMm+B,IAAqB,MAAM;AAC5Cx9B,MAAAA,GAAgB,MAAM09B,IAAeC,EAAe,EAAE,KAAK,IAAI,GAC/D39B,GAAgB,MAAM49B,IAAaC,EAAa,EAAE,KAAK,MAAM,EAAK;AAAA,IACpE,CAAC,GACDx+B,GAAa,MAAMo+B,IAAmB,MAAM;AAC1Cz9B,MAAAA,GAAgB,MAAM09B,IAAeC,EAAe,EAAE,KAAK,IAAI;AAAA,IACjE,CAAC,GACG,CAAC,KAAK,YAAY;AACpB,WAAK,aAAa,KAAK,YAAY,iBAAiB;AACpD,YAAMrwB,IAAQpE,GAAqB,KAAK,UAAU;AAClD,WAAK,WAAW,YAAY,KAAK,YAAY,gBAAgBoE,CAAK;AAAA,IACpE;AACA,SAAK,YAAY,KAAK,WAAW,cAAc,YAAY,GAC3D,KAAK,cAAc,KAAK,WAAW;AAAA,MACjC;AAAA,IACN,GACIpN,GAAa,MAAMgO,IAAmB,IAAI,iBAAiB5N,EAAa,MAAM+8B,EAAgB,CAAC,CAAC;AAAA,EAClG;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL/tB,GAAW;AAAA,MACXA,GAAW;AAAA,MACXA,GAAW;AAAA,MACXA,GAAW;AAAA,MACXhM,EAA6B;AAAA,IACnC;AAAA,EACE;AAAA,EACA,OAAO,mBAAmBoU,GAAM4nB,GAAO;AACrC,WAAO5nB;AAAA,EACT;AAAA,EACA,SAAS;AACP,SAAK,iBAAiB,SAAS,IAAI,GACnC,KAAK,iBAAiB,YAAY,IAAI,GACtC,KAAK,iBAAiB,WAAW,IAAI,GACrC,KAAK,iBAAiB,UAAU,IAAI,GACpC,KAAK,iBAAiB,UAAU,IAAI;AAAA,EACtC;AAAA,EACA,UAAU;AACR,SAAK,oBAAoB,SAAS,IAAI,GACtC,KAAK,oBAAoB,YAAY,IAAI,GACzC,KAAK,oBAAoB,SAAS,IAAI,GACtC,KAAK,oBAAoB,UAAU,IAAI,GACvC,KAAK,oBAAoB,UAAU,IAAI;AAAA,EACzC;AAAA,EACA,YAAYlX,GAAO;AACjB,YAAQA,EAAM,MAAI;AAAA,MAChB,KAAK;AACHR,QAAAA,GAAgB,MAAMqP,IAAmB6tB,EAAmB,EAAE,KAAK,MAAM18B,CAAK;AAC9E;AAAA,MACF,KAAK;AACHR,QAAAA,GAAgB,MAAMknB,IAAeC,EAAe,EAAE,KAAK,MAAM3mB,CAAK;AACtE;AAAA,MACF,KAAK;AACHR,QAAAA,GAAgB,MAAM89B,IAAcC,EAAc,EAAE,KAAK,MAAMv9B,CAAK;AACpE;AAAA,MACF,KAAK;AACHR,QAAAA,GAAgB,MAAMk+B,IAAeC,EAAe,EAAE,KAAK,MAAM39B,CAAK;AACtE;AAAA,MACF,KAAK;AACHR,QAAAA,GAAgB,MAAMonB,IAAiBC,EAAiB,EAAE,KAAK,MAAM7mB,CAAK;AAC1E;AAAA,MACF,KAAK;AACHR,QAAAA,GAAgB,MAAMsnB,IAAgBC,EAAgB,EAAE,KAAK,MAAM/mB,CAAK;AACxE;AAAA,IACR;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,QAAItN,GAAIsJ;AACR8D,IAAAA,EAAa,MAAM4N,EAAiB,EAAE,QAAQ,KAAK,aAAa,EAAE,WAAW,IAAM,GACnFhO,GAAa,MAAM+8B,IAAUpxB,GAAc,KAAK,YAAY,OAAO,CAAC,GACpE7L,GAAgB,MAAMs9B,IAAoBC,EAAoB,EAAE,KAAK,IAAI,GACpE,KAAK,aAAa,UAAU,KAC/B,KAAK,OAAM,GAER,KAAK,SACR,KAAK,OAAO,SAEdr9B,GAAa,MAAMgN,IAAkB1D,GAA4B,IAAI,CAAC,IACrEhN,KAAMtJ,IAAKoN,EAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,qBAAqB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GACxH,KAAK,WACR8V,GAAcu2B,GAAiB,IAAI,GAAGj/B,EAAa,MAAMk9B,EAAmB,CAAC,GAC7Ex0B,GAAc,MAAM1I,EAAa,MAAMm9B,EAAiB,CAAC,IAE3Dz9B,GAAgB,MAAMm9B,IAAeC,EAAe,EAAE,KAAK,IAAI,GAC/D,KAAK,WAAW,iBAAiB,cAAc,IAAI;AAAA,EACrD;AAAA,EACA,uBAAuB;AACrB,QAAIlqC,GAAIsJ;AACR8D,IAAAA,EAAa,MAAM4N,EAAiB,EAAE,WAAU,GAChDjF,GAAgBs2B,GAAiB,IAAI,GAAGj/B,EAAa,MAAMk9B,EAAmB,CAAC,GAC/Ev0B,GAAgB,MAAM3I,EAAa,MAAMm9B,EAAiB,CAAC,GAC3D,KAAK,QAAO,IACXjhC,KAAMtJ,IAAKoN,EAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI,GACzChN,GAAa,MAAMymB,IAAoB,IAAI,GAC3CzmB,GAAa,MAAM0mB,IAAiB,IAAI,GACxC,KAAK,WAAW,oBAAoB,cAAc,IAAI;AAAA,EACxD;AAAA,EACA,yBAAyBpkB,GAAUC,GAAUC,GAAU;AACrD,QAAIxP,GAAIsJ,GAAIC,GAAIwC;AAChB,IAAIuD,MAAa8M,GAAW,UAAU5M,MAAaD,KAC5CnC,EAAa,MAAM08B,EAAU,KAChC98B,GAAa,MAAM88B,IAAY,EAAI,GACjC,KAAK,SACPh9B,GAAgB,MAAMgnB,IAAeC,EAAe,EAAE,KAAK,IAAI,IAE/DjnB,GAAgB,MAAM8mB,IAAaC,EAAa,EAAE,KAAK,IAAI,GAE7D,KAAK;AAAA,MACH,IAAI6V,GAAY;AAAA,QACd,UAAU,KAAK,SAAS,SAAS;AAAA,QACjC,UAAU,KAAK,SAAS,WAAW;AAAA,QACnC,SAAS;AAAA,MACnB,CAAS;AAAA,IACT,KACep6B,MAAac,EAA6B,oBAC/Cb,OACDjG,KAAMtJ,IAAKoN,EAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASha,EAAG,uBAAuB,QAAgBsJ,EAAG,KAAKtJ,GAAI,IAAI,GAC/HgN,GAAa,MAAMgN,IAAkB,IAAI,IAEvCxK,KAAY,KAAK,gBACnBxC,GAAa,MAAMgN,IAAkB1D,GAA4B,IAAI,CAAC,IACrEvK,KAAMxC,IAAK6D,EAAa,MAAM4M,EAAgB,MAAM,OAAO,SAASzQ,EAAG,qBAAqB,QAAgBwC,EAAG,KAAKxC,GAAI,IAAI,MAEtH+F,MAAa8M,GAAW,YAAY5M,MAAaD,IACtDC,KAAY,OACd,KAAK,OAAM,IAEX,KAAK,QAAO,IAELF,MAAa8M,GAAW,SAAS5M,MAAaD,KACvDzC,GAAgB,MAAMs9B,IAAoBC,EAAoB,EAAE,KAAK,IAAI;AAAA,EAE7E;AAAA,EACA,mBAAmB7lB,GAAMigB,GAAM;AAC7B,WAAO,KAAK,YAAY;AAAA,MACtBjgB;AAAA,MACAigB;AAAA,IACN;AAAA,EACE;AAAA,EACA,IAAI,SAAS;AACX,WAAO,KAAK,aAAa,QAAQ;AAAA,EACnC;AAAA,EACA,IAAI,OAAOt7B,GAAO;AAChB,SAAK,aAAa,UAAU,GAAGA,CAAK,EAAE;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,gBAAgB;AAClB,QAAInJ;AACJ,WAAI,KAAK,UACCA,IAAK0W,GAAwB,IAAI,MAAM,OAAO,SAAS1W,EAAG;AAAA,MAChE,IAAI,KAAK,MAAM;AAAA,IACvB,IAEW;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,QAAQ;AACV,WAAO,KAAK,YAAY,iBAAiB,EAAE,SAAS,GAAI,CAAE,EAAE,OAAOssC,EAAU;AAAA,EAC/E;AAAA,EACA,IAAI,kBAAkB;AACpB,WAAO,KAAK,MAAM,OAAO,CAACpH,MAASA,EAAK,SAAS,eAAe;AAAA,EAClE;AAAA,EACA,IAAI,eAAe;AACjB,WAAO,KAAK,MAAM,OAAO,CAACA,MAASA,EAAK,OAAO;AAAA,EACjD;AAAA,EACA,IAAI,QAAQ;AACV,QAAIllC,GAAIsJ;AACR,YAAQA,KAAMtJ,IAAK,KAAK,aAAa,CAAC,MAAM,OAAO,SAASA,EAAG,UAAU,OAAOsJ,IAAK;AAAA,EACvF;AAAA,EACA,IAAI,MAAMkG,GAAU;AAClB,UAAM01B,IAAO,KAAK,MAAM,KAAK,CAACqH,MAAUA,EAAM,UAAU/8B,CAAQ;AAChE,IAAK01B,KAELp4B,GAAgB,MAAM4+B,IAAaC,EAAa,EAAE,KAAK,MAAMzG,CAAI;AAAA,EACnE;AAAA,EACA,QAAQ;AAEN,QADAl4B,GAAa,MAAMymB,IAAoBlc,IAAkB,GACrD,KAAK,MAAM,QAAQ;AACrBzK,MAAAA,GAAgB,MAAM0+B,IAAaC,EAAa,EAAE,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,GAC1E,KAAK,MAAM,CAAC,EAAE,MAAK;AACnB;AAAA,IACF;AACA,UAAMhX,IAAY,KAAK;AAAA,MACrB;AAAA,IACN;AACI,IAAAA,KAAa,QAAgBA,EAAU,MAAK;AAAA,EAC9C;AAAA,EACA,aAAannB,GAAO;AAClB,QAAItN;AACJ,UAAMklC,IAAOp4B,GAAgB,MAAMs+B,IAAUC,EAAU,EAAE,KAAK,MAAM/9B,CAAK;AACzE,IAAK43B,MAELp4B,GAAgB,MAAM4+B,IAAaC,EAAa,EAAE,KAAK,MAAMzG,GAAMA,EAAK,SAAS,UAAU,GACvF93B,EAAa,MAAMsmB,EAAe,KAAK,CAAC,KAAK,YAC9C1zB,IAAKoN,EAAa,MAAMqmB,EAAkB,MAAM,QAAgBzzB,EAAG,MAAK,GACzE,KAAK,SAAS;AAAA,EAElB;AAAA,EACA,IAAI,WAAW;AACb,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN;AAAA,EACE;AAAA,EACA,WAAWsN,GAAO;AAChB,QAAItN,GAAIsJ;AACR,UAAM,EAAE,KAAAmH,EAAG,IAAKnD,GACVo3B,IAAQ,KAAK,OACb8H,KAAeljC,KAAMtJ,IAAK8M,GAAgB,MAAMs+B,IAAUC,EAAU,EAAE,KAAK,MAAM/9B,CAAK,MAAM,OAAOtN,IAAK8M,GAAgB,MAAMw+B,IAAaC,EAAa,EAAE,KAAK,IAAI,MAAM,OAAOjiC,IAAKo7B,EAAM,CAAC,GAC5L+H,IAAe/H,EAAM,QAAQ8H,CAAW;AAC9C,QAAIv4B,IAAQ,KAAK,IAAI,GAAGw4B,CAAY;AACpC,IAAIh8B,MAAQ,cACVwD,MACSxD,MAAQ,YACjBwD,MACS3G,EAAM,QAAQ,SACvB2G,IAAQ,IACC3G,EAAM,QAAQ,UACvB2G,IAAQywB,EAAM,SAAS,IAErBzwB,IAAQ,MACVA,IAAQywB,EAAM,SAAS,IAErBzwB,IAAQywB,EAAM,SAAS,MACzBzwB,IAAQ,IAEVnH,GAAgB,MAAM0+B,IAAaC,EAAa,EAAE,KAAK,MAAM/G,EAAMzwB,CAAK,CAAC,GACzEywB,EAAMzwB,CAAK,EAAE,MAAK;AAAA,EACpB;AACF;AACA+F,KAAmB,oBAAI,QAAO;AAC9ByZ,KAAqB,oBAAI,QAAO;AAChCC,KAAkB,oBAAI,QAAO;AAC7BmW,KAAiB,oBAAI,QAAO;AAC5B7uB,KAAoB,oBAAI,QAAO;AAC/B8uB,KAAa,oBAAI,QAAO;AACxBC,KAAW,oBAAI,QAAO;AACtB5tB,KAAoB,oBAAI,QAAO;AAC/B6tB,KAAsB,SAAS18B,GAAO;AACpC,QAAM2J,IAAO3J,EAAM;AACnB,aAAWwJ,KAAQG,EAAK,cAAc,EAAE,SAAS,GAAI,CAAE;AACrD,IAAIH,EAAK,aAAa,KAAKA,EAAK,YAAY,KAAI,MAAO,MACrDA,EAAK,OAAM;AAGf,EAAI,CAAC,UAAU,OAAO,EAAE,SAASG,EAAK,IAAI,KACxCnK,GAAgB,MAAMm9B,IAAeC,EAAe,EAAE,KAAK,IAAI,GAE5DjzB,EAAK,QACR7J,EAAa,MAAM+8B,EAAgB,EAAE,KAAK,IAAI;AAElD;AACAF,KAAgB,oBAAI,QAAO;AAC3BC,KAAkB,WAAW;AAC3B,QAAM7+B,IAAS,KAAK,WAAW;AAAA,IAC7B;AAAA,EACJ,GACQmsB,IAAQ,KAAK,WAAW;AAAA,IAC5B;AAAA,EACJ;AACE,EAAAnsB,EAAO,SAASmsB,EAAM,gBAAgB,WAAW,KAAKnsB,EAAO,gBAAgB,WAAW;AAC1F;AACA8+B,KAAmB,oBAAI,QAAO;AAC9BC,KAAqB,oBAAI,QAAO;AAChCC,KAAuB,WAAW;AAChC,MAAIrqC;AACJ,QAAM0sC,IAAiB,KAAK,WAAW,cAAc,aAAa,GAC5DC,KAAc3sC,IAAK,iBAAiB,IAAI,EAAE,iBAAiB,qBAAqB,MAAM,OAAO,SAASA,EAAG,KAAI;AACnH,EAAA0sC,EAAe,aAAa,SAASC,MAAe,QAAQ,KAAK,SAAS;AAC5E;AACA3Y,KAAgB,oBAAI,QAAO;AAC3BC,KAAkB,SAAS3mB,GAAO;AAChCN,EAAAA,GAAa,MAAM0mB,IAAiBpmB,EAAM,aAAa,GAClD6J,GAAqB,MAAM7J,EAAM,aAAa,MACjD,KAAK,SAAS,CAAC,KAAK;AAExB;AACAsmB,KAAc,oBAAI,QAAO;AACzBC,KAAgB,WAAW;AACzB,MAAI7zB;AACJ,GAACA,IAAKoN,EAAa,MAAMsmB,EAAe,MAAM,QAAgB1zB,EAAG,aAAa,iBAAiB,MAAM,GACrG,KAAK,iBAAiB,iBAAiB,MAAM,KAAK,SAAS,EAAE,MAAM,IAAM,GACzE8V,GAAcu2B,GAAiB,IAAI,GAAGj/B,EAAa,MAAMk9B,EAAmB,CAAC,GAC7Ex0B,GAAc,MAAM1I,EAAa,MAAMm9B,EAAiB,CAAC;AAC3D;AACAzW,KAAgB,oBAAI,QAAO;AAC3BC,KAAkB,WAAW;AAC3B,MAAI/zB;AACJ,GAACA,IAAKoN,EAAa,MAAMsmB,EAAe,MAAM,QAAgB1zB,EAAG,aAAa,iBAAiB,OAAO,GACtG+V,GAAgBs2B,GAAiB,IAAI,GAAGj/B,EAAa,MAAMk9B,EAAmB,CAAC,GAC/Ev0B,GAAgB,MAAM3I,EAAa,MAAMm9B,EAAiB,CAAC;AAC7D;AACAD,KAAsB,oBAAI,QAAO;AACjCC,KAAoB,oBAAI,QAAO;AAC/BC,KAAgB,oBAAI,QAAO;AAC3BC,KAAkB,SAASmC,GAAW;AAGpC,MAFI,KAAK,aAAa,iBAAiB,KAAK,CAAC,KAAK,UAE9C,KAAK,UAAU,CAAC,KAAK;AACvB;AACF,QAAM,EAAE,GAAAtwC,GAAG,GAAAH,EAAC,IAAKosC,GAAgB;AAAA,IAC/B,QAAQ,KAAK;AAAA,IACb,UAAU;AAAA,IACV,WAAW;AAAA,EACf,CAAG;AACD,EAAAqE,MAAgCA,IAAY,KAAK;AAEjD,QAAMhL,IADSyK,GAAiB,IAAI,EACV,sBAAqB,GACzCQ,IAAQjL,EAAW,QAAQtlC,IAAIswC,GAC/BE,IAASlL,EAAW,SAASzlC,IAAI,KAAK,cACtC,EAAE,OAAA2b,EAAK,IAAK1K,EAAa,MAAM28B,EAAQ;AAC7C,EAAAjyB,EAAM,YAAY,YAAY,UAAU,GACxCA,EAAM,YAAY,SAAS,GAAG,KAAK,IAAI,GAAG+0B,CAAK,CAAC,IAAI,GACpD/0B,EAAM,YAAY,kBAAkB,GAAGg1B,CAAM,IAAI;AACjD,QAAM7R,IAAgB,iBAAiB,IAAI,GAErC8R,IADej1B,EAAM,iBAAiB,gBAAgB,MAAMmjB,EAAc,SAC9C6R,IAAS,WAAW7R,EAAc,MAAM,GACpEE,IAAYyG,EAAW,SAASmL,IAAa,WAAW9R,EAAc,YAAY;AACxF,OAAK,MAAM,YAAY,sBAAsB,GAAGE,CAAS,IAAI;AAC/D;AACAuP,KAAc,oBAAI,QAAO;AACzBC,KAAgB,SAASqC,GAAS;AAChC,QAAMC,IAAmB,KAAK;AAAA,IAC5B;AAAA,EACJ,GACQC,IAAkBD,KAAoB,OAAO,SAASA,EAAiB;AAAA,IAC3E;AAAA,EACJ,GACQ,EAAE,OAAAn1B,EAAK,IAAK1K,EAAa,MAAM28B,EAAQ;AAI7C,MAHKiD,KACHl1B,EAAM,YAAY,8BAA8B,MAAM,GAEpDo1B,GAAiB;AACnB,UAAMp7B,IAASo7B,EAAgB,cACzBr7B,IAAQ,KAAK;AAAA,MACjBq7B,EAAgB;AAAA,MAChBD,EAAiB;AAAA,IACvB;AACI,SAAK,MAAM,YAAY,aAAa,GAAGp7B,CAAK,IAAI,GAChD,KAAK,MAAM,YAAY,cAAc,GAAGC,CAAM,IAAI,GAClDhF,GAAgB,MAAM09B,IAAeC,EAAe,EAAE,KAAK,MAAM54B,CAAK;AAAA,EACxE;AACE,SAAK,MAAM,eAAe,WAAW,GACrC,KAAK,MAAM,eAAe,YAAY,GACtC/E,GAAgB,MAAM09B,IAAeC,EAAe,EAAE,KAAK,IAAI;AAEjE,EAAA3yB,EAAM,eAAe,4BAA4B;AACnD;AACA8yB,KAAe,oBAAI,QAAO;AAC1BC,KAAiB,SAASv9B,GAAO;AAC/B,MAAItN;AAEJ,MADAsN,EAAM,gBAAe,GACjBA,EAAM,aAAY,EAAG,SAASF,EAAa,MAAM09B,IAAoBC,EAAqB,CAAC,GAAG;AAChG,KAAC/qC,IAAKoN,EAAa,MAAMqmB,EAAkB,MAAM,QAAgBzzB,EAAG,MAAK,GACzE,KAAK,SAAS;AACd;AAAA,EACF;AACA,QAAMklC,IAAOp4B,GAAgB,MAAMs+B,IAAUC,EAAU,EAAE,KAAK,MAAM/9B,CAAK;AACzE,EAAI,CAAC43B,KAAQA,EAAK,aAAa,UAAU,MAEzCp4B,GAAgB,MAAM0+B,IAAaC,EAAa,EAAE,KAAK,MAAMvG,CAAI,GACjE,KAAK,aAAa53B,CAAK;AACzB;AACAw9B,KAAqB,oBAAI,QAAO;AAChCC,KAAwB,WAAW;AACjC,MAAI/qC;AAIJ,UAAQA,IAHW,KAAK,WAAW;AAAA,IACjC;AAAA,EACJ,EAC0B,iBAAiB,EAAE,SAAS,GAAI,CAAE,MAAM,OAAO,SAASA,EAAG,KAAK,CAACgJ,MAAOA,EAAG,QAAQ,sBAAsB,CAAC;AACpI;AACAgiC,KAAgB,oBAAI,QAAO;AAC3BC,KAAkB,SAAS39B,GAAO;AAChC,MAAIA,EAAM,WAAW;AACnB;AACFR,EAAAA,GAAgB,MAAMo+B,IAA0BC,EAA0B,EAAE,KAAK,IAAI;AACrF,QAAMgC,IAAuB,MAAM;AAAA,IACjC,KAAK,iBAAiB,kCAAkC;AAAA,EAC5D;AACE,aAAWjI,KAAQiI;AACjB,IAAIjI,EAAK,uBAAuB53B,EAAM,UAElCA,EAAM,YAAY,UAAU43B,EAAK,aAAa,eAAe,KAAK,UAAU,CAACA,EAAK,oBAAoB,UACxGA,EAAK,oBAAoB;AAAA,MACvB,IAAIsE,GAAY,EAAE,eAAetE,EAAI,CAAE;AAAA,IAC/C;AAGE,aAAWA,KAAQiI;AACjB,IAAAjI,EAAK,aAAa,iBAAiB,GAAG,CAACA,EAAK,eAAe,MAAM,EAAE;AAErEp4B,EAAAA,GAAgB,MAAM49B,IAAaC,EAAa,EAAE,KAAK,MAAM,EAAI;AACnE;AACAO,KAA2B,oBAAI,QAAO;AACtCC,KAA6B,WAAW;AAEtC,QAAM8B,IAAmB,KAAK,cADb,iDACmC;AACpD,OAAK,UAAU,UAAU,OAAO,gBAAgB,CAAC,CAACA,CAAgB;AACpE;AACA/Y,KAAkB,oBAAI,QAAO;AAC7BC,KAAoB,SAAS7mB,GAAO;AAClC,MAAItN;AACJ,EAAKmX,GAAqB,MAAM7J,EAAM,aAAa,MAC7CF,EAAa,MAAM08B,EAAU,OAC9B9pC,IAAKoN,EAAa,MAAMqmB,EAAkB,MAAM,QAAgBzzB,EAAG,MAAK,IAEvEoN,EAAa,MAAMsmB,EAAe,KAAKtmB,EAAa,MAAMsmB,EAAe,MAAMpmB,EAAM,iBAAiB,CAAC,KAAK,WAC9G,KAAK,SAAS;AAGpB;AACA8mB,KAAiB,oBAAI,QAAO;AAC5BC,KAAmB,SAAS/mB,GAAO;AACjC,MAAItN,GAAIsJ,GAAIC,GAAIwC,GAAIhO;AACpB,QAAM,EAAE,KAAA0S,GAAK,SAAAikB,GAAS,QAAAhG,GAAQ,SAAAD,EAAO,IAAKnhB;AAC1C,MAAI,EAAAonB,KAAWhG,KAAUD,MAGpB,KAAK,SAAS,SAAShe,CAAG;AAK/B,QAFAnD,EAAM,eAAc,GACpBA,EAAM,gBAAe,GACjBmD,MAAQ,OAAO;AACjB,UAAIrD,EAAa,MAAM08B,EAAU,GAAG;AAClC,aAAK,SAAS;AACd;AAAA,MACF;AACA,MAAIx8B,EAAM,YACPhE,KAAMtJ,IAAK,KAAK,2BAA2B,OAAO,SAASA,EAAG,UAAU,QAAgBsJ,EAAG,KAAKtJ,CAAE,KAElG+L,KAAMxC,IAAK,KAAK,uBAAuB,OAAO,SAASA,EAAG,UAAU,QAAgBwC,EAAG,KAAKxC,CAAE,GAEjG,KAAK,KAAI;AAAA,IACX,MAAO,CAAIkH,MAAQ,aAChB1S,IAAKqP,EAAa,MAAMqmB,EAAkB,MAAM,QAAgB11B,EAAG,MAAK,GACrEqP,EAAa,MAAM08B,EAAU,MAC/B,KAAK,SAAS,OAEPr5B,MAAQ,WAAWA,MAAQ,MACpC,KAAK,aAAanD,CAAK,IAEvB,KAAK,WAAWA,CAAK;AAEzB;AACA89B,KAAW,oBAAI,QAAO;AACtBC,KAAa,SAAS/9B,GAAO;AAC3B,SAAOA,EAAM,aAAY,EAAG,KAAK,CAACtE,MACzB,CAAC,iBAAiB,kBAAkB,EAAE;AAAA,IAC3CA,EAAG;AAAA,EACT,CACG;AACH;AACAsiC,KAAc,oBAAI,QAAO;AACzBC,KAAgB,WAAW;AACzB,SAAO,KAAK,MAAM,KAAK,CAACrG,MAASA,EAAK,aAAa,CAAC;AACtD;AACAsG,KAAc,oBAAI,QAAO;AACzBC,KAAgB,SAAS2B,GAAS;AAChC,aAAWlI,KAAQ,KAAK;AACtB,IAAAA,EAAK,WAAWA,MAASkI,IAAU,IAAI;AAE3C;AACA1B,KAAc,oBAAI,QAAO;AACzBC,KAAgB,SAASzG,GAAMmI,GAAQ;AACrC,QAAMC,IAAkB,CAAC,GAAG,KAAK,YAAY;AAC7C,EAAIpI,EAAK,SAAS,WAChB,KAAK,gBAAgB,QAAQ,CAACl8B,MAAOA,EAAG,UAAU,EAAK,GAErDqkC,IACFnI,EAAK,UAAU,CAACA,EAAK,UAErBA,EAAK,UAAU,IAEb,KAAK,aAAa,KAAK,CAACqI,GAAK74C,MAAM64C,KAAOD,EAAgB54C,CAAC,CAAC,KAC9D,KAAK;AAAA,IACH,IAAI,MAAM,UAAU,EAAE,SAAS,IAAM,UAAU,GAAI,CAAE;AAAA,EAC3D;AAEA;AACAu3C,GAAgB,oBAAoB,EAAE,MAAM,OAAM;AAClDA,GAAgB,kBAAkBhyB;AAClC,SAASqyB,GAAW92B,GAAS;AAC3B,SAAO,CAAC,YAAY,iBAAiB,kBAAkB,EAAE;AAAA,IACvDA,KAAW,OAAO,SAASA,EAAQ;AAAA,EACvC;AACA;AACA,SAAS62B,GAAiBh2B,GAAM;AAC9B,MAAIrW;AACJ,UAAQA,IAAKqW,EAAK,aAAa,QAAQ,IAAIE,GAAoBF,GAAM,IAAIA,EAAK,aAAa,QAAQ,CAAC,EAAE,IAAID,GAAmBC,CAAI,KAAKA,EAAK,kBAAkB,OAAOrW,IAAKqW;AAC3K;AACKV,EAAW,eAAe,IAAI,mBAAmB,KACpDA,EAAW,eAAe,OAAO,qBAAqBs2B,EAAe;ACt0BvE,IAAItyB,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAELyyB,IAAQC,IAAetxB,IAAmB6tB,IAAqB0D,IAAmBC,IAAqBC,IAAsBC,IAAwBC,IAAiBC,IAAc3Z,IAAgB4Z,IAAQC;AAQhN,SAASh0B,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAqHI,KAAK,uBAAuBA,CAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAK3C;AACA,SAASg0B,GAAuBh0B,GAAQ;AACtC,SAAO;AACT;AACA,MAAMkC,KAAa;AAAA,EACjB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AACZ;AACA,MAAM+xB,WAA4Bx4B,EAAW,YAAY;AAAA,EACvD,cAAc;AA0CZ,QAzCA,MAAK,GACLxJ,GAAa,MAAMgQ,EAAiB,GACpChQ,GAAa,MAAMuhC,EAAiB,GACpCvhC,GAAa,MAAMyhC,EAAoB,GACvCzhC,GAAa,MAAM6hC,EAAM,GACzB7hC,GAAa,MAAMqhC,IAAQ,EAAK,GAChCrhC,GAAa,MAAMshC,IAAe,MAAM,GAKxCthC,GAAa,MAAM2hC,IAAiB,MAAM;AACxC,UAAI9tC,GAAIsJ;AACR,MAAI,KAAK,eAAe,SACtB,KAAK,aAAa,eAAe,GAAG,KAAK,eAAe,MAAM,MAAM,EAAE;AAExE,YAAM8kC,IAAkB,KAAK,WAAW;AAAA,QACtC;AAAA,MACR,GACYC,KAAeruC,IAAK,KAAK,eAAe,iBAAiB,OAAO,SAASA,EAAG,CAAC,GAC7Eg4B,KAAe1uB,IAAK+kC,KAAe,OAAO,SAASA,EAAY,QAAQ,gBAAgB,OAAO/kC,IAAK+kC,KAAe,OAAO,SAASA,EAAY,MAC9IC,IAAOttB,GAAS,cAAc,MAAM;AAC1C,MAAAstB,EAAK,cAActW,KAAoC,IACvDoW,EAAgB,gBAAgBE,CAAI;AAAA,IACtC,CAAC,GACDniC,GAAa,MAAM4hC,IAAc,CAACzgC,MAAU;AAC1C,YAAM,EAAE,KAAAmD,EAAG,IAAKnD;AAChB,UAAI,CAAC,KAAK,SAAS,SAASmD,CAAG,GAAG;AAChC,aAAK,oBAAoB,SAASrD,GAAa,MAAM2gC,EAAY,CAAC;AAClE;AAAA,MACF;AACA,WAAK,YAAYzgC,CAAK;AAAA,IACxB,CAAC,GACDnB,GAAa,MAAMioB,IAAgB,CAAC9mB,MAAU;AAC5C,YAAM,EAAE,SAAAmhB,GAAS,QAAAC,GAAQ,KAAAje,EAAG,IAAKnD;AACjC,UAAImhB,KAAWC,KAAU,CAAC,KAAK,SAAS,SAASje,CAAG,GAAG;AACrD,aAAK,oBAAoB,SAASrD,GAAa,MAAM2gC,EAAY,CAAC;AAClE;AAAA,MACF;AACA,WAAK,iBAAiB,SAAS3gC,GAAa,MAAM2gC,EAAY,GAAG,EAAE,MAAM,IAAM;AAAA,IACjF,CAAC,GACG,CAAC,KAAK,YAAY;AACpB,WAAK,aAAa,KAAK,YAAY,iBAAiB;AACpD,YAAM3zB,IAAQpE,GAAqB,KAAK,UAAU;AAClD,WAAK,WAAW,YAAY,KAAK,YAAY,gBAAgBoE,CAAK;AAAA,IACpE;AAAA,EACF;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACLgC,GAAW;AAAA,MACXA,GAAW;AAAA,MACXA,GAAW;AAAA,MACXA,GAAW;AAAA,IACjB;AAAA,EACE;AAAA,EACA,SAAS;AACP,IAAK,KAAK,aAAa,UAAU,KAC/B,KAAK,aAAa,YAAY,IAAI,GAEhCmyB,GAAY,IAAI,KAAK,CAAC,KAAK,aAAa,cAAc,KACxD,KAAK,aAAa,gBAAgB,OAAO,GAE3C,KAAK,iBAAiB,SAAS,IAAI,GACnC,KAAK,iBAAiB,WAAW,IAAI;AAAA,EACvC;AAAA,EACA,UAAU;AACR,SAAK,gBAAgB,UAAU,GAC/B,KAAK,oBAAoB,SAAS,IAAI,GACtC,KAAK,oBAAoB,WAAW,IAAI,GACxC,KAAK,oBAAoB,SAAS,IAAI;AAAA,EACxC;AAAA,EACA,YAAYjhC,GAAO;AACjB,YAAQA,EAAM,MAAI;AAAA,MAChB,KAAK;AACHR,QAAAA,GAAgB,MAAMqP,IAAmB6tB,EAAmB,EAAE,KAAK,MAAM18B,CAAK;AAC9E;AAAA,MACF,KAAK;AACH,aAAK,YAAYA,CAAK;AACtB;AAAA,MACF,KAAK;AACHF,QAAAA,GAAa,MAAMgnB,EAAc,EAAE,KAAK,MAAM9mB,CAAK;AACnD;AAAA,MACF,KAAK;AACHF,QAAAA,GAAa,MAAM2gC,EAAY,EAAE,KAAK,MAAMzgC,CAAK;AACjD;AAAA,IACR;AAAA,EACE;AAAA,EACA,yBAAyBgC,GAAUC,GAAUC,GAAU;AACrD,IAAIF,MAAa8M,GAAW,WAAWmyB,GAAY,IAAI,KAAK,CAACnhC,GAAa,MAAMogC,EAAM,IACpF,KAAK,aAAa,gBAAgBh+B,KAAY,OAAO,SAAS,OAAO,IAC5DF,MAAa8M,GAAW,QAAQ5M,MAAaD,IACtD,KAAK,OAAO,aAAaC,IAChBF,MAAa8M,GAAW,YAAY5M,MAAaD,MACtDC,KAAY,OACd,KAAK,OAAM,IAEX,KAAK,QAAO;AAAA,EAGlB;AAAA,EACA,oBAAoB;AAClB,IAAK,KAAK,aAAa4M,GAAW,QAAQ,KACxC,KAAK,OAAM,GAEb,KAAK,OAAO,aAAa,KAAK,MAC9BpP,GAAa,MAAMygC,IAAee,GAA0B,MAAM,KAAK,UAAU,CAAC,GAClF1hC,GAAgB,MAAMkhC,IAAQC,EAAQ,EAAE,KAAK,IAAI,GAC7C,KAAK,kBACPnhC,GAAgB,MAAM4gC,IAAmBC,EAAmB,EAAE,KAAK,IAAI,GAEzE,KAAK,WAAW,iBAAiB,cAAc,IAAI;AAAA,EACrD;AAAA,EACA,uBAAuB;AACrB,SAAK,QAAO,GACZ7gC,GAAgB,MAAMkhC,IAAQC,EAAQ,EAAE,KAAK,IAAI,GACjDjhC,GAAa,MAAMygC,IAAe,IAAI,GACtC,KAAK,WAAW,oBAAoB,cAAc,IAAI;AAAA,EACxD;AAAA,EACA,IAAI,eAAe;AACjB,WAAO,KAAK,aAAa,cAAc;AAAA,EACzC;AAAA,EACA,IAAI,aAAatkC,GAAO;AACtB,SAAK,aAAa,gBAAgB,GAAGA,CAAK,EAAE;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,sBAAsB;AACxB,QAAInJ;AACJ,WAAI,KAAK,gBACCA,IAAK0W,GAAwB,IAAI,MAAM,OAAO,SAAS1W,EAAG;AAAA,MAChE,IAAI,KAAK,YAAY;AAAA,IAC7B,IAEW,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,iBAAiB;AAInB,WAHoB,KAAK,WAAW;AAAA,MAClC;AAAA,IACN,EACuB,iBAAiB;AAAA,MAClC,SAAS;AAAA,IACf,CAAK,EAAE,CAAC;AAAA,EACN;AAAA,EACA,IAAI,OAAO;AACT,QAAIA;AACJ,YAAQA,IAAK,KAAK,aAAaoc,GAAW,IAAI,MAAM,OAAOpc,IAAK;AAAA,EAClE;AAAA,EACA,IAAI,KAAK+P,GAAK;AACZ,SAAK,aAAaqM,GAAW,MAAM,GAAGrM,CAAG,EAAE;AAAA,EAC7C;AAAA,EACA,IAAI,QAAQ;AACV,QAAI/P;AACJ,YAAQA,IAAK,KAAK,aAAaoc,GAAW,KAAK,MAAM,OAAOpc,IAAK,KAAK;AAAA,EACxE;AAAA,EACA,IAAI,MAAM+P,GAAK;AACb,SAAK,aAAaqM,GAAW,OAAOrM,CAAG;AAAA,EACzC;AAAA,EACA,IAAI,OAAO;AACT,QAAI/P;AACJ,aAASA,IAAK,KAAK,gBAAgB,OAAOA,IAAK,IAAI,KAAI;AAAA,EACzD;AAAA,EACA,IAAI,UAAU;AACZ,QAAKuuC,GAAY,IAAI;AAErB,aAAO,KAAK,aAAa,cAAc,MAAM;AAAA,EAC/C;AAAA,EACA,IAAI,QAAQplC,GAAO;AACjB,IAAKolC,GAAY,IAAI,MAErBvhC,GAAa,MAAMwgC,IAAQ,EAAI,GAC/B,KAAK,aAAa,gBAAgBrkC,IAAQ,SAAS,OAAO,GACtDA,IACF,KAAK,KAAK,IAAI,SAAS,IAEvB,KAAK,KAAK,OAAO,SAAS;AAAA,EAE9B;AAAA,EACA,YAAYmE,GAAO;AACjB,IAAIihC,GAAY,IAAI,KAEhB,KAAK,uBAAuBp3B,GAAqB,MAAM7J,EAAM,MAAM,KACrE,KAAK,oBAAoB;AAAA,MACvB,IAAIk8B,GAAY,EAAE,eAAe,KAAI,CAAE;AAAA,IAC/C;AAAA,EAEE;AAAA,EACA,IAAI,WAAW;AACb,WAAO,CAAC,SAAS,GAAG;AAAA,EACtB;AACF;AACAgE,KAAS,oBAAI,QAAO;AACpBC,KAAgB,oBAAI,QAAO;AAC3BtxB,KAAoB,oBAAI,QAAO;AAC/B6tB,KAAsB,SAAS18B,GAAO;AACpC,QAAM2J,IAAO3J,EAAM;AAEnB,MADsB,EAAE2J,KAAQ,QAAgBA,EAAK;AAEnD,eAAWH,KAAQG,EAAK,cAAc,EAAE,SAAS,GAAI,CAAE;AACrD,MAAIH,aAAgB,QAAQA,EAAK,YAAY,KAAI,MAAO,MACtDA,EAAK,OAAM;AAIjB,EAAIG,EAAK,SAAS,cACZ,KAAK,iBACPnK,GAAgB,MAAM4gC,IAAmBC,EAAmB,EAAE,KAAK,IAAI,IAEvE7gC,GAAgB,MAAM8gC,IAAsBC,EAAsB,EAAE,KAAK,IAAI;AAGnF;AACAH,KAAoB,oBAAI,QAAO;AAC/BC,KAAsB,iBAAiB;AACrC,OAAK,aAAa,iBAAiB,MAAM,GACzC,KAAK,aAAa,iBAAiB,GAAG,CAAC,KAAK,eAAe,MAAM,EAAE,GACnE,KAAK,eAAe,iBAAiB,UAAUvgC,GAAa,MAAM0gC,EAAe,CAAC,GAClF,KAAK,eAAe,iBAAiB,eAAe1gC,GAAa,MAAM0gC,EAAe,CAAC,GACvF,KAAK,eAAe;AAAA,IAClB;AAAA,IACA1gC,GAAa,MAAM0gC,EAAe;AAAA,EACtC,GACE1gC,GAAa,MAAM0gC,EAAe,EAAE,KAAK,IAAI;AAC/C;AACAF,KAAuB,oBAAI,QAAO;AAClCC,KAAyB,WAAW;AAClC,OAAK,gBAAgB,eAAe,GACpC,KAAK,gBAAgB,eAAe,GACpC,KAAK,eAAe,oBAAoB,UAAUzgC,GAAa,MAAM0gC,EAAe,CAAC,GACrF,KAAK,eAAe;AAAA,IAClB;AAAA,IACA1gC,GAAa,MAAM0gC,EAAe;AAAA,EACtC,GACE,KAAK,eAAe;AAAA,IAClB;AAAA,IACA1gC,GAAa,MAAM0gC,EAAe;AAAA,EACtC,GACE1gC,GAAa,MAAM0gC,EAAe,EAAE,KAAK,IAAI;AAC/C;AACAA,KAAkB,oBAAI,QAAO;AAC7BC,KAAe,oBAAI,QAAO;AAC1B3Z,KAAiB,oBAAI,QAAO;AAC5B4Z,KAAS,oBAAI,QAAO;AACpBC,KAAW,WAAW;AACpB,MAAIjuC;AACJ,QAAM0kC,KAAS1kC,IAAKoN,GAAa,MAAMqgC,EAAa,MAAM,OAAO,SAASztC,EAAG;AAC7E,MAAI,CAAC0kC;AACH;AACF,MAAI2J,IAAc3J,EAAM,OAAO,CAACQ,MAASA,EAAK,aAAa,cAAc,MAAM,MAAM,EAAE,IAAG;AAC1F,EAAKmJ,MACHA,IAAc3J,EAAM,CAAC;AACvB,aAAWQ,KAAQR;AACjB,IAAAQ,EAAK,aAAa,gBAAgB,OAAO;AAE3C,EAAAmJ,KAAe,QAAgBA,EAAY,aAAa,gBAAgB,MAAM;AAChF;AACAF,GAAoB,oBAAoB,EAAE,MAAM,OAAM;AACtDA,GAAoB,kBAAkBl0B;AACtCk0B,GAAoB,yBAAyBD;AAC7C,SAASK,GAAYrJ,GAAM;AACzB,SAAOA,EAAK,SAAS,WAAWA,EAAK,SAAS;AAChD;AACA,SAASsJ,GAA0Bn3B,GAAW+tB,GAAY;AACxD,MAAI,CAAC/tB;AACH,WAAO;AACT,QAAM,EAAE,MAAAhB,EAAI,IAAKgB,EAAU,YAAW;AACtC,SAAI,CAAC+tB,KAAc/uB,IACVm4B,GAA0Bn3B,GAAWhB,CAAI,IAC9C+uB,KAAc,QAAgBA,EAAW,QACpCA,IACFoJ,GAA0BpJ,GAAYA,KAAc,OAAO,SAASA,EAAW,UAAU;AAClG;AACKzvB,EAAW,eAAe,IAAI,wBAAwB,KACzDA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAw4B;AACJ;AC5bA,SAASl0B,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA,MACE+xB,GAAgB,gBAAgB/xB,CAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqC7C;AACA,MAAMu0B,WAA0BxC,GAAgB;AAAA;AAAA;AAAA;AAAA,EAI9C,IAAI,gBAAgB;AAClB,WAAI,KAAK,WAAW,SACX,MAAM,gBACR71B,GAAmB,IAAI,EAAE;AAAA,MAC9B;AAAA,IACN;AAAA,EACE;AACF;AACAq4B,GAAkB,kBAAkBx0B;AAC/BtE,EAAW,eAAe,IAAI,qBAAqB,KACtDA,EAAW,eAAe,OAAO,uBAAuB84B,EAAiB;ACzD3E,SAASx0B,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA,MACEi0B,GAAoB,gBAAgB,KAAK,MAAMj0B,CAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAY5D;AACA,SAASg0B,GAAuBh0B,GAAQ;AACtC;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAMJ;AACA,MAAMw0B,WAA8BP,GAAoB;AACxD;AACAO,GAAsB,oBAAoB,EAAE,MAAM,OAAM;AACxDA,GAAsB,kBAAkBz0B;AACxCy0B,GAAsB,yBAAyBR;AAC1Cv4B,EAAW,eAAe,IAAI,0BAA0B,KAC3DA,EAAW,eAAe;AAAA,EACxB;AAAA,EACA+4B;AACJ;AClCA,MAAMC,WAA8Blc,GAAkB;AAAA,EACpD,oBAAoB;AAClB,UAAM,kBAAiB,GACnB,KAAK,uBACP,KAAK,aAAa,iBAAiB,MAAM;AAAA,EAE7C;AAAA,EACA,IAAI,eAAe;AACjB,WAAO,KAAK,aAAa,cAAc;AAAA,EACzC;AAAA,EACA,IAAI,aAAatpB,GAAO;AACtB,SAAK,aAAa,gBAAgB,GAAGA,CAAK,EAAE;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,sBAAsB;AACxB,QAAInJ;AACJ,WAAI,KAAK,gBACCA,IAAK0W,GAAwB,IAAI,MAAM,OAAO,SAAS1W,EAAG;AAAA,MAChE,IAAI,KAAK,YAAY;AAAA,IAC7B,IAEW;AAAA,EACT;AAAA,EACA,cAAc;AACZ,QAAIA;AACJ,KAACA,IAAK,KAAK,wBAAwB,QAAgBA,EAAG;AAAA,MACpD,IAAIwpC,GAAY,EAAE,eAAe,KAAI,CAAE;AAAA,IAC7C;AAAA,EACE;AACF;AACK7zB,EAAW,eAAe,IAAI,0BAA0B,KAC3DA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAg5B;AACJ;ACrCA,SAASpc,KAAsB;AAC7B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaJ;AACA,SAASC,KAAwB;AAC/B,SAAO/9B,EAAE,UAAU;AACrB;AACA,MAAMm6C,WAAgCD,GAAsB;AAAA,EAC1D,WAAW,qBAAqB;AAC9B,WAAO,CAAC,GAAG,MAAM,oBAAoB,QAAQ;AAAA,EAC/C;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvB,KAAK,aAAa,cAAcl6C,EAAE,UAAU,CAAC;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,sBAAsB;AACxB,WAAI,KAAK,gBAAgB,OAChB,MAAM,sBACR2hB,GAAmB,IAAI,EAAE,cAAc,qBAAqB;AAAA,EACrE;AACF;AACAw4B,GAAwB,sBAAsBrc;AAC9Cqc,GAAwB,wBAAwBpc;AAC3C7c,EAAW,eAAe,IAAI,4BAA4B,KAC7DA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAi5B;AACJ;AChDA,IAAIj1B,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAEL8zB,IAAiBC,IAAYC,IAASC,IAAWC,IAAWC;AAchE,MAAMC,WAA4BlD,GAAgB;AAAA,EAChD,cAAc;AACZ,UAAM,GAAG,SAAS,GAClB9/B,GAAa,MAAM4iC,EAAO,GAC1B5iC,GAAa,MAAM8iC,EAAS,GAC5B9iC,GAAa,MAAM0iC,IAAiB,EAAE,GACtC1iC,GAAa,MAAM2iC,IAAY,MAAM;AAAA,EACvC;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTv+B,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,yBAAyBjB,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAaiB,EAAkB,6BAA6BhB,MAAaC,IAC3E,KAAK,QAAQA,IACJF,MAAaiB,EAAkB,0BAA0BhB,MAAaC,MAC/ExC,GAAa,MAAM6hC,IAAiB38B,GAAoB1C,KAA8B,EAAE,CAAC,GACzF1C,GAAgB,MAAMiiC,IAASC,EAAS,EAAE,KAAK,IAAI;AAAA,EAEvD;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvB,KAAK,iBAAiB,UAAUliC,GAAgB,MAAMmiC,IAAWC,EAAW,CAAC;AAAA,EAC/E;AAAA,EACA,uBAAuB;AACrB,UAAM,qBAAoB,GAC1B,KAAK,oBAAoB,UAAUpiC,GAAgB,MAAMmiC,IAAWC,EAAW,CAAC;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,gBAAgB;AAClB,QAAIlvC;AACJ,WAAI,KAAK,WAAW,SACX,MAAM,iBACPA,IAAKoW,GAAmB,IAAI,MAAM,OAAO,SAASpW,EAAG;AAAA,MAC3D;AAAA,IACN;AAAA,EACE;AAAA,EACA,IAAI,sBAAsB;AACxB,WAAOoN,GAAa,MAAMyhC,EAAe;AAAA,EAC3C;AAAA,EACA,IAAI,oBAAoB1b,GAAM;AAC5BnmB,IAAAA,GAAa,MAAM6hC,IAAiB1b,CAAI,GACxCrmB,GAAgB,MAAMiiC,IAASC,EAAS,EAAE,KAAK,IAAI;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,yBAAyB;AAC3B,QAAIhvC;AACJ,YAAQA,IAAKwZ,GAAc,MAAMjJ,EAAkB,yBAAyB,MAAM,OAAOvQ,IAAK;AAAA,EAChG;AAAA,EACA,IAAI,uBAAuB6O,GAAI;AAC7B,IAAA4K,GAAc,MAAMlJ,EAAkB,2BAA2B1B,CAAE;AAAA,EACrE;AACF;AACAggC,KAAkB,oBAAI,QAAO;AAC7BC,KAAa,oBAAI,QAAO;AACxBC,KAAU,oBAAI,QAAO;AACrBC,KAAY,WAAW;AACrB,MAAI5hC,GAAa,MAAM0hC,EAAU,MAAM,KAAK,UAAU,KAAK,mBAAmB;AAC5E;AACF9hC,EAAAA,GAAa,MAAM8hC,IAAY,KAAK,UAAU,KAAK,mBAAmB,CAAC;AACvE,QAAMM,IAAiB,KAAK;AAC5B,OAAK,YAAY,cAAc,IAC/BA,EAAe,KAAK,CAACz6C,GAAGiI,MAAMjI,EAAE,GAAG,cAAciI,EAAE,IAAI,QAAQ,EAAE,SAAS,GAAI,CAAE,CAAC;AACjF,aAAWwV,KAAcg9B,GAAgB;AACvC,UAAM5qB,IAAO,KAAK,mBAAmBpS,EAAW,OAAOA,CAAU,GAC3D8yB,IAAO0G,GAAe;AAAA,MAC1B,MAAM;AAAA,MACN,MAAApnB;AAAA,MACA,OAAO,GAAGpS,EAAW,EAAE;AAAA,MACvB,SAASA,EAAW;AAAA,IAC1B,CAAK;AACD,IAAA8yB,EAAK,QAAQ4G,GAAgB,MAAM,mBAAmB,CAAC,GACvD,KAAK,YAAY,OAAO5G,CAAI;AAAA,EAC9B;AACF;AACA+J,KAAY,oBAAI,QAAO;AACvBC,KAAc,WAAW;AACvB,MAAI,KAAK,SAAS;AAChB;AACF,QAAM5hC,IAAQ,IAAIqI,EAAW;AAAA,IAC3BxF,EAAc;AAAA,IACd;AAAA,MACE,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAQ,KAAK;AAAA,IACnB;AAAA,EACA;AACE,OAAK,cAAc7C,CAAK;AAC1B;AACKqI,EAAW,eAAe,IAAI,wBAAwB,KACzDA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAw5B;AACJ;ACjIA,MAAME;AAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAKF,SAAS9c,KAAsB;AAC7B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAMoB8c,EAAc;AAAA;AAAA;AAGtC;AACA,SAAS7c,KAAwB;AAC/B,SAAO/9B,EAAE,OAAO;AAClB;AACA,MAAMm+B,KAAkB,CAAC5pB,MAAO;AAC9B,QAAMqJ,IAAQ5d,EAAE,OAAO;AACvB,EAAAuU,EAAG,aAAa,cAAcqJ,CAAK;AACrC;AACA,MAAMi9B,WAAkCX,GAAsB;AAAA,EAC5D,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTp+B,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvBqiB,GAAgB,IAAI;AAAA,EACtB;AAAA,EACA,yBAAyBtjB,GAAUoO,GAAWlO,GAAU;AACtD,UAAM,yBAAyBF,GAAUoO,GAAWlO,CAAQ,GACxDF,MAAaiB,EAAkB,cACjCqiB,GAAgB,IAAI;AAAA,EAExB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,sBAAsB;AACxB,QAAI5yB;AACJ,WAAI,KAAK,gBAAgB,OAChB,MAAM,uBACPA,IAAKoW,GAAmB,IAAI,MAAM,OAAO,SAASpW,EAAG,cAAc,wBAAwB;AAAA,EACrG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,yBAAyB;AAC3B,QAAIA;AACJ,YAAQA,IAAKwZ,GAAc,MAAMjJ,EAAkB,yBAAyB,MAAM,OAAOvQ,IAAK;AAAA,EAChG;AAAA,EACA,IAAI,uBAAuB6O,GAAI;AAC7B,IAAA4K,GAAc,MAAMlJ,EAAkB,2BAA2B1B,CAAE;AAAA,EACrE;AACF;AACAygC,GAA0B,sBAAsB/c;AAChD+c,GAA0B,wBAAwB9c;AAC7C7c,EAAW,eAAe,IAAI,+BAA+B,KAChEA,EAAW,eAAe;AAAA,EACxB;AAAA,EACA25B;AACJ;AClFA,IAAI31B,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GACjBA,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAEL+zB,IAAYC,IAASC,IAAWC,IAAWC;AAe/C,MAAMK;AAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAKF,SAASt1B,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA,MACE+xB,GAAgB,gBAAgB/xB,CAAM,CAAC;AAAA,6CACAq1B,EAAM;AAAA;AAAA;AAGnD;AACA,MAAMC,WAA0BvD,GAAgB;AAAA,EAC9C,cAAc;AACZ,UAAM,GAAG,SAAS,GAClB9/B,GAAa,MAAM4iC,EAAO,GAC1B5iC,GAAa,MAAM8iC,EAAS,GAC5B9iC,GAAa,MAAM2iC,IAAY,MAAM;AAAA,EACvC;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTv+B,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,yBAAyBjB,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAaiB,EAAkB,wBAAwBhB,MAAaC,IACtE1C,GAAgB,MAAMiiC,IAASC,EAAS,EAAE,KAAK,IAAI,IAC1C1/B,MAAaiB,EAAkB,2BAA2BhB,MAAaC,MAChF,KAAK,QAAQA,KAAY,IACzB1C,GAAgB,MAAMiiC,IAASC,EAAS,EAAE,KAAK,IAAI;AAAA,EAEvD;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvB,KAAK,iBAAiB,UAAUliC,GAAgB,MAAMmiC,IAAWC,EAAW,CAAC;AAAA,EAC/E;AAAA,EACA,uBAAuB;AACrB,UAAM,qBAAoB,GAC1B,KAAK,oBAAoB,UAAUpiC,GAAgB,MAAMmiC,IAAWC,EAAW,CAAC;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,gBAAgB;AAClB,WAAI,KAAK,WAAW,SACX,MAAM,gBACR94B,GAAmB,IAAI,EAAE,cAAc,4BAA4B;AAAA,EAC5E;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,qBAAqB;AACvB,WAAO8c,GAAqB,MAAM3iB,EAAkB,oBAAoB;AAAA,EAC1E;AAAA,EACA,IAAI,mBAAmB4iB,GAAM;AAC3BC,IAAAA,GAAqB,MAAM7iB,EAAkB,sBAAsB4iB,CAAI;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,wBAAwB;AAC1B,WAAOD;AAAAA,MACL;AAAA,MACA3iB,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,IAAI,sBAAsB4iB,GAAM;AAC9BC,IAAAA,GAAqB,MAAM7iB,EAAkB,yBAAyB4iB,CAAI;AAAA,EAC5E;AACF;AACA2b,KAAa,oBAAI,QAAO;AACxBC,KAAU,oBAAI,QAAO;AACrBC,KAAY,WAAW;AACrB,MAAIhvC;AACJ,QAAMyvC,IAAiBriC,GAAa,MAAM0hC,EAAU,MAAM,KAAK,UAAU,KAAK,kBAAkB,GAC1FY,IAAoB,KAAK,UAAU,KAAK,aAAan/B,EAAkB,uBAAuB;AACpG,MAAI,CAACk/B,KAAkB,CAACC;AACtB;AACF1iC,EAAAA,GAAa,MAAM8hC,IAAY,KAAK,UAAU,KAAK,kBAAkB,CAAC,GACtE,KAAK,YAAY,cAAc;AAC/B,QAAMa,IAAQ,CAAC,KAAK,OACdzK,IAAO0G,GAAe;AAAA,IAC1B,MAAM;AAAA,IACN,MAAM,KAAK,mBAAmBn3C,EAAE,KAAK,CAAC;AAAA,IACtC,OAAO;AAAA,IACP,SAASk7C;AAAA,EACb,CAAG;AACD,EAAAzK,EAAK,QAAQ4G,GAAgB,MAAM,mBAAmB,CAAC,GACvD,KAAK,YAAY,OAAO5G,CAAI;AAC5B,QAAM0K,IAAgB,KAAK;AAC3B,aAAWC,KAAQD,GAAe;AAChC,UAAMrD,IAAQX,GAAe;AAAA,MAC3B,MAAM;AAAA,MACN,MAAM,KAAK,mBAAmBiE,EAAK,OAAOA,CAAI;AAAA,MAC9C,OAAOpwB,GAAmBowB,CAAI;AAAA,MAC9B,SAAS,KAAK,SAASpwB,GAAmBowB,CAAI;AAAA,IACpD,CAAK;AACD,IAAAtD,EAAM,QAAQT,GAAgB,MAAM,mBAAmB,CAAC,KAC1C9rC,IAAK6vC,EAAK,SAAS,OAAO7vC,IAAK,YAChC,cACXusC,EAAM,OAAOT,GAAgB,MAAM,oBAAoB,CAAC,GAE1D,KAAK,YAAY,OAAOS,CAAK;AAAA,EAC/B;AACF;AACA0C,KAAY,oBAAI,QAAO;AACvBC,KAAc,WAAW;AACvB,QAAMY,IAAc,KAAK,uBACnBC,IAAiB,KAAK;AAAA,IAC1Bx/B,EAAkB;AAAA,EACtB,GACQy/B,IAAmB,KAAK,UAAUD;AAaxC,MAZKD,KAAe,QAAgBA,EAAY,UAAWE,KACzD,KAAK;AAAA,IACH,IAAIr6B,EAAW;AAAA,MACbxF,EAAc;AAAA,MACd;AAAA,QACE,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ2/B;AAAA,MAClB;AAAA,IACA;AAAA,EACA,GAEM,CAAC,KAAK,SAAS,CAACE;AAClB;AACF,QAAM1iC,IAAQ,IAAIqI,EAAW;AAAA,IAC3BxF,EAAc;AAAA,IACd;AAAA,MACE,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAQ,KAAK;AAAA,IACnB;AAAA,EACA;AACE,OAAK,cAAc7C,CAAK;AAC1B;AACAkiC,GAAkB,kBAAkBv1B;AACpC,MAAMiZ,KAAuB,CAAClqB,GAAIsG,MAAa;AAC7C,QAAM6J,IAAUnQ,EAAG,aAAasG,CAAQ;AACxC,SAAO6J,IAAUgG,GAAmBhG,CAAO,IAAI,CAAA;AACjD,GACMia,KAAuB,CAACpqB,GAAIsG,GAAU6jB,MAAS;AACnD,MAAI,EAAEA,KAAQ,QAAgBA,EAAK,SAAS;AAC1C,IAAAnqB,EAAG,gBAAgBsG,CAAQ;AAC3B;AAAA,EACF;AACA,QAAM+jB,IAAY3T,GAAuByT,CAAI;AAE7C,EADenqB,EAAG,aAAasG,CAAQ,MACxB+jB,KAEfrqB,EAAG,aAAasG,GAAU+jB,CAAS;AACrC;AACK1d,EAAW,eAAe,IAAI,qBAAqB,KACtDA,EAAW,eAAe,OAAO,uBAAuB65B,EAAiB;AC7L3E,MAAM1c,KAAW;AAAA;AAAA,SAGXC,KAAY;AAAA;AAAA;AAGlB,SAASR,KAAsB;AAC7B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAkBoBO,EAAQ;AAAA,yBACPC,EAAS;AAAA;AAAA;AAAA;AAIlC;AACA,SAASP,KAAwB;AAC/B,SAAO/9B,EAAE,UAAU;AACrB;AACA,MAAMu+B,KAAoB,CAAChqB,MAAO;AAChC,EAAAA,EAAG,aAAa,yBAAyByX,GAAUzX,CAAE,EAAE,UAAU;AACnE,GACM4pB,KAAkB,CAAC5pB,MAAO;AAC9B,EAAAA,EAAG,aAAa,cAAcvU,EAAE,iBAAiB,CAAC;AACpD;AACA,MAAMw7C,WAAgCtB,GAAsB;AAAA,EAC1D,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTp+B,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvBqiB,GAAgB,IAAI,GACpBI,GAAkB,IAAI;AAAA,EACxB;AAAA,EACA,yBAAyB1jB,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAaiB,EAAkB,0BACjCyiB,GAAkB,IAAI,IACb1jB,MAAaiB,EAAkB,cACxCqiB,GAAgB,IAAI;AAAA,EAExB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,sBAAsB;AACxB,QAAI5yB;AACJ,WAAI,KAAK,gBAAgB,OAChB,MAAM,uBACPA,IAAKoW,GAAmB,IAAI,MAAM,OAAO,SAASpW,EAAG,cAAc,qBAAqB;AAAA,EAClG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,qBAAqB;AACvB,WAAOkzB,GAAqB,MAAM3iB,EAAkB,oBAAoB;AAAA,EAC1E;AAAA,EACA,IAAI,mBAAmB4iB,GAAM;AAC3B,IAAAC,GAAqB,MAAM7iB,EAAkB,sBAAsB4iB,CAAI;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,wBAAwB;AAC1B,WAAOD;AAAA,MACL;AAAA,MACA3iB,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,IAAI,sBAAsB4iB,GAAM;AAC9B,IAAAC,GAAqB,MAAM7iB,EAAkB,yBAAyB4iB,CAAI;AAAA,EAC5E;AACF;AACA8c,GAAwB,sBAAsB1d;AAC9C0d,GAAwB,wBAAwBzd;AAChD,MAAMU,KAAuB,CAAClqB,GAAIsG,MAAa;AAC7C,QAAM6J,IAAUnQ,EAAG,aAAasG,CAAQ;AACxC,SAAO6J,IAAUgG,GAAmBhG,CAAO,IAAI,CAAA;AACjD,GACMia,KAAuB,CAACpqB,GAAIsG,GAAU6jB,MAAS;AACnD,MAAI,EAAEA,KAAQ,QAAgBA,EAAK,SAAS;AAC1C,IAAAnqB,EAAG,gBAAgBsG,CAAQ;AAC3B;AAAA,EACF;AACA,QAAM+jB,IAAY3T,GAAuByT,CAAI;AAE7C,EADenqB,EAAG,aAAasG,CAAQ,MACxB+jB,KAEfrqB,EAAG,aAAasG,GAAU+jB,CAAS;AACrC;AACK1d,EAAW,eAAe,IAAI,4BAA4B,KAC7DA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAs6B;AACJ;ACjIA,IAAIt2B,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAELgf,IAAQgV,IAASC,IAAWC,IAAWC;AAe3C,MAAM9yB,KAAa;AAAA,EACjB,OAAO;AACT;AACA,MAAM8zB,WAA8BjE,GAAgB;AAAA,EAClD,cAAc;AACZ,UAAK,GACL9/B,GAAa,MAAM4iC,EAAO,GAC1B5iC,GAAa,MAAM8iC,EAAS,GAC5B9iC,GAAa,MAAM4tB,IAAQ,IAAIxb,GAAmB,MAAMnC,GAAW,OAAO;AAAA,MACxE,cAAc4d;AAAA,IACpB,CAAK,CAAC,GACFltB,GAAgB,MAAMiiC,IAASC,EAAS,EAAE,KAAK,IAAI;AAAA,EACrD;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTz+B,EAAkB;AAAA,MAClB6L,GAAW;AAAA,IACjB;AAAA,EACE;AAAA,EACA,yBAAyB9M,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAaiB,EAAkB,uBAAuBhB,KAAYC,KACpE,KAAK,QAAQA,GACb1C,GAAgB,MAAMiiC,IAASC,EAAS,EAAE,KAAK,IAAI,KAC1C1/B,MAAa8M,GAAW,SAAS7M,KAAYC,MACtDpC,GAAa,MAAM2sB,EAAM,EAAE,QAAQvqB,GACnC1C,GAAgB,MAAMiiC,IAASC,EAAS,EAAE,KAAK,IAAI;AAAA,EAEvD;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvB,KAAK,iBAAiB,UAAUliC,GAAgB,MAAMmiC,IAAWC,EAAW,CAAC;AAAA,EAC/E;AAAA,EACA,uBAAuB;AACrB,UAAM,qBAAoB,GAC1B,KAAK,oBAAoB,UAAUpiC,GAAgB,MAAMmiC,IAAWC,EAAW,CAAC;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,gBAAgB;AAClB,WAAI,KAAK,WAAW,SACX,MAAM,gBACR94B,GAAmB,IAAI,EAAE;AAAA,MAC9B;AAAA,IACN;AAAA,EACE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,QAAQ;AACV,WAAOhJ,GAAa,MAAM2sB,EAAM;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,MAAM5wB,GAAO;AACf,IAAKA,IAEM,MAAM,QAAQA,CAAK,IAC5BiE,GAAa,MAAM2sB,EAAM,EAAE,QAAQ5wB,EAAM,KAAK,GAAG,IACxC,OAAOA,KAAU,aAC1BiE,GAAa,MAAM2sB,EAAM,EAAE,QAAQ5wB,KAJnCiE,GAAa,MAAM2sB,EAAM,EAAE,QAAQ,IAMrCjtB,GAAgB,MAAMiiC,IAASC,EAAS,EAAE,KAAK,IAAI;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,oBAAoB;AACtB,WAAO/1B;AAAA,MACL;AAAA,MACA1I,EAAkB;AAAA,MAClB0pB;AAAAA,IACN;AAAA,EACE;AAAA,EACA,IAAI,kBAAkB9wB,GAAO;AAC3B,IAAAiQ,GAAe,MAAM7I,EAAkB,qBAAqBpH,CAAK;AAAA,EACnE;AACF;AACA4wB,KAAS,oBAAI,QAAO;AACpBgV,KAAU,oBAAI,QAAO;AACrBC,KAAY,WAAW;AACrB,OAAK,YAAY,cAAc;AAC/B,QAAMmB,IAAc,KAAK,mBACnBC,IAAW,IAAI,IAAI,MAAM,KAAKhjC,GAAa,MAAM2sB,EAAM,CAAC,EAAE,IAAI,CAACsW,MAAS,OAAOA,CAAI,CAAC,CAAC;AAC3F,EAAIF,IAAc,KAAK,CAACC,EAAS,IAAID,CAAW,KAC9CC,EAAS,IAAID,CAAW;AAE1B,QAAMG,IAAc,MAAM,KAAKF,CAAQ,EAAE,KAAK,CAAC,GAAGxzC,MAAM,IAAIA,CAAC;AAC7D,aAAWyzC,KAAQC,GAAa;AAC9B,UAAMpL,IAAO0G,GAAe;AAAA,MAC1B,MAAM;AAAA,MACN,MAAM,KAAK,mBAAmB,GAAGyE,CAAI,KAAKA,CAAI;AAAA,MAC9C,OAAOA,EAAK,SAAQ;AAAA,MACpB,SAASF,MAAgBE;AAAA,IAC/B,CAAK;AACD,IAAAnL,EAAK,QAAQ4G,GAAgB,MAAM,mBAAmB,CAAC,GACvD,KAAK,YAAY,OAAO5G,CAAI;AAAA,EAC9B;AACF;AACA+J,KAAY,oBAAI,QAAO;AACvBC,KAAc,WAAW;AACvB,MAAI,CAAC,KAAK;AACR;AACF,QAAM5hC,IAAQ,IAAIqI,EAAW;AAAA,IAC3BxF,EAAc;AAAA,IACd;AAAA,MACE,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAQ,KAAK;AAAA,IACnB;AAAA,EACA;AACE,OAAK,cAAc7C,CAAK;AAC1B;AACKqI,EAAW,eAAe,IAAI,0BAA0B,KAC3DA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAu6B;AACJ;AChJA,MAAMjW,KAAe;AACrB,SAAS1H,GAAoBnY,GAAO;AAClC;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAeoBA,EAAM,qBAAwB6f,EAAY;AAAA;AAAA;AAGlE;AACA,SAASzH,KAAwB;AAC/B,SAAO/9B,EAAE,eAAe;AAC1B;AACA,MAAM87C,WAAoC5B,GAAsB;AAAA,EAC9D,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTp+B,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,cAAc;AACZ,QAAIvQ;AACJ,UAAK,GACL,KAAK,YAAY,KAAK,WAAW,cAAc,mBAAmB,GAClE,KAAK,UAAU,YAAY,IAAIA,IAAK,KAAK,sBAAsB,OAAOA,IAAKi6B,EAAY;AAAA,EACzF;AAAA,EACA,yBAAyB3qB,GAAUC,GAAUC,GAAU;AAErD,QADA,MAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAaiB,EAAkB,qBAAqB;AACtD,YAAM4pB,IAAkB3qB,IAAW,CAACA,IAAW,OAAO,KAChDgf,IAAgB,OAAO,MAAM2L,CAAe,IAAsBF,KAAlBE;AACtD,WAAK,UAAU,YAAY,GAAG3L,CAAY,KAC1C,KAAK;AAAA,QACH;AAAA,QACA/5B,EAAE,gCAAgC,EAAE,cAAA+5B,EAAY,CAAE;AAAA,MAC1D;AAAA,IACI;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,sBAAsB;AACxB,WAAI,KAAK,gBAAgB,OAChB,MAAM,sBACRpY,GAAmB,IAAI,EAAE,cAAc,0BAA0B;AAAA,EAC1E;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,oBAAoB;AACtB,WAAO6C;AAAA,MACL;AAAA,MACA1I,EAAkB;AAAA,MAClB0pB;AAAA,IACN;AAAA,EACE;AAAA,EACA,IAAI,kBAAkB9wB,GAAO;AAC3B,IAAAiQ,GAAe,MAAM7I,EAAkB,qBAAqBpH,CAAK;AAAA,EACnE;AACF;AACAonC,GAA4B,sBAAsBhe;AAClDge,GAA4B,wBAAwB/d;AAC/C7c,EAAW,eAAe,IAAI,iCAAiC,KAClEA,EAAW,eAAe;AAAA,EACxB;AAAA,EACA46B;AACJ;ACxFA,IAAI52B,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAELy1B,IAAgB1B,IAAYC,IAASC,IAAWC,IAAWC;AAiB/D,MAAMuB,WAA2BxE,GAAgB;AAAA,EAC/C,cAAc;AACZ,UAAM,GAAG,SAAS,GAClB9/B,GAAa,MAAM4iC,EAAO,GAC1B5iC,GAAa,MAAM8iC,EAAS,GAC5B9iC,GAAa,MAAMqkC,IAAgB,EAAE,GACrCrkC,GAAa,MAAM2iC,IAAY,EAAE;AAAA,EACnC;AAAA,EACA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTv+B,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,OAAO,mBAAmBiU,GAAM5S,GAAW;AACzC,WAAO,MAAM,mBAAmB4S,GAAM5S,CAAS;AAAA,EACjD;AAAA,EACA,OAAO,gBAAgBA,GAAW,EAAE,aAAA8+B,IAAc,GAAK,IAAK,CAAA,GAAI;AAC9D,UAAMC,IAAgB,GAAG,KAAK;AAAA,MAC5B/+B,EAAU;AAAA,MACVA,EAAU;AAAA,IAChB,CAAK;AACD,QAAI8+B,KAAe9+B,EAAU,SAAS;AACpC,YAAMg/B,IAAOh/B,EAAU,UAAU,KAC3Bi/B,IAAc,GAAGD,EAAK,QAAQA,IAAO,IAAI,IAAI,CAAC,CAAC;AACrD,aAAO,GAAGD,CAAa,KAAKE,CAAW;AAAA,IACzC;AACA,WAAO,KAAK,mBAAmBF,GAAe/+B,CAAS;AAAA,EACzD;AAAA,EACA,OAAO,iBAAiBjd,GAAGiI,GAAG;AAC5B,QAAIoD,GAAIsJ;AACR,WAAO1M,EAAE,WAAWjI,EAAE,WAAWqL,IAAKpD,EAAE,YAAY,OAAOoD,IAAK,OAAOsJ,IAAK3U,EAAE,YAAY,OAAO2U,IAAK,KAAK1M,EAAE,SAASjI,EAAE;AAAA,EAC1H;AAAA,EACA,yBAAyB2a,GAAUC,GAAUC,GAAU;AACrD,UAAM,yBAAyBF,GAAUC,GAAUC,CAAQ,GACvDF,MAAaiB,EAAkB,4BAA4BhB,MAAaC,KAC1E,KAAK,QAAQA,KAA8B,QAC3C1C,GAAgB,MAAMiiC,IAASC,EAAS,EAAE,KAAK,IAAI,KAC1C1/B,MAAaiB,EAAkB,wBAAwBhB,MAAaC,KAC7ExC,GAAa,MAAMwjC,IAAgB9+B,GAAmBlC,CAAQ,CAAC,GAC/D1C,GAAgB,MAAMiiC,IAASC,EAAS,EAAE,KAAK,IAAI,KAC1C1/B,MAAaiB,EAAkB,gBAAgBhB,MAAaC,KACrE1C,GAAgB,MAAMiiC,IAASC,EAAS,EAAE,KAAK,IAAI;AAAA,EAEvD;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvB,KAAK,iBAAiB,UAAUliC,GAAgB,MAAMmiC,IAAWC,EAAW,CAAC;AAAA,EAC/E;AAAA,EACA,uBAAuB;AACrB,UAAM,qBAAoB,GAC1B,KAAK,oBAAoB,UAAUpiC,GAAgB,MAAMmiC,IAAWC,EAAW,CAAC;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,gBAAgB;AAClB,WAAI,KAAK,WAAW,SACX,MAAM,gBACR94B,GAAmB,IAAI,EAAE;AAAA,MAC9B;AAAA,IACN;AAAA,EACE;AAAA,EACA,IAAI,qBAAqB;AACvB,WAAOhJ,GAAa,MAAMojC,EAAc;AAAA,EAC1C;AAAA,EACA,IAAI,mBAAmBrd,GAAM;AAC3BnmB,IAAAA,GAAa,MAAMwjC,IAAgBrd,CAAI,GACvCrmB,GAAgB,MAAMiiC,IAASC,EAAS,EAAE,KAAK,IAAI;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,yBAAyB;AAC3B,WAAOx1B,GAAc,MAAMjJ,EAAkB,wBAAwB;AAAA,EACvE;AAAA,EACA,IAAI,uBAAuB1B,GAAI;AAC7B,IAAA4K,GAAc,MAAMlJ,EAAkB,0BAA0B1B,CAAE;AAAA,EACpE;AAAA,EACA,IAAI,cAAc;AAChB,WAAOoK,GAAe,MAAM1I,EAAkB,YAAY;AAAA,EAC5D;AAAA,EACA,IAAI,YAAYuB,GAAQ;AACtB,IAAAsH,GAAe,MAAM7I,EAAkB,cAAcuB,CAAM;AAAA,EAC7D;AAAA,EACA,iBAAiBnd,GAAGiI,GAAG;AAErB,WADa,KAAK,YACN,iBAAiBjI,GAAGiI,CAAC;AAAA,EACnC;AAAA,EACA,mBAAmB4nB,GAAM5S,GAAW;AAElC,WADa,KAAK,YACN,mBAAmB4S,GAAM5S,CAAS;AAAA,EAChD;AAAA,EACA,gBAAgBA,GAAWvH,GAAS;AAElC,WADa,KAAK,YACN,gBAAgBuH,GAAWvH,CAAO;AAAA,EAChD;AAAA,EACA,qBAAqBuH,GAAW;AAC9B,WAAO,KAAK,mBAAmB;AAAA,MAC7B,CAACtd,MAAMA,MAAMsd,KAAatd,EAAE,WAAWsd,EAAU,UAAUtd,EAAE,YAAYsd,EAAU;AAAA,IACzF;AAAA,EACE;AACF;AACA4+B,KAAiB,oBAAI,QAAO;AAC5B1B,KAAa,oBAAI,QAAO;AACxBC,KAAU,oBAAI,QAAO;AACrBC,KAAY,WAAW;AACrB,MAAI5hC,GAAa,MAAM0hC,EAAU,EAAE,uBAAuB,KAAK,UAAU,KAAK,kBAAkB,KAAK1hC,GAAa,MAAM0hC,EAAU,EAAE,gBAAgB,KAAK;AACvJ;AACF1hC,EAAAA,GAAa,MAAM0hC,EAAU,EAAE,qBAAqB,KAAK;AAAA,IACvD,KAAK;AAAA,EACT,GACE1hC,GAAa,MAAM0hC,EAAU,EAAE,cAAc,KAAK;AAClD,QAAMgC,IAAgB,KAAK,mBAAmB;AAAA,IAC5C,KAAK,iBAAiB,KAAK,IAAI;AAAA,EACnC,GACQC,IAAoBD,EAAc;AAAA,IACtC,CAACl/B,MAAcA,EAAU,OAAO,KAAK;AAAA,EACzC;AACE,aAAWA,KAAak/B;AACtB,IAAAl/B,EAAU,WAAWA,MAAcm/B;AAErC,OAAK,YAAY,cAAc;AAC/B,QAAMC,IAAS,CAAC,KAAK;AACrB,aAAWp/B,KAAak/B,GAAe;AACrC,UAAMtsB,IAAO,KAAK,gBAAgB5S,GAAW;AAAA,MAC3C,aAAa,KAAK,qBAAqBA,CAAS;AAAA,IACtD,CAAK,GACK26B,IAAQX,GAAe;AAAA,MAC3B,MAAM;AAAA,MACN,MAAApnB;AAAA,MACA,OAAO,GAAG5S,EAAU,EAAE;AAAA,MACtB,SAASA,EAAU,YAAY,CAACo/B;AAAA,IACtC,CAAK;AACD,IAAAzE,EAAM,QAAQT,GAAgB,MAAM,mBAAmB,CAAC,GACxD,KAAK,YAAY,OAAOS,CAAK;AAAA,EAC/B;AACA,QAAM0E,IAAsBF,KAAqB,KAAK,qBAAqBA,CAAiB,GACtFG,IAAWF;AAAA;AAAA,IAEfD,IAAoB,KAAK;AAAA,MACvB,GAAGt8C,EAAE,MAAM,CAAC,MAAW,KAAK,gBAAgBs8C,GAAmB;AAAA,QAC7D,aAAaE;AAAA,MACrB,CAAO,CAAC;AAAA,MACFF;AAAA,IACN,IAAQ,KAAK,mBAAmB,GAAGt8C,EAAE,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI;AAAA,MAC/D,KAAK,mBAAmBA,EAAE,MAAM,CAAC,GAC/BywC,IAAO0G,GAAe;AAAA,IAC1B,MAAM;AAAA,IACN,MAAMsF;AAAA,IACN,OAAO;AAAA,IACP,SAASF;AAAA,EACb,CAAG;AACD,EAAA9L,EAAK,QAAQ,cAAcgM,GAC3BhM,EAAK,QAAQ4G,GAAgB,MAAM,mBAAmB,CAAC,GACvD,KAAK,YAAY,OAAO5G,CAAI;AAC9B;AACA+J,KAAY,oBAAI,QAAO;AACvBC,KAAc,WAAW;AACvB,MAAI,KAAK,SAAS;AAChB;AACF,QAAM5hC,IAAQ,IAAIqI,EAAW;AAAA,IAC3BxF,EAAc;AAAA,IACd;AAAA,MACE,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAQ,KAAK;AAAA,IACnB;AAAA,EACA;AACE,OAAK,cAAc7C,CAAK;AAC1B;AACKqI,EAAW,eAAe,IAAI,sBAAsB,KACvDA,EAAW,eAAe,OAAO,wBAAwB86B,EAAkB;AC3M7E,MAAMU;AAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAIF,SAAS5e,KAAsB;AAC7B;AAAA;AAAA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAMoB4e,EAAa;AAAA;AAAA;AAGrC;AACA,SAAS3e,KAAwB;AAC/B,SAAO/9B,EAAE,SAAS;AACpB;AACA,MAAM28C,WAAiCzC,GAAsB;AAAA,EAC3D,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACTp+B,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IACxB;AAAA,EACE;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvB,KAAK,aAAa,cAAc9b,EAAE,SAAS,CAAC;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,sBAAsB;AACxB,WAAI,KAAK,gBAAgB,OAChB,MAAM,sBACR2hB,GAAmB,IAAI,EAAE,cAAc,sBAAsB;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,yBAAyB;AAC3B,WAAOoD,GAAc,MAAMjJ,EAAkB,wBAAwB;AAAA,EACvE;AAAA,EACA,IAAI,uBAAuB1B,GAAI;AAC7B,IAAA4K,GAAc,MAAMlJ,EAAkB,0BAA0B1B,CAAE;AAAA,EACpE;AAAA,EACA,IAAI,cAAc;AAChB,WAAOoK,GAAe,MAAM1I,EAAkB,YAAY;AAAA,EAC5D;AAAA,EACA,IAAI,YAAYuB,GAAQ;AACtB,IAAAsH,GAAe,MAAM7I,EAAkB,cAAcuB,CAAM;AAAA,EAC7D;AACF;AACAs/B,GAAyB,sBAAsB7e;AAC/C6e,GAAyB,wBAAwB5e;AAC5C7c,EAAW,eAAe,IAAI,6BAA6B,KAC9DA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAy7B;AACJ;AC5EA,IAAIz3B,KAAgB,CAACzD,GAAK0D,GAAQC,MAAQ;AACxC,MAAI,CAACD,EAAO,IAAI1D,CAAG;AACjB,UAAM,UAAU,YAAY2D,CAAG;AACnC,GACIzM,KAAe,CAAC8I,GAAK0D,GAAQE,OAC/BH,GAAczD,GAAK0D,GAAQ,yBAAyB,GAC7CE,IAASA,EAAO,KAAK5D,CAAG,IAAI0D,EAAO,IAAI1D,CAAG,IAE/C/J,KAAe,CAAC+J,GAAK0D,GAAQzQ,MAAU;AACzC,MAAIyQ,EAAO,IAAI1D,CAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,EAAA0D,aAAkB,UAAUA,EAAO,IAAI1D,CAAG,IAAI0D,EAAO,IAAI1D,GAAK/M,CAAK;AACrE,GACI6D,KAAe,CAACkJ,GAAK0D,GAAQzQ,GAAO4Q,OACtCJ,GAAczD,GAAK0D,GAAQ,wBAAwB,GAChBA,EAAO,IAAI1D,GAAK/M,CAAK,GACjDA,IAEL2D,KAAkB,CAACoJ,GAAK0D,GAAQmB,OAClCpB,GAAczD,GAAK0D,GAAQ,uBAAuB,GAC3CmB,IAELs2B,IAAoBC,IAAmBC,IAAqBC,IAAmBC,IAAqBC,IAAyBC,IAA2BC,IAAmBC,IAAqBC,IAA0BC,IAAgBC,IAAkBC,IAAkBC,IAAYC;AAI9R,SAASl4B,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA,QACI+xB,GAAgB,gBAAgB/xB,CAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAe/C;AACA,MAAMk4B,WAAyBnG,GAAgB;AAAA,EAC7C,cAAc;AACZ,UAAK,GACL9/B,GAAa,MAAMmlC,EAAiB,GACpCnlC,GAAa,MAAMqlC,EAAiB,GACpCrlC,GAAa,MAAMulC,EAAuB,GAC1CvlC,GAAa,MAAMylC,EAAiB,GACpCzlC,GAAa,MAAM4lC,EAAc,GACjC5lC,GAAa,MAAMklC,IAAoB,EAAK,GAC5CllC,GAAa,MAAM2lC,IAA0B,CAACxkC,MAAU;AACtD,YAAM+gB,IAAS/gB,EAAM,QACf+kC,KAAkBhkB,KAAU,OAAO,SAASA,EAAO,cAAc,SACjEikB,IAAmBxlC,GAAgB,MAAM8kC,IAAmBC,EAAmB,EAAE,KAAK,MAAMxjB,CAAM;AACxG,OAAIgkB,KAAkBC,OACfllC,GAAa,MAAMikC,EAAkB,IAGxCvkC,GAAgB,MAAM0kC,IAAmBC,EAAmB,EAAE,KAAK,IAAI,IAFvE3kC,GAAgB,MAAMilC,IAAgBC,EAAgB,EAAE,KAAK,MAAM1kC,CAAK;AAAA,IAK9E,CAAC,GACDnB,GAAa,MAAM8lC,IAAkB,CAAC3kC,MAAU;AAC9C,YAAM+gB,IAAS/gB,EAAM,QACfilC,IAAe,KAAK,SAASlkB,CAAM,GACnCmkB,IAAellC,EAAM,WAAW,GAChCmlC,KAAWpkB,KAAU,OAAO,SAASA,EAAO,cAAc,SAC1DikB,IAAmBxlC,GAAgB,MAAM8kC,IAAmBC,EAAmB,EAAE,KAAK,MAAMxjB,CAAM;AAKxG,MAJIkkB,KAGwBC,MAAiBC,KAAWH,MAIxDxlC,GAAgB,MAAM0kC,IAAmBC,EAAmB,EAAE,KAAK,IAAI;AAAA,IACzE,CAAC,GACDtlC,GAAa,MAAM+lC,IAAY,CAAC5kC,MAAU;AACxC,MAAIA,EAAM,QAAQ,YAChBR,GAAgB,MAAM0kC,IAAmBC,EAAmB,EAAE,KAAK,IAAI;AAAA,IAE3E,CAAC,GACDtlC,GAAa,MAAMgmC,IAAc,CAAC7kC,MAAU;AAC1C,UAAItN,GAAIsJ;AACR,YAAM+kB,IAAS/gB,EAAM;AACrB,WAAKtN,IAAKquB,EAAO,YAAY,QAAgBruB,EAAG,KAAKquB,GAAQ,uBAAuB,GAAG;AACrF,cAAMqkB,KAASppC,IAAK+kB,EAAO,QAAQ,yBAAyB,MAAM,OAAO,SAAS/kB,EAAG,cAAc,oBAAoB;AACvH,QAAAopC,KAAS,UAAU,UAAU,UAAUA,EAAM,KAAK;AAAA,MACpD;AACA,MAAA5lC,GAAgB,MAAM0kC,IAAmBC,EAAmB,EAAE,KAAK,IAAI;AAAA,IACzE,CAAC,GACD,KAAK,aAAa,cAAc,EAAE,GAClC3kC,GAAgB,MAAMwkC,IAAmBC,EAAmB,EAAE,KAAK,IAAI;AAAA,EACzE;AAAA,EACA,oBAAoB;AAClB,UAAM,kBAAiB,GACvBn7B,GAAmB,IAAI,EAAE;AAAA,MACvB;AAAA,MACAhJ,GAAa,MAAM0kC,EAAwB;AAAA,IACjD,GACI,KAAK,iBAAiB,SAAS1kC,GAAa,MAAM+kC,EAAY,CAAC;AAAA,EACjE;AAAA,EACA,uBAAuB;AACrB,UAAM,qBAAoB,GAC1B/7B,GAAmB,IAAI,EAAE;AAAA,MACvB;AAAA,MACAhJ,GAAa,MAAM0kC,EAAwB;AAAA,IACjD,GACI,KAAK,oBAAoB,SAAS1kC,GAAa,MAAM+kC,EAAY,CAAC,GAClE,SAAS,oBAAoB,aAAa/kC,GAAa,MAAM6kC,EAAgB,CAAC,GAC9E,SAAS,oBAAoB,WAAW7kC,GAAa,MAAM8kC,EAAU,CAAC;AAAA,EACxE;AACF;AACAb,KAAqB,oBAAI,QAAO;AAChCC,KAAoB,oBAAI,QAAO;AAC/BC,KAAsB,WAAW;AAC/B,OAAK,SAAS,CAACnkC,GAAa,MAAMikC,EAAkB;AACtD;AACAG,KAAoB,oBAAI,QAAO;AAC/BC,KAAsB,WAAW;AAC/B,EAAAzkC,GAAa,MAAMqkC,IAAoB,EAAK,GAC5CvkC,GAAgB,MAAMwkC,IAAmBC,EAAmB,EAAE,KAAK,IAAI;AACzE;AACAG,KAA0B,oBAAI,QAAO;AACrCC,KAA4B,WAAW;AAErC,EADwB,SAAS,iBAAiB,oBAAoB,EACtD,QAAQ,CAACgB,MAAS;AAChC,QAAI3yC;AACJ,IAAI2yC,MAAS,QACX7lC,GAAgB9M,IAAK2yC,GAAMnB,IAAmBC,EAAmB,EAAE,KAAKzxC,CAAE;AAAA,EAE9E,CAAC;AACH;AACA4xC,KAAoB,oBAAI,QAAO;AAC/BC,KAAsB,SAASr8B,GAAS;AACtC,SAAKA,IAEDA,EAAQ,aAAa,MAAM,KAAKA,EAAQ,aAAa,MAAM,MAAM,UAC5D,KAELA,EAAQ,SAAS,SAAS,GAAG,KAAKA,EAAQ,QAAQ,SAAS,GAAG,IACrCA,EAAQ,aAAa,KAAK,KAAKA,EAAQ,aAAa,QAAQ,KAAKA,EAAQ,aAAa,SAAS,KAAKA,EAAQ,aAAa,aAAa,IAG5J,KARE;AASX;AACAs8B,KAA2B,oBAAI,QAAO;AACtCC,KAAiB,oBAAI,QAAO;AAC5BC,KAAmB,SAAS1kC,GAAO;AACjC,EAAAA,EAAM,eAAc,GACpBR,GAAgB,MAAM4kC,IAAyBC,EAAyB,EAAE,KAAK,IAAI,GACnF3kC,GAAa,MAAMqkC,IAAoB,EAAI,GAC3C,KAAK,MAAM,WAAW,SACtB,KAAK,MAAM,OAAO,GAAG/jC,EAAM,OAAO,MAClC,KAAK,MAAM,MAAM,GAAGA,EAAM,OAAO,MACjCR,GAAgB,MAAMwkC,IAAmBC,EAAmB,EAAE,KAAK,IAAI,GACvE,SAAS,iBAAiB,aAAankC,GAAa,MAAM6kC,EAAgB,GAAG;AAAA,IAC3E,MAAM;AAAA,EACV,CAAG,GACD,SAAS,iBAAiB,WAAW7kC,GAAa,MAAM8kC,EAAU,GAAG,EAAE,MAAM,IAAM;AACrF;AACAD,KAAmB,oBAAI,QAAO;AAC9BC,KAAa,oBAAI,QAAO;AACxBC,KAAe,oBAAI,QAAO;AAC1BC,GAAiB,kBAAkBn4B;AAC9BtE,EAAW,eAAe,IAAI,oBAAoB,KACrDA,EAAW,eAAe,OAAO,sBAAsBy8B,EAAgB;ACzKzE,SAASn4B,GAAgBC,GAAQ;AAC/B;AAAA;AAAA,IAEE;AAAA,MACEi0B,GAAoB,gBAAgB,KAAK,MAAMj0B,CAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAc5D;AACA,MAAM04B,WAA6BzE,GAAoB;AACvD;AACAyE,GAAqB,oBAAoB,EAAE,MAAM,OAAM;AACvDA,GAAqB,kBAAkB34B;AAClCtE,EAAW,eAAe,IAAI,yBAAyB,KAC1DA,EAAW,eAAe;AAAA,EACxB;AAAA,EACAi9B;AACJ;AC7BA,IAAIlsC,KAAG,OAAG;AAAC,QAAM,UAAU,CAAC;AAAC,GAAMJ,KAAG,CAAC,GAAE3R,GAAEkB,MAAIlB,EAAE,IAAI,CAAC,KAAG+R,GAAG,YAAU7Q,CAAC,GAAMmH,IAAE,CAAC,GAAErI,GAAEkB,OAAKyQ,GAAG,GAAE3R,GAAE,yBAAyB,GAAEkB,IAAEA,EAAE,KAAK,CAAC,IAAElB,EAAE,IAAI,CAAC,IAAG6G,KAAE,CAAC,GAAE7G,GAAEkB,MAAIlB,EAAE,IAAI,CAAC,IAAE+R,GAAG,mDAAmD,IAAE/R,aAAa,UAAQA,EAAE,IAAI,CAAC,IAAEA,EAAE,IAAI,GAAEkB,CAAC,GAAE0F,KAAE,CAAC,GAAE5G,GAAEkB,GAAEnB,OAAK4R,GAAG,GAAE3R,GAAE,wBAAwB,GAAgBA,EAAE,IAAI,GAAEkB,CAAC,GAAEA,IAAG2G,KAAE,CAAC,GAAE7H,GAAEkB,OAAKyQ,GAAG,GAAE3R,GAAE,uBAAuB,GAAEkB,IAAOmG,KAAE,MAAK;AAAA,EAAC,mBAAkB;AAAA,EAAC;AAAA,EAAC,sBAAqB;AAAA,EAAC;AAAA,EAAC,cAAcrH,GAAE;AAAC,WAAM;AAAA,EAAE;AAAC;AAAE,IAAG,OAAO,mBAAkB,KAAY;AAAA,EAAC,MAAM,UAAUqH,GAAC;AAAA,EAAA;AAAE,aAAW,mBAAiB;AAAC;AAAC,IAAIhH,KAAE,cAAcgH,GAAC;AAAA,GAAG6B,KAAG,cAAc7B,GAAC;AAAA,GAAG4F,KAAG,EAAC,IAAI,GAAE;AAAC,GAAE,OAAO,GAAEjN,GAAEkB,GAAE;AAAC,GAAE,QAAQ,GAAE;AAAC,SAAO;AAAI,GAAE,QAAQ,GAAE;AAAC,GAAE,YAAY,GAAE;AAAC,SAAO,QAAQ,QAAQb,EAAC;AAAC,EAAC,GAAE0G,IAAE0E,KAAG,MAAK;AAAA,EAAC,YAAYzL,GAAE,IAAE,CAAA,GAAG;AAAC6G,IAAAA,GAAE,MAAKE,EAAC,GAAEH,GAAE,MAAKG,IAAE,KAAG,OAAK,SAAO,EAAE,MAAM;AAAA,EAAC;AAAA,EAAC,IAAI,SAAQ;AAAC,WAAOsB,EAAE,MAAKtB,EAAC;AAAA,EAAC;AAAA,EAAC,kBAAiB;AAAA,EAAC;AAAC;AAAEA,KAAE,oBAAI;AAAQ,SAASsH,GAAG,GAAErO,GAAE;AAAC,SAAO,IAAIK;AAAC;AAAC,IAAImS,KAAG,EAAC,UAAS,EAAC,eAAcnE,GAAE,GAAE,kBAAiB,gBAAepB,IAAG,aAAYxB,IAAG,aAAYpE,IAAE,aAAYhH,IAAE,kBAAiB6I,GAAE,GAAEiJ,KAAG,OAAO,SAAQ,OAAa,OAAO,WAAW,iBAAgB,KAAY/H,KAAE+H,KAAGK,KAAG,YAAW9K,KAAEyK,KAAGK,GAAG,WAAS,WAAW;AAA+qB,SAASN,GAAG,GAAE;AAAC,MAAIlS,IAAE;AAAG,SAAO,OAAO,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAACkB,GAAEnB,CAAC,MAAI;AAAC,IAAAA,KAAG,SAAOC,KAAG,GAAGsP,GAAGpO,CAAC,CAAC,KAAKnB,CAAC;AAAA,EAAK,CAAC,GAAEC,IAAEA,EAAE,SAAO;AAAM;AAAC,SAASsP,GAAG,GAAE;AAAC,SAAO,EAAE,QAAQ,mBAAkB,OAAO,EAAE,YAAW;AAAE;AAAC,SAAStH,GAAG,GAAE;AAAC,SAAO,EAAE,QAAQ,gBAAe,CAAChI,GAAEkB,MAAIA,EAAE,YAAW,CAAE;AAAC;AAAC,SAAS4J,GAAE,GAAE;AAAC,MAAG,KAAG,KAAK;AAAO,MAAI9K,IAAE,CAAC;AAAE,SAAO,OAAO,MAAMA,CAAC,IAAE,SAAOA;AAAC;AAAC,SAASoJ,GAAG,GAAE;AAAC,MAAIpJ,IAAEmN,GAAG,CAAC,EAAE,SAAQ;AAAG,SAAOnN,IAAE,MAAIA,IAAE;AAAE;AAAC,SAASmN,GAAG,GAAE;AAAC,MAAInN,IAAE;AAAG,WAAQkB,KAAK,EAAE,GAAEA,CAAC,KAAG,SAAOlB,EAAEkB,CAAC,IAAE,EAAEA,CAAC;AAAG,SAAO,IAAI,gBAAgBlB,CAAC;AAAC;AAAC,IAAIiK,KAAG,CAAC,GAAEjK,MAAI,CAAC,KAAG,CAACA,IAAE,KAAG,EAAE,SAASA,CAAC,IAAE,KAAGiK,GAAG,GAAEjK,EAAE,YAAW,EAAG,IAAI,GAAMuS,KAAG,WAAUvF,KAAG,MAAI;AAAC,MAAG;AAAC,WAAM;AAAA,EAAQ,QAAM;AAAA,EAAC;AAAC,SAAM;AAAS,GAAES,KAAGT,GAAE,GAAG1G,KAAG,MAAImH,IAAGzH,KAAG,CAAC,GAAE,EAAC,OAAMhG,GAAE,cAAakB,IAAEqR,IAAG,eAAcxS,GAAE,aAAY,EAAC,IAAE,CAAA,MAAK;AAAC,MAAII;AAAE,MAAIwB,IAAE3B,KAAG,OAAKD,IAAE,QAAO,EAAC,KAAIsK,EAAC,KAAGlK,IAAE8F,GAAGjG,CAAC,MAAI,OAAKG,IAAE,CAAA;AAAG,MAAG,EAAEH,KAAGqK,MAAI,KAAK,QAAM,iBAAiBnJ,CAAC,IAAI,CAAC,kBAAkBkI,GAAG,EAAC,OAAMpJ,GAAE,MAAK2B,GAAE,cAAa,EAAC,CAAC,CAAC;AAAE,GAAEuF,KAAG,CAAC,GAAE,EAAC,OAAMlH,GAAE,cAAakB,IAAEqR,IAAG,kBAAiBxS,GAAE,gBAAe,EAAC,IAAE,OAAK;AAAC,MAAIsK;AAAE,MAAG,EAAC,KAAI1I,EAAC,KAAG0I,IAAEpE,GAAGjG,CAAC,MAAI,OAAKqK,IAAE;AAAG,MAAG,EAAErK,KAAG2B,MAAI,KAAK,QAAM,iBAAiBT,CAAC,IAAI,CAAC,kBAAkBkI,GAAG,EAAC,OAAMpJ,GAAE,QAAO,QAAO,oBAAmBD,GAAE,kBAAiB,EAAC,CAAC,CAAC;AAAE,GAAE4G,KAAG,OAAG;AAAC,MAAG,GAAE;AAAC,QAAG,CAACnG,EAAG,MAAKA,EAAG,SAAS,EAAE,SAAS,CAAC,EAAE,QAAO;AAAE,QAAG,KAAG,QAAM,EAAE,SAAS,MAAM,EAAE,QAAOA,EAAG;AAAA,EAAI;AAAC,GAAMwN,KAAG,EAAC,aAAY,eAAc,aAAY,cAAa;AAAE,SAASzN,GAAG,GAAE;AAAC,MAAIP;AAAE,UAAOA,IAAEgO,GAAG,CAAC,MAAI,OAAKhO,IAAEgI,GAAG,CAAC;AAAC;AAAC,IAAIyC,IAAEhK,IAAEkK,IAAEf,KAAG,MAAK;AAAA,EAAC,YAAY5J,GAAE,GAAE;AAAC6G,IAAAA,GAAE,MAAK4D,EAAC,GAAE5D,GAAE,MAAKpG,EAAC,GAAEoG,GAAE,MAAK8D,IAAE,CAAA,CAAE,GAAE/D,GAAE,MAAK6D,IAAEzK,CAAC,GAAE4G,GAAE,MAAKnG,IAAE,CAAC;AAAA,EAAC;AAAA,EAAC,CAAC,OAAO,QAAQ,IAAG;AAAC,WAAO4H,EAAE,MAAKsC,EAAC,EAAE;EAAQ;AAAA,EAAC,IAAI,SAAQ;AAAC,WAAOtC,EAAE,MAAKsC,EAAC,EAAE;AAAA,EAAM;AAAA,EAAC,IAAI,QAAO;AAAC,QAAI3K;AAAE,YAAOA,IAAEqI,EAAE,MAAKsC,EAAC,EAAE,KAAK,GAAG,MAAI,OAAK3K,IAAE;AAAA,EAAE;AAAA,EAAC,IAAI,MAAMA,GAAE;AAAC,QAAI;AAAE,IAAAA,MAAI,KAAK,UAAQ4G,GAAE,MAAK+D,IAAE,CAAA,CAAE,GAAE,KAAK,IAAI,IAAI,IAAE3K,KAAG,OAAK,SAAOA,EAAE,MAAM,GAAG,MAAI,OAAK,IAAE,CAAA,CAAE;AAAA,EAAE;AAAA,EAAC,WAAU;AAAC,WAAO,KAAK;AAAA,EAAK;AAAA,EAAC,KAAKA,GAAE;AAAC,WAAOqI,EAAE,MAAKsC,EAAC,EAAE3K,CAAC;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAOqI,EAAE,MAAKsC,EAAC,EAAE,OAAM;AAAA,EAAE;AAAA,EAAC,OAAM;AAAC,WAAOtC,EAAE,MAAKsC,EAAC,EAAE,KAAI;AAAA,EAAE;AAAA,EAAC,QAAQ3K,GAAE;AAACqI,IAAAA,EAAE,MAAKsC,EAAC,EAAE,QAAQ3K,CAAC;AAAA,EAAC;AAAA,EAAC,OAAOA,GAAE;AAAC,QAAI,GAAE;AAAE,IAAAA,EAAE,QAAQ,CAAAL,MAAG;AAAC,WAAK,SAASA,CAAC,KAAG0I,EAAE,MAAKsC,EAAC,EAAE,KAAKhL,CAAC;AAAA,IAAC,CAAC,GAAE,EAAE,KAAK,UAAQ,MAAI,GAAG,IAAE0I,EAAE,MAAKoC,EAAC,MAAI,QAAM,EAAE,aAAa,GAAGpC,EAAE,MAAK5H,EAAC,CAAC,EAAE,SAAO,IAAE4H,EAAE,MAAKoC,EAAC,MAAI,QAAM,EAAE,aAAa,GAAGpC,EAAE,MAAK5H,EAAC,CAAC,IAAG,GAAG,KAAK,KAAK,EAAE;AAAA,EAAE;AAAA,EAAC,UAAUT,GAAE;AAAC,QAAI;AAAE,IAAAA,EAAE,QAAQ,OAAG;AAACqI,MAAAA,EAAE,MAAKsC,EAAC,EAAE,OAAOtC,EAAE,MAAKsC,EAAC,EAAE,QAAQ,CAAC,GAAE,CAAC;AAAA,IAAC,CAAC,IAAG,IAAEtC,EAAE,MAAKoC,EAAC,MAAI,QAAM,EAAE,aAAa,GAAGpC,EAAE,MAAK5H,EAAC,CAAC,IAAG,GAAG,KAAK,KAAK,EAAE;AAAA,EAAC;AAAA,EAAC,SAAST,GAAE;AAAC,WAAOqI,EAAE,MAAKsC,EAAC,EAAE,SAAS3K,CAAC;AAAA,EAAC;AAAA,EAAC,OAAOA,GAAE,GAAE;AAAC,WAAO,OAAO,IAAG,MAAY,KAAG,KAAK,IAAIA,CAAC,GAAE,OAAK,KAAK,OAAOA,CAAC,GAAE,MAAI,KAAK,SAASA,CAAC,KAAG,KAAK,OAAOA,CAAC,GAAE,OAAK,KAAK,IAAIA,CAAC,GAAE;AAAA,EAAG;AAAA,EAAC,QAAQA,GAAE,GAAE;AAAC,SAAK,OAAOA,CAAC,GAAE,KAAK,IAAI,CAAC;AAAA,EAAC;AAAC;AAAEyK,KAAE,oBAAI,WAAQhK,KAAE,oBAAI,WAAQkK,KAAE,oBAAI;AAAQ,IAAI1D,KAAG,eAAeX,GAAE,CAAE;AAAI,SAAS+C,MAAK,GAAE;AAAC,UAAQ,KAAKpC,IAAG,GAAG,CAAC;AAAC;AAAC,SAASuD,MAAK,GAAE;AAAC,UAAQ,MAAMvD,IAAG,GAAG,CAAC;AAAC;AAAC,SAASH,GAAG,GAAE;AAAC,MAAI;AAAE,MAAI9G,KAAG,IAAE,EAAE,YAAU,OAAK,IAAE;AAAG,IAAE,YAAUA,KAAG,IAAI,EAAE,OAAO,KAAI,EAAE,SAAOA,KAAG,IAAI8I,EAAG,aAAa,CAAC;AAAA,sDACt2I,EAAE,IAAI,KAAIO,GAAErJ,CAAC;AAAC;AAAI,IAACwH,KAAE,EAAC,UAAS,YAAW,aAAY,eAAc,MAAK,QAAO,OAAM,SAAQ,aAAY,eAAc,SAAQ,UAAS,GAAE1D,KAAE,EAAC,QAAO,UAAS,cAAa,gBAAe,OAAM,QAAO,GAAiB0C,KAAG,OAAO,OAAO,EAAC,QAAO,GAAE,MAAM,GAAE;AAAC,MAAIxG,IAAE,MAAI;AAAE,MAAGA,KAAG,KAAK,OAAO,OAAM,IAAI,aAAa,kEAAkEA,CAAC,oDAAoD,KAAK,MAAM,IAAI;AAAE,SAAO;AAAC,GAAE,IAAI,GAAE;AAAC,MAAIA,IAAE,MAAI;AAAE,MAAGA,KAAG,KAAK,OAAO,OAAM,IAAI,aAAa,gEAAgEA,CAAC,oDAAoD,KAAK,MAAM,IAAI;AAAE,SAAO;AAAC,EAAC,CAAC,GAAEuN,KAAG,OAAO,OAAO/F,EAAC,EAAE,OAAO,OAAGA,GAAE,gBAAc,CAAC,GAAE6F,KAAG,OAAO,OAAOvJ,EAAC,GAAE1E,KAAG,CAAC,GAAGmO,IAAG,GAAGF,EAAE,GAAEtF,KAAG,cAAcqC,GAAE,YAAW;AAAA,EAAC,WAAW,qBAAoB;AAAC,WAAOhL;AAAA,EAAE;AAAA,EAAC,cAAa;AAAC;EAAO;AAAA,EAAC,yBAAyBY,GAAE,GAAE,GAAE;AAAC,QAAIL,GAAEgC;AAAE,YAAO3B,GAAC;AAAA,MAAE,KAAK8D,GAAE,OAAM;AAAC,aAAK,UAAQ,KAAK,MAAM,QAAM,KAAG,MAAK,KAAK,MAAM,eAAa,KAAG;AAAM;AAAA,MAAM;AAAA,MAAC,KAAKA,GAAE,QAAO;AAAC,YAAIuG,KAAG1K,IAAEmL,GAAE,CAAC,MAAI,OAAKnL,IAAE;AAAE,aAAK,UAAQ,KAAK,MAAM,SAAO0K;AAAG;AAAA,MAAM;AAAA,MAAC,KAAKvG,GAAE,cAAa;AAAC,YAAIuG,KAAG1I,IAAEmJ,GAAE,CAAC,MAAI,OAAKnJ,IAAE;AAAE,aAAK,UAAQ,KAAK,MAAM,eAAa0I,GAAE,KAAK,MAAM,sBAAoBA;AAAG;AAAA,MAAM;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,OAAM;AAAC,QAAIrK,GAAE;AAAE,YAAO,KAAGA,IAAE,KAAK,UAAQ,OAAK,SAAOA,EAAE,KAAI,MAAK,OAAK,IAAE,QAAQ,OAAM;AAAA,EAAE;AAAA,EAAC,QAAO;AAAC,QAAIA;AAAE,KAACA,IAAE,KAAK,UAAQ,QAAMA,EAAE;EAAO;AAAA,EAAC,OAAM;AAAC,QAAIA;AAAE,KAACA,IAAE,KAAK,UAAQ,QAAMA,EAAE,KAAI;AAAA,EAAE;AAAA,EAAC,IAAI,QAAO;AAAC,QAAIA;AAAE,YAAOA,IAAE,KAAK,eAAa,OAAK,SAAOA,EAAE,cAAc,WAAW;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,WAAO,KAAK,MAAM;AAAA,EAAW;AAAA,EAAC,IAAI,cAAa;AAAC,WAAO,KAAK,MAAM;AAAA,EAAW;AAAA,EAAC,IAAI,kBAAiB;AAAC,WAAO,KAAK,MAAM;AAAA,EAAe;AAAA,EAAC,IAAI,kBAAiB;AAAC,WAAO,KAAK,MAAM;AAAA,EAAe;AAAA,EAAC,IAAI,SAAQ;AAAC,QAAIA,GAAE;AAAE,YAAO,KAAGA,IAAE,KAAK,UAAQ,OAAK,SAAOA,EAAE,WAAS,OAAK,IAAE;AAAA,EAAE;AAAA,EAAC,IAAI,WAAU;AAAC,QAAIA,GAAE;AAAE,YAAO,KAAGA,IAAE,KAAK,UAAQ,OAAK,SAAOA,EAAE,aAAW,OAAK,IAAE;AAAA,EAAG;AAAA,EAAC,IAAI,QAAO;AAAC,QAAIA,GAAE;AAAE,YAAO,KAAGA,IAAE,KAAK,UAAQ,OAAK,SAAOA,EAAE,UAAQ,OAAK,IAAE;AAAA,EAAE;AAAA,EAAC,IAAI,WAAU;AAAC,QAAIA,GAAE;AAAE,YAAO,KAAGA,IAAE,KAAK,UAAQ,OAAK,SAAOA,EAAE,aAAW,OAAK,IAAEwG;AAAA,EAAE;AAAA,EAAC,IAAI,WAAU;AAAC,QAAIxG,GAAE;AAAE,YAAO,KAAGA,IAAE,KAAK,UAAQ,OAAK,SAAOA,EAAE,aAAW,OAAK,IAAEwG;AAAA,EAAE;AAAA,EAAC,IAAI,aAAY;AAAC,QAAIxG,GAAE;AAAE,YAAO,KAAGA,IAAE,KAAK,UAAQ,OAAK,SAAOA,EAAE,eAAa,OAAK,IAAE;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,QAAIA,GAAE;AAAE,YAAO,KAAGA,IAAE,KAAK,UAAQ,OAAK,SAAOA,EAAE,eAAa,OAAK,IAAE;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,QAAIA,GAAE;AAAE,YAAO,KAAGA,IAAE,KAAK,UAAQ,OAAK,SAAOA,EAAE,gBAAc,OAAK,IAAE;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,QAAIA,GAAE;AAAE,YAAO,KAAGA,IAAE,KAAK,UAAQ,OAAK,SAAOA,EAAE,eAAa,OAAK,IAAE;AAAA,EAAE;AAAA,EAAC,IAAI,cAAa;AAAC,QAAIA,GAAE;AAAE,YAAO,KAAGA,IAAE,KAAK,UAAQ,OAAK,SAAOA,EAAE,gBAAc,OAAK,IAAE;AAAA,EAAC;AAAA,EAAC,IAAI,YAAYA,GAAE;AAAC,SAAK,UAAQ,KAAK,MAAM,cAAY,OAAOA,CAAC;AAAA,EAAE;AAAA,EAAC,IAAI,SAAQ;AAAC,QAAIA,GAAE;AAAE,YAAO,KAAGA,IAAE,KAAK,UAAQ,OAAK,SAAOA,EAAE,WAAS,OAAK,IAAE;AAAA,EAAC;AAAA,EAAC,IAAI,OAAOA,GAAE;AAAC,SAAK,UAAQ,KAAK,MAAM,SAAO,OAAOA,CAAC;AAAA,EAAE;AAAA,EAAC,IAAI,eAAc;AAAC,QAAIA,GAAE;AAAE,YAAO,KAAGA,IAAE,KAAK,UAAQ,OAAK,SAAOA,EAAE,iBAAe,OAAK,IAAE;AAAA,EAAC;AAAA,EAAC,IAAI,aAAaA,GAAE;AAAC,SAAK,UAAQ,KAAK,MAAM,eAAa,OAAOA,CAAC;AAAA,EAAE;AAAA,EAAC,IAAI,sBAAqB;AAAC,QAAIA;AAAE,YAAOA,IAAE8K,GAAE,KAAK,aAAahH,GAAE,YAAY,CAAC,MAAI,OAAK9D,IAAE;AAAA,EAAC;AAAA,EAAC,IAAI,oBAAoBA,GAAE;AAAC,IAAAA,KAAG,OAAK,KAAK,aAAa8D,GAAE,cAAa,GAAG9D,CAAC,EAAE,IAAE,KAAK,gBAAgB8D,GAAE,YAAY;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,WAAOpD,GAAG,MAAK8G,GAAE,WAAW;AAAA,EAAC;AAAA,EAAC,IAAI,YAAYxH,GAAE;AAAC,SAAK,aAAawH,GAAE,aAAY,GAAGxH,CAAC,EAAE;AAAA,EAAC;AAAA,EAAC,IAAI,WAAU;AAAC,WAAOU,GAAG,MAAK8G,GAAE,QAAQ,KAAG;AAAA,EAAI;AAAA,EAAC,IAAI,SAASxH,GAAE;AAAC,IAAAA,IAAE,KAAK,aAAawH,GAAE,UAAS,OAAOxH,KAAG,WAASA,IAAE,EAAE,IAAE,KAAK,gBAAgBwH,GAAE,QAAQ;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO9G,GAAG,MAAK8G,GAAE,IAAI,KAAG;AAAA,EAAI;AAAA,EAAC,IAAI,KAAKxH,GAAE;AAAC,IAAAA,IAAE,KAAK,aAAawH,GAAE,MAAK,EAAE,IAAE,KAAK,gBAAgBA,GAAE,IAAI;AAAA,EAAC;AAAA,EAAC,IAAI,QAAO;AAAC,QAAIxH,GAAE;AAAE,YAAO,KAAGA,IAAE,KAAK,UAAQ,OAAK,SAAOA,EAAE,UAAQ,OAAK,IAAE;AAAA,EAAE;AAAA,EAAC,IAAI,MAAMA,GAAE;AAAC,SAAK,UAAQ,KAAK,MAAM,QAAM,CAAC,CAACA;AAAA,EAAE;AAAA,EAAC,IAAI,eAAc;AAAC,WAAOU,GAAG,MAAK8G,GAAE,KAAK,KAAG;AAAA,EAAI;AAAA,EAAC,IAAI,aAAaxH,GAAE;AAAC,IAAAA,IAAE,KAAK,aAAawH,GAAE,OAAM,EAAE,IAAE,KAAK,gBAAgBA,GAAE,KAAK;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,WAAO9G,GAAG,MAAK8G,GAAE,WAAW,KAAG;AAAA,EAAI;AAAA,EAAC,IAAI,YAAYxH,GAAE;AAAC,IAAAwK,GAAE,mFAAmF;AAAA,EAAC;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK,QAAM,KAAK,MAAM,UAAQ,KAAK,aAAa,SAAS;AAAA,EAAC;AAAA,EAAC,IAAI,QAAQxK,GAAE;AAAC,KAAC,IAAG,QAAO,YAAW,MAAM,EAAE,SAASA,CAAC,IAAE,KAAK,aAAawH,GAAE,SAAQxH,CAAC,IAAE,KAAK,gBAAgBwH,GAAE,OAAO;AAAA,EAAC;AAAC;AAAE,SAAS9G,GAAG,GAAEV,GAAE;AAAC,SAAO,EAAE,QAAM,EAAE,MAAM,aAAaA,CAAC,IAAE,EAAE,aAAaA,CAAC;AAAC;AAAC,IAAI+J,KAAGhC,IAAwD7B,KAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAsJ/hIxE,KAAG,oBAAI,WAAQf,KAAG,MAAMb,GAAC;AAAA,EAAC,YAAYE,GAAEkB,GAAE;AAAC,SAAK,UAAQlB,GAAE,KAAK,OAAKkB,GAAE,KAAK,QAAQ,iBAAiB,KAAK,MAAK,IAAI;AAAE,QAAInB,IAAE2B,GAAG,IAAI,KAAK,OAAO;AAAE,IAAA3B,KAAGA,EAAE,IAAI,KAAK,MAAK,IAAI;AAAA,EAAC;AAAA,EAAC,IAAIC,GAAE;AAAC,QAAG,OAAOA,KAAG,WAAW,MAAK,cAAYA,EAAE,KAAK,KAAK,OAAO;AAAA,aAAU,OAAOA,KAAG,YAAU,OAAOA,EAAE,eAAa,WAAW,MAAK,cAAYA,EAAE,YAAY,KAAKA,CAAC;AAAA,SAAM;AAAC,WAAK,QAAQ,oBAAoB,KAAK,MAAK,IAAI;AAAE,UAAIkB,IAAEQ,GAAG,IAAI,KAAK,OAAO;AAAE,MAAAR,KAAGA,EAAE,OAAO,KAAK,IAAI;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,OAAO,IAAIlB,GAAE;AAAC0B,IAAAA,GAAG,IAAI1B,EAAE,OAAO,KAAG0B,GAAG,IAAI1B,EAAE,SAAQ,oBAAI,KAAG;AAAE,QAAIkB,IAAElB,EAAE,cAAc,MAAM,CAAC,GAAED,IAAE2B,GAAG,IAAI1B,EAAE,OAAO;AAAE,WAAOD,KAAGA,EAAE,IAAImB,CAAC,IAAEnB,EAAE,IAAImB,CAAC,IAAE,IAAIpB,GAAEE,EAAE,SAAQkB,CAAC;AAAA,EAAC;AAAC;AAAE,SAASzB,GAAG,GAAEO,GAAE;AAAC,SAAO,aAAawJ,MAAI,EAAE,cAAc,WAAW,IAAI,KAAG7I,GAAG,IAAI,CAAC,EAAE,IAAIX,CAAC,GAAE,EAAE,QAAQ,kBAAkB,EAAE,oBAAmB,EAAE,aAAa,GAAE,MAAI;AAAE;AAAC,SAAST,GAAG,GAAES,GAAE;AAAC,SAAOA,aAAa0R,MAAI,aAAaM,MAAIhS,EAAE,WAAW,CAAC,GAAE,MAAI;AAAE;AAAC,SAASyG,GAAG,GAAEzG,GAAE;AAAC,SAAOA,aAAa,oBAAkB,aAAagS,MAAIhS,EAAE,WAAW,UAAQ,EAAE,QAAQ,GAAGA,EAAE,UAAU,GAAE,MAAI;AAAE;AAAC,SAASH,GAAG,GAAEG,GAAE;AAAC,MAAG,aAAawJ,IAAG;AAAC,QAAItI,IAAE,EAAE,oBAAmBnB,IAAE,EAAE,QAAQ,eAAemB,GAAE,EAAE,aAAa;AAAE,WAAO,OAAOlB,CAAC,MAAID,MAAI,EAAE,QAAM,OAAOC,CAAC,IAAG;AAAA,EAAE;AAAC,SAAO,EAAE,QAAM,OAAOA,CAAC,GAAE;AAAE;AAAC,SAASmJ,GAAG,GAAEnJ,GAAE;AAAC,MAAG,aAAawJ,MAAIxJ,aAAa,SAAQ;AAAC,QAAIkB,IAAE,EAAE;AAAQ,WAAOA,EAAE,EAAE,aAAa,MAAIlB,MAAI,EAAE,QAAQ,kBAAkB,EAAE,oBAAmB,EAAE,aAAa,GAAEkB,EAAE,EAAE,aAAa,IAAElB,IAAG;AAAA,EAAE;AAAC,SAAM;AAAE;AAAC,SAAS2J,GAAG,GAAE3J,GAAE;AAAC,MAAG,OAAOA,KAAG,aAAW,aAAawJ,IAAG;AAAC,QAAItI,IAAE,EAAE,oBAAmBnB,IAAE,EAAE,QAAQ,eAAemB,GAAE,EAAE,aAAa;AAAE,WAAOlB,MAAID,MAAI,EAAE,eAAaC,IAAG;AAAA,EAAE;AAAC,SAAM;AAAE;AAAC,SAASyJ,GAAG,GAAEzJ,GAAE;AAAC,SAAOA,MAAI,MAAI,aAAagS,MAAI,EAAE,QAAQ,EAAE,GAAE,MAAI;AAAE;AAAC,SAASzI,GAAG,GAAEvJ,GAAE;AAAC,EAAAmJ,GAAG,GAAEnJ,CAAC,KAAG2J,GAAG,GAAE3J,CAAC,KAAGP,GAAG,GAAEO,CAAC,KAAGyJ,GAAG,GAAEzJ,CAAC,KAAGT,GAAG,GAAES,CAAC,KAAGyG,GAAG,GAAEzG,CAAC,KAAGH,GAAG,GAAEG,CAAC;AAAC;AAAC,IAAIwI,KAAG,oBAAI,OAAIlB,KAAG,oBAAI,WAAQiB,KAAG,oBAAI,WAAQmJ,KAAG,MAAK;AAAA,EAAC,YAAY1R,GAAE,GAAE,GAAE;AAAC,SAAK,UAAQA,GAAE,KAAK,SAAO,GAAE,KAAK,YAAU,GAAE,KAAK,aAAW,KAAK,QAAQ,KAAK,GAAG;AAAA,EAAC;AAAA,EAAC,IAAI,WAAU;AAAC,QAAGwI,GAAG,IAAI,KAAK,UAAU,EAAE,QAAOA,GAAG,IAAI,KAAK,UAAU;AAAE;AAAC,UAAIxI,IAAE0H,GAAE,cAAc,UAAU,GAAE,IAAE,KAAK,QAAQ,SAAO;AAAE,aAAO1H,EAAE,YAAU,KAAK,QAAQ,OAAO,CAAC,GAAEL,GAAEgC,MAAI,IAAEhC,KAAGgC,IAAE,IAAE,MAAMA,CAAC,QAAM,KAAI,EAAE,GAAE6G,GAAG,IAAI,KAAK,YAAWxI,CAAC,GAAEA;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,WAAWA,GAAE;AAAC,QAAIL;AAAE,QAAIuB,IAAE,KAAK;AAAS,QAAGoG,GAAG,IAAItH,CAAC,MAAIkB,GAAE;AAAC,MAAAoG,GAAG,IAAItH,GAAEkB,CAAC;AAAE,UAAIS,IAAE,IAAInC,GAAG0B,GAAE,KAAK,QAAO,KAAK,SAAS;AAAE,MAAAqH,GAAG,IAAIvI,GAAE2B,CAAC,GAAE3B,aAAagS,KAAGhS,EAAE,QAAQ,GAAG2B,EAAE,QAAQ,IAAE3B,EAAE,YAAY2B,CAAC;AAAE;AAAA,IAAM;AAAC,QAAI5B,IAAEwI,GAAG,IAAIvI,CAAC;AAAE,KAACL,IAAEI,KAAG,OAAK,SAAOA,EAAE,WAAS,QAAMJ,EAAE,KAAKI,GAAE,KAAK,MAAM;AAAA,EAAC;AAAC,GAAEqM,KAAG,EAAC,gBAAgB,GAAEpM,GAAEkB,GAAE;AAAC,MAAInB;AAAE,MAAGmB;AAAG,aAAO,CAAC,GAAE,CAAC,KAAIlB,EAAE,KAAG,KAAKkB,GAAE;AAAC,UAAImJ,KAAGtK,IAAEmB,EAAE,CAAC,MAAI,OAAKnB,IAAE;AAAG,MAAAwJ,GAAG,GAAEc,CAAC;AAAA,IAAC;AAAA;AAAE,EAAC;AAAE,SAASkF,GAAG,MAAKvP,GAAE;AAAC,SAAO,IAAI0R,GAAG,GAAE1R,GAAEoM,EAAE;AAAC;AAAC,SAASrD,GAAG,GAAE/I,GAAE;AAAC,IAAE,WAAWA,CAAC;AAAC;AAAuE,IAAIuL,KAAG,OAAG;AAAC,MAAG,EAAC,QAAOvL,EAAC,IAAE;AAAE,SAAOA,EAAE,MAAI,uEAAqE;AAAE,GAAEmI,KAAG,OAAGoH;AAAAA;AAAAA,MAEhxFhE,GAAG,CAAC,CAAC;AAAA,MACLrF,EAAE;AAAA;AAAA,IAEJoF,GAAG,CAAC,CAAC;AAAA,GACPyB,KAAG,OAAG;AAAC,MAAI/M,IAAE,EAAE,UAAQ,GAAG,EAAE,OAAO,KAAG;AAAG,SAAO2G,GAAG,EAAE,UAAU,MAAI,WAAS3G,KAAG,8BAA6BA;AAAC,GAAEyM,KAAG,EAAC,KAAI,OAAM,QAAO,UAAS,QAAO,UAAS,OAAM,SAAQ,aAAY,eAAc,cAAa,gBAAe,gBAAe,kBAAiB,gBAAe,kBAAiB,eAAc,iBAAgB,kBAAiB,cAAa,QAAO,UAAS,OAAM,SAAQ,OAAM,SAAQ,SAAQ,WAAU,aAAY,eAAc,aAAY,eAAc,MAAK,QAAO,WAAU,aAAY,QAAO,UAAS,QAAO,UAAS,MAAK,QAAO,MAAK,QAAO,UAAS,YAAW,eAAc,iBAAgB,cAAa,gBAAe,MAAK,QAAO,UAAS,YAAW,SAAQ,WAAU,KAAI,OAAM,YAAW,cAAa,MAAK,QAAO,eAAc,iBAAgB,QAAO,UAAS,MAAK,QAAO,OAAM,SAAQ,aAAY,eAAc,WAAU,YAAW,GAAEI,KAAG,OAAO,OAAOJ,EAAE,EAAE,KAAK,IAAI,GAAEnB,KAAG,OAAG;AAAC,MAAItL,GAAEkB,GAAEnB,GAAE,GAAE,GAAEsK,GAAElK,GAAE8H,GAAE8C,GAAE1F,GAAEqG,GAAEnE,GAAEK,GAAED,GAAEqB,GAAEsB,GAAEhB,GAAGhB,GAAER,GAAE8G,GAAG5M,GAAGmM,GAAGtN,GAAG+K,GAAGxJ,GAAGyJ,GAAGF,GAAGyC,IAAGxM,IAAGmE,IAAGnF,IAAG2F,IAAG1D,IAAGW,IAAGU,IAAG,IAAGb,IAAGyO,IAAGpM;AAAG,SAAO6J;AAAAA;AAAAA,gBAEv9B,EAAE,iBAAe,EAAE;AAAA,0BACTvP,IAAE,EAAE,sBAAoB,OAAKA,IAAE,EAAE;AAAA,eAC5C+M,GAAG,CAAC,KAAG,EAAE;AAAA,iBACP,EAAE,aAAW,CAAC,EAAE,UAAQ,EAAE;AAAA,wBACnB,CAAC,GAAG7L,IAAE,EAAE,eAAa,QAAMA,EAAE,SAAS4I,EAAG,IAAI,MAAI,EAAE,qBAAmB,CAAC;AAAA,oBAC3E,EAAE,gBAAc,EAAE;AAAA,mBACnB,EAAE,eAAa,EAAE;AAAA,gBACpB,CAAC,EAAE,UAAQ,EAAE,YAAY;AAAA,cAC3B/J,IAAE,EAAE,UAAQ,OAAKA,IAAE,EAAE;AAAA,cACrB,IAAEmS,GAAG,EAAC,yBAAwB,EAAE,cAAa,2BAA0B,EAAE,gBAAe,wBAAuB,EAAE,YAAW,CAAC,MAAI,OAAK,IAAE,EAAE;AAAA,wBAChI,CAAC,EAAE,qBAAqB;AAAA,0BACtB,IAAE,EAAE,sBAAoB,OAAK,IAAE,EAAE;AAAA,2BAChC7H,IAAE,EAAE,uBAAqB,OAAKA,IAAE,EAAE;AAAA,sBACvClK,IAAE,EAAE,kBAAgB,OAAKA,IAAE,EAAE;AAAA,iCAClB8H,IAAE,EAAE,6BAA2B,OAAKA,IAAE,EAAE;AAAA,wBACjD8C,IAAE,EAAE,oBAAkB,OAAKA,IAAE,EAAE;AAAA,qBAClC1F,IAAE,EAAE,iBAAe,OAAKA,IAAE,EAAE;AAAA,cACnCqG,IAAE,EAAE,UAAQ,OAAKA,IAAE,EAAE;AAAA,mBAChBnE,IAAE,EAAE,eAAa,OAAKA,IAAE,EAAE;AAAA,+BACdK,IAAE,EAAE,2BAAyB,OAAKA,IAAE,EAAE;AAAA,mBAClDiF,EAAE;AAAA,eACN,EAAE,kBAAkB;AAAA,iBAClB,EAAE,oBAAoB;AAAA;AAAA;AAAA;AAAA,gBAIvBlF,IAAE,EAAE,cAAY,OAAKA,IAAE,EAAE;AAAA,6BACZqB,IAAE,EAAE,qBAAmB,OAAKA,IAAE,EAAE;AAAA,sBACvCsB,IAAE3D,GAAG,EAAE,UAAU,MAAI,OAAK2D,IAAE,EAAE;AAAA,sBAC9BhB,IAAG,EAAE,gBAAc,OAAKA,IAAG,EAAE;AAAA;AAAA,mBAEhChB,IAAE,EAAE,aAAW,OAAKA,IAAE,EAAE;AAAA,gBAC3BR,IAAE,EAAE,UAAQ,OAAKA,IAAE,EAAE;AAAA,eACtB8G,IAAG,EAAE,SAAO,OAAKA,IAAG,EAAE;AAAA,kBACnB5M,IAAG,EAAE,YAAU,OAAKA,IAAG,EAAE;AAAA,gBAC3BmM,IAAG,EAAE,UAAQ,OAAKA,IAAG,EAAE;AAAA,sBACjBtN,IAAG,EAAE,eAAa,OAAKA,IAAG,EAAE;AAAA,2BACvB+K,IAAG,EAAE,oBAAkB,OAAKA,IAAG,EAAE;AAAA,0BAClCxJ,IAAG,EAAE,mBAAiB,OAAKA,IAAG,EAAE;AAAA,0BAChCyJ,IAAG,EAAE,mBAAiB,OAAKA,IAAG,EAAE;AAAA,oBACtC,EAAE,aAAW,OAAK,EAAE,YAAU,EAAE;AAAA,mCACjBF,IAAG,EAAE,2BAAyB,OAAKA,IAAG,EAAE;AAAA,2BAChDyC,KAAG,EAAE,mBAAiB,OAAKA,KAAG,EAAE;AAAA,+BAC5BxM,KAAG,EAAE,uBAAqB,OAAKA,KAAG,EAAE;AAAA,kCACjCmE,KAAG,EAAE,0BAAwB,OAAKA,KAAG,EAAE;AAAA,kBACvDnF,KAAG,EAAE,WAAS,OAAKA,KAAG,EAAE;AAAA,wBAClB2F,KAAG,EAAE,iBAAe,OAAKA,KAAG,EAAE;AAAA,aACzC,EAAE,MAAI,EAAE,MAAI,EAAE,aAAW2F,GAAG,CAAC,IAAE,EAAE;AAAA,kBAC5B,EAAE,MAAI,EAAE,MAAI,EAAE,aAAWA,GAAG,CAAC,IAAE,EAAE;AAAA,wBAC3BrJ,KAAG,EAAE,iBAAe,OAAKA,KAAG,EAAE;AAAA,oBAClCqB,MAAIV,KAAG,EAAE,WAAS,OAAK,SAAOA,GAAG,QAAM,OAAKU,KAAG,EAAE;AAAA;AAAA,+BAEtC,KAAG,EAAE,uBAAqB,OAAK,KAAG,EAAE;AAAA,8BACrCb,KAAG,EAAE,sBAAoB,OAAKA,KAAG,EAAE;AAAA,uCAC1ByO,KAAG,EAAE,6BAA2B,OAAKA,KAAG,EAAE;AAAA;AAAA,QAEzE,EAAE,aAAWvC,4DAA4D,EAAE,UAAU,SAAOA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAOzF,EAAE,SAAO,EAAE,SAAO,EAAE;AAAA,2BACR7J,KAAG,EAAE,gBAAc,OAAKA,KAAG,EAAE;AAAA;AAAA;AAAA;AAAA;AAIvD,GAAgJgD,KAAG,OAAG,EAAE,OAAO,CAAC,EAAE,YAAW,IAAG,EAAE,MAAM,CAAC,GAAEiE,KAAG,CAAC,GAAE3M,IAAE,OAAK;AAAC,MAAIkB,GAAEnB;AAAE,MAAG,EAAE,SAAQ;AAAC,QAAI,IAAE2I,IAAIxH,IAAE,EAAE,kBAAgB,OAAKA,IAAE,OAAO,GAAE,IAAE7B,IAAIU,IAAE,EAAE,kBAAgB,OAAKA,IAAE6I,GAAG,KAAK;AAAE,QAAG,EAAE,YAAUnB,EAAE,gBAAgB,QAAO8C,EAAE,qCAAoCvK,CAAC;AAAE,QAAG,EAAE,YAAUyH,EAAE,sBAAsB,QAAO8C,EAAE,8BAA6BvK,CAAC,EAAE,OAAO,EAAC,UAAS,EAAC,CAAC;AAAE,QAAG,CAACyH,EAAE,4BAA2BA,EAAE,4BAA2BA,EAAE,2BAA0BA,EAAE,uBAAuB,EAAE,SAAS,EAAE,OAAO,EAAE,QAAO8C,EAAE,2CAA0CvK,CAAC,EAAE,OAAO,EAAC,UAAS,EAAC,CAAC;AAAE,QAAG,EAAE,YAAUyH,EAAE,sBAAsB,QAAO8C,EAAE,8BAA6BvK,CAAC,EAAE,OAAO,EAAC,cAAa,EAAC,CAAC;AAAE,QAAG,EAAE,YAAUyH,EAAE,kBAAkB,QAAO8C,EAAE,6BAA4BvK,CAAC,EAAE,OAAO,EAAC,UAAS,EAAC,CAAC;AAAE,QAAG,EAAE,YAAUyH,EAAE,mBAAkB;AAAC,UAAI4C,IAAE,EAAE,eAAa,SAAO,gBAAc;AAAQ,aAAOE,EAAE,0CAAyCvK,CAAC,EAAE,OAAO,EAAC,WAAUqK,EAAC,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,MAAG,EAAE,MAAK;AAAC,QAAG,EAAE,SAAOiJ,EAAE,kBAAkB,QAAO/I,EAAE,iBAAgBvK,CAAC;AAAE,QAAG,EAAE,SAAOsT,EAAE,iBAAiB,QAAO/I,EAAE,eAAcvK,CAAC;AAAE,QAAG,EAAE,SAAOsT,EAAE,4BAA4B,QAAO/I,EAAE,wBAAuBvK,CAAC;AAAA,EAAC;AAAC,SAAOuK,EAAE,SAAQvK,CAAC;AAAC,GAAEuM,KAAG,CAAC,GAAEvM,IAAE,OAAK;AAAC,MAAIkB,GAAEnB;AAAE,MAAG,EAAE,SAAQ;AAAC,QAAI,IAAE2I,IAAIxH,IAAE,EAAE,kBAAgB,OAAKA,IAAE,OAAO,GAAE,IAAE7B,IAAIU,IAAE,EAAE,kBAAgB,OAAKA,IAAE6I,GAAG,KAAK;AAAE,WAAO,EAAE,YAAUnB,EAAE,kBAAgB8C,EAAE,gEAA+DvK,CAAC,IAAE,EAAE,YAAUyH,EAAE,wBAAsB8C,EAAE,4DAAgEvK,CAAC,EAAE,OAAO,EAAC,iBAAgB,EAAC,CAAC,IAAE,EAAE,YAAUyH,EAAE,6BAA2B8C,EAAE,0FAA8FvK,CAAC,EAAE,OAAO,EAAC,iBAAgB,EAAC,CAAC,IAAE,EAAE,YAAUyH,EAAE,0BAAwB8C,EAAE,2CAA0CvK,CAAC,EAAE,OAAO,EAAC,UAAS,EAAC,CAAC,IAAE,CAACyH,EAAE,4BAA2BA,EAAE,yBAAyB,EAAE,SAAS,EAAE,OAAO,IAAE8C,EAAE,wEAAuEvK,CAAC,EAAE,OAAO,EAAC,iBAAgB,EAAC,CAAC,IAAE,CAACyH,EAAE,uBAAsBA,EAAE,mBAAmB,EAAE,SAAS,EAAE,OAAO,IAAE8C,EAAE,oGAAmGvK,CAAC,EAAE,OAAO,EAAC,iBAAgB,EAAC,CAAC,IAAE,EAAE,YAAUyH,EAAE,oBAAkB,KAAG,EAAE;AAAA,EAAO;AAAC,SAAO,EAAE,SAAO,EAAE,SAAO6L,EAAE,qBAAmB,EAAE,SAAOA,EAAE,qBAAkB,EAAE,MAAOA,EAAE,+BAA6B,EAAE;AAAO,GAAEpJ,KAAG,CAAC,GAAElK,IAAE,OAAK;AAAC,MAAIkB,IAAEyL,GAAG,GAAE3M,CAAC,EAAE,SAAQ,GAAGD,IAAEwM,GAAG,GAAEvM,CAAC,EAAE;AAAW,SAAM,EAAC,OAAMkB,GAAE,SAAQnB,EAAC;AAAC,GAAEqN,KAAG,OAAG;AAAC,MAAG,EAAE,SAAQ;AAAC,QAAG,EAAE,YAAU3F,EAAE,sBAAsB,QAAM;AAAuB,QAAG,EAAE,YAAUA,EAAE,wBAAwB,QAAM;AAA4B,QAAG,CAACA,EAAE,4BAA2BA,EAAE,yBAAyB,EAAE,SAAS,EAAE,OAAO,EAAE,QAAM;AAA6B,QAAG,EAAE,YAAUA,EAAE,2BAA2B,QAAM;AAA8B,QAAG,EAAE,YAAUA,EAAE,sBAAsB,QAAM;AAA2B,QAAG,EAAE,YAAUA,EAAE,kBAAkB,QAAM;AAAmB,QAAG,EAAE,YAAUA,EAAE,kBAAkB,QAAM;AAAA,EAAqB;AAAC,MAAG,EAAE,MAAK;AAAC,QAAG,EAAE,SAAO6L,EAAE,kBAAkB,QAAM;AAAG,QAAG,EAAE,SAAOA,EAAE,iBAAiB,QAAM;AAAwB,QAAG,EAAE,SAAOA,EAAE,4BAA4B,QAAM;AAAA,EAA4B;AAAC,SAAM;AAAE,GAAE7K,KAAG,CAAC,GAAEzI,MAAI;AAAC,MAAIkB,IAAEkM,GAAG,CAAC;AAAE,SAAM,EAAC,SAAQ,EAAE,SAAQ,SAAQ,EAAE,SAAQ,MAAKlM,EAAC;AAAC,GAAMiK,KAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80]}