demio-ui 4.0.2 → 4.0.5
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.
- package/README.md +122 -44
- package/dist/bundle-analysis.html +4949 -0
- package/dist/cjs/index.css +1 -1
- package/dist/cjs/index.js +1 -7
- package/dist/cjs/types/src/icons/index.d.ts +10 -1
- package/dist/esm/index.css +1 -1
- package/dist/esm/index.js +1 -7
- package/dist/esm/types/src/icons/index.d.ts +10 -1
- package/dist/types.d.ts +1088 -857
- package/package.json +19 -38
package/dist/cjs/index.js
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
"use strict";var e=require("react"),t=require("react/jsx-runtime"),n=require("react-dom"),r=require("react-easy-crop"),o=require("react-dom/client"),a=require("react-select");function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var l=i(e),s=i(n);function c(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var u,d={exports:{}};
|
|
2
|
-
/*!
|
|
3
|
-
Copyright (c) 2018 Jed Watson.
|
|
4
|
-
Licensed under the MIT License (MIT), see
|
|
5
|
-
http://jedwatson.github.io/classnames
|
|
6
|
-
*/u=d,function(){var e={}.hasOwnProperty;function t(){for(var e="",t=0;t<arguments.length;t++){var o=arguments[t];o&&(e=r(e,n(o)))}return e}function n(n){if("string"==typeof n||"number"==typeof n)return n;if("object"!=typeof n)return"";if(Array.isArray(n))return t.apply(null,n);if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]"))return n.toString();var o="";for(var a in n)e.call(n,a)&&n[a]&&(o=r(o,a));return o}function r(e,t){return t?e?e+" "+t:e+t:e}u.exports?(t.default=t,u.exports=t):window.classNames=t}();var m=c(d.exports);function p(e,n=[]){let r=[];const o=()=>{const t=r.map((e=>l.createContext(e)));return function(n){const r=n?.[e]||t;return l.useMemo((()=>({[`__scope${e}`]:{...n,[e]:r}})),[n,r])}};return o.scopeName=e,[function(n,o){const a=l.createContext(o),i=r.length;r=[...r,o];const s=n=>{const{scope:r,children:o,...s}=n,c=r?.[e]?.[i]||a,u=l.useMemo((()=>s),Object.values(s));return t.jsx(c.Provider,{value:u,children:o})};return s.displayName=n+"Provider",[s,function(t,r){const s=r?.[e]?.[i]||a,c=l.useContext(s);if(c)return c;if(void 0!==o)return o;throw new Error(`\`${t}\` must be used within \`${n}\``)}]},f(o,...n)]}function f(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const r=n.reduce(((t,{useScope:n,scopeName:r})=>({...t,...n(e)[`__scope${r}`]})),{});return l.useMemo((()=>({[`__scope${t.scopeName}`]:r})),[r])}};return n.scopeName=t.scopeName,n}function h(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function v(...e){return t=>{let n=!1;const r=e.map((e=>{const r=h(e,t);return n||"function"!=typeof r||(n=!0),r}));if(n)return()=>{for(let t=0;t<r.length;t++){const n=r[t];"function"==typeof n?n():h(e[t],null)}}}}function g(...e){return l.useCallback(v(...e),e)}function w(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}var b=Boolean(globalThis?.document)?l.useLayoutEffect:()=>{},y=l["useId".toString()]||(()=>{}),_=0;function x(e){const[t,n]=l.useState(y());return b((()=>{n((e=>e??String(_++)))}),[e]),e||(t?`radix-${t}`:"")}function E(e){const t=l.useRef(e);return l.useEffect((()=>{t.current=e})),l.useMemo((()=>(...e)=>t.current?.(...e)),[])}function C({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,o]=function({defaultProp:e,onChange:t}){const n=l.useState(e),[r]=n,o=l.useRef(r),a=E(t);return l.useEffect((()=>{o.current!==r&&(a(r),o.current=r)}),[r,o,a]),n}({defaultProp:t,onChange:n}),a=void 0!==e,i=a?e:r,s=E(n);return[i,l.useCallback((t=>{if(a){const n="function"==typeof t?t(e):t;n!==e&&s(n)}else o(t)}),[a,e,o,s])]}var O=l.forwardRef(((e,n)=>{const{children:r,...o}=e,a=l.Children.toArray(r),i=a.find(S);if(i){const e=i.props.children,r=a.map((t=>t===i?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:t));return t.jsx(M,{...o,ref:n,children:l.isValidElement(e)?l.cloneElement(e,void 0,r):null})}return t.jsx(M,{...o,ref:n,children:r})}));O.displayName="Slot";var M=l.forwardRef(((e,t)=>{const{children:n,...r}=e;if(l.isValidElement(n)){const e=function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;if(n)return e.ref;if(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(n),o=function(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...e)=>{a(...e),o(...e)}:o&&(n[r]=o):"style"===r?n[r]={...o,...a}:"className"===r&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}(r,n.props);return n.type!==l.Fragment&&(o.ref=t?v(t,e):e),l.cloneElement(n,o)}return l.Children.count(n)>1?l.Children.only(null):null}));M.displayName="SlotClone";var A=({children:e})=>t.jsx(t.Fragment,{children:e});function S(e){return l.isValidElement(e)&&e.type===A}var j=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,n)=>{const r=l.forwardRef(((e,r)=>{const{asChild:o,...a}=e,i=o?O:n;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),t.jsx(i,{...a,ref:r})}));return r.displayName=`Primitive.${n}`,{...e,[n]:r}}),{});function P(e,t){e&&s.flushSync((()=>e.dispatchEvent(t)))}var q,T="dismissableLayer.update",N="dismissableLayer.pointerDownOutside",k="dismissableLayer.focusOutside",R=l.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),D=l.forwardRef(((e,n)=>{const{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:i,onInteractOutside:s,onDismiss:c,...u}=e,d=l.useContext(R),[m,p]=l.useState(null),f=m?.ownerDocument??globalThis?.document,[,h]=l.useState({}),v=g(n,(e=>p(e))),b=Array.from(d.layers),[y]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),_=b.indexOf(y),x=m?b.indexOf(m):-1,C=d.layersWithOutsidePointerEventsDisabled.size>0,O=x>=_,M=function(e,t=globalThis?.document){const n=E(e),r=l.useRef(!1),o=l.useRef((()=>{}));return l.useEffect((()=>{const e=e=>{if(e.target&&!r.current){let r=function(){L(N,n,a,{discrete:!0})};const a={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",o.current),o.current=r,t.addEventListener("click",o.current,{once:!0})):r()}else t.removeEventListener("click",o.current);r.current=!1},a=window.setTimeout((()=>{t.addEventListener("pointerdown",e)}),0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",e),t.removeEventListener("click",o.current)}}),[t,n]),{onPointerDownCapture:()=>r.current=!0}}((e=>{const t=e.target,n=[...d.branches].some((e=>e.contains(t)));O&&!n&&(a?.(e),s?.(e),e.defaultPrevented||c?.())}),f),A=function(e,t=globalThis?.document){const n=E(e),r=l.useRef(!1);return l.useEffect((()=>{const e=e=>{if(e.target&&!r.current){L(k,n,{originalEvent:e},{discrete:!1})}};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)}),[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}((e=>{const t=e.target;[...d.branches].some((e=>e.contains(t)))||(i?.(e),s?.(e),e.defaultPrevented||c?.())}),f);return function(e,t=globalThis?.document){const n=E(e);l.useEffect((()=>{const e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})}),[n,t])}((e=>{x===d.layers.size-1&&(o?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))}),f),l.useEffect((()=>{if(m)return r&&(0===d.layersWithOutsidePointerEventsDisabled.size&&(q=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(m)),d.layers.add(m),I(),()=>{r&&1===d.layersWithOutsidePointerEventsDisabled.size&&(f.body.style.pointerEvents=q)}}),[m,f,r,d]),l.useEffect((()=>()=>{m&&(d.layers.delete(m),d.layersWithOutsidePointerEventsDisabled.delete(m),I())}),[m,d]),l.useEffect((()=>{const e=()=>h({});return document.addEventListener(T,e),()=>document.removeEventListener(T,e)}),[]),t.jsx(j.div,{...u,ref:v,style:{pointerEvents:C?O?"auto":"none":void 0,...e.style},onFocusCapture:w(e.onFocusCapture,A.onFocusCapture),onBlurCapture:w(e.onBlurCapture,A.onBlurCapture),onPointerDownCapture:w(e.onPointerDownCapture,M.onPointerDownCapture)})}));D.displayName="DismissableLayer";function I(){const e=new CustomEvent(T);document.dispatchEvent(e)}function L(e,t,n,{discrete:r}){const o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?P(o,a):o.dispatchEvent(a)}l.forwardRef(((e,n)=>{const r=l.useContext(R),o=l.useRef(null),a=g(n,o);return l.useEffect((()=>{const e=o.current;if(e)return r.branches.add(e),()=>{r.branches.delete(e)}}),[r.branches]),t.jsx(j.div,{...e,ref:a})})).displayName="DismissableLayerBranch";var B="focusScope.autoFocusOnMount",F="focusScope.autoFocusOnUnmount",z={bubbles:!1,cancelable:!0},V=l.forwardRef(((e,n)=>{const{loop:r=!1,trapped:o=!1,onMountAutoFocus:a,onUnmountAutoFocus:i,...s}=e,[c,u]=l.useState(null),d=E(a),m=E(i),p=l.useRef(null),f=g(n,(e=>u(e))),h=l.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;l.useEffect((()=>{if(o){let e=function(e){if(h.paused||!c)return;const t=e.target;c.contains(t)?p.current=t:K(p.current,{select:!0})},t=function(e){if(h.paused||!c)return;const t=e.relatedTarget;null!==t&&(c.contains(t)||K(p.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(const t of e)t.removedNodes.length>0&&K(c)};document.addEventListener("focusin",e),document.addEventListener("focusout",t);const r=new MutationObserver(n);return c&&r.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}}),[o,c,h.paused]),l.useEffect((()=>{if(c){G.add(h);const t=document.activeElement;if(!c.contains(t)){const n=new CustomEvent(B,z);c.addEventListener(B,d),c.dispatchEvent(n),n.defaultPrevented||(!function(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(K(r,{select:t}),document.activeElement!==n)return}((e=H(c),e.filter((e=>"A"!==e.tagName))),{select:!0}),document.activeElement===t&&K(c))}return()=>{c.removeEventListener(B,d),setTimeout((()=>{const e=new CustomEvent(F,z);c.addEventListener(F,m),c.dispatchEvent(e),e.defaultPrevented||K(t??document.body,{select:!0}),c.removeEventListener(F,m),G.remove(h)}),0)}}var e}),[c,d,m,h]);const v=l.useCallback((e=>{if(!r&&!o)return;if(h.paused)return;const t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=document.activeElement;if(t&&n){const t=e.currentTarget,[o,a]=function(e){const t=H(e),n=U(t,e),r=U(t.reverse(),e);return[n,r]}(t);o&&a?e.shiftKey||n!==a?e.shiftKey&&n===o&&(e.preventDefault(),r&&K(a,{select:!0})):(e.preventDefault(),r&&K(o,{select:!0})):n===t&&e.preventDefault()}}),[r,o,h.paused]);return t.jsx(j.div,{tabIndex:-1,...s,ref:f,onKeyDown:v})}));function H(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function U(e,t){for(const n of e)if(!W(n,{upTo:t}))return n}function W(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(void 0!==t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}function K(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&function(e){return e instanceof HTMLInputElement&&"select"in e}(e)&&t&&e.select()}}V.displayName="FocusScope";var G=function(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=$(e,t),e.unshift(t)},remove(t){e=$(e,t),e[0]?.resume()}}}();function $(e,t){const n=[...e],r=n.indexOf(t);return-1!==r&&n.splice(r,1),n}var Q=l.forwardRef(((e,r)=>{const{container:o,...a}=e,[i,s]=l.useState(!1);b((()=>s(!0)),[]);const c=o||i&&globalThis?.document?.body;return c?n.createPortal(t.jsx(j.div,{...a,ref:r}),c):null}));Q.displayName="Portal";var X=e=>{const{present:t,children:n}=e,r=function(e){const[t,n]=l.useState(),r=l.useRef({}),o=l.useRef(e),a=l.useRef("none"),i=e?"mounted":"unmounted",[s,c]=function(e,t){return l.useReducer(((e,n)=>t[e][n]??e),e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return l.useEffect((()=>{const e=Y(r.current);a.current="mounted"===s?e:"none"}),[s]),b((()=>{const t=r.current,n=o.current;if(n!==e){const r=a.current,i=Y(t);if(e)c("MOUNT");else if("none"===i||"none"===t?.display)c("UNMOUNT");else{c(n&&r!==i?"ANIMATION_OUT":"UNMOUNT")}o.current=e}}),[e,c]),b((()=>{if(t){let e;const n=t.ownerDocument.defaultView??window,i=a=>{const i=Y(r.current).includes(a.animationName);if(a.target===t&&i&&(c("ANIMATION_END"),!o.current)){const r=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout((()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=r)}))}},l=e=>{e.target===t&&(a.current=Y(r.current))};return t.addEventListener("animationstart",l),t.addEventListener("animationcancel",i),t.addEventListener("animationend",i),()=>{n.clearTimeout(e),t.removeEventListener("animationstart",l),t.removeEventListener("animationcancel",i),t.removeEventListener("animationend",i)}}c("ANIMATION_END")}),[t,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:l.useCallback((e=>{e&&(r.current=getComputedStyle(e)),n(e)}),[])}}(t),o="function"==typeof n?n({present:r.isPresent}):l.Children.only(n),a=g(r.ref,function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;if(n)return e.ref;if(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(o));return"function"==typeof n||r.isPresent?l.cloneElement(o,{ref:a}):null};function Y(e){return e?.animationName||"none"}X.displayName="Presence";var Z=0;function J(){l.useEffect((()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??ee()),document.body.insertAdjacentElement("beforeend",e[1]??ee()),Z++,()=>{1===Z&&document.querySelectorAll("[data-radix-focus-guard]").forEach((e=>e.remove())),Z--}}),[])}function ee(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var te=function(){return te=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},te.apply(this,arguments)};function ne(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}"function"==typeof SuppressedError&&SuppressedError;var re="right-scroll-bar-position",oe="width-before-scroll-bar";function ae(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var ie="undefined"!=typeof window?l.useLayoutEffect:l.useEffect,le=new WeakMap;function se(t,n){var r,o,a,i=(r=null,o=function(e){return t.forEach((function(t){return ae(t,e)}))},(a=e.useState((function(){return{value:r,callback:o,facade:{get current(){return a.value},set current(e){var t=a.value;t!==e&&(a.value=e,a.callback(e,t))}}}}))[0]).callback=o,a.facade);return ie((function(){var e=le.get(i);if(e){var n=new Set(e),r=new Set(t),o=i.current;n.forEach((function(e){r.has(e)||ae(e,null)})),r.forEach((function(e){n.has(e)||ae(e,o)}))}le.set(i,t)}),[t]),i}function ce(e){return e}var ue=function(e){var t=e.sideCar,n=ne(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return l.createElement(r,te({},n))};ue.isSideCarExport=!0;var de=function(e){void 0===e&&(e={});var t=function(e,t){void 0===t&&(t=ce);var n=[],r=!1;return{read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var o=t(e,r);return n.push(o),function(){n=n.filter((function(e){return e!==o}))}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var o=n;n=[],o.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},i=function(){return Promise.resolve().then(a)};i(),n={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),n}}}}}(null);return t.options=te({async:!0,ssr:!1},e),t}(),me=function(){},pe=l.forwardRef((function(e,t){var n=l.useRef(null),r=l.useState({onScrollCapture:me,onWheelCapture:me,onTouchMoveCapture:me}),o=r[0],a=r[1],i=e.forwardProps,s=e.children,c=e.className,u=e.removeScrollBar,d=e.enabled,m=e.shards,p=e.sideCar,f=e.noIsolation,h=e.inert,v=e.allowPinchZoom,g=e.as,w=void 0===g?"div":g,b=e.gapMode,y=ne(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as","gapMode"]),_=p,x=se([n,t]),E=te(te({},y),o);return l.createElement(l.Fragment,null,d&&l.createElement(_,{sideCar:de,removeScrollBar:u,shards:m,noIsolation:f,inert:h,setCallbacks:a,allowPinchZoom:!!v,lockRef:n,gapMode:b}),i?l.cloneElement(l.Children.only(s),te(te({},E),{ref:x})):l.createElement(w,te({},E,{className:c,ref:x}),s))}));pe.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},pe.classNames={fullWidth:oe,zeroRight:re};function fe(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=function(){if("undefined"!=typeof __webpack_nonce__)return __webpack_nonce__}();return t&&e.setAttribute("nonce",t),e}var he=function(){var e=0,t=null;return{add:function(n){var r;0==e&&(t=fe())&&(!function(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}(t,n),r=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(r)),e++},remove:function(){! --e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},ve=function(){var e,t=(e=he(),function(t,n){l.useEffect((function(){return e.add(t),function(){e.remove()}}),[t&&n])});return function(e){var n=e.styles,r=e.dynamic;return t(n,r),null}},ge={left:0,top:0,right:0,gap:0},we=function(e){return parseInt(e||"",10)||0},be=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return ge;var t=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[we(n),we(r),we(o)]}(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},ye=ve(),_e="data-scroll-locked",xe=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,l=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(l,"px ").concat(r,";\n }\n body[").concat(_e,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(a,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(l,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(re," {\n right: ").concat(l,"px ").concat(r,";\n }\n \n .").concat(oe," {\n margin-right: ").concat(l,"px ").concat(r,";\n }\n \n .").concat(re," .").concat(re," {\n right: 0 ").concat(r,";\n }\n \n .").concat(oe," .").concat(oe," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(_e,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(l,"px;\n }\n")},Ee=function(){var e=parseInt(document.body.getAttribute(_e)||"0",10);return isFinite(e)?e:0},Ce=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;l.useEffect((function(){return document.body.setAttribute(_e,(Ee()+1).toString()),function(){var e=Ee()-1;e<=0?document.body.removeAttribute(_e):document.body.setAttribute(_e,e.toString())}}),[]);var a=l.useMemo((function(){return be(o)}),[o]);return l.createElement(ye,{styles:xe(a,!t,o,n?"":"!important")})},Oe=!1;if("undefined"!=typeof window)try{var Me=Object.defineProperty({},"passive",{get:function(){return Oe=!0,!0}});window.addEventListener("test",Me,Me),window.removeEventListener("test",Me,Me)}catch(e){Oe=!1}var Ae=!!Oe&&{passive:!1},Se=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&!function(e){return"TEXTAREA"===e.tagName}(e)&&"visible"===n[t])},je=function(e,t){var n=t.ownerDocument,r=t;do{if("undefined"!=typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),Pe(e,r)){var o=qe(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Pe=function(e,t){return"v"===e?function(e){return Se(e,"overflowY")}(t):function(e){return Se(e,"overflowX")}(t)},qe=function(e,t){return"v"===e?[(n=t).scrollTop,n.scrollHeight,n.clientHeight]:function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]}(t);var n},Te=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Ne=function(e){return[e.deltaX,e.deltaY]},ke=function(e){return e&&"current"in e?e.current:e},Re=function(e){return"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")},De=0,Ie=[];function Le(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var Be,Fe=(Be=function(e){var t=l.useRef([]),n=l.useRef([0,0]),r=l.useRef(),o=l.useState(De++)[0],a=l.useState(ve)[0],i=l.useRef(e);l.useEffect((function(){i.current=e}),[e]),l.useEffect((function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}([e.lockRef.current],(e.shards||[]).map(ke),!0).filter(Boolean);return t.forEach((function(e){return e.classList.add("allow-interactivity-".concat(o))})),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach((function(e){return e.classList.remove("allow-interactivity-".concat(o))}))}}}),[e.inert,e.lockRef.current,e.shards]);var s=l.useCallback((function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!i.current.allowPinchZoom;var o,a=Te(e),l=n.current,s="deltaX"in e?e.deltaX:l[0]-a[0],c="deltaY"in e?e.deltaY:l[1]-a[1],u=e.target,d=Math.abs(s)>Math.abs(c)?"h":"v";if("touches"in e&&"h"===d&&"range"===u.type)return!1;var m=je(d,u);if(!m)return!0;if(m?o=d:(o="v"===d?"h":"v",m=je(d,u)),!m)return!1;if(!r.current&&"changedTouches"in e&&(s||c)&&(r.current=o),!o)return!0;var p=r.current||o;return function(e,t,n,r){var o=function(e,t){return"h"===e&&"rtl"===t?-1:1}(e,window.getComputedStyle(t).direction),a=o*r,i=n.target,l=t.contains(i),s=!1,c=a>0,u=0,d=0;do{var m=qe(e,i),p=m[0],f=m[1]-m[2]-o*p;(p||f)&&Pe(e,i)&&(u+=f,d+=p),i=i instanceof ShadowRoot?i.host:i.parentNode}while(!l&&i!==document.body||l&&(t.contains(i)||t===i));return(c&&Math.abs(u)<1||!c&&Math.abs(d)<1)&&(s=!0),s}(p,t,e,"h"===p?s:c)}),[]),c=l.useCallback((function(e){var n=e;if(Ie.length&&Ie[Ie.length-1]===a){var r="deltaY"in n?Ne(n):Te(n),o=t.current.filter((function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&(t=e.delta,o=r,t[0]===o[0]&&t[1]===o[1]);var t,o}))[0];if(o&&o.should)n.cancelable&&n.preventDefault();else if(!o){var l=(i.current.shards||[]).map(ke).filter(Boolean).filter((function(e){return e.contains(n.target)}));(l.length>0?s(n,l[0]):!i.current.noIsolation)&&n.cancelable&&n.preventDefault()}}}),[]),u=l.useCallback((function(e,n,r,o){var a={name:e,delta:n,target:r,should:o,shadowParent:Le(r)};t.current.push(a),setTimeout((function(){t.current=t.current.filter((function(e){return e!==a}))}),1)}),[]),d=l.useCallback((function(e){n.current=Te(e),r.current=void 0}),[]),m=l.useCallback((function(t){u(t.type,Ne(t),t.target,s(t,e.lockRef.current))}),[]),p=l.useCallback((function(t){u(t.type,Te(t),t.target,s(t,e.lockRef.current))}),[]);l.useEffect((function(){return Ie.push(a),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:p}),document.addEventListener("wheel",c,Ae),document.addEventListener("touchmove",c,Ae),document.addEventListener("touchstart",d,Ae),function(){Ie=Ie.filter((function(e){return e!==a})),document.removeEventListener("wheel",c,Ae),document.removeEventListener("touchmove",c,Ae),document.removeEventListener("touchstart",d,Ae)}}),[]);var f=e.removeScrollBar,h=e.inert;return l.createElement(l.Fragment,null,h?l.createElement(a,{styles:Re(o)}):null,f?l.createElement(Ce,{gapMode:e.gapMode}):null)},de.useMedium(Be),ue),ze=l.forwardRef((function(e,t){return l.createElement(pe,te({},e,{ref:t,sideCar:Fe}))}));ze.classNames=pe.classNames;var Ve=new WeakMap,He=new WeakMap,Ue={},We=0,Ke=function(e){return e&&(e.host||Ke(e.parentNode))},Ge=function(e,t,n,r){var o=function(e,t){return t.map((function(t){if(e.contains(t))return t;var n=Ke(t);return n&&e.contains(n)?n:(console.error("aria-hidden",t,"in not contained inside",e,". Doing nothing"),null)})).filter((function(e){return Boolean(e)}))}(t,Array.isArray(e)?e:[e]);Ue[n]||(Ue[n]=new WeakMap);var a=Ue[n],i=[],l=new Set,s=new Set(o),c=function(e){e&&!l.has(e)&&(l.add(e),c(e.parentNode))};o.forEach(c);var u=function(e){e&&!s.has(e)&&Array.prototype.forEach.call(e.children,(function(e){if(l.has(e))u(e);else try{var t=e.getAttribute(r),o=null!==t&&"false"!==t,s=(Ve.get(e)||0)+1,c=(a.get(e)||0)+1;Ve.set(e,s),a.set(e,c),i.push(e),1===s&&o&&He.set(e,!0),1===c&&e.setAttribute(n,"true"),o||e.setAttribute(r,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}}))};return u(t),l.clear(),We++,function(){i.forEach((function(e){var t=Ve.get(e)-1,o=a.get(e)-1;Ve.set(e,t),a.set(e,o),t||(He.has(e)||e.removeAttribute(r),He.delete(e)),o||e.removeAttribute(n)})),--We||(Ve=new WeakMap,Ve=new WeakMap,He=new WeakMap,Ue={})}},$e=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=function(e){return"undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body}(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live]"))),Ge(r,o,n,"aria-hidden")):function(){return null}},Qe="Dialog",[Xe,Ye]=p(Qe),[Ze,Je]=Xe(Qe),et=e=>{const{__scopeDialog:n,children:r,open:o,defaultOpen:a,onOpenChange:i,modal:s=!0}=e,c=l.useRef(null),u=l.useRef(null),[d=!1,m]=C({prop:o,defaultProp:a,onChange:i});return t.jsx(Ze,{scope:n,triggerRef:c,contentRef:u,contentId:x(),titleId:x(),descriptionId:x(),open:d,onOpenChange:m,onOpenToggle:l.useCallback((()=>m((e=>!e))),[m]),modal:s,children:r})};et.displayName=Qe;var tt="DialogTrigger",nt=l.forwardRef(((e,n)=>{const{__scopeDialog:r,...o}=e,a=Je(tt,r),i=g(n,a.triggerRef);return t.jsx(j.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":_t(a.open),...o,ref:i,onClick:w(e.onClick,a.onOpenToggle)})}));nt.displayName=tt;var rt="DialogPortal",[ot,at]=Xe(rt,{forceMount:void 0}),it=e=>{const{__scopeDialog:n,forceMount:r,children:o,container:a}=e,i=Je(rt,n);return t.jsx(ot,{scope:n,forceMount:r,children:l.Children.map(o,(e=>t.jsx(X,{present:r||i.open,children:t.jsx(Q,{asChild:!0,container:a,children:e})})))})};it.displayName=rt;var lt="DialogOverlay",st=l.forwardRef(((e,n)=>{const r=at(lt,e.__scopeDialog),{forceMount:o=r.forceMount,...a}=e,i=Je(lt,e.__scopeDialog);return i.modal?t.jsx(X,{present:o||i.open,children:t.jsx(ct,{...a,ref:n})}):null}));st.displayName=lt;var ct=l.forwardRef(((e,n)=>{const{__scopeDialog:r,...o}=e,a=Je(lt,r);return t.jsx(ze,{as:O,allowPinchZoom:!0,shards:[a.contentRef],children:t.jsx(j.div,{"data-state":_t(a.open),...o,ref:n,style:{pointerEvents:"auto",...o.style}})})})),ut="DialogContent",dt=l.forwardRef(((e,n)=>{const r=at(ut,e.__scopeDialog),{forceMount:o=r.forceMount,...a}=e,i=Je(ut,e.__scopeDialog);return t.jsx(X,{present:o||i.open,children:i.modal?t.jsx(mt,{...a,ref:n}):t.jsx(pt,{...a,ref:n})})}));dt.displayName=ut;var mt=l.forwardRef(((e,n)=>{const r=Je(ut,e.__scopeDialog),o=l.useRef(null),a=g(n,r.contentRef,o);return l.useEffect((()=>{const e=o.current;if(e)return $e(e)}),[]),t.jsx(ft,{...e,ref:a,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:w(e.onCloseAutoFocus,(e=>{e.preventDefault(),r.triggerRef.current?.focus()})),onPointerDownOutside:w(e.onPointerDownOutside,(e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()})),onFocusOutside:w(e.onFocusOutside,(e=>e.preventDefault()))})})),pt=l.forwardRef(((e,n)=>{const r=Je(ut,e.__scopeDialog),o=l.useRef(!1),a=l.useRef(!1);return t.jsx(ft,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||r.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(a.current=!0));const n=t.target,i=r.triggerRef.current?.contains(n);i&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})})),ft=l.forwardRef(((e,n)=>{const{__scopeDialog:r,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:i,...s}=e,c=Je(ut,r),u=l.useRef(null),d=g(n,u);return J(),t.jsxs(t.Fragment,{children:[t.jsx(V,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:a,onUnmountAutoFocus:i,children:t.jsx(D,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":_t(c.open),...s,ref:d,onDismiss:()=>c.onOpenChange(!1)})}),t.jsxs(t.Fragment,{children:[t.jsx(Ot,{titleId:c.titleId}),t.jsx(Mt,{contentRef:u,descriptionId:c.descriptionId})]})]})})),ht="DialogTitle",vt=l.forwardRef(((e,n)=>{const{__scopeDialog:r,...o}=e,a=Je(ht,r);return t.jsx(j.h2,{id:a.titleId,...o,ref:n})}));vt.displayName=ht;var gt="DialogDescription",wt=l.forwardRef(((e,n)=>{const{__scopeDialog:r,...o}=e,a=Je(gt,r);return t.jsx(j.p,{id:a.descriptionId,...o,ref:n})}));wt.displayName=gt;var bt="DialogClose",yt=l.forwardRef(((e,n)=>{const{__scopeDialog:r,...o}=e,a=Je(bt,r);return t.jsx(j.button,{type:"button",...o,ref:n,onClick:w(e.onClick,(()=>a.onOpenChange(!1)))})}));function _t(e){return e?"open":"closed"}yt.displayName=bt;var xt="DialogTitleWarning",[Et,Ct]=function(e,n){const r=l.createContext(n),o=e=>{const{children:n,...o}=e,a=l.useMemo((()=>o),Object.values(o));return t.jsx(r.Provider,{value:a,children:n})};return o.displayName=e+"Provider",[o,function(t){const o=l.useContext(r);if(o)return o;if(void 0!==n)return n;throw new Error(`\`${t}\` must be used within \`${e}\``)}]}(xt,{contentName:ut,titleName:ht,docsSlug:"dialog"}),Ot=({titleId:e})=>{const t=Ct(xt),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return l.useEffect((()=>{if(e){document.getElementById(e)||console.error(n)}}),[n,e]),null},Mt=({contentRef:e,descriptionId:t})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Ct("DialogDescriptionWarning").contentName}}.`;return l.useEffect((()=>{const r=e.current?.getAttribute("aria-describedby");if(t&&r){document.getElementById(t)||console.warn(n)}}),[n,e,t]),null},At=et,St=nt,jt=it,Pt=st,qt=dt,Tt=vt,Nt=wt,kt=yt,Rt="AlertDialog",[Dt,It]=p(Rt,[Ye]),Lt=Ye(),Bt=e=>{const{__scopeAlertDialog:n,...r}=e,o=Lt(n);return t.jsx(At,{...o,...r,modal:!0})};Bt.displayName=Rt;l.forwardRef(((e,n)=>{const{__scopeAlertDialog:r,...o}=e,a=Lt(r);return t.jsx(St,{...a,...o,ref:n})})).displayName="AlertDialogTrigger";var Ft=e=>{const{__scopeAlertDialog:n,...r}=e,o=Lt(n);return t.jsx(jt,{...o,...r})};Ft.displayName="AlertDialogPortal";var zt=l.forwardRef(((e,n)=>{const{__scopeAlertDialog:r,...o}=e,a=Lt(r);return t.jsx(Pt,{...a,...o,ref:n})}));zt.displayName="AlertDialogOverlay";var Vt="AlertDialogContent",[Ht,Ut]=Dt(Vt),Wt=l.forwardRef(((e,n)=>{const{__scopeAlertDialog:r,children:o,...a}=e,i=Lt(r),s=l.useRef(null),c=g(n,s),u=l.useRef(null);return t.jsx(Et,{contentName:Vt,titleName:Kt,docsSlug:"alert-dialog",children:t.jsx(Ht,{scope:r,cancelRef:u,children:t.jsxs(qt,{role:"alertdialog",...i,...a,ref:c,onOpenAutoFocus:w(a.onOpenAutoFocus,(e=>{e.preventDefault(),u.current?.focus({preventScroll:!0})})),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[t.jsx(A,{children:o}),t.jsx(en,{contentRef:s})]})})})}));Wt.displayName=Vt;var Kt="AlertDialogTitle",Gt=l.forwardRef(((e,n)=>{const{__scopeAlertDialog:r,...o}=e,a=Lt(r);return t.jsx(Tt,{...a,...o,ref:n})}));Gt.displayName=Kt;var $t="AlertDialogDescription",Qt=l.forwardRef(((e,n)=>{const{__scopeAlertDialog:r,...o}=e,a=Lt(r);return t.jsx(Nt,{...a,...o,ref:n})}));Qt.displayName=$t;var Xt=l.forwardRef(((e,n)=>{const{__scopeAlertDialog:r,...o}=e,a=Lt(r);return t.jsx(kt,{...a,...o,ref:n})}));Xt.displayName="AlertDialogAction";var Yt="AlertDialogCancel",Zt=l.forwardRef(((e,n)=>{const{__scopeAlertDialog:r,...o}=e,{cancelRef:a}=Ut(Yt,r),i=Lt(r),l=g(n,a);return t.jsx(kt,{...i,...o,ref:l})}));Zt.displayName=Yt;var Jt,en=({contentRef:e})=>{const t=`\`${Vt}\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \`${Vt}\` by passing a \`${$t}\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Vt}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return l.useEffect((()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)}),[t,e]),null},tn=Bt,nn=Ft,rn=zt,on=Wt,an=Xt,ln=Zt,sn=Gt,cn=Qt;function un(){return un=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},un.apply(null,arguments)}var dn=function(e){return l.createElement("svg",un({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Jt||(Jt=l.createElement("path",{fill:"#5d676b",d:"m12 13.4-4.9 4.9a1 1 0 0 1-.7.28 1 1 0 0 1-.7-.28 1 1 0 0 1-.28-.7q0-.42.28-.7l4.9-4.9-4.9-4.9a1 1 0 0 1-.28-.7q0-.42.28-.7a1 1 0 0 1 .7-.27q.42 0 .7.27l4.9 4.9 4.9-4.9a1 1 0 0 1 .7-.27q.42 0 .7.27a1 1 0 0 1 .27.7 1 1 0 0 1-.27.7L13.4 12l4.9 4.9a1 1 0 0 1 .28.7 1 1 0 0 1-.28.7 1 1 0 0 1-.7.27 1 1 0 0 1-.7-.27z"})))},mn=e.memo(dn),pn={loader:"Loader-modules_loader__waPdv",rotate:"Loader-modules_rotate__vBNW3",spin:"Loader-modules_spin__i7TnV",small:"Loader-modules_small__ACDdJ",inheritColor:"Loader-modules_inheritColor__4aWvb"};function fn({size:t="medium",className:n="",inheritColor:r=!1}){return e.createElement("span",{className:m("demio-ui-loader",pn.loader,{[pn[t]]:t,[pn.inheritColor]:r,[n]:n})})}var hn={button:"Button-modules_button__tpJr3",secondary:"Button-modules_secondary__JGOIF",outline:"Button-modules_outline__R9gjd",danger:"Button-modules_danger__eTzli",small:"Button-modules_small__dNTOw",large:"Button-modules_large__5tvgy",prefix:"Button-modules_prefix__86hpR",suffix:"Button-modules_suffix__5uHiO",fullWidth:"Button-modules_fullWidth__3ET8J"};const vn=e.forwardRef((({disabled:t=!1,children:n,onClick:r,size:o="medium",variant:a="primary",type:i="button",prefix:l="",suffix:s="",className:c="",fullWidth:u=!1,showLoader:d=!1,...p},f)=>e.createElement("button",{ref:f,type:i,disabled:t,className:m("demio-ui-button",hn.button,{[c]:c,[hn[o]]:o,[hn[a]]:a,[hn.fullWidth]:u}),onClick:r,...p},(l||d)&&e.createElement("span",{className:m("demio-ui-button-prefix",hn.prefix)},d?e.createElement(fn,{size:"small",inheritColor:!0}):l),n,s&&e.createElement("span",{className:m("demio-ui-button-suffix",hn.suffix)},s))));var gn="Alert-modules_overlay__4XRHj",wn="Alert-modules_close__dyL0l",bn="Alert-modules_content__Y7nMS",yn="Alert-modules_title__e8UHT",_n="Alert-modules_description__wyWR-",xn="Alert-modules_buttons__cOEDw";var En="Avatar",[Cn,On]=p(En),[Mn,An]=Cn(En),Sn=l.forwardRef(((e,n)=>{const{__scopeAvatar:r,...o}=e,[a,i]=l.useState("idle");return t.jsx(Mn,{scope:r,imageLoadingStatus:a,onImageLoadingStatusChange:i,children:t.jsx(j.span,{...o,ref:n})})}));Sn.displayName=En;var jn="AvatarImage",Pn=l.forwardRef(((e,n)=>{const{__scopeAvatar:r,src:o,onLoadingStatusChange:a=()=>{},...i}=e,s=An(jn,r),c=function(e,t){const[n,r]=l.useState("idle");return b((()=>{if(!e)return void r("error");let n=!0;const o=new window.Image,a=e=>()=>{n&&r(e)};return r("loading"),o.onload=a("loaded"),o.onerror=a("error"),o.src=e,t&&(o.referrerPolicy=t),()=>{n=!1}}),[e,t]),n}(o,i.referrerPolicy),u=E((e=>{a(e),s.onImageLoadingStatusChange(e)}));return b((()=>{"idle"!==c&&u(c)}),[c,u]),"loaded"===c?t.jsx(j.img,{...i,ref:n,src:o}):null}));Pn.displayName=jn;var qn="AvatarFallback",Tn=l.forwardRef(((e,n)=>{const{__scopeAvatar:r,delayMs:o,...a}=e,i=An(qn,r),[s,c]=l.useState(void 0===o);return l.useEffect((()=>{if(void 0!==o){const e=window.setTimeout((()=>c(!0)),o);return()=>window.clearTimeout(e)}}),[o]),s&&"loaded"!==i.imageLoadingStatus?t.jsx(j.span,{...a,ref:n}):null}));Tn.displayName=qn;var Nn,kn,Rn=Sn,Dn=Pn,In=Tn;function Ln(){return Ln=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ln.apply(null,arguments)}var Bn,Fn=function(e){return l.createElement("svg",Ln({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},Nn||(Nn=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),kn||(kn=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#2c3336",d:"M12 18.75a.7.7 0 0 1-.53-.22.7.7 0 0 1-.22-.53v-5.25H6a.7.7 0 0 1-.53-.22.7.7 0 0 1-.22-.53q0-.32.22-.53a.7.7 0 0 1 .53-.22h5.25V6q0-.32.22-.53a.7.7 0 0 1 .53-.22q.32 0 .54.22a.7.7 0 0 1 .21.53v5.25H18q.32 0 .53.22a.7.7 0 0 1 .22.53q0 .32-.22.54a.7.7 0 0 1-.53.21h-5.25V18q0 .32-.22.53a.7.7 0 0 1-.53.22"}))))},zn=e.memo(Fn);function Vn(){return Vn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Vn.apply(null,arguments)}var Hn,Un,Wn=function(e){return l.createElement("svg",Vn({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Bn||(Bn=l.createElement("path",{fill:"#2c3336",d:"m12.28 22.1.93-.94a.56.56 0 0 0 0-.8L5.93 13.1h16c.32 0 .57-.25.57-.57v-1.3a.56.56 0 0 0-.56-.57h-16l7.27-7.27a.56.56 0 0 0 0-.8l-.93-.93a.56.56 0 0 0-.8 0l-9.81 9.82a.56.56 0 0 0 0 .8l9.81 9.81c.22.22.58.22.8 0"})))},Kn=e.memo(Wn);function Gn(){return Gn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Gn.apply(null,arguments)}var $n,Qn=function(e){return l.createElement("svg",Gn({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Hn||(Hn=l.createElement("path",{fill:"#2c3336",d:"m3.17 11.6 6.93-6.94a.57.57 0 0 1 .8 0l.93.93a.56.56 0 0 1 0 .8L6.24 12l5.6 5.61a.56.56 0 0 1 0 .8l-.94.93a.57.57 0 0 1-.8 0L3.17 12.4a.56.56 0 0 1 0-.8"})),Un||(Un=l.createElement("path",{fill:"#2c3336",d:"m12.17 11.6 6.93-6.94a.57.57 0 0 1 .8 0l.93.93a.56.56 0 0 1 0 .8L15.24 12l5.6 5.61a.56.56 0 0 1 0 .8l-.94.93a.57.57 0 0 1-.8 0l-6.93-6.94a.56.56 0 0 1 0-.8"})))},Xn=e.memo(Qn);function Yn(){return Yn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Yn.apply(null,arguments)}var Zn,Jn=function(e){return l.createElement("svg",Yn({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),$n||($n=l.createElement("path",{fill:"#2c3336",d:"m7.7 11.6 6.88-6.94a.56.56 0 0 1 .8 0l.92.93c.22.22.22.58 0 .8L10.75 12l5.55 5.61c.22.22.22.58 0 .8l-.93.93a.56.56 0 0 1-.8 0L7.7 12.4a.56.56 0 0 1 0-.8"})))},er=e.memo(Jn);function tr(){return tr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},tr.apply(null,arguments)}var nr,rr=function(e){return l.createElement("svg",tr({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Zn||(Zn=l.createElement("path",{fill:"#2c3336",d:"M23.63 10.88c0-6.4-5.16-10.5-11.63-10.5a11.62 11.62 0 1 0 6.9 20.98.56.56 0 0 0 .1-.8l-.72-.88a.56.56 0 0 0-.77-.1 9.4 9.4 0 0 1-5.51 1.8 9.39 9.39 0 0 1 0-18.75c5.13 0 9.38 3.04 9.38 8.25 0 2.95-2 4.6-3.9 4.6-.91 0-.94-.59-.76-1.47l1.34-6.97a.56.56 0 0 0-.55-.67h-1.84a.56.56 0 0 0-.55.46c-.05.27-.08.4-.1.66-.57-.92-1.7-1.46-3.06-1.46-3.36 0-6.33 2.93-6.33 7.17 0 2.86 1.54 4.78 4.36 4.78 1.4 0 2.88-.79 3.74-1.98.2 1.45 1.34 1.78 2.79 1.78 4.64 0 7.1-2.98 7.1-6.9M10.8 15.43c-1.34 0-2.13-.91-2.13-2.44 0-2.7 1.85-4.38 3.5-4.38 1.4 0 2.12 1.01 2.12 2.42 0 2.2-1.55 4.4-3.5 4.4"})))},or=e.memo(rr);function ar(){return ar=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ar.apply(null,arguments)}var ir,lr,sr=function(e){return l.createElement("svg",ar({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),nr||(nr=l.createElement("path",{fill:"currentColor",d:"M3 21a1 1 0 0 1-.71-.29A1 1 0 0 1 2 20q0-.42.29-.71A1 1 0 0 1 3 19h18q.42 0 .71.29T22 20t-.29.71A1 1 0 0 1 21 21zm1.5-3q-.62 0-1.06-.44A1.5 1.5 0 0 1 3 16.5v-4q0-.62.44-1.06A1.5 1.5 0 0 1 4.5 11q.62 0 1.06.44T6 12.5v4q0 .63-.44 1.06A1.5 1.5 0 0 1 4.5 18m5 0q-.62 0-1.06-.44A1.5 1.5 0 0 1 8 16.5v-9q0-.62.44-1.06A1.5 1.5 0 0 1 9.5 6q.62 0 1.06.44.44.43.44 1.06v9q0 .63-.44 1.06A1.5 1.5 0 0 1 9.5 18m5 0q-.62 0-1.06-.44A1.5 1.5 0 0 1 13 16.5v-6q0-.62.44-1.06A1.5 1.5 0 0 1 14.5 9q.62 0 1.06.44.44.43.44 1.06v6q0 .63-.44 1.06a1.5 1.5 0 0 1-1.06.44m5 0q-.62 0-1.06-.44A1.5 1.5 0 0 1 18 16.5v-12q0-.62.44-1.06A1.5 1.5 0 0 1 19.5 3q.63 0 1.06.44.44.43.44 1.06v12q0 .63-.44 1.06a1.5 1.5 0 0 1-1.06.44"})))},cr=e.memo(sr);function ur(){return ur=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ur.apply(null,arguments)}var dr,mr,pr=function(e){return l.createElement("svg",ur({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},ir||(ir=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),lr||(lr=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#42454b",d:"M12 21.5a9 9 0 0 1-3.7-.75 10 10 0 0 1-3.02-2.03 10 10 0 0 1-2.03-3.01A9 9 0 0 1 2.5 12q0-1.98.75-3.71a10 10 0 0 1 2.03-3.02 10 10 0 0 1 3.01-2.03A9 9 0 0 1 12 2.5q1.98 0 3.71.75a10 10 0 0 1 3.02 2.03 10 10 0 0 1 2.03 3.01 9 9 0 0 1 .75 3.7q0 1.98-.75 3.71a10 10 0 0 1-2.03 3.02 10 10 0 0 1-3.01 2.03 9 9 0 0 1-3.7.75M12 20q3.35 0 5.68-2.33T20 12q0-1.4-.48-2.71a8 8 0 0 0-1.37-2.38L6.9 18.15a8 8 0 0 0 2.38 1.37A8 8 0 0 0 12 20m-6.15-2.9L17.1 5.84a8 8 0 0 0-2.37-1.38A8 8 0 0 0 12 4Q8.65 4 6.33 6.33T4 12q0 1.4.48 2.71a8 8 0 0 0 1.37 2.38"}))))},fr=e.memo(pr);function hr(){return hr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},hr.apply(null,arguments)}var vr,gr,wr=function(e){return l.createElement("svg",hr({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},dr||(dr=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),mr||(mr=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#2c3336",d:"M3 14.5a.5.5 0 0 1-.35-.15.5.5 0 0 1 0-.7.5.5 0 0 1 .7 0 .5.5 0 0 1 0 .7.5.5 0 0 1-.35.15m0-4a.5.5 0 0 1-.35-.15.5.5 0 0 1 0-.7.5.5 0 0 1 .7 0 .5.5 0 0 1 0 .7.5.5 0 0 1-.35.15m3 8.42a1 1 0 0 1-.66-.26 1 1 0 0 1-.26-.66q0-.4.26-.66a1 1 0 0 1 .66-.26q.4 0 .66.26a1 1 0 0 1 .26.66q0 .4-.26.66a1 1 0 0 1-.66.26m0-4a1 1 0 0 1-.66-.26 1 1 0 0 1-.26-.66q0-.4.26-.66a1 1 0 0 1 .66-.26q.4 0 .66.26a1 1 0 0 1 .26.66q0 .4-.26.66a1 1 0 0 1-.66.26m0-4a1 1 0 0 1-.66-.26 1 1 0 0 1-.26-.66q0-.4.26-.66A1 1 0 0 1 6 9.08q.4 0 .66.26a1 1 0 0 1 .26.66q0 .4-.26.66a1 1 0 0 1-.66.26m0-4a1 1 0 0 1-.66-.26A1 1 0 0 1 5.08 6q0-.4.26-.66A1 1 0 0 1 6 5.08q.4 0 .66.26a1 1 0 0 1 .26.66q0 .4-.26.66a1 1 0 0 1-.66.26m4 8.43q-.56 0-.95-.4a1.3 1.3 0 0 1-.4-.95q0-.56.4-.95.39-.4.95-.4t.95.4.4.95-.4.95a1.3 1.3 0 0 1-.95.4m0-4q-.56 0-.95-.4a1.3 1.3 0 0 1-.4-.95q0-.56.4-.95.39-.4.95-.4t.95.4.4.95-.4.95a1.3 1.3 0 0 1-.95.4m0 7.57a1 1 0 0 1-.66-.26 1 1 0 0 1-.26-.66q0-.4.26-.66a1 1 0 0 1 .66-.26q.4 0 .66.26a1 1 0 0 1 .26.66q0 .4-.26.66a1 1 0 0 1-.66.26m0-12a1 1 0 0 1-.66-.26A1 1 0 0 1 9.08 6q0-.4.26-.66a1 1 0 0 1 .66-.26q.4 0 .66.26a1 1 0 0 1 .26.66q0 .4-.26.66a1 1 0 0 1-.66.26m0 14.58a.5.5 0 0 1-.35-.15.5.5 0 0 1 0-.7.5.5 0 0 1 .7 0 .5.5 0 0 1 0 .7.5.5 0 0 1-.35.15m0-18a.5.5 0 0 1-.35-.15.5.5 0 0 1 0-.7.5.5 0 0 1 .7 0 .5.5 0 0 1 0 .7.5.5 0 0 1-.35.15m4 11.85q-.56 0-.95-.4a1.3 1.3 0 0 1-.4-.95q0-.56.4-.95.39-.4.95-.4t.95.4.4.95-.4.95a1.3 1.3 0 0 1-.95.4m0-4q-.56 0-.95-.4a1.3 1.3 0 0 1-.4-.95q0-.56.4-.95.39-.4.95-.4t.95.4.4.95-.4.95a1.3 1.3 0 0 1-.95.4m0 7.57a1 1 0 0 1-.66-.26 1 1 0 0 1-.26-.66q0-.4.26-.66a1 1 0 0 1 .66-.26q.4 0 .66.26a1 1 0 0 1 .26.66q0 .4-.26.66a1 1 0 0 1-.66.26m0-12a1 1 0 0 1-.66-.26 1 1 0 0 1-.26-.66q0-.4.26-.66a1 1 0 0 1 .66-.26q.4 0 .66.26a1 1 0 0 1 .26.66q0 .4-.26.66a1 1 0 0 1-.66.26m0 14.58a.5.5 0 0 1-.35-.15.5.5 0 0 1 0-.7.5.5 0 0 1 .7 0 .5.5 0 0 1 0 .7.5.5 0 0 1-.35.15m0-18a.5.5 0 0 1-.35-.15.5.5 0 0 1 0-.7.5.5 0 0 1 .7 0 .5.5 0 0 1 0 .7.5.5 0 0 1-.35.15m4 15.42a1 1 0 0 1-.66-.26 1 1 0 0 1-.26-.66q0-.4.26-.66a1 1 0 0 1 .66-.26q.4 0 .66.26a1 1 0 0 1 .26.66q0 .4-.26.66a1 1 0 0 1-.66.26m0-4a1 1 0 0 1-.66-.26 1 1 0 0 1-.26-.66q0-.4.26-.66a1 1 0 0 1 .66-.26q.4 0 .66.26a1 1 0 0 1 .26.66q0 .4-.26.66a1 1 0 0 1-.66.26m0-4a1 1 0 0 1-.66-.26 1 1 0 0 1-.26-.66q0-.4.26-.66a1 1 0 0 1 .66-.26q.4 0 .66.26a1 1 0 0 1 .26.66q0 .4-.26.66a1 1 0 0 1-.66.26m0-4a1 1 0 0 1-.66-.26 1 1 0 0 1-.26-.66q0-.4.26-.66a1 1 0 0 1 .66-.26q.4 0 .66.26a1 1 0 0 1 .26.66q0 .4-.26.66a1 1 0 0 1-.66.26m3 7.58a.5.5 0 0 1-.35-.15.5.5 0 0 1 0-.7.5.5 0 0 1 .7 0 .5.5 0 0 1 0 .7.5.5 0 0 1-.35.15m0-4a.5.5 0 0 1-.35-.15.5.5 0 0 1 0-.7.5.5 0 0 1 .7 0 .5.5 0 0 1 0 .7.5.5 0 0 1-.35.15"}))))},br=e.memo(wr);function yr(){return yr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},yr.apply(null,arguments)}var _r,xr,Er=function(e){return l.createElement("svg",yr({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},vr||(vr=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),gr||(gr=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#2c3336",d:"M12.05 19.75q-3.24 0-5.52-2.26T4.25 12v-.78l-1.32 1.32a.7.7 0 0 1-.53.22.7.7 0 0 1-.53-.22.7.7 0 0 1-.21-.52q0-.31.21-.53l2.5-2.5A1 1 0 0 1 5 8.72a1 1 0 0 1 .63.27l2.5 2.5q.2.2.2.52a.7.7 0 0 1-.2.53.7.7 0 0 1-.53.22.7.7 0 0 1-.53-.22l-1.32-1.32V12q0 2.6 1.84 4.43t4.46 1.82q.44 0 .87-.06t.86-.2a1 1 0 0 1 .6.02.8.8 0 0 1 .43.4.7.7 0 0 1 .02.58.7.7 0 0 1-.44.39q-.57.2-1.16.28a8 8 0 0 1-1.18.09m-.1-14q-.44 0-.87.06a5 5 0 0 0-.86.2A1 1 0 0 1 9.6 6a.8.8 0 0 1-.44-.4.7.7 0 0 1-.02-.56.7.7 0 0 1 .42-.39q.58-.2 1.18-.3a8 8 0 0 1 1.2-.09q3.25 0 5.52 2.26T19.75 12v.78l1.32-1.32a.7.7 0 0 1 .53-.22.7.7 0 0 1 .53.22q.21.21.21.52a.7.7 0 0 1-.21.53l-2.5 2.5a1 1 0 0 1-.63.27 1 1 0 0 1-.63-.27l-2.5-2.5a.7.7 0 0 1-.2-.52.7.7 0 0 1 .2-.53.7.7 0 0 1 .53-.22q.31 0 .53.22l1.32 1.32V12q0-2.6-1.83-4.43t-4.47-1.82"}))))},Cr=e.memo(Er);function Or(){return Or=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Or.apply(null,arguments)}var Mr,Ar=function(e){return l.createElement("svg",Or({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 32 32",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:32,height:32,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},_r||(_r=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h32v32H0z"}))),xr||(xr=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#11b06e",d:"M6.67 29.33a2.6 2.6 0 0 1-1.89-.78A2.6 2.6 0 0 1 4 26.67V8q0-1.1.78-1.88a2.6 2.6 0 0 1 1.89-.79H8V4q0-.57.38-.95a1.3 1.3 0 0 1 .95-.38q.57 0 .95.38.39.38.39.95v1.33h10.66V4q0-.57.39-.95a1.3 1.3 0 0 1 .95-.38q.56 0 .95.38T24 4v1.33h1.33q1.1 0 1.89.79Q28 6.9 28 8v18.67q0 1.1-.78 1.88a2.6 2.6 0 0 1-1.89.78zm0-2.66h18.66V13.33H6.67zm9.33-8a1.3 1.3 0 0 1-.95-.39 1.3 1.3 0 0 1-.38-.95q0-.56.38-.95A1.3 1.3 0 0 1 16 16q.57 0 .95.38.38.39.38.95t-.38.95a1.3 1.3 0 0 1-.95.39m-5.33 0a1.3 1.3 0 0 1-.95-.39 1.3 1.3 0 0 1-.39-.95q0-.57.39-.95a1.3 1.3 0 0 1 .95-.38q.56 0 .95.38t.38.95-.38.95a1.3 1.3 0 0 1-.95.38m10.66 0a1.3 1.3 0 0 1-.95-.38 1.3 1.3 0 0 1-.38-.95q0-.57.38-.95a1.3 1.3 0 0 1 .95-.38q.57 0 .95.38.39.38.39.95t-.39.95a1.3 1.3 0 0 1-.95.38M16 24a1.3 1.3 0 0 1-.95-.38 1.3 1.3 0 0 1-.38-.95q0-.57.38-.95a1.3 1.3 0 0 1 .95-.39q.57 0 .95.39.38.38.38.95t-.38.95A1.3 1.3 0 0 1 16 24m-5.33 0a1.3 1.3 0 0 1-.95-.38 1.3 1.3 0 0 1-.39-.95q0-.57.39-.95a1.3 1.3 0 0 1 .95-.39q.56 0 .95.39.38.38.38.95t-.38.95a1.3 1.3 0 0 1-.95.38m10.66 0a1.3 1.3 0 0 1-.95-.38 1.3 1.3 0 0 1-.38-.95q0-.57.38-.95a1.3 1.3 0 0 1 .95-.39q.57 0 .95.39.39.38.39.95t-.39.95a1.3 1.3 0 0 1-.95.38"}))))},Sr=e.memo(Ar);function jr(){return jr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},jr.apply(null,arguments)}var Pr,qr,Tr=function(e){return l.createElement("svg",jr({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",width:"1em",height:"1em"},e),Mr||(Mr=l.createElement("path",{d:"M11.67 3.22H1.66A1.67 1.67 0 0 0 0 4.9v10.14c0 .93.74 1.68 1.66 1.68h10.01a1.67 1.67 0 0 0 1.66-1.68V4.9a1.67 1.67 0 0 0-1.66-1.68m6.58 1.33-3.8 2.66v5.53l3.8 2.65c.74.52 1.75 0 1.75-.9V5.46c0-.9-1.01-1.42-1.75-.91"})))},Nr=e.memo(Tr);function kr(){return kr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},kr.apply(null,arguments)}var Rr,Dr=function(e){return l.createElement("svg",kr({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none"},e),Pr||(Pr=l.createElement("g",{clipPath:"url(#a)"},l.createElement("path",{fill:"#98a2b3",d:"M3.25 3A3.25 3.25 0 0 0 0 6.25v7.5A3.25 3.25 0 0 0 3.25 17h7.5A3.25 3.25 0 0 0 14 13.75v-.31l3.26 2.25c1.16.8 2.74-.03 2.74-1.44v-8.5a1.75 1.75 0 0 0-2.74-1.44L14 6.56v-.31A3.25 3.25 0 0 0 10.75 3zM14 8.38l4.11-2.83a.25.25 0 0 1 .4.2v8.5a.25.25 0 0 1-.4.2L14 11.62zM1.5 6.25c0-.97.78-1.75 1.75-1.75h7.5c.97 0 1.75.78 1.75 1.75v7.5a1.75 1.75 0 0 1-1.75 1.75h-7.5a1.75 1.75 0 0 1-1.75-1.75z"}))),qr||(qr=l.createElement("defs",null,l.createElement("clipPath",{id:"a"},l.createElement("path",{fill:"#fff",d:"M0 0h20v20H0z"})))))},Ir=e.memo(Dr);function Lr(){return Lr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Lr.apply(null,arguments)}var Br,Fr,zr,Vr,Hr,Ur=function(e){return l.createElement("svg",Lr({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Rr||(Rr=l.createElement("path",{d:"M17.33 10.33V3.67A2.67 2.67 0 0 0 14.67 1h-12A2.67 2.67 0 0 0 0 3.67v6.66A2.67 2.67 0 0 0 2.67 13v2.26c0 .33.38.52.64.32L6.76 13h7.9a2.66 2.66 0 0 0 2.67-2.67m4-2.66h-2.66v2.66a4 4 0 0 1-4 4H8V17a2.67 2.67 0 0 0 2.67 2.67h5.23l3.45 2.58c.27.2.65.01.65-.32v-2.26h1.33A2.67 2.67 0 0 0 24 17v-6.67a2.67 2.67 0 0 0-2.67-2.66"})))},Wr=e.memo(Ur);function Kr(){return Kr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Kr.apply(null,arguments)}var Gr,$r=function(e){return l.createElement("svg",Kr({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Br||(Br=l.createElement("path",{fill:"#02bf6f",fillRule:"evenodd",d:"M0 15.6V2.4h2.4v13.2zm21.6 0V2.4H24v13.2zm0-13.2H2.4V0h19.2zM7.2 18H2.4v-2.4h4.8zm14.4 0h-4.8v-2.4h4.8z",clipRule:"evenodd"})),Fr||(Fr=l.createElement("path",{fill:"#02bf6f",d:"M24 2.4A2.4 2.4 0 0 0 21.6 0v2.4zm0 13.2a2.4 2.4 0 0 1-2.4 2.4v-2.4zM0 2.4A2.4 2.4 0 0 1 2.4 0v2.4zm0 13.2A2.4 2.4 0 0 0 2.4 18v-2.4zm7.2 0A2.4 2.4 0 0 1 9.6 18H7.2zm0 7.2a1.2 1.2 0 1 0 2.4 0z"})),zr||(zr=l.createElement("path",{fill:"#02bf6f",fillRule:"evenodd",d:"M7.2 22.8V18h2.4v4.8z",clipRule:"evenodd"})),Vr||(Vr=l.createElement("path",{fill:"#02bf6f",fillRule:"evenodd",d:"M17.78 16.1a1.2 1.2 0 0 1-.28 1.68l-8.4 6a1.2 1.2 0 0 1-1.4-1.96l8.4-6a1.2 1.2 0 0 1 1.68.28M12 6a3.6 3.6 0 1 0 0 7.2A3.6 3.6 0 0 0 12 6M6 9.6a6 6 0 1 1 12 0 6 6 0 0 1-12 0",clipRule:"evenodd"})),Hr||(Hr=l.createElement("path",{fill:"#02bf6f",fillRule:"evenodd",d:"M7.2 11.56 15.03 6l1.39 1.96-7.83 5.56z",clipRule:"evenodd"})))},Qr=e.memo($r);function Xr(){return Xr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Xr.apply(null,arguments)}var Yr,Zr=function(e){return l.createElement("svg",Xr({fill:"currentColor","aria-hidden":"true","data-icon":"check",viewBox:"64 64 896 896",width:"1em",height:"1em"},e),Gr||(Gr=l.createElement("path",{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8"})))},Jr=e.memo(Zr);function eo(){return eo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},eo.apply(null,arguments)}var to,no=function(e){return l.createElement("svg",eo({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Yr||(Yr=l.createElement("path",{fill:"#2c3336",d:"m10.58 14.15-2.32-2.33a.7.7 0 0 0-.52-.2.7.7 0 0 0-.54.2.7.7 0 0 0-.21.53q0 .31.21.53l2.75 2.74a1 1 0 0 0 .63.27q.36 0 .63-.27l5.57-5.56a.7.7 0 0 0 .2-.52.7.7 0 0 0-.2-.54.7.7 0 0 0-.53-.21.7.7 0 0 0-.53.21zM12 21.5a9 9 0 0 1-3.7-.75 10 10 0 0 1-3.02-2.03 10 10 0 0 1-2.03-3.01A9 9 0 0 1 2.5 12q0-1.98.75-3.71a10 10 0 0 1 2.03-3.02 10 10 0 0 1 3.01-2.03A9 9 0 0 1 12 2.5q1.98 0 3.71.75a10 10 0 0 1 3.02 2.03 10 10 0 0 1 2.03 3.01 9 9 0 0 1 .75 3.7q0 1.98-.75 3.71a10 10 0 0 1-2.03 3.02 10 10 0 0 1-3.01 2.03 9 9 0 0 1-3.7.75"})))},ro=e.memo(no);function oo(){return oo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},oo.apply(null,arguments)}var ao,io=function(e){return l.createElement("svg",oo({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),to||(to=l.createElement("path",{fill:"#2c3336",d:"M23.94 12A11.63 11.63 0 1 1 .69 12a11.63 11.63 0 0 1 23.25 0m-12.97 6.16 8.62-8.63a.75.75 0 0 0 0-1.06l-1.06-1.06a.75.75 0 0 0-1.06 0l-7.03 7.03-3.29-3.28a.75.75 0 0 0-1.06 0l-1.06 1.06a.75.75 0 0 0 0 1.06l4.88 4.88a.75.75 0 0 0 1.06 0"})))},lo=e.memo(io);function so(){return so=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},so.apply(null,arguments)}var co,uo=function(e){return l.createElement("svg",so({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),ao||(ao=l.createElement("path",{fill:"#02bf6f",d:"m10.6 13.4-2.15-2.15a1 1 0 0 0-.7-.28 1 1 0 0 0-.7.28 1 1 0 0 0-.28.7q0 .43.28.7L9.9 15.5q.3.3.7.3t.7-.3l5.65-5.65a1 1 0 0 0 .28-.7 1 1 0 0 0-.28-.7 1 1 0 0 0-.7-.27 1 1 0 0 0-.7.27zM5 21q-.82 0-1.41-.59A2 2 0 0 1 3 19V5q0-.82.59-1.41A2 2 0 0 1 5 3h14q.82 0 1.41.59T21 5v14q0 .82-.59 1.41A2 2 0 0 1 19 21z"})))},mo=e.memo(uo);function po(){return po=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},po.apply(null,arguments)}var fo,ho=function(e){return l.createElement("svg",po({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),co||(co=l.createElement("path",{fill:"#02bf6f",d:"M13 11.6V8a1 1 0 0 0-.29-.71A1 1 0 0 0 12 7a1 1 0 0 0-.71.29A1 1 0 0 0 11 8v3.98q0 .2.08.38.07.19.22.34l3.3 3.3a1 1 0 0 0 .7.28A1 1 0 0 0 16 16a1 1 0 0 0 .28-.7 1 1 0 0 0-.28-.7zM12 22a10 10 0 0 1-3.9-.79 10 10 0 0 1-3.17-2.14q-1.35-1.35-2.14-3.17A10 10 0 0 1 2 12q0-2.08.79-3.9a10 10 0 0 1 2.14-3.17Q6.28 3.58 8.1 2.78A10 10 0 0 1 12 2q2.08 0 3.9.79a10 10 0 0 1 3.18 2.14q1.35 1.35 2.13 3.17A10 10 0 0 1 22 12a10 10 0 0 1-.79 3.9 10 10 0 0 1-2.14 3.18q-1.35 1.35-3.17 2.13A10 10 0 0 1 12 22m0-2q3.33 0 5.66-2.34T20 12t-2.34-5.66T12 4 6.34 6.34 4 12t2.34 5.66T12 20"})))},vo=e.memo(ho);function go(){return go=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},go.apply(null,arguments)}var wo,bo=function(e){return l.createElement("svg",go({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),fo||(fo=l.createElement("path",{d:"M12 10.88V6.42c0-1 1.21-1.5 1.92-.8l1.3 1.3 5.26-5.26a.56.56 0 0 1 .8 0l1.06 1.06c.22.22.22.58 0 .8l-5.26 5.26 1.3 1.3c.7.7.2 1.92-.8 1.92h-4.45A1.13 1.13 0 0 1 12 10.88M3.52 22.34l5.26-5.26 1.3 1.3c.7.7 1.92.2 1.92-.8v-4.45c0-.63-.5-1.13-1.12-1.13H6.42c-1 0-1.5 1.21-.8 1.92l1.3 1.3-5.26 5.26a.56.56 0 0 0 0 .8l1.06 1.06c.22.22.58.22.8 0"})))},yo=e.memo(bo);function _o(){return _o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_o.apply(null,arguments)}var xo,Eo,Co=function(e){return l.createElement("svg",_o({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),wo||(wo=l.createElement("path",{fill:"#2c3336",d:"M21.84 3.1 19.41.65A2.3 2.3 0 0 0 17.8 0H9.76A2.25 2.25 0 0 0 7.5 2.25V4.5H3.75A2.25 2.25 0 0 0 1.5 6.75v15A2.25 2.25 0 0 0 3.75 24h10.5a2.25 2.25 0 0 0 2.25-2.25V19.5h3.75a2.25 2.25 0 0 0 2.25-2.25V4.68a2.3 2.3 0 0 0-.66-1.59M18 1.52q.2.06.35.2l2.43 2.43a1 1 0 0 1 .2.35H18zm-3 20.23a.75.75 0 0 1-.75.75H3.75a.75.75 0 0 1-.75-.75v-15A.75.75 0 0 1 3.75 6H7.5v11.25a2.25 2.25 0 0 0 2.25 2.25H15zm6-4.5a.75.75 0 0 1-.75.75H9.75a.75.75 0 0 1-.75-.75v-15a.75.75 0 0 1 .75-.75h6.75v3.38c0 .61.5 1.12 1.13 1.12H21z"})))},Oo=e.memo(Co);function Mo(){return Mo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Mo.apply(null,arguments)}var Ao,So,jo=function(e){return l.createElement("svg",Mo({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:25,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},xo||(xo=l.createElement("path",{fill:"#d9d9d9",d:"M.5 0h24v24H.5z"}))),Eo||(Eo=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#02bf6f",d:"M14.5 21a1 1 0 0 1-.71-.29 1 1 0 0 1-.29-.71q0-.42.29-.71a1 1 0 0 1 .71-.29q1.18 0 2.09-.46t.91-1.04q0-.35-.32-.65t-.9-.55l1.47-1.47q.8.47 1.28 1.12.47.65.47 1.55 0 1.65-1.57 2.58a6.6 6.6 0 0 1-3.43.92m-9.43-7.65q-.72-.42-1.15-.99T3.5 11q0-1.05.78-1.76.77-.72 2.77-1.59 1.57-.72 2.01-1.01T9.5 6q0-.4-.49-.7T7.5 5q-.62 0-1.05.15t-.77.5a1 1 0 0 1-.68.32 1 1 0 0 1-.72-.22 1 1 0 0 1-.38-.65 1 1 0 0 1 .23-.72q.47-.58 1.36-.98T7.5 3q1.8 0 2.9.81T11.5 6q0 .98-.72 1.75-.73.78-2.93 1.73-1.45.62-1.9.92t-.45.6q0 .23.29.44t.79.41zm14.28-2.95L15.1 6.15l1.05-1.05q.6-.6 1.44-.6.83 0 1.41.6l1.4 1.4q.6.57.6 1.41t-.6 1.44zM6.5 19h1.4l7.2-7.2-1.4-1.4-7.2 7.2zM5 21a.5.5 0 0 1-.35-.15.5.5 0 0 1-.15-.35v-3.55q0-.05.15-.35l9.05-9.05 4.25 4.25-9.05 9.05q-.05.05-.35.15z"}))))},Po=e.memo(jo);function qo(){return qo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},qo.apply(null,arguments)}var To,No=function(e){return l.createElement("svg",qo({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},Ao||(Ao=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),So||(So=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#2c3336",d:"M7.3 20.5q-.75 0-1.27-.52a1.8 1.8 0 0 1-.53-1.29V6h-.25a.7.7 0 0 1-.53-.21.7.7 0 0 1-.22-.54.7.7 0 0 1 .22-.53.7.7 0 0 1 .53-.22H9a.8.8 0 0 1 .26-.63 1 1 0 0 1 .64-.25h4.2q.37 0 .64.25a.8.8 0 0 1 .26.63h3.75a.7.7 0 0 1 .54.22.7.7 0 0 1 .21.53.7.7 0 0 1-.21.54.7.7 0 0 1-.54.21h-.25v12.7q0 .75-.52 1.28t-1.29.52zM7 6v12.7a.3.3 0 0 0 .09.21.3.3 0 0 0 .22.09h9.38a.3.3 0 0 0 .22-.09.3.3 0 0 0 .09-.22V6zm2.4 10.25a.7.7 0 0 0 .22.54.7.7 0 0 0 .53.21.7.7 0 0 0 .54-.21.7.7 0 0 0 .21-.54v-7.5a.7.7 0 0 0-.21-.53.7.7 0 0 0-.54-.22.7.7 0 0 0-.53.22.7.7 0 0 0-.22.53zm3.7 0q0 .32.21.54a.7.7 0 0 0 .54.21.7.7 0 0 0 .53-.21.7.7 0 0 0 .22-.54v-7.5a.7.7 0 0 0-.22-.53.7.7 0 0 0-.53-.22.7.7 0 0 0-.54.22.7.7 0 0 0-.21.53zM7 6v12.7a.3.3 0 0 0 .09.21.3.3 0 0 0 .22.09H7z"}))))},ko=e.memo(No);function Ro(){return Ro=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ro.apply(null,arguments)}var Do,Io=function(e){return l.createElement("svg",Ro({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),To||(To=l.createElement("path",{fill:"#838b97",d:"M6 14q-.82 0-1.41-.59A2 2 0 0 1 4 12q0-.82.59-1.41A2 2 0 0 1 6 10q.82 0 1.41.59T8 12t-.59 1.41A2 2 0 0 1 6 14m6 0q-.82 0-1.41-.59A2 2 0 0 1 10 12q0-.82.59-1.41A2 2 0 0 1 12 10q.83 0 1.41.59.59.59.59 1.41t-.59 1.41A2 2 0 0 1 12 14m6 0q-.82 0-1.41-.59A2 2 0 0 1 16 12q0-.82.59-1.41A2 2 0 0 1 18 10q.82 0 1.41.59T20 12t-.59 1.41A2 2 0 0 1 18 14"})))},Lo=e.memo(Io);function Bo(){return Bo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Bo.apply(null,arguments)}var Fo,zo=function(e){return l.createElement("svg",Bo({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Do||(Do=l.createElement("path",{fill:"#2c3336",d:"M22 13.33h-3.84l1.92-1.92A2 2 0 0 0 18.68 8H16V3.33a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2V8H5.34a2 2 0 0 0-1.41 3.41l1.91 1.92H2a2 2 0 0 0-2 2v5.34a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2v-5.34a2 2 0 0 0-2-2M5.33 10H10V3.33h4V10h4.67L12 16.67zM22 20.67H2v-5.34h5.84l2.74 2.75a2 2 0 0 0 2.83 0l2.75-2.75H22zM18.33 18a1 1 0 1 1 2 0c0 .55-.44 1-1 1s-1-.45-1-1"})))},Vo=e.memo(zo);function Ho(){return Ho=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ho.apply(null,arguments)}var Uo,Wo,Ko=function(e){return l.createElement("svg",Ho({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Fo||(Fo=l.createElement("path",{fill:"#1c1b1f",d:"M4 21a1 1 0 0 1-.71-.29A1 1 0 0 1 3 20v-2.42a2 2 0 0 1 .57-1.4L16.2 3.58q.3-.28.66-.43t.77-.15.77.15.65.45L20.43 5q.3.28.43.65a2.2 2.2 0 0 1 0 1.51 2 2 0 0 1-.43.67l-12.6 12.6a2 2 0 0 1-1.4.57zM17.6 7.8 19 6.4 17.6 5l-1.4 1.4z"})))},Go=e.memo(Ko);function $o(){return $o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$o.apply(null,arguments)}var Qo,Xo,Yo=function(e){return l.createElement("svg",$o({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 20 20",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},Uo||(Uo=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h20v20H0z"}))),Wo||(Wo=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#f19241",d:"m9.17 12.08-4.94-.62q-.52-.06-.68-.56-.15-.5.22-.86l8.52-8.16a1 1 0 0 1 .25-.16q.15-.05.4-.05.41 0 .63.35t.01.73l-2.75 5.17 4.94.62q.52.06.68.56.15.5-.22.86L7.7 18.12a1 1 0 0 1-.25.16q-.15.05-.4.05a.7.7 0 0 1-.63-.35.7.7 0 0 1-.01-.73z"}))))},Zo=e.memo(Yo);function Jo(){return Jo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Jo.apply(null,arguments)}var ea,ta,na=function(e){return l.createElement("svg",Jo({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 32 32",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:32,height:32,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},Qo||(Qo=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h32v32H0z"}))),Xo||(Xo=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#11b06e",d:"M5.33 26.67a2.6 2.6 0 0 1-1.88-.79A2.6 2.6 0 0 1 2.67 24V8q0-1.1.78-1.88a2.6 2.6 0 0 1 1.88-.79h21.34q1.1 0 1.88.79.78.78.78 1.88v16q0 1.1-.78 1.88a2.6 2.6 0 0 1-1.88.79zm0-2.67h21.34V8H5.33zM8 22.67h16q.57 0 .95-.39a1.3 1.3 0 0 0 .38-.95 1.3 1.3 0 0 0-.38-.95A1.3 1.3 0 0 0 24 20H8a1.3 1.3 0 0 0-.95.38 1.3 1.3 0 0 0-.38.95q0 .57.38.95.38.39.95.39m0-5.34h16q.57 0 .95-.38a1.3 1.3 0 0 0 .38-.95 1.3 1.3 0 0 0-.38-.95 1.3 1.3 0 0 0-.95-.38H8a1.3 1.3 0 0 0-.95.38 1.3 1.3 0 0 0-.38.95q0 .57.38.95t.95.38M8 12h10.67q.56 0 .95-.38a1.3 1.3 0 0 0 .38-.95 1.3 1.3 0 0 0-.38-.95 1.3 1.3 0 0 0-.95-.39H8a1.3 1.3 0 0 0-.95.39 1.3 1.3 0 0 0-.38.95q0 .56.38.95T8 12"}))))},ra=e.memo(na);function oa(){return oa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},oa.apply(null,arguments)}var aa,ia=function(e){return l.createElement("svg",oa({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},ea||(ea=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),ta||(ta=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#6c737a",d:"M5 22q-.82 0-1.41-.59A2 2 0 0 1 3 20V6q0-.82.59-1.41A2 2 0 0 1 5 4h1V3q0-.42.29-.71A1 1 0 0 1 7 2q.42 0 .71.29T8 3v1h8V3q0-.42.29-.71A1 1 0 0 1 17 2q.42 0 .71.29T18 3v1h1q.82 0 1.41.59T21 6v5q0 .42-.29.71A1 1 0 0 1 20 12a1 1 0 0 1-.71-.29A1 1 0 0 1 19 11v-1H5v10h6q.42 0 .71.29T12 21t-.29.71A1 1 0 0 1 11 22zm14 2q-1.6 0-2.86-.89a5 5 0 0 1-1.82-2.31.5.5 0 0 1 .07-.54.6.6 0 0 1 .49-.26q.35 0 .63.21t.47.54a3.4 3.4 0 0 0 1.25 1.27 3.4 3.4 0 0 0 1.77.48q1.45 0 2.48-1.02A3.4 3.4 0 0 0 22.5 19q0-1.45-1.02-2.47A3.4 3.4 0 0 0 19 15.5a3.4 3.4 0 0 0-2.45 1h.7a.73.73 0 0 1 .75.75.73.73 0 0 1-.75.75H15a1 1 0 0 1-.71-.29A1 1 0 0 1 14 17v-2.25a.73.73 0 0 1 .75-.75.73.73 0 0 1 .75.75v.68q.68-.65 1.58-1.04A5 5 0 0 1 19 14q2.08 0 3.54 1.46T24 19t-1.46 3.54T19 24M5 8h14V6H5z"}))))},la=e.memo(ia);function sa(){return sa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},sa.apply(null,arguments)}var ca,ua=function(e){return l.createElement("svg",sa({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),aa||(aa=l.createElement("path",{fill:"#edc121",d:"M23.63 12A11.62 11.62 0 1 1 .38 12a11.62 11.62 0 0 1 23.25 0M12 14.34a2.16 2.16 0 1 0 0 4.32 2.16 2.16 0 0 0 0-4.32M9.95 6.6l.35 6.38a.56.56 0 0 0 .56.53h2.28a.56.56 0 0 0 .56-.53l.35-6.38a.56.56 0 0 0-.57-.59h-2.97a.56.56 0 0 0-.56.6"})))},da=e.memo(ua);function ma(){return ma=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ma.apply(null,arguments)}var pa,fa=function(e){return l.createElement("svg",ma({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),ca||(ca=l.createElement("path",{d:"M22.5 2.63v4.45c0 1-1.21 1.5-1.92.8l-1.3-1.3-5.03 5.02a.56.56 0 0 1-.8 0l-1.05-1.06a.56.56 0 0 1 0-.8l5.02-5.02-1.3-1.3c-.7-.7-.2-1.92.8-1.92h4.45c.63 0 1.13.5 1.13 1.13M9.75 12.4l-5.03 5.03-1.3-1.3a1.12 1.12 0 0 0-1.92.8v4.45c0 .62.5 1.12 1.13 1.12h4.45c1 0 1.5-1.21.8-1.92l-1.3-1.3 5.02-5.03a.56.56 0 0 0 0-.8l-1.06-1.05a.56.56 0 0 0-.8 0"})))},ha=e.memo(fa);function va(){return va=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},va.apply(null,arguments)}var ga,wa,ba=function(e){return l.createElement("svg",va({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 12 12",width:"1em",height:"1em"},e),pa||(pa=l.createElement("path",{fill:"#02bf6f",d:"M12 .8v3.4a.3.3 0 0 1-.3.3H11a.3.3 0 0 1-.3-.3l.06-1.54-.04-.04-5.81 5.8a.25.25 0 0 1-.36 0l-.48-.47a.25.25 0 0 1 0-.36l5.81-5.8-.04-.05-1.53.06A.3.3 0 0 1 8 1.5V.8a.3.3 0 0 1 .3-.3h3.4a.3.3 0 0 1 .3.3M8.9 5.37l-.5.5a.3.3 0 0 0-.07.18v4a.13.13 0 0 1-.12.12H1.12a.13.13 0 0 1-.12-.13V2.96a.13.13 0 0 1 .13-.13h6.29a.25.25 0 0 0 .17-.42l-.5-.5a.3.3 0 0 0-.17-.08H1a1 1 0 0 0-1 1v7.34a1 1 0 0 0 1 1h7.33a1 1 0 0 0 1-1V5.55a.25.25 0 0 0-.42-.18"})))},ya=e.memo(ba);function _a(){return _a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_a.apply(null,arguments)}var xa,Ea=function(e){return l.createElement("svg",_a({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),ga||(ga=l.createElement("g",{clipPath:"url(#a)"},l.createElement("circle",{cx:12.125,cy:12.005,r:11.625,fill:"#fff"}),l.createElement("path",{fill:"#9fa6ad",d:"M12.13.38a11.63 11.63 0 1 0 0 23.25 11.63 11.63 0 0 0 0-23.25m0 20.25A8.6 8.6 0 0 1 3.5 12a8.6 8.6 0 0 1 8.63-8.62A8.6 8.6 0 0 1 20.74 12a8.6 8.6 0 0 1-8.62 8.63m0-14.63a6 6 0 1 0 0 12 6 6 0 0 0 0-12m0 9a3 3 0 1 1 0-6 3 3 0 0 1 0 6"}))),wa||(wa=l.createElement("defs",null,l.createElement("clipPath",{id:"a"},l.createElement("path",{fill:"#fff",d:"M0 0h24v24H0z"})))))},Ca=e.memo(Ea);function Oa(){return Oa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Oa.apply(null,arguments)}var Ma,Aa=function(e){return l.createElement("svg",Oa({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),xa||(xa=l.createElement("path",{fill:"#2c3336",d:"M16.5 11.63v1.3c0 .32-.25.57-.56.57H8.06a.56.56 0 0 1-.56-.56v-1.31c0-.32.25-.57.56-.57h7.88c.3 0 .56.26.56.57M15.94 15H8.06a.56.56 0 0 0-.56.56v1.32c0 .3.25.56.56.56h7.88c.3 0 .56-.26.56-.57v-1.3a.56.56 0 0 0-.56-.57M21 6.18v15.57A2.25 2.25 0 0 1 18.75 24H5.25A2.25 2.25 0 0 1 3 21.75V2.25A2.25 2.25 0 0 1 5.25 0h9.57c.6 0 1.16.24 1.59.66l3.93 3.93c.42.42.66 1 .66 1.6m-6-3.76V6h3.57zm3.75 19.32V8.25h-4.87a1.1 1.1 0 0 1-1.13-1.12V2.25h-7.5v19.5z"})))},Sa=e.memo(Aa);function ja(){return ja=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ja.apply(null,arguments)}var Pa,qa=function(e){return l.createElement("svg",ja({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Ma||(Ma=l.createElement("path",{fill:"#1c1b1f",d:"M11 18a1 1 0 0 1-.71-.29A1 1 0 0 1 10 17q0-.42.29-.71A1 1 0 0 1 11 16h2q.42 0 .71.29T14 17t-.29.71A1 1 0 0 1 13 18zm-4-5a1 1 0 0 1-.71-.29A1 1 0 0 1 6 12q0-.42.29-.71A1 1 0 0 1 7 11h10q.42 0 .71.29T18 12t-.29.71A1 1 0 0 1 17 13zM4 8a1 1 0 0 1-.71-.29A1 1 0 0 1 3 7q0-.42.29-.71A1 1 0 0 1 4 6h16q.42 0 .71.29T21 7t-.29.71A1 1 0 0 1 20 8z"})))},Ta=e.memo(qa);function Na(){return Na=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Na.apply(null,arguments)}var ka,Ra=function(e){return l.createElement("svg",Na({viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Pa||(Pa=l.createElement("path",{d:"M20 5h-3.17L15 3H9L7.17 5H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-8 13a5 5 0 0 1-5-5H5l2.5-2.5L10 13H8a4 4 0 0 0 5.62 3.65l.74.74c-.71.37-1.5.61-2.36.61m4.5-2.5L14 13h2a4 4 0 0 0-5.62-3.65l-.74-.73A4.97 4.97 0 0 1 17 13h2z"})))},Da=e.memo(Ra);function Ia(){return Ia=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ia.apply(null,arguments)}var La,Ba,Fa=function(e){return l.createElement("svg",Ia({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),ka||(ka=l.createElement("path",{d:"m22.85 14.8-2-1.16a9 9 0 0 0 0-3.29l2-1.15a.6.6 0 0 0 .25-.66 12 12 0 0 0-2.56-4.43.56.56 0 0 0-.7-.1l-2 1.15A9 9 0 0 0 15 3.5V1.2a.56.56 0 0 0-.44-.55 12 12 0 0 0-5.12 0A.56.56 0 0 0 9 1.2v2.3a9 9 0 0 0-2.85 1.65L4.15 4a.56.56 0 0 0-.69.1A12 12 0 0 0 .9 8.56a.56.56 0 0 0 .26.66l2 1.15a9 9 0 0 0 0 3.29l-2 1.15a.6.6 0 0 0-.26.66 12 12 0 0 0 2.56 4.43.56.56 0 0 0 .7.11l2-1.15A9 9 0 0 0 9 20.49v2.31c0 .26.18.5.44.55 1.72.38 3.48.36 5.12 0a.56.56 0 0 0 .44-.55v-2.3a9 9 0 0 0 2.85-1.65l2 1.15c.22.13.5.1.69-.1a12 12 0 0 0 2.56-4.44.6.6 0 0 0-.26-.66ZM12 15.75A3.76 3.76 0 0 1 8.25 12 3.76 3.76 0 0 1 12 8.25 3.76 3.76 0 0 1 15.75 12 3.76 3.76 0 0 1 12 15.75"})))},za=e.memo(Fa);function Va(){return Va=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Va.apply(null,arguments)}var Ha,Ua=function(e){return l.createElement("svg",Va({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},La||(La=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),Ba||(Ba=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#1c1b1f",d:"M11.95 18q.53 0 .89-.36.36-.37.36-.89c0-.52-.12-.65-.36-.89a1.2 1.2 0 0 0-.89-.36 1.2 1.2 0 0 0-.89.36 1.2 1.2 0 0 0-.36.89q0 .53.36.89t.89.36m.05 4a10 10 0 0 1-3.9-.79 10 10 0 0 1-3.17-2.14q-1.35-1.35-2.14-3.17A10 10 0 0 1 2 12a10 10 0 0 1 .79-3.9 10 10 0 0 1 2.14-3.17Q6.28 3.58 8.1 2.78A10 10 0 0 1 12 2a10 10 0 0 1 3.9.79 10 10 0 0 1 3.18 2.14q1.35 1.35 2.13 3.17A10 10 0 0 1 22 12a10 10 0 0 1-.79 3.9 10 10 0 0 1-2.14 3.18q-1.35 1.35-3.17 2.13A10 10 0 0 1 12 22m0-2q3.35 0 5.68-2.33T20 12t-2.33-5.67T12 4 6.33 6.33 4 12t2.33 5.68T12 20m.1-12.3q.63 0 1.09.4t.46 1q0 .55-.34.98t-.76.8a7 7 0 0 0-1.01 1.1q-.44.6-.44 1.34 0 .35.26.6a1 1 0 0 0 .62.23 1 1 0 0 0 .63-.25q.27-.25.34-.63a2 2 0 0 1 .45-.93q.35-.42.75-.79.57-.55.99-1.2a2.7 2.7 0 0 0 .41-1.45q0-1.28-1.04-2.09Q13.48 6 12.1 6a4 4 0 0 0-1.81.4 2.8 2.8 0 0 0-1.32 1.23 1 1 0 0 0-.1.63.7.7 0 0 0 .33.52q.35.2.73.12a1 1 0 0 0 .62-.42q.27-.38.69-.58t.86-.2"}))))},Wa=e.memo(Ua);function Ka(){return Ka=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ka.apply(null,arguments)}var Ga,$a=function(e){return l.createElement("svg",Ka({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Ha||(Ha=l.createElement("path",{fill:"#1c1b1f",d:"M11.95 18q.53 0 .89-.36.36-.37.36-.89t-.36-.89a1.2 1.2 0 0 0-.89-.36q-.52 0-.89.36a1.2 1.2 0 0 0-.36.89q0 .53.36.89t.89.36m-.9-3.85h1.85q0-.82.19-1.3t1.06-1.3a8 8 0 0 0 1.02-1.24q.38-.59.38-1.41 0-1.4-1.03-2.15T12.1 6q-1.42 0-2.31.75t-1.24 1.8l1.65.65q.12-.45.56-.97.44-.53 1.34-.53.8 0 1.2.44.4.43.4.96 0 .5-.3.94t-.75.81q-1.1.98-1.35 1.48t-.25 1.82M12 22a10 10 0 0 1-3.9-.79 10 10 0 0 1-3.17-2.14q-1.35-1.35-2.14-3.17A10 10 0 0 1 2 12q0-2.08.79-3.9a10 10 0 0 1 2.14-3.17Q6.28 3.58 8.1 2.78A10 10 0 0 1 12 2q2.08 0 3.9.79a10 10 0 0 1 3.18 2.14q1.35 1.35 2.13 3.17A10 10 0 0 1 22 12a10 10 0 0 1-.79 3.9 10 10 0 0 1-2.14 3.18q-1.35 1.35-3.17 2.13A10 10 0 0 1 12 22"})))},Qa=e.memo($a);function Xa(){return Xa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Xa.apply(null,arguments)}var Ya,Za,Ja=function(e){return l.createElement("svg",Xa({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Ga||(Ga=l.createElement("path",{fill:"#2c3336",d:"M12 17q.42 0 .71-.29A1 1 0 0 0 13 16v-4a1 1 0 0 0-.29-.71A1 1 0 0 0 12 11a1 1 0 0 0-.71.29A1 1 0 0 0 11 12v4q0 .42.29.71T12 17m0-8q.42 0 .71-.29A1 1 0 0 0 13 8a1 1 0 0 0-.29-.71A1 1 0 0 0 12 7a1 1 0 0 0-.71.29A1 1 0 0 0 11 8q0 .42.29.71T12 9m0 13a10 10 0 0 1-3.9-.79 10 10 0 0 1-3.17-2.14q-1.35-1.35-2.14-3.17A10 10 0 0 1 2 12q0-2.08.79-3.9a10 10 0 0 1 2.14-3.17Q6.28 3.58 8.1 2.78A10 10 0 0 1 12 2q2.08 0 3.9.79a10 10 0 0 1 3.18 2.14q1.35 1.35 2.13 3.17A10 10 0 0 1 22 12a10 10 0 0 1-.79 3.9 10 10 0 0 1-2.14 3.18q-1.35 1.35-3.17 2.13A10 10 0 0 1 12 22m0-2q3.35 0 5.68-2.33T20 12t-2.33-5.67T12 4 6.33 6.33 4 12t2.33 5.68T12 20"})))},ei=e.memo(Ja);function ti(){return ti=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ti.apply(null,arguments)}var ni,ri=function(e){return l.createElement("svg",ti({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},Ya||(Ya=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),Za||(Za=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#2c3336",d:"M12 17a1 1 0 0 0 .71-.29A1 1 0 0 0 13 16v-4a1 1 0 0 0-.29-.71A1 1 0 0 0 12 11a1 1 0 0 0-.71.29A1 1 0 0 0 11 12v4q0 .42.29.71T12 17m0-8q.42 0 .71-.29A1 1 0 0 0 13 8a1 1 0 0 0-.29-.71A1 1 0 0 0 12 7a1 1 0 0 0-.71.29A1 1 0 0 0 11 8q0 .42.29.71T12 9m0 13a10 10 0 0 1-3.9-.79 10 10 0 0 1-3.17-2.14q-1.35-1.35-2.14-3.17A10 10 0 0 1 2 12a10 10 0 0 1 .79-3.9 10 10 0 0 1 2.14-3.17Q6.28 3.58 8.1 2.78A10 10 0 0 1 12 2a10 10 0 0 1 3.9.79 10 10 0 0 1 3.18 2.14q1.35 1.35 2.13 3.17A10 10 0 0 1 22 12a10 10 0 0 1-.79 3.9 10 10 0 0 1-2.14 3.18q-1.35 1.35-3.17 2.13A10 10 0 0 1 12 22"}))))},oi=e.memo(ri);function ai(){return ai=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ai.apply(null,arguments)}var ii,li=function(e){return l.createElement("svg",ai({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),ni||(ni=l.createElement("path",{fill:"#2c3336",d:"M12 1.88c5.56 0 10.13 4.5 10.13 10.12A10.12 10.12 0 1 1 12 1.88m-.01-1.5a11.63 11.63 0 1 0 0 23.25A11.63 11.63 0 0 0 12 .38M10.31 16.5h.57v-5.62h-.57a.56.56 0 0 1-.56-.57v-.37c0-.31.25-.56.56-.56h2.25c.31 0 .57.25.57.56v6.56h.56c.3 0 .56.25.56.56v.38c0 .3-.25.56-.56.56H10.3a.56.56 0 0 1-.56-.56v-.38c0-.3.25-.56.56-.56M12 5.25a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3"})))},si=e.memo(li);function ci(){return ci=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ci.apply(null,arguments)}var ui,di=function(e){return l.createElement("svg",ci({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),ii||(ii=l.createElement("path",{fill:"#2c3336",d:"M12 .38a11.63 11.63 0 1 0 0 23.25A11.63 11.63 0 0 0 12 .38m0 5.15a1.97 1.97 0 1 1 0 3.94 1.97 1.97 0 0 1 0-3.94m2.63 11.9c0 .32-.26.57-.57.57H9.94a.56.56 0 0 1-.57-.56V16.3c0-.3.26-.56.57-.56h.56v-3h-.56a.56.56 0 0 1-.57-.56v-1.13c0-.3.26-.56.57-.56h3c.3 0 .56.25.56.56v4.69h.56c.31 0 .56.25.56.56z"})))},mi=e.memo(di);function pi(){return pi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},pi.apply(null,arguments)}var fi,hi,vi=function(e){return l.createElement("svg",pi({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),ui||(ui=l.createElement("path",{fill:"#5d676b",d:"M5 11q-.61 0-1.06-.44A1.4 1.4 0 0 1 3.5 9.5V5q0-.61.44-1.06A1.4 1.4 0 0 1 5 3.5h4.5q.61 0 1.06.44Q11 4.4 11 5v4.5q0 .61-.44 1.06A1.4 1.4 0 0 1 9.5 11zm0 9.5q-.61 0-1.06-.44A1.4 1.4 0 0 1 3.5 19v-4.5q0-.61.44-1.06A1.4 1.4 0 0 1 5 13h4.5q.61 0 1.06.44.44.45.44 1.06V19q0 .61-.44 1.06a1.4 1.4 0 0 1-1.06.44zm9.5-9.5q-.61 0-1.06-.44A1.4 1.4 0 0 1 13 9.5V5q0-.61.44-1.06a1.4 1.4 0 0 1 1.06-.44H19q.61 0 1.06.44.44.45.44 1.06v4.5q0 .61-.44 1.06A1.4 1.4 0 0 1 19 11zm0 9.5q-.61 0-1.06-.44A1.4 1.4 0 0 1 13 19v-4.5q0-.61.44-1.06A1.4 1.4 0 0 1 14.5 13H19q.61 0 1.06.44.44.45.44 1.06V19q0 .61-.44 1.06a1.4 1.4 0 0 1-1.06.44zM5 9.5h4.5V5H5zm9.5 0H19V5h-4.5zm0 9.5H19v-4.5h-4.5zM5 19h4.5v-4.5H5z"})))},gi=e.memo(vi);function wi(){return wi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},wi.apply(null,arguments)}var bi,yi=function(e){return l.createElement("svg",wi({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},fi||(fi=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),hi||(hi=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#2c3336",d:"M12 14.68a1 1 0 0 1-.34-.07 1 1 0 0 1-.3-.19l-4.49-4.5a.7.7 0 0 1-.21-.52q0-.31.21-.53a.7.7 0 0 1 .53-.21q.31 0 .53.21L12 12.95l4.07-4.08a.7.7 0 0 1 .53-.21q.31 0 .53.21t.21.53a.7.7 0 0 1-.21.53l-4.5 4.5a.8.8 0 0 1-.63.25"}))))},_i=e.memo(yi);function xi(){return xi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xi.apply(null,arguments)}var Ei,Ci=function(e){return l.createElement("svg",xi({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),bi||(bi=l.createElement("path",{fill:"#5d676b",d:"M4.25 7a.7.7 0 0 1-.53-.22.7.7 0 0 1-.22-.53q0-.32.22-.53a.7.7 0 0 1 .53-.22h15.5q.32 0 .53.22a.7.7 0 0 1 .22.53q0 .32-.22.54a.7.7 0 0 1-.53.21zm0 11.5a.7.7 0 0 1-.53-.22.7.7 0 0 1-.22-.53q0-.32.22-.53a.7.7 0 0 1 .53-.22h15.5q.32 0 .53.22a.7.7 0 0 1 .22.53q0 .32-.22.54a.7.7 0 0 1-.53.21zm0-5.75a.7.7 0 0 1-.53-.22.7.7 0 0 1-.22-.53q0-.32.22-.53a.7.7 0 0 1 .53-.22h15.5q.32 0 .53.22a.7.7 0 0 1 .22.53q0 .32-.22.54a.7.7 0 0 1-.53.21z"})))},Oi=e.memo(Ci);function Mi(){return Mi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Mi.apply(null,arguments)}var Ai,Si=function(e){return l.createElement("svg",Mi({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Ei||(Ei=l.createElement("path",{fill:"#1c1b1f",d:"M12 19.35q3.05-2.8 4.53-5.09Q18 11.98 18 10.2q0-2.72-1.74-4.46Q14.53 4 12 4T7.74 5.74Q6 7.48 6 10.2q0 1.78 1.48 4.06 1.47 2.29 4.52 5.09m0 1.98a2 2 0 0 1-.7-.13 2 2 0 0 1-.62-.37A39 39 0 0 1 7.8 17.9q-1.25-1.42-2.09-2.76t-1.27-2.58T4 10.2q0-3.75 2.41-5.97T12 2t5.59 2.23T20 10.2q0 1.13-.44 2.36-.43 1.24-1.27 2.58a22 22 0 0 1-2.09 2.76 39 39 0 0 1-2.87 2.93 2 2 0 0 1-.63.37 2 2 0 0 1-.7.13M12 12q.83 0 1.41-.59.59-.58.59-1.41t-.59-1.41A2 2 0 0 0 12 8q-.82 0-1.41.59A2 2 0 0 0 10 10q0 .83.59 1.41.59.59 1.41.59"})))},ji=e.memo(Si);function Pi(){return Pi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Pi.apply(null,arguments)}var qi,Ti=function(e){return l.createElement("svg",Pi({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Ai||(Ai=l.createElement("path",{fill:"#2c3336",d:"M12 19.31A1.3 1.3 0 0 1 10.69 18v-3A1.3 1.3 0 0 1 12 13.69 1.3 1.3 0 0 1 13.31 15v3A1.3 1.3 0 0 1 12 19.31m10.5-8.06v10.5A2.25 2.25 0 0 1 20.25 24H3.75a2.25 2.25 0 0 1-2.25-2.25v-10.5A2.25 2.25 0 0 1 3.75 9h1.5V6.75A6.76 6.76 0 0 1 12.02 0a6.8 6.8 0 0 1 6.73 6.82V9h1.5a2.25 2.25 0 0 1 2.25 2.25M7.5 9h9V6.75a4.5 4.5 0 0 0-9 0zm12.75 2.25H3.75v10.5h16.5z"})))},Ni=e.memo(Ti);function ki(){return ki=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ki.apply(null,arguments)}var Ri,Di=function(e){return l.createElement("svg",ki({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),qi||(qi=l.createElement("path",{fill:"#02bf6f",d:"M23.34 3.58 20.42.66a2.24 2.24 0 0 0-3.18 0L.66 17.24a2.25 2.25 0 0 0 0 3.18l2.92 2.92a2.24 2.24 0 0 0 3.18 0L23.34 6.76c.88-.88.88-2.3 0-3.18M5.17 21.75l-2.92-2.92 10.5-10.5 2.91 2.92zM17.25 9.66l-2.91-2.91 4.5-4.5 2.91 2.92zm3 3.84L19 16l-2.5 1.25L19 18.5l1.25 2.5 1.25-2.5 2.5-1.25L21.5 16zm-9.75-9 .75-1.5 1.5-.75-1.5-.75L10.5 0l-.75 1.5-1.5.75 1.5.75zm-6.75 3L5 5l2.5-1.25L5 2.5 3.75 0 2.5 2.5 0 3.75 2.5 5z"})))},Ii=e.memo(Di);function Li(){return Li=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Li.apply(null,arguments)}var Bi,Fi,zi=function(e){return l.createElement("svg",Li({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Ri||(Ri=l.createElement("path",{fill:"#1c1b1f",d:"M4 20q-.82 0-1.41-.59A2 2 0 0 1 2 18V6q0-.82.59-1.41A2 2 0 0 1 4 4h16q.82 0 1.41.59T22 6v12q0 .82-.59 1.41A2 2 0 0 1 20 20zM20 8l-7.47 4.68a1 1 0 0 1-.53.15 1 1 0 0 1-.52-.15L4 8v10h16zm-8 3 8-5H4zM4 8.25V6.78v.02-.01z"})))},Vi=e.memo(zi);function Hi(){return Hi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Hi.apply(null,arguments)}var Ui,Wi,Ki=function(e){return l.createElement("svg",Hi({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},Bi||(Bi=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),Fi||(Fi=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#02bf6f",d:"m10.83 17.43-2.56 1.6a.5.5 0 0 1-.5 0 .5.5 0 0 1-.27-.43v-3.2q0-.3.26-.44a.5.5 0 0 1 .51.02l2.55 1.6q.25.15.25.42a.5.5 0 0 1-.25.43M13 10a3 3 0 0 1-2.12-.87A3 3 0 0 1 10 7q0-1.25.88-2.12A3 3 0 0 1 13 4h.5a.73.73 0 0 1 .75.75.73.73 0 0 1-.75.75H13q-.62 0-1.06.44A1.5 1.5 0 0 0 11.5 7q0 .62.44 1.06T13 8.5h.5a.73.73 0 0 1 .75.75.73.73 0 0 1-.75.75zm4 0h-.5a.73.73 0 0 1-.75-.75.73.73 0 0 1 .75-.75h.5q.63 0 1.06-.44T18.5 7t-.44-1.06A1.5 1.5 0 0 0 17 5.5h-.5a.73.73 0 0 1-.75-.75.73.73 0 0 1 .75-.75h.5q1.25 0 2.13.88T20 7t-.87 2.13A3 3 0 0 1 17 10m-.75-2.25h-2.5A.73.73 0 0 1 13 7a.73.73 0 0 1 .75-.75h2.5A.73.73 0 0 1 17 7a.73.73 0 0 1-.75.75M16.1 14v-2H21V3H9v9H7V3q0-.82.59-1.41A2 2 0 0 1 9 1h12q.82 0 1.41.59T23 3v9q0 .83-.59 1.41A2 2 0 0 1 21 14zM3 23q-.82 0-1.41-.59A2 2 0 0 1 1 21v-8q0-.82.59-1.41A2 2 0 0 1 3 11h12q.82 0 1.41.59T17 13v8q0 .82-.59 1.41A2 2 0 0 1 15 23zm0-2h12v-8H3z"}))))},Gi=e.memo(Ki);function $i(){return $i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$i.apply(null,arguments)}var Qi,Xi,Yi=function(e){return l.createElement("svg",$i({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},Ui||(Ui=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),Wi||(Wi=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"currentColor",d:"m17.24 14.18-1.1-1.12q.15-.3.28-.64t.18-.73a1 1 0 0 1 .26-.49q.21-.2.49-.2a.8.8 0 0 1 .57.24.6.6 0 0 1 .18.56q-.09.68-.31 1.27a7 7 0 0 1-.55 1.11m-3.22-3.25-4.88-4.9V5q0-1.05.73-1.77a2.4 2.4 0 0 1 1.77-.73q1.05 0 1.78.73T14.14 5v5.35q0 .17-.03.3zm5.32 10.26L2.2 4.05a.7.7 0 0 1-.2-.52.7.7 0 0 1 .2-.53.7.7 0 0 1 .53-.22q.31 0 .53.22l17.13 17.14q.21.2.22.52a.7.7 0 0 1-.22.53.7.7 0 0 1-.52.22.7.7 0 0 1-.53-.22M10.89 20v-2.54q-2.26-.26-3.85-1.85a6.3 6.3 0 0 1-1.85-3.81.6.6 0 0 1 .18-.56.8.8 0 0 1 .58-.24q.27 0 .47.2a1 1 0 0 1 .27.49q.25 1.82 1.65 3.07t3.3 1.24q.97 0 1.82-.34a5 5 0 0 0 1.5-.96l1.07 1.07a6 6 0 0 1-1.65 1.12 6 6 0 0 1-1.99.57V20a.7.7 0 0 1-.21.54.7.7 0 0 1-.54.21.7.7 0 0 1-.53-.21.7.7 0 0 1-.22-.54"}))))},Zi=e.memo(Yi);function Ji(){return Ji=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ji.apply(null,arguments)}var el,tl=function(e){return l.createElement("svg",Ji({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},Qi||(Qi=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),Xi||(Xi=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"currentColor",d:"m17.24 14.18-1.1-1.12q.15-.3.28-.64t.18-.73a1 1 0 0 1 .26-.49q.21-.2.49-.2a.8.8 0 0 1 .57.24.6.6 0 0 1 .18.56q-.09.68-.31 1.27a7 7 0 0 1-.55 1.11m-3.22-3.25-1.38-1.37V5a1 1 0 0 0-.28-.71 1 1 0 0 0-.72-.29 1 1 0 0 0-.7.29 1 1 0 0 0-.3.71v2.54l-1.5-1.5V5q0-1.05.73-1.77a2.4 2.4 0 0 1 1.77-.73q1.05 0 1.78.73T14.14 5v5.35q0 .17-.03.3zm5.32 10.26L2.2 4.05a.7.7 0 0 1-.2-.52.7.7 0 0 1 .2-.53.7.7 0 0 1 .53-.22q.31 0 .53.22l17.13 17.14q.21.2.22.52a.7.7 0 0 1-.22.53.7.7 0 0 1-.52.22.7.7 0 0 1-.53-.22M10.89 20v-2.55q-2.26-.26-3.85-1.85a6.3 6.3 0 0 1-1.85-3.8.6.6 0 0 1 .18-.56.8.8 0 0 1 .58-.24q.27 0 .47.2a1 1 0 0 1 .27.49q.25 1.83 1.65 3.07t3.3 1.24q.97 0 1.82-.34a5 5 0 0 0 1.5-.96l1.07 1.07a7 7 0 0 1-1.65 1.13 6 6 0 0 1-1.99.55V20a.7.7 0 0 1-.21.54.7.7 0 0 1-.54.21.7.7 0 0 1-.53-.21.7.7 0 0 1-.22-.54"}))))},nl=e.memo(tl);function rl(){return rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},rl.apply(null,arguments)}var ol,al,il=function(e){return l.createElement("svg",rl({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none"},e),el||(el=l.createElement("path",{fill:"#98a2b3",d:"M16.25 9a.75.75 0 0 1 .74.65l.01.1v.5a6.75 6.75 0 0 1-6.25 6.73v2.27a.75.75 0 0 1-1.5.1v-2.37A6.75 6.75 0 0 1 3 10.48v-.73a.75.75 0 0 1 1.5-.1v.6a5.25 5.25 0 0 0 5.03 5.25h.72a5.25 5.25 0 0 0 5.25-5.03v-.72a.75.75 0 0 1 .75-.75M10 0a4 4 0 0 1 4 4v6a4 4 0 0 1-8 0V4a4 4 0 0 1 4-4m0 1.5A2.5 2.5 0 0 0 7.5 4v6a2.5 2.5 0 0 0 5 0V4A2.5 2.5 0 0 0 10 1.5"})))},ll=e.memo(il);function sl(){return sl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},sl.apply(null,arguments)}var cl,ul=function(e){return l.createElement("svg",sl({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},ol||(ol=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),al||(al=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"currentColor",d:"M12 13.5q-1.05 0-1.77-.73A2.4 2.4 0 0 1 9.5 11V5q0-1.05.73-1.77A2.4 2.4 0 0 1 12 2.5q1.05 0 1.77.73.73.72.73 1.77v6q0 1.05-.73 1.77a2.4 2.4 0 0 1-1.77.73m0 7.25a.7.7 0 0 1-.53-.21.7.7 0 0 1-.22-.54v-2.54Q8.98 17.2 7.4 15.6a6.3 6.3 0 0 1-1.85-3.81.6.6 0 0 1 .17-.56.8.8 0 0 1 .59-.24q.26 0 .47.2a1 1 0 0 1 .26.49q.25 1.82 1.66 3.07T12 16t3.3-1.24 1.65-3.07a1 1 0 0 1 .27-.49q.21-.2.48-.2a.8.8 0 0 1 .58.24.6.6 0 0 1 .17.56 6.3 6.3 0 0 1-1.85 3.81q-1.58 1.59-3.85 1.85V20a.7.7 0 0 1-.22.54.7.7 0 0 1-.53.21"}))))},dl=e.memo(ul);function ml(){return ml=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ml.apply(null,arguments)}var pl,fl=function(e){return l.createElement("svg",ml({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",width:"1em",height:"1em"},e),cl||(cl=l.createElement("path",{d:"M7.22 19.99a2.1 2.1 0 0 1 1.48-2.05V15.9a6.5 6.5 0 0 1-3.4-1.84 7 7 0 0 1-1.42-2.14 7 7 0 0 1-.52-2.62v-.9a1.74 1.74 0 0 1 1.73-1.76V9.3a5 5 0 0 0 1.44 3.52 4.85 4.85 0 0 0 5.28 1.12 5 5 0 0 0 1.59-1.03l.07-.09a5 5 0 0 0 1.44-3.52V6.64a1.74 1.74 0 0 1 1.73 1.76v.9q0 1.37-.52 2.63a7 7 0 0 1-1.43 2.14 6.5 6.5 0 0 1-3.4 1.84v2.04A2.1 2.1 0 0 1 12.76 20zM6.39 9.3V3.89A3.6 3.6 0 0 1 8.49.32a3.6 3.6 0 0 1 4.87 1.99q.26.69.24 1.43V9.3a3.6 3.6 0 0 1-1.01 2.57 3.61 3.61 0 0 1-6.21-2.43z"})))},hl=e.memo(fl);function vl(){return vl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},vl.apply(null,arguments)}var gl,wl=function(e){return l.createElement("svg",vl({xmlns:"http://www.w3.org/2000/svg",fill:"#2c3336",className:"demio-icon",style:{fontSize:16},viewBox:"0 0 16 16",width:"1em",height:"1em"},e),pl||(pl=l.createElement("path",{d:"M11.5 0h-7A1.5 1.5 0 0 0 3 1.5v13A1.5 1.5 0 0 0 4.5 16h7a1.5 1.5 0 0 0 1.5-1.5v-13A1.5 1.5 0 0 0 11.5 0M8 15a1 1 0 1 1 0-2 1 1 0 1 1 0 2m3.5-3.37a.4.4 0 0 1-.37.37H4.87a.4.4 0 0 1-.37-.37V1.87c0-.2.17-.37.38-.37h6.25c.2 0 .37.17.37.38z"})))},bl=e.memo(wl);function yl(){return yl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},yl.apply(null,arguments)}var _l,xl=function(e){return l.createElement("svg",yl({xmlns:"http://www.w3.org/2000/svg",fill:"#bbb",viewBox:"0 0 33 24",width:"1em",height:"1em"},e),gl||(gl=l.createElement("path",{d:"M6 0h5.25c.41 0 .75.34.75.75v1.5c0 .41-.34.75-.75.75H6a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h5.25c.41 0 .75.34.75.75v1.5c0 .41-.34.75-.75.75H6a6 6 0 0 1-6-6V6a6 6 0 0 1 6-6m14.44 1.22-1.22 1.22c-.3.3-.3.79.01 1.07l7.07 6.87H10.75a.75.75 0 0 0-.75.74v1.76c0 .4.34.74.75.74H26.3l-7.07 6.86a.75.75 0 0 0-.01 1.07l1.22 1.23a.75.75 0 0 0 1.07 0l10.27-10.25a.75.75 0 0 0 0-1.07L21.51 1.21a.76.76 0 0 0-1.07.01"})))},El=e.memo(xl);function Cl(){return Cl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Cl.apply(null,arguments)}var Ol,Ml=function(e){return l.createElement("svg",Cl({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 22 16",width:"1em",height:"1em"},e),_l||(_l=l.createElement("path",{fill:"#838b97",d:"M11 2.34a9.8 9.8 0 0 1 8.82 5.5 9.8 9.8 0 0 1-8.82 5.5 9.8 9.8 0 0 1-8.82-5.5A9.8 9.8 0 0 1 11 2.34m0-2c-5 0-9.27 3.1-11 7.5a11.83 11.83 0 0 0 22 0c-1.73-4.4-6-7.5-11-7.5m0 5a2.5 2.5 0 0 1 0 5 2.5 2.5 0 0 1 0-5m0-2a4.5 4.5 0 1 0 .01 9 4.5 4.5 0 0 0-.01-9"})))},Al=e.memo(Ml);function Sl(){return Sl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Sl.apply(null,arguments)}var jl,Pl=function(e){return l.createElement("svg",Sl({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 20",width:"1em",height:"1em"},e),Ol||(Ol=l.createElement("path",{fill:"#838b97",d:"M23.78 17.9 1.34.37A.6.6 0 0 0 .5.46L.13.93a.6.6 0 0 0 .1.84L22.65 19.3a.6.6 0 0 0 .84-.09l.38-.47a.6.6 0 0 0-.1-.84zM11.12 5.73l5.05 3.95a4.2 4.2 0 0 0-5.05-3.95m1.74 8.21L7.82 10a4.2 4.2 0 0 0 5.05 3.95M12 4.44c3.7 0 7.09 2.06 8.92 5.4a11 11 0 0 1-1.65 2.25l1.42 1.1a13 13 0 0 0 1.98-2.8 1.2 1.2 0 0 0 0-1.1A12 12 0 0 0 12 2.64q-2.07.02-3.92.7L9.82 4.7A10 10 0 0 1 12 4.43m0 10.8a10.2 10.2 0 0 1-8.92-5.4q.68-1.24 1.65-2.25L3.3 6.48a13 13 0 0 0-1.98 2.8 1.2 1.2 0 0 0 0 1.1A12 12 0 0 0 12 17.03q2.07-.02 3.92-.7l-1.74-1.36a10 10 0 0 1-2.18.27"})))},ql=e.memo(Pl);function Tl(){return Tl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Tl.apply(null,arguments)}var Nl,kl=function(e){return l.createElement("svg",Tl({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 18",width:"1em",height:"1em"},e),jl||(jl=l.createElement("path",{fill:"#bbb",d:"M7.2 9a4.2 4.2 0 1 0 0-8.4A4.2 4.2 0 0 0 3 4.8 4.2 4.2 0 0 0 7.2 9m2.88 1.2h-.31a6 6 0 0 1-2.57.6 6 6 0 0 1-2.57-.6h-.31A4.3 4.3 0 0 0 0 14.52v1.08a1.8 1.8 0 0 0 1.8 1.8h10.8a1.8 1.8 0 0 0 1.8-1.8v-1.08a4.3 4.3 0 0 0-4.32-4.32M18 9a3.6 3.6 0 0 0 0-7.2A3.6 3.6 0 0 0 18 9m1.8 1.2h-.14q-.79.29-1.66.3c-.87.01-1.14-.12-1.66-.3h-.14a4 4 0 0 0-2.09.58 5.5 5.5 0 0 1 1.49 3.74v1.44l-.02.24h6.62a1.8 1.8 0 0 0 1.8-1.8 4.2 4.2 0 0 0-4.2-4.2"})))},Rl=e.memo(kl);function Dl(){return Dl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Dl.apply(null,arguments)}var Il,Ll=function(e){return l.createElement("svg",Dl({xmlns:"http://www.w3.org/2000/svg",fill:"#fff",viewBox:"0 0 24 18",width:"1em",height:"1em"},e),Nl||(Nl=l.createElement("path",{d:"M3.6 7.8a2.4 2.4 0 1 0 0-4.8 2.4 2.4 0 0 0 0 4.8M12 9a3.6 3.6 0 0 0 3.6-3.6v-.6H8.4v.6A3.6 3.6 0 0 0 12 9m9.6 0h-2.4c-.66 0-1.26.27-1.69.7a5.5 5.5 0 0 1 2.82 4.1h2.47a1.2 1.2 0 0 0 1.2-1.2v-1.2A2.4 2.4 0 0 0 21.6 9m-15.11.7A2.4 2.4 0 0 0 4.8 9H2.4A2.4 2.4 0 0 0 0 11.4v1.2a1.2 1.2 0 0 0 1.2 1.2h2.47A5.5 5.5 0 0 1 6.5 9.7m13.9-1.9a2.4 2.4 0 1 0 0-4.8 2.4 2.4 0 0 0 0 4.8m-5.52 2.4h-.31a6 6 0 0 1-2.57.6 6 6 0 0 1-2.57-.6h-.31a4.3 4.3 0 0 0-4.32 4.32v1.08a1.8 1.8 0 0 0 1.8 1.8h10.8a1.8 1.8 0 0 0 1.8-1.8v-1.08a4.3 4.3 0 0 0-4.32-4.32M15.6.6l-1.8.9L12 .6l-1.8.9L8.4.6v3h7.2z"})))},Bl=e.memo(Ll);function Fl(){return Fl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Fl.apply(null,arguments)}var zl,Vl=function(e){return l.createElement("svg",Fl({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Il||(Il=l.createElement("path",{fill:"#2c3336",d:"M12 12q-1.65 0-2.82-1.17T8 8t1.18-2.82T12 4t2.83 1.18T16 8t-1.17 2.83T12 12m6 8H6q-.82 0-1.41-.59A2 2 0 0 1 4 18v-.8q0-.85.44-1.56.43-.72 1.16-1.09a15 15 0 0 1 3.15-1.16A14 14 0 0 1 12 13q1.65 0 3.25.39 1.6.38 3.15 1.16.72.38 1.16 1.09T20 17.2v.8q0 .82-.59 1.41A2 2 0 0 1 18 20M6 18h12v-.8a1 1 0 0 0-.5-.85q-1.35-.68-2.72-1.01a11.6 11.6 0 0 0-5.55 0q-1.38.34-2.73 1.01a1 1 0 0 0-.5.85zm6-8q.83 0 1.41-.59Q14 8.83 14 8q0-.82-.59-1.41A2 2 0 0 0 12 6q-.82 0-1.41.59A2 2 0 0 0 10 8q0 .83.59 1.41.59.59 1.41.59"})))},Hl=e.memo(Vl);function Ul(){return Ul=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ul.apply(null,arguments)}var Wl,Kl=function(e){return l.createElement("svg",Ul({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),zl||(zl=l.createElement("path",{fill:"#212121",d:"M17.5 12a5.5 5.5 0 1 1 0 11 5.5 5.5 0 0 1 0-11m-5.48 2a7 7 0 0 0-.7 1.5H4.24a.75.75 0 0 0-.75.75v.9c0 .66.29 1.29.79 1.71Q6.16 20.5 10 20.5q.9 0 1.69-.09.37.75.93 1.38-1.2.21-2.62.21-4.34 0-6.7-2A3.8 3.8 0 0 1 2 17.16v-.91A2.25 2.25 0 0 1 4.25 14zm3.07.97-.07.05-.05.07a.5.5 0 0 0 0 .57l.05.07 1.77 1.77-1.76 1.77-.06.07a.5.5 0 0 0 0 .56l.06.07.07.06a.5.5 0 0 0 .56 0l.07-.06 1.77-1.76 1.77 1.77.07.05a.5.5 0 0 0 .57 0l.07-.05.05-.07a.5.5 0 0 0 0-.57l-.05-.07-1.77-1.77 1.77-1.77.06-.07a.5.5 0 0 0 0-.57l-.06-.07-.07-.05a.5.5 0 0 0-.57 0l-.07.05-1.77 1.77-1.77-1.77-.07-.05a.5.5 0 0 0-.5-.05zM10 2a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7"})))},Gl=e.memo(Kl);function $l(){return $l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$l.apply(null,arguments)}var Ql,Xl=function(e){return l.createElement("svg",$l({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},e),Wl||(Wl=l.createElement("path",{fill:"#42454b",d:"M15.26 6.7 4.26.2C3.37-.31 2 .2 2 1.5v13a1.5 1.5 0 0 0 2.26 1.29l11-6.5c.98-.58.99-2 0-2.58Z"})))},Yl=e.memo(Xl);function Zl(){return Zl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Zl.apply(null,arguments)}var Jl,es,ts=function(e){return l.createElement("svg",Zl({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Ql||(Ql=l.createElement("path",{fill:"#2c3336",d:"M20.63 10.88h-7.5v-7.5a.4.4 0 0 0-.38-.38h-1.5a.4.4 0 0 0-.37.38v7.5h-7.5a.4.4 0 0 0-.38.37v1.5c0 .2.17.38.38.38h7.5v7.5c0 .2.16.37.37.37h1.5a.4.4 0 0 0 .38-.37v-7.5h7.5a.4.4 0 0 0 .37-.38v-1.5a.4.4 0 0 0-.37-.37"})))},ns=e.memo(ts);function rs(){return rs=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},rs.apply(null,arguments)}var os,as=function(e){return l.createElement("svg",rs({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Jl||(Jl=l.createElement("path",{fill:"#2c3336",d:"M1.5 3.75v16.5a2.25 2.25 0 0 0 2.25 2.25h16.5a2.25 2.25 0 0 0 2.25-2.25V3.75a2.25 2.25 0 0 0-2.25-2.25H3.75A2.25 2.25 0 0 0 1.5 3.75M6.75 18a.75.75 0 0 1-.75-.75v-6a.75.75 0 0 1 .75-.75h1.5a.75.75 0 0 1 .75.75v6a.75.75 0 0 1-.75.75zm10.5-4.5a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-.75.75h-1.5a.75.75 0 0 1-.75-.75v-3a.75.75 0 0 1 .75-.75zM12.75 6a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-1.5a.75.75 0 0 1-.75-.75V6.75a.75.75 0 0 1 .75-.75z"})),es||(es=l.createElement("path",{fill:"#2c3336",d:"M9 17.25v-6a.75.75 0 0 0-.75-.75h-1.5a.75.75 0 0 0-.75.75v6a.75.75 0 0 0 .75.75h1.5a.75.75 0 0 0 .75-.75m6-3v3a.75.75 0 0 0 .75.75h1.5a.75.75 0 0 0 .75-.75v-3a.75.75 0 0 0-.75-.75h-1.5a.75.75 0 0 0-.75.75m-4.5-7.5v10.5a.75.75 0 0 0 .75.75h1.5a.75.75 0 0 0 .75-.75V6.75a.75.75 0 0 0-.75-.75h-1.5a.75.75 0 0 0-.75.75"})))},is=e.memo(as);function ls(){return ls=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ls.apply(null,arguments)}var ss,cs=function(e){return l.createElement("svg",ls({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 12 12",width:"1em",height:"1em"},e),os||(os=l.createElement("path",{d:"M11.67.67H.33A.33.33 0 0 0 0 1v.33c0 .19.15.34.33.34h.34v5.66c0 .37.3.67.66.67H5.5v.91l-1.62 1.62a.33.33 0 0 0 0 .47l.24.24c.13.13.34.13.47 0L6 9.82l1.41 1.41c.13.13.34.13.47 0l.24-.23a.33.33 0 0 0 0-.47L6.5 8.9V8h4.17a.67.67 0 0 0 .66-.67V1.67h.34a.33.33 0 0 0 .33-.34V1a.33.33 0 0 0-.33-.33M10.33 7H1.67V1.67h8.66z"})))},us=e.memo(cs);function ds(){return ds=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ds.apply(null,arguments)}var ms,ps,fs,hs=function(e){return l.createElement("svg",ds({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),ss||(ss=l.createElement("path",{fill:"#dee4e8",d:"M12 0A12 12 0 1 1 0 12h2.64A9.36 9.36 0 1 0 12 2.64z"})))},vs=e.memo(hs);function gs(){return gs=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},gs.apply(null,arguments)}var ws,bs=function(e){return l.createElement("svg",gs({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),ms||(ms=l.createElement("path",{fill:"#dee4e8",d:"M12 .38a11.62 11.62 0 1 0 0 23.24A11.62 11.62 0 0 0 12 .38m5.42 12.75-8.25 4.73a1.13 1.13 0 0 1-1.67-.98V7.13c0-.87.93-1.4 1.67-.99l8.25 5.02c.77.43.77 1.54 0 1.96",opacity:.8})),ps||(ps=l.createElement("path",{fill:"#fff",d:"m17.42 13.13-8.25 4.73a1.13 1.13 0 0 1-1.67-.98V7.13c0-.87.93-1.4 1.67-.99l8.25 5.02c.77.43.77 1.54 0 1.97",opacity:.8})),fs||(fs=l.createElement("path",{stroke:"#fff",d:"M3.16 20.13 20.13 3.16"})))},ys=e.memo(bs);function _s(){return _s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_s.apply(null,arguments)}var xs,Es=function(e){return l.createElement("svg",_s({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),ws||(ws=l.createElement("path",{fill:"#2c3336",d:"M23.63 11.98a11.6 11.6 0 0 0-3.22-8.01l1.67-1.67c.7-.71.2-1.93-.8-1.93H15c-.62 0-1.12.5-1.12 1.13v6.28c0 1 1.2 1.5 1.91.8l1.96-1.96a7.8 7.8 0 0 1 2.13 5.31 7.88 7.88 0 1 1-13.8-5.12.56.56 0 0 0-.03-.76L4.19 4.19a.56.56 0 0 0-.82.02 11.6 11.6 0 0 0-3 7.79 11.63 11.63 0 1 0 23.26-.02"})))},Cs=e.memo(Es);function Os(){return Os=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Os.apply(null,arguments)}var Ms,As=function(e){return l.createElement("svg",Os({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),xs||(xs=l.createElement("path",{d:"M7.1 11.35q.35-.7.73-1.35t.82-1.3l-1.4-.28-2.1 2.1zm12.05-6.87q-1.75.04-3.74 1.02a14 14 0 0 0-3.61 2.6q-1.05 1.05-1.87 2.25T8.7 12.6l2.85 2.83q1.05-.4 2.25-1.23t2.25-1.87a14 14 0 0 0 2.6-3.6q.98-1.98 1.03-3.73l-.04-.2a.5.5 0 0 0-.29-.29zm-5.5 6a2 2 0 0 1-.57-1.4q0-.85.57-1.42t1.43-.58 1.42.58.58 1.41a2 2 0 0 1-.58 1.41q-.57.58-1.42.58t-1.43-.58m-.85 6.55.82 1.98 2.1-2.1-.27-1.4q-.65.45-1.3.81t-1.35.72m8.77-13.36q.2 2.75-.9 5.37t-3.47 4.99l.5 2.47q.1.5-.05.98t-.5.82L14 21.45a1 1 0 0 1-.9.29.9.9 0 0 1-.72-.59l-1.53-3.57-4.27-4.28L3 11.77a.9.9 0 0 1-.6-.72 1 1 0 0 1 .28-.9L5.82 7q.35-.35.83-.5t.99-.05l2.48.5q2.37-2.37 4.98-3.47t5.37-.9q.2.02.4.1a1 1 0 0 1 .58.6q.09.2.11.4M3.93 15.98q.87-.88 2.13-.9 1.27 0 2.14.87.87.88.86 2.14t-.88 2.13q-.63.63-2.1 1.08t-4.03.8q.35-2.57.8-4.04.45-1.46 1.08-2.08m1.42 1.4q-.25.25-.5.9a7 7 0 0 0-.35 1.34q.68-.1 1.34-.33t.91-.49q.3-.3.33-.72a1 1 0 0 0-.28-.73 1 1 0 0 0-.72-.29 1 1 0 0 0-.73.31"})))},Ss=e.memo(As);function js(){return js=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},js.apply(null,arguments)}var Ps,qs=function(e){return l.createElement("svg",js({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",width:"1em",height:"1em"},e),Ms||(Ms=l.createElement("path",{fill:"#d0d5dd",d:"M17.75 2A2.25 2.25 0 0 1 20 4.25v11.5a2.25 2.25 0 0 1-2.25 2.26H2.25A2.25 2.25 0 0 1 0 15.75V4.26A2.25 2.25 0 0 1 2.25 2zm0 1.5H2.25a.75.75 0 0 0-.75.75v11.5c0 .42.34.76.75.76H5v-2.76a1.75 1.75 0 0 1 1.6-1.74l.15-.01h6.5a1.75 1.75 0 0 1 1.74 1.6v2.9h2.76a.75.75 0 0 0 .75-.75V4.25a.75.75 0 0 0-.75-.75m-4.5 10h-6.5a.25.25 0 0 0-.24.2l-.01.05v2.75h7v-2.75a.25.25 0 0 0-.2-.24zM10 5a3 3 0 1 1 0 6 3 3 0 0 1 0-6m0 1.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3"})))},Ts=e.memo(qs);function Ns(){return Ns=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ns.apply(null,arguments)}var ks,Rs=function(e){return l.createElement("svg",Ns({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Ps||(Ps=l.createElement("path",{fill:"#2c3336",d:"M21.75 0h-15A2.25 2.25 0 0 0 4.5 2.25V4.5H2.25A2.25 2.25 0 0 0 0 6.75v15A2.25 2.25 0 0 0 2.25 24h15a2.25 2.25 0 0 0 2.25-2.25V19.5h2.25A2.25 2.25 0 0 0 24 17.25v-15A2.25 2.25 0 0 0 21.75 0m-4.5 21.75h-15V12h15zm4.5-4.5H19.5V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75V2.25h15z"})))},Ds=e.memo(Rs);function Is(){return Is=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Is.apply(null,arguments)}var Ls,Bs=function(e){return l.createElement("svg",Is({xmlns:"http://www.w3.org/2000/svg",fill:"#bbb",className:"demio-icon",style:{fontSize:20},viewBox:"0 0 20 18",width:"1em",height:"1em"},e),ks||(ks=l.createElement("path",{d:"M18.33 0H1.67C.75 0 0 .76 0 1.69v11.25c0 .93.75 1.69 1.67 1.69h6.66l-.55 1.68h-2.5a.84.84 0 0 0-.84.85c0 .46.38.84.84.84h9.44a.84.84 0 0 0 .84-.84.84.84 0 0 0-.84-.85h-2.5l-.55-1.68h6.66c.92 0 1.67-.76 1.67-1.7V1.7c0-.94-.75-1.7-1.67-1.7m-.55 12.38H2.22V2.24h15.56z"})))},Fs=e.memo(Bs);function zs(){return zs=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},zs.apply(null,arguments)}var Vs,Hs=function(e){return l.createElement("svg",zs({xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Ls||(Ls=l.createElement("path",{fill:"#2c3336",d:"m23.84 21.98-5.7-5.7a.6.6 0 0 0-.4-.16h-.61a9.7 9.7 0 0 0 2.37-6.37A9.75 9.75 0 0 0 9.75 0 9.75 9.75 0 0 0 0 9.75a9.75 9.75 0 0 0 9.75 9.75 9.7 9.7 0 0 0 6.37-2.37v.62q0 .23.17.4l5.69 5.68c.22.23.58.23.8 0l1.06-1.05a.56.56 0 0 0 0-.8M9.75 17.25a7.5 7.5 0 1 1 0-15 7.5 7.5 0 0 1 0 15"})))},Us=e.memo(Hs);function Ws(){return Ws=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ws.apply(null,arguments)}var Ks,Gs=function(e){return l.createElement("svg",Ws({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Vs||(Vs=l.createElement("path",{fill:"currentColor",d:"M8.86 3h6.28q1.62-.02 2.67.06c.73.06 1.37.18 1.96.48a5 5 0 0 1 2.18 2.19c.3.6.43 1.23.5 1.96q.06 1.04.05 2.67v3.28q.01 1.62-.06 2.67a5 5 0 0 1-.49 1.96 5 5 0 0 1-2.18 2.19c-.6.3-1.23.42-1.96.48q-1.05.07-2.67.06H8.86q-1.62.02-2.67-.06a5 5 0 0 1-1.96-.49 5 5 0 0 1-2.19-2.18 5 5 0 0 1-.48-1.96q-.08-1.05-.06-2.67v-3.28q-.02-1.62.06-2.67c.06-.73.18-1.37.49-1.96a5 5 0 0 1 2.18-2.19c.6-.3 1.23-.42 1.96-.48Q7.24 2.98 8.86 3m-2.5 2.05c-.61.05-.96.14-1.22.28a3 3 0 0 0-1.31 1.3 3 3 0 0 0-.28 1.22c-.05.62-.05 1.41-.05 2.55v3.2c0 1.14 0 1.93.05 2.55.05.6.14.95.28 1.21a3 3 0 0 0 1.3 1.31c.27.14.62.23 1.22.28.62.05 1.41.05 2.55.05h.6V5h-.6c-1.14 0-1.93 0-2.55.05M11.5 5v14h3.6c1.14 0 1.93 0 2.55-.05.6-.05.95-.14 1.21-.28a3 3 0 0 0 1.31-1.3c.14-.27.23-.62.28-1.22.05-.62.05-1.41.05-2.55v-3.2c0-1.14 0-1.93-.05-2.55a3 3 0 0 0-.28-1.21 3 3 0 0 0-1.3-1.31 3 3 0 0 0-1.22-.28C17.03 5 16.24 5 15.1 5zM5 8.5a1 1 0 0 1 1-1h1a1 1 0 1 1 0 2H6a1 1 0 0 1-1-1M5 12a1 1 0 0 1 1-1h1a1 1 0 1 1 0 2H6a1 1 0 0 1-1-1"})))},$s=e.memo(Gs);function Qs(){return Qs=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Qs.apply(null,arguments)}var Xs,Ys=function(e){return l.createElement("svg",Qs({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 20 20",width:"1em",height:"1em"},e),Ks||(Ks=l.createElement("path",{fill:"#9fa6ad",d:"M10 .31A9.7 9.7 0 0 0 .31 10 9.7 9.7 0 0 0 10 19.69 9.7 9.7 0 0 0 19.69 10 9.7 9.7 0 0 0 10 .31m0 17.5a7.82 7.82 0 1 1 .02-15.64A7.82 7.82 0 0 1 10 17.81M6.88 9.38a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5m6.25 0a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5m.15 2.83A4.3 4.3 0 0 1 10 13.75a4.3 4.3 0 0 1-3.28-1.54.94.94 0 0 0-1.32-.12.94.94 0 0 0-.12 1.32 6.14 6.14 0 0 0 9.45 0 .94.94 0 1 0-1.45-1.2"})))},Zs=e.memo(Ys);function Js(){return Js=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Js.apply(null,arguments)}var ec,tc,nc=function(e){return l.createElement("svg",Js({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},e),Xs||(Xs=l.createElement("path",{fill:"#5d676b",d:"M2 0A2 2 0 0 0 .9.31L.88.33H.86C.02.98-.3 2.2.32 3.1v.03l.8 1.12.38.54.55-.37 2.2-1.54.55-.38-.38-.54L3.69.9 3.67.88V.85a2.3 2.3 0 0 0-1.3-.8zm3.73 3.4-1.12.73-1.67 1.14L1.8 6l2.23 7.79c.04.46.33.82.66 1.06q.54.39 1.33.63c1.06.33 2.46.52 3.98.52s2.93-.2 3.98-.52q.79-.24 1.34-.63c.36-.26.68-.67.68-1.18 0-.52-.32-.92-.68-1.2l-.3-.18zM10 12.67c1.42 0 2.7.18 3.57.46.43.13.78.3.95.43l.13.1-.13.11c-.17.13-.52.3-.95.44-.88.27-2.15.46-3.57.46s-2.69-.19-3.56-.46q-.67-.22-.96-.44l-.12-.1.12-.1c.18-.14.53-.3.96-.44.87-.28 2.15-.46 3.56-.46"})))},rc=e.memo(nc);function oc(){return oc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},oc.apply(null,arguments)}var ac,ic=function(e){return l.createElement("svg",oc({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},ec||(ec=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),tc||(tc=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#02bf6f",d:"M7 17q-.82 0-1.41-.59A2 2 0 0 1 5 15V5q0-.82.59-1.41A2 2 0 0 1 7 3h14q.82 0 1.41.59T23 5v10q0 .82-.59 1.41A2 2 0 0 1 21 17zm6.43-5.1L7 7.42V15h14V7.43l-6.43 4.47a1 1 0 0 1-.57.2 1 1 0 0 1-.57-.2M14 9.85 21 5H7zM3 21q-.82 0-1.41-.59A2 2 0 0 1 1 19V7.5q0-.42.29-.71A1 1 0 0 1 2 6.5q.42 0 .71.29T3 7.5V19h15.5q.42 0 .71.29t.29.71-.29.71a1 1 0 0 1-.71.29z"}))))},lc=e.memo(ic);function sc(){return sc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},sc.apply(null,arguments)}var cc,uc=function(e){return l.createElement("svg",sc({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 20 20",width:"1em",height:"1em"},e),ac||(ac=l.createElement("path",{fill:"#98a2b3",d:"M18.25 11c.7 0 1.02.89.46 1.33L14 16.11v1.64A2.25 2.25 0 0 1 11.75 20h-3.5A2.25 2.25 0 0 1 6 17.75v-1.64l-4.72-3.78A.75.75 0 0 1 1.75 11zm-2.14 1.5H3.89l3.33 2.66a.8.8 0 0 1 .28.59v2c0 .42.34.75.75.75h3.5a.75.75 0 0 0 .75-.75v-2a.8.8 0 0 1 .28-.58zM6.75 7h6.5a1.75 1.75 0 0 1 1.74 1.6V10h-1.5V8.75a.25.25 0 0 0-.19-.24l-.05-.01h-6.5a.25.25 0 0 0-.24.2l-.01.05V10H5V8.75a1.75 1.75 0 0 1 1.6-1.74zh6.5zM10 0a3 3 0 1 1 0 6 3 3 0 0 1 0-6m0 1.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3"})))},dc=e.memo(uc);function mc(){return mc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},mc.apply(null,arguments)}var pc,fc=function(e){return l.createElement("svg",mc({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),cc||(cc=l.createElement("path",{fill:"#2c3336",d:"M23.44.38h-1.3a.56.56 0 0 0-.56.57l.1 4.62A11.63 11.63 0 0 0 .58 9.83a.56.56 0 0 0 .56.67h1.34a.56.56 0 0 0 .55-.45A9.2 9.2 0 0 1 12 2.81a9.2 9.2 0 0 1 8.38 5.4l-5.93-.13a.56.56 0 0 0-.57.56v1.3c0 .3.25.56.56.56h9c.3 0 .56-.25.56-.56v-9a.56.56 0 0 0-.56-.57m-.57 13.13h-1.34a.56.56 0 0 0-.55.45A9.2 9.2 0 0 1 12 21.19a9.2 9.2 0 0 1-8.37-5.4l5.92.13a.56.56 0 0 0 .57-.56v-1.3a.56.56 0 0 0-.56-.56h-9a.56.56 0 0 0-.56.56v9c0 .31.25.57.56.57h1.3c.32 0 .57-.26.56-.58l-.1-4.62a11.63 11.63 0 0 0 21.11-4.27.56.56 0 0 0-.56-.66"})))},hc=e.memo(fc);function vc(){return vc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},vc.apply(null,arguments)}var gc,wc,bc=function(e){return l.createElement("svg",vc({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),pc||(pc=l.createElement("path",{fill:"#2c3336",d:"M12.31.38a11.62 11.62 0 1 0 0 23.24 11.62 11.62 0 0 0 0-23.24m5.7 14.67c.22.22.22.58 0 .8l-1.85 1.85a.56.56 0 0 1-.8 0l-3.05-3.07-3.05 3.07a.56.56 0 0 1-.8 0l-1.85-1.86a.56.56 0 0 1 0-.8L9.7 12 6.6 8.95a.56.56 0 0 1 0-.8L8.47 6.3a.56.56 0 0 1 .8 0l3.04 3.09 3.05-3.08a.56.56 0 0 1 .8 0l1.86 1.86c.22.22.22.57 0 .8L14.94 12z"})))},yc=e.memo(bc);function _c(){return _c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_c.apply(null,arguments)}var xc,Ec=function(e){return l.createElement("svg",_c({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},gc||(gc=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),wc||(wc=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#02bf6f",d:"M9 16.5q-1.05 0-1.77-.72T6.5 14t.73-1.77T9 11.5t1.78.73.72 1.77-.72 1.78T9 16.5M5 22q-.82 0-1.41-.59A2 2 0 0 1 3 20V6q0-.82.59-1.41A2 2 0 0 1 5 4h1V3q0-.42.29-.71A1 1 0 0 1 7 2q.42 0 .71.29T8 3v1h8V3q0-.42.29-.71A1 1 0 0 1 17 2q.42 0 .71.29T18 3v1h1q.82 0 1.41.59T21 6v14q0 .82-.59 1.41A2 2 0 0 1 19 22zm0-2h14V10H5zM5 8h14V6H5z"}))))},Cc=e.memo(Ec);function Oc(){return Oc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Oc.apply(null,arguments)}var Mc,Ac=function(e){return l.createElement("svg",Oc({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),xc||(xc=l.createElement("path",{fill:"#2c3336",d:"M21.75 3.75h-3.86l-1.6-2.66A2.3 2.3 0 0 0 14.36 0H9.64A2.3 2.3 0 0 0 7.7 1.1L6.1 3.74H2.25a.75.75 0 0 0-.75.75v.75a.75.75 0 0 0 .75.75H3l1 15.89A2.25 2.25 0 0 0 6.23 24h11.52A2.25 2.25 0 0 0 20 21.89L21 6h.75a.75.75 0 0 0 .75-.75V4.5a.75.75 0 0 0-.75-.75M9.64 2.25h4.72l.9 1.5H8.74zm8.12 19.5H6.24L5.25 6h13.5z"})))},Sc=e.memo(Ac);function jc(){return jc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},jc.apply(null,arguments)}var Pc,qc=function(e){return l.createElement("svg",jc({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Mc||(Mc=l.createElement("path",{fill:"#1c1b1f",d:"m18.6 16-5.2-5.15-2.57 2.58q-.58.57-1.43.57t-1.42-.57L2.7 8.1a1 1 0 0 1-.29-.69 1 1 0 0 1 .29-.71 1 1 0 0 1 .7-.28q.43 0 .7.28L9.4 12l2.58-2.57q.57-.58 1.42-.58t1.43.58L20 14.6V13q0-.42.29-.71A1 1 0 0 1 21 12q.42 0 .71.29T22 13v4q0 .42-.29.71A1 1 0 0 1 21 18h-4a1 1 0 0 1-.71-.29A1 1 0 0 1 16 17q0-.42.29-.71A1 1 0 0 1 17 16z"})))},Tc=e.memo(qc);function Nc(){return Nc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Nc.apply(null,arguments)}var kc,Rc=function(e){return l.createElement("svg",Nc({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),Pc||(Pc=l.createElement("path",{fill:"#1c1b1f",d:"M2.7 17.63a1 1 0 0 1-.29-.72 1 1 0 0 1 .29-.68l5.28-5.35q.57-.58 1.42-.58t1.43.57l2.57 2.6 5.2-5.15H17a1 1 0 0 1-.71-.28 1 1 0 0 1-.29-.72q0-.42.29-.7a1 1 0 0 1 .71-.3h4q.42 0 .71.3.29.28.29.7v4q0 .43-.29.72a1 1 0 0 1-.71.28 1 1 0 0 1-.71-.28 1 1 0 0 1-.29-.72v-1.6l-5.18 5.18q-.57.57-1.42.57t-1.43-.57L9.4 12.32l-5.3 5.3a1 1 0 0 1-.7.28 1 1 0 0 1-.7-.28"})))},Dc=e.memo(Rc);function Ic(){return Ic=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ic.apply(null,arguments)}var Lc,Bc,Fc=function(e){return l.createElement("svg",Ic({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),kc||(kc=l.createElement("path",{fill:"#2c3336",d:"M.75.38h1.3c.32 0 .57.26.56.57l-.1 4.62a11.6 11.6 0 0 1 9.72-5.2 11.63 11.63 0 0 1-.04 23.25 11.6 11.6 0 0 1-7.8-3 .56.56 0 0 1-.02-.8l.93-.93a.6.6 0 0 1 .77-.03 9.2 9.2 0 0 0 6.12 2.33A9.2 9.2 0 0 0 21.37 12a9.2 9.2 0 0 0-9.18-9.19 9.2 9.2 0 0 0-8.38 5.4l5.93-.13a.56.56 0 0 1 .57.56v1.3c0 .3-.25.56-.56.56h-9a.56.56 0 0 1-.56-.56v-9C.19.63.44.38.75.38"})))},zc=e.memo(Fc);function Vc(){return Vc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Vc.apply(null,arguments)}var Hc,Uc,Wc=function(e){return l.createElement("svg",Vc({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},Lc||(Lc=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),Bc||(Bc=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#2c3336",d:"M4.55 19.5q-.76 0-1.28-.52a1.8 1.8 0 0 1-.53-1.29V6.31q0-.76.53-1.28t1.28-.53h11.38q.76 0 1.29.53t.52 1.28v4.58l2.74-2.74q.23-.23.5-.11t.28.44v7.04q0 .32-.28.44t-.5-.1l-2.74-2.74v4.57q0 .76-.53 1.28-.52.53-1.28.53zm0-1.5h11.38a.3.3 0 0 0 .22-.09.3.3 0 0 0 .09-.22V6.31a.3.3 0 0 0-.09-.22.3.3 0 0 0-.22-.1H4.55a.3.3 0 0 0-.22.1.3.3 0 0 0-.09.22v11.38a.3.3 0 0 0 .09.22.3.3 0 0 0 .22.09"}))))},Kc=e.memo(Wc);function Gc(){return Gc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Gc.apply(null,arguments)}var $c,Qc,Xc=function(e){return l.createElement("svg",Gc({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},Hc||(Hc=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),Uc||(Uc=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#2c3336",d:"M4.55 19.5q-.76 0-1.28-.52a1.8 1.8 0 0 1-.53-1.29V6.31q0-.76.53-1.28t1.28-.53h11.38q.76 0 1.29.53t.52 1.28v4.58l2.74-2.74a.4.4 0 0 1 .5-.1q.28.1.28.43v7.04q0 .32-.28.43a.4.4 0 0 1-.5-.1l-2.74-2.74v4.58q0 .76-.53 1.28-.52.53-1.28.53z"}))))},Yc=e.memo(Xc);function Zc(){return Zc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Zc.apply(null,arguments)}var Jc,eu,tu=function(e){return l.createElement("svg",Zc({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},$c||($c=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),Qc||(Qc=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#2c3336",d:"m18.95 21.61-2.5-2.49-.61.35-.64.3a.7.7 0 0 1-.7-.09.8.8 0 0 1-.33-.67q0-.21.13-.37a1 1 0 0 1 .3-.23 5 5 0 0 0 .77-.37l-3.58-3.59v2.15q0 .61-.56.84t-.98-.19L7.5 14.5H4.7a1 1 0 0 1-.65-.26 1 1 0 0 1-.26-.64v-3.2q0-.38.26-.64a1 1 0 0 1 .64-.26h2.14l-4.3-4.31a.7.7 0 0 1-.22-.52.7.7 0 0 1 .21-.54.7.7 0 0 1 .53-.21q.31 0 .53.21L20 20.57q.2.2.21.52a.7.7 0 0 1-.21.53.7.7 0 0 1-.53.22.7.7 0 0 1-.52-.22M15.2 4.18a8.5 8.5 0 0 1 3.83 3.08q1.45 2.1 1.45 4.71 0 1.32-.4 2.53-.38 1.21-1.1 2.23l-1.07-1.07a7 7 0 0 0 1.07-3.69q0-2.16-1.2-3.9a7 7 0 0 0-3.18-2.53.7.7 0 0 1-.43-.62q0-.42.33-.66a.7.7 0 0 1 .7-.08m.72 9.49-1.75-1.75V8.3a4 4 0 0 1 1.57 1.55 4.4 4.4 0 0 1 .46 3.01q-.1.42-.28.81M11.8 9.54 9.63 7.37l.62-.62q.43-.43.98-.2t.56.85zm-1.5 5.61v-2.2L8.34 11H5.29v2h2.85z"}))))},nu=e.memo(tu);function ru(){return ru=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ru.apply(null,arguments)}var ou,au,iu=function(e){return l.createElement("svg",ru({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},Jc||(Jc=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),eu||(eu=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#2c3336",d:"M15.06 19.77a.7.7 0 0 1-.7-.09.8.8 0 0 1-.32-.67q0-.21.12-.37a1 1 0 0 1 .3-.23 7 7 0 0 0 3.19-2.54q1.2-1.73 1.2-3.9t-1.2-3.9a7 7 0 0 0-3.18-2.53 1 1 0 0 1-.32-.25 1 1 0 0 1-.11-.37q0-.42.32-.65a.7.7 0 0 1 .7-.1 8.6 8.6 0 0 1 3.83 3.1q1.46 2.1 1.46 4.7t-1.46 4.71a8.6 8.6 0 0 1-3.83 3.1M4.56 14.5a1 1 0 0 1-.65-.26 1 1 0 0 1-.26-.64v-3.2q0-.38.26-.64a1 1 0 0 1 .65-.26h2.8l2.76-2.75q.42-.43.98-.2.55.24.55.85v9.2q0 .61-.55.84t-.98-.19L7.37 14.5zm9.48 1.15V8.3q.97.52 1.54 1.52a4.3 4.3 0 0 1 .57 2.18q0 1.18-.57 2.15a4 4 0 0 1-1.54 1.5"}))))},lu=e.memo(iu);function su(){return su=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},su.apply(null,arguments)}var cu,uu,du=function(e){return l.createElement("svg",su({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},ou||(ou=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),au||(au=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#2c3336",d:"M2.73 21a1 1 0 0 1-.85-.5 1 1 0 0 1-.14-.49 1 1 0 0 1 .14-.51l9.25-16a1 1 0 0 1 .38-.37Q11.75 3 12 3t.49.13a1 1 0 0 1 .38.37l9.26 16q.15.25.13.51a1 1 0 0 1-.14.49 1 1 0 0 1-.85.5zM12 18q.42 0 .71-.29A1 1 0 0 0 13 17a1 1 0 0 0-.29-.71A1 1 0 0 0 12 16a1 1 0 0 0-.71.29A1 1 0 0 0 11 17q0 .42.29.71T12 18m0-3a1 1 0 0 0 .71-.29A1 1 0 0 0 13 14v-3a1 1 0 0 0-.29-.71A1 1 0 0 0 12 10a1 1 0 0 0-.71.29A1 1 0 0 0 11 11v3q0 .42.29.71T12 15"}))))},mu=e.memo(du);function pu(){return pu=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},pu.apply(null,arguments)}var fu=function(e){return l.createElement("svg",pu({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},e),l.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},cu||(cu=l.createElement("path",{fill:"#d9d9d9",d:"M0 0h24v24H0z"}))),uu||(uu=l.createElement("g",{mask:"url(#a)"},l.createElement("path",{fill:"#2c3336",d:"M3.43 20.5a.9.9 0 0 1-.78-.45 1 1 0 0 1-.12-.44 1 1 0 0 1 .12-.47l8.56-14.78A.9.9 0 0 1 12 3.9q.23 0 .44.11t.35.35l8.56 14.78q.14.23.12.47a1 1 0 0 1-.12.44.9.9 0 0 1-.78.45zM4.45 19h15.1L12 6zM12 17.8q.34 0 .58-.22a.8.8 0 0 0 .23-.58.8.8 0 0 0-.23-.57.8.8 0 0 0-.58-.24.8.8 0 0 0-.57.23.8.8 0 0 0-.24.58q0 .34.24.58a.8.8 0 0 0 .57.23m0-2.62q.32 0 .54-.21a.7.7 0 0 0 .21-.54v-3.5a.7.7 0 0 0-.22-.53.7.7 0 0 0-.53-.22.7.7 0 0 0-.53.22.7.7 0 0 0-.22.53v3.5q0 .32.22.54a.7.7 0 0 0 .53.21"}))))},hu=e.memo(fu),vu=Object.freeze({__proto__:null,AddIcon:zn,ArrowDownIcon:_i,ArrowLeftDoubleIcon:Xn,ArrowLeftIcon:Kn,ArrowLeftSingleIcon:er,AtIcon:or,BarChartIcon:cr,BlockIcon:fr,BlurOnIcon:br,CachedIcon:Cr,CalendarIcon:Sr,CameraIcon:Nr,CameraOutlinedIcon:Ir,ChatDisabledIcon:Qr,ChatIcon:Wr,CheckCircleIcon:ro,CheckCircleSolidIcon:lo,CheckIcon:Jr,CheckboxIcon:mo,ClockIcon:vo,CloseIcon:mn,CompressIcon:yo,CopyIcon:Oo,CustomizeIcon:Po,DeleteIcon:ko,DotsIcon:Lo,DownloadIcon:Vo,EditIcon:Go,ElectricBoltIcon:Zo,EventDetailsIcon:ra,EventRepeatIcon:la,ExclamationIcon:da,ExpandIcon:ha,ExternalLinkIcon:ya,FeatureActionIcon:Ca,FileIcon:Sa,FilterListIcon:Ta,FlipCameraIcon:Da,GearIcon:za,HelpIcon:Wa,HelpSolidIcon:Qa,InfoCircleIcon:si,InfoCircleSolidIcon:mi,InfoIcon:ei,InfoSolidIcon:oi,ItemsIcon:gi,ListIcon:Oi,LocationIcon:ji,LockIcon:Ni,MagicIcon:Ii,MailIcon:Vi,MaterialsIcon:Gi,MicBoldIcon:hl,MicOffIcon:nl,MicOffSolidIcon:Zi,MicOnSolidIcon:dl,MicOutlinedIcon:ll,MobileDeviceIcon:bl,OutStageIcon:El,PasswordEyeCrossedIcon:ql,PasswordEyeIcon:Al,PeopleCommunityIcon:Bl,PeopleIcon:Rl,Person:Hl,PersonDeleteIcon:Gl,PersonIcon:Hl,PlayIcon:Yl,PlusIcon:ns,PollIcon:is,PresentationIcon:us,ProgressIcon:vs,ReplayDisabledIcon:ys,RestartIcon:Cs,RocketIcon:Ss,ScreenPersonIcon:Ts,ScreenShareIcon:Fs,ScreenShareWindowIcon:Ds,SearchIcon:Us,SideBarIcon:$s,SmileIcon:Zs,SpotlightIcon:rc,StackedEmailIcon:lc,StageIcon:dc,SyncIcon:hc,TimesCircleIcon:yc,TodayIcon:Cc,TrashIcon:Sc,TrendingDownIcon:Tc,TrendingUpIcon:Dc,UndoIcon:zc,VideoCamOnIcon:Kc,VideoCamOnSolidIcon:Yc,VolumeOffIcon:nu,VolumeUpSolidIcon:lu,WarningIcon:hu,WarningSolidIcon:mu}),gu={avatarRoot:"Avatar-modules_avatarRoot__-f6qf",avatarImage:"Avatar-modules_avatarImage__zceNY",avatarFallback:"Avatar-modules_avatarFallback__q-QHl",size16:"Avatar-modules_size16__G8gqA",size24:"Avatar-modules_size24__mfBv9",size32:"Avatar-modules_size32__B21z8",size40:"Avatar-modules_size40__ixjf7",size48:"Avatar-modules_size48__l5CtN",size64:"Avatar-modules_size64__2kbdu",size80:"Avatar-modules_size80__MjWsy",size96:"Avatar-modules_size96__GRUKB",size128:"Avatar-modules_size128__STzjL"};const wu=[16,24,32,40,48,64,80,96,128];var bu={badge:"Badge-modules_badge__Q3gMy",title:"Badge-modules_title__ldcxW",icon:"Badge-modules_icon__PuMGj",orange:"Badge-modules_orange__KUE8y",gray:"Badge-modules_gray__gyQRh",purple:"Badge-modules_purple__0r-Ep",blue:"Badge-modules_blue__gLy09",outlined:"Badge-modules_outlined__6J7Qy",contained:"Badge-modules_contained__iOqhq",green:"Badge-modules_green__az-Sp"};var yu={button:"Button-modules_button__aG-rx",primary:"Button-modules_primary__4wFpG",red:"Button-modules_red__kzhcS",dark:"Button-modules_dark__y2K4o",secondary:"Button-modules_secondary__BxoW-",green:"Button-modules_green__XduFJ",tertiary:"Button-modules_tertiary__atvmK",quarter:"Button-modules_quarter__X0oiw",fullWidth:"Button-modules_fullWidth__K1YM1",prefix:"Button-modules_prefix__5QA-K",suffix:"Button-modules_suffix__alHaW"};const _u=e.forwardRef((({disabled:t=!1,children:n,onClick:r,variant:o="primary",color:a="green",type:i="button",prefix:l="",suffix:s="",className:c="",fullWidth:u=!1,showLoader:d=!1,...p},f)=>e.createElement("button",{ref:f,type:i,disabled:t,className:m("demio-ui-button",yu.button,{[c]:c,[yu[o]]:o,[yu.fullWidth]:u,[yu[a]]:!!a}),onClick:r,...p},(l||d)&&e.createElement("span",{className:m("demio-ui-button-prefix",yu.prefix)},d?e.createElement(fn,{size:"small",inheritColor:!0}):l),e.createElement("span",null,n),s&&e.createElement("span",{className:m("demio-ui-button-suffix",yu.suffix)},s))));var xu={Card:"Card-modules_Card__z6Ana",shadowElevation1:"Card-modules_shadowElevation1__W-OBt",shadowElevation2:"Card-modules_shadowElevation2__wi10x",shadowElevation3:"Card-modules_shadowElevation3__PhQ67",shadowElevation4:"Card-modules_shadowElevation4__Gw1NR",shadowElevation5:"Card-modules_shadowElevation5__1dyXB",shadowElevation6:"Card-modules_shadowElevation6__d6Bwl",shadowElevation7:"Card-modules_shadowElevation7__IKuo-",shadowElevation8:"Card-modules_shadowElevation8__fboRY",shadowElevation9:"Card-modules_shadowElevation9__hpxHG",emptyState:"Card-modules_emptyState__NPe3g"};const Eu=e.memo((({children:t=null,className:n="",isEmptyStateAvailable:r=!0,isLoading:o=!1,emptyStateIcon:a=null,emptyStateText:i="",shadowElevation:l=1})=>{const s=null===a,c=""===i,u=xu[`shadowElevation${l}`];return e.createElement("div",{className:m(xu.Card,u,"demio-ui-card",n)},o&&e.createElement(fn,{className:"demio-ui-card-loader"}),!o&&(t||e.createElement("div",{className:m(xu.emptyState,"demio-ui-card-empty-state")},r&&e.createElement(e.Fragment,null,e.createElement("div",{className:m({"demio-ui-card-empty-state-icon":s,"demio-ui-card-custom-state-icon":!s})},a||e.createElement(cr,null)),e.createElement("div",{className:m({"demio-ui-card-empty-state-text":c,"demio-ui-card-custom-state-text":!c})},i||"No Data Available")))))}));function Cu(e){const t=l.useRef({value:e,previous:e});return l.useMemo((()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous)),[e])}function Ou(e){const[t,n]=l.useState(void 0);return b((()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const t=new ResizeObserver((t=>{if(!Array.isArray(t))return;if(!t.length)return;const r=t[0];let o,a;if("borderBoxSize"in r){const e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;o=t.inlineSize,a=t.blockSize}else o=e.offsetWidth,a=e.offsetHeight;n({width:o,height:a})}));return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}n(void 0)}),[e]),t}var Mu="Checkbox",[Au,Su]=p(Mu),[ju,Pu]=Au(Mu),qu=l.forwardRef(((e,n)=>{const{__scopeCheckbox:r,name:o,checked:a,defaultChecked:i,required:s,disabled:c,value:u="on",onCheckedChange:d,form:m,...p}=e,[f,h]=l.useState(null),v=g(n,(e=>h(e))),b=l.useRef(!1),y=!f||(m||!!f.closest("form")),[_=!1,x]=C({prop:a,defaultProp:i,onChange:d}),E=l.useRef(_);return l.useEffect((()=>{const e=f?.form;if(e){const t=()=>x(E.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}}),[f,x]),t.jsxs(ju,{scope:r,state:_,disabled:c,children:[t.jsx(j.button,{type:"button",role:"checkbox","aria-checked":Ru(_)?"mixed":_,"aria-required":s,"data-state":Du(_),"data-disabled":c?"":void 0,disabled:c,value:u,...p,ref:v,onKeyDown:w(e.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:w(e.onClick,(e=>{x((e=>!!Ru(e)||!e)),y&&(b.current=e.isPropagationStopped(),b.current||e.stopPropagation())}))}),y&&t.jsx(ku,{control:f,bubbles:!b.current,name:o,value:u,checked:_,required:s,disabled:c,form:m,style:{transform:"translateX(-100%)"},defaultChecked:!Ru(i)&&i})]})}));qu.displayName=Mu;var Tu="CheckboxIndicator",Nu=l.forwardRef(((e,n)=>{const{__scopeCheckbox:r,forceMount:o,...a}=e,i=Pu(Tu,r);return t.jsx(X,{present:o||Ru(i.state)||!0===i.state,children:t.jsx(j.span,{"data-state":Du(i.state),"data-disabled":i.disabled?"":void 0,...a,ref:n,style:{pointerEvents:"none",...e.style}})})}));Nu.displayName=Tu;var ku=e=>{const{control:n,checked:r,bubbles:o=!0,defaultChecked:a,...i}=e,s=l.useRef(null),c=Cu(r),u=Ou(n);l.useEffect((()=>{const e=s.current,t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,"checked").set;if(c!==r&&n){const t=new Event("click",{bubbles:o});e.indeterminate=Ru(r),n.call(e,!Ru(r)&&r),e.dispatchEvent(t)}}),[c,r,o]);const d=l.useRef(!Ru(r)&&r);return t.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:a??d.current,...i,tabIndex:-1,ref:s,style:{...e.style,...u,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function Ru(e){return"indeterminate"===e}function Du(e){return Ru(e)?"indeterminate":e?"checked":"unchecked"}var Iu=qu,Lu=Nu,Bu=l.forwardRef(((e,n)=>t.jsx(j.label,{...e,ref:n,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}})));Bu.displayName="Label";var Fu=Bu,zu="Label-modules_label__rXO6J",Vu="Label-modules_semiBold__vTm1B",Hu="Label-modules_regular__F9gNE";const Uu=(e="regular")=>"semiBold"===e?Vu:Hu;function Wu({htmlFor:t,children:n,className:r="",weight:o="regular"}){return e.createElement(Fu,{htmlFor:t,className:m("demio-ui-label",zu,[Uu(o)],{[r]:!!r})},n)}var Ku="Checkbox-modules_container__psQsQ",Gu="Checkbox-modules_root__iysyc",$u="Checkbox-modules_label__4TV-f";const Qu=e.memo(e.forwardRef((({children:t=null,disabled:n=!1,id:r,...o},a)=>e.createElement("div",{className:m("demio-ui-checkbox",Ku),ref:a},e.createElement(Iu,{...o,className:m("demio-ui-checkbox-button",Gu),disabled:n,id:r},e.createElement(Lu,{className:"demio-ui-checkbox-button"},e.createElement(mo,null))),t&&e.createElement(Wu,{className:m("demio-ui-checkbox-label",$u),htmlFor:r,weight:"regular"},t)))));var Xu="InputHint-modules_root__bJTnj",Yu="InputHint-modules_error__HZnQD";function Zu({children:t,type:n="hint",className:r=""}){return e.createElement("div",{className:m("demio-ui-input-hint",Xu,{[Yu]:"error"===n,[r]:!!r}),"data-html":n},t)}var Ju={root:"Input-modules_root__vdxX5",label:"Input-modules_label__2RN8-",optional:"Input-modules_optional__M78yJ",static:"Input-modules_static__cpwFU",correctedTop:"Input-modules_correctedTop__I3y-S",inputWrapper:"Input-modules_inputWrapper__KPYyg",input:"Input-modules_input__y9hSj",startAdornment:"Input-modules_startAdornment__Xs8xw",endAdornment:"Input-modules_endAdornment__z04mP",footer:"Input-modules_footer__R8J8U",togglePasswordButton:"Input-modules_togglePasswordButton__KGieB",footerMessage:"Input-modules_footerMessage__akEOh",counter:"Input-modules_counter__HFA5P",isDisabled:"Input-modules_isDisabled__bHf8L",hint:"Input-modules_hint__e-KNY",isError:"Input-modules_isError__1B8e9",isFocused:"Input-modules_isFocused__Oa1Re",isLabelStatic:"Input-modules_isLabelStatic__iF0-s"};const ed=e.forwardRef(((t,n)=>{const{autoComplete:r="off",className:o="",counterVisibilityLimit:a=.8,defaultValue:i="",disabled:l=!1,endAdornment:s=null,endAdornmentClassName:c="",errorMessage:u="",hint:d="",id:p,inputWrapperClass:f="",isLabelStatic:h=!1,label:v="",maxLength:g=150,name:w="",onBlur:b,onChange:y,onFocus:_,optionalText:x="Optional",placeholder:E="",required:C=!1,startAdornment:O=null,type:M="text",value:A,...S}=t,[j,P]=e.useState(!1),[q,T]=e.useState(i||""),[N,k]=e.useState(!1),R=void 0!==A,D="password"===M,I=D?j?"text":"password":M,L=R?A:q,B=L.length,F=B>=g*a;return e.createElement("div",{className:m("demio-ui-input",`demio-ui-input-${M}`,Ju.root,{[o]:!!o,[Ju.isDisabled]:l,[Ju.isFocused]:N||L,[Ju.hasStartAdornment]:!!O,[Ju.isError]:!!u,[Ju.isLabelStatic]:!!h,"demio-ui-input-has-error":!!u}),"data-html":"container","data-state":N?"focused":""},v&&e.createElement("label",{htmlFor:p,className:m("demio-ui-input-label",Ju.label,{[Ju.static]:h}),"data-html":"label"},v),!C&&e.createElement("span",{className:m("demio-ui-input-optional",Ju.optional,{[Ju.correctedTop]:h}),"data-html":"optional"},x),e.createElement("div",{className:m("demio-ui-input-wrapper",Ju.inputWrapper,f),"data-html":"wrapper"},O&&e.createElement("div",{className:Ju.startAdornment,"data-html":"start-adornment"},O),e.createElement("input",{...S,type:I,id:p,ref:n,name:w||p,className:Ju.input,placeholder:E,required:C,"data-html":"input",disabled:l,autoComplete:r,maxLength:g,onChange:e=>{y?.(e),R||T(e.target.value)},value:L,onFocus:e=>{_?.(e),k(!0)},onBlur:e=>{b?.(e),k(!1)}}),s&&e.createElement("div",{className:m(Ju.endAdornment,{[c]:!!c}),"data-html":"end-adornment"},s)),e.createElement("div",{className:m("demio-ui-input-footer",Ju.footer,{[Ju.footerWithEndAdornment]:!!s}),"data-html":"footer"},e.createElement("div",{className:m("demio-ui-input-footer-message",Ju.footerMessage)},u&&e.createElement(Zu,{type:"error"},u),d&&!u&&e.createElement(Zu,{className:Ju.hint},d)),e.createElement(Zu,{className:m("demio-ui-input-counter",Ju.counter)},F&&`(${B} / ${g})`)),D&&e.createElement("button",{type:"button",className:m("demio-ui-input-toggle-password-button",Ju.togglePasswordButton),onClick:()=>{P(!j)}},j?e.createElement(Al,null):e.createElement(ql,null)))}));var td="CopyLinkInput-module_root__oxVd0",nd="CopyLinkInput-module_input__MQztq",rd="CopyLinkInput-module_button__J5F9v",od="CopyLinkInput-module_inputWrapper__m0PMy";const ad=({onCopy:t})=>e.createElement("button",{type:"button",className:rd,onClick:t,"aria-label":"Copy to clipboard"},e.createElement(Oo,{width:16,height:16}));function id(e,[t,n]){return Math.min(n,Math.max(t,e))}var ld=l.createContext(void 0);function sd(e){const t=l.useContext(ld);return e||t||"ltr"}function cd(n){const r=n+"CollectionProvider",[o,a]=p(r),[i,l]=o(r,{collectionRef:{current:null},itemMap:new Map}),s=n=>{const{scope:r,children:o}=n,a=e.useRef(null),l=e.useRef(new Map).current;return t.jsx(i,{scope:r,itemMap:l,collectionRef:a,children:o})};s.displayName=r;const c=n+"CollectionSlot",u=e.forwardRef(((e,n)=>{const{scope:r,children:o}=e,a=g(n,l(c,r).collectionRef);return t.jsx(O,{ref:a,children:o})}));u.displayName=c;const d=n+"CollectionItemSlot",m="data-radix-collection-item",f=e.forwardRef(((n,r)=>{const{scope:o,children:a,...i}=n,s=e.useRef(null),c=g(r,s),u=l(d,o);return e.useEffect((()=>(u.itemMap.set(s,{ref:s,...i}),()=>{u.itemMap.delete(s)}))),t.jsx(O,{[m]:"",ref:c,children:a})}));return f.displayName=d,[{Provider:s,Slot:u,ItemSlot:f},function(t){const r=l(n+"CollectionConsumer",t);return e.useCallback((()=>{const e=r.collectionRef.current;if(!e)return[];const t=Array.from(e.querySelectorAll(`[${m}]`));return Array.from(r.itemMap.values()).sort(((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current)))}),[r.collectionRef,r.itemMap])},a]}var ud=["PageUp","PageDown"],dd=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],md={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},pd="Slider",[fd,hd,vd]=cd(pd),[gd,wd]=p(pd,[vd]),[bd,yd]=gd(pd),_d=l.forwardRef(((e,n)=>{const{name:r,min:o=0,max:a=100,step:i=1,orientation:s="horizontal",disabled:c=!1,minStepsBetweenThumbs:u=0,defaultValue:d=[o],value:m,onValueChange:p=()=>{},onValueCommit:f=()=>{},inverted:h=!1,form:v,...g}=e,b=l.useRef(new Set),y=l.useRef(0),_="horizontal"===s?Cd:Od,[x=[],E]=C({prop:m,defaultProp:d,onChange:e=>{const t=[...b.current];t[y.current]?.focus(),p(e)}}),O=l.useRef(x);function M(e,t,{commit:n}={commit:!1}){const r=function(e){return(String(e).split(".")[1]||"").length}(i),l=function(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}(Math.round((e-o)/i)*i+o,r),s=id(l,[o,a]);E(((e=[])=>{const r=function(e=[],t,n){const r=[...e];return r[n]=t,r.sort(((e,t)=>e-t))}(e,s,t);if(function(e,t){if(t>0){const n=function(e){return e.slice(0,-1).map(((t,n)=>e[n+1]-t))}(e);return Math.min(...n)>=t}return!0}(r,u*i)){y.current=r.indexOf(s);const t=String(r)!==String(e);return t&&n&&f(r),t?r:e}return e}))}return t.jsx(bd,{scope:e.__scopeSlider,name:r,disabled:c,min:o,max:a,valueIndexToChangeRef:y,thumbs:b.current,values:x,orientation:s,form:v,children:t.jsx(fd.Provider,{scope:e.__scopeSlider,children:t.jsx(fd.Slot,{scope:e.__scopeSlider,children:t.jsx(_,{"aria-disabled":c,"data-disabled":c?"":void 0,...g,ref:n,onPointerDown:w(g.onPointerDown,(()=>{c||(O.current=x)})),min:o,max:a,inverted:h,onSlideStart:c?void 0:function(e){const t=function(e,t){if(1===e.length)return 0;const n=e.map((e=>Math.abs(e-t))),r=Math.min(...n);return n.indexOf(r)}(x,e);M(e,t)},onSlideMove:c?void 0:function(e){M(e,y.current)},onSlideEnd:c?void 0:function(){const e=O.current[y.current];x[y.current]!==e&&f(x)},onHomeKeyDown:()=>!c&&M(o,0,{commit:!0}),onEndKeyDown:()=>!c&&M(a,x.length-1,{commit:!0}),onStepKeyDown:({event:e,direction:t})=>{if(!c){const n=ud.includes(e.key)||e.shiftKey&&dd.includes(e.key)?10:1,r=y.current;M(x[r]+i*n*t,r,{commit:!0})}}})})})})}));_d.displayName=pd;var[xd,Ed]=gd(pd,{startEdge:"left",endEdge:"right",size:"width",direction:1}),Cd=l.forwardRef(((e,n)=>{const{min:r,max:o,dir:a,inverted:i,onSlideStart:s,onSlideMove:c,onSlideEnd:u,onStepKeyDown:d,...m}=e,[p,f]=l.useState(null),h=g(n,(e=>f(e))),v=l.useRef(void 0),w=sd(a),b="ltr"===w,y=b&&!i||!b&&i;function _(e){const t=v.current||p.getBoundingClientRect(),n=Dd([0,t.width],y?[r,o]:[o,r]);return v.current=t,n(e-t.left)}return t.jsx(xd,{scope:e.__scopeSlider,startEdge:y?"left":"right",endEdge:y?"right":"left",direction:y?1:-1,size:"width",children:t.jsx(Md,{dir:w,"data-orientation":"horizontal",...m,ref:h,style:{...m.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:e=>{const t=_(e.clientX);s?.(t)},onSlideMove:e=>{const t=_(e.clientX);c?.(t)},onSlideEnd:()=>{v.current=void 0,u?.()},onStepKeyDown:e=>{const t=md[y?"from-left":"from-right"].includes(e.key);d?.({event:e,direction:t?-1:1})}})})})),Od=l.forwardRef(((e,n)=>{const{min:r,max:o,inverted:a,onSlideStart:i,onSlideMove:s,onSlideEnd:c,onStepKeyDown:u,...d}=e,m=l.useRef(null),p=g(n,m),f=l.useRef(void 0),h=!a;function v(e){const t=f.current||m.current.getBoundingClientRect(),n=Dd([0,t.height],h?[o,r]:[r,o]);return f.current=t,n(e-t.top)}return t.jsx(xd,{scope:e.__scopeSlider,startEdge:h?"bottom":"top",endEdge:h?"top":"bottom",size:"height",direction:h?1:-1,children:t.jsx(Md,{"data-orientation":"vertical",...d,ref:p,style:{...d.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:e=>{const t=v(e.clientY);i?.(t)},onSlideMove:e=>{const t=v(e.clientY);s?.(t)},onSlideEnd:()=>{f.current=void 0,c?.()},onStepKeyDown:e=>{const t=md[h?"from-bottom":"from-top"].includes(e.key);u?.({event:e,direction:t?-1:1})}})})})),Md=l.forwardRef(((e,n)=>{const{__scopeSlider:r,onSlideStart:o,onSlideMove:a,onSlideEnd:i,onHomeKeyDown:l,onEndKeyDown:s,onStepKeyDown:c,...u}=e,d=yd(pd,r);return t.jsx(j.span,{...u,ref:n,onKeyDown:w(e.onKeyDown,(e=>{"Home"===e.key?(l(e),e.preventDefault()):"End"===e.key?(s(e),e.preventDefault()):ud.concat(dd).includes(e.key)&&(c(e),e.preventDefault())})),onPointerDown:w(e.onPointerDown,(e=>{const t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),d.thumbs.has(t)?t.focus():o(e)})),onPointerMove:w(e.onPointerMove,(e=>{e.target.hasPointerCapture(e.pointerId)&&a(e)})),onPointerUp:w(e.onPointerUp,(e=>{const t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),i(e))}))})})),Ad="SliderTrack",Sd=l.forwardRef(((e,n)=>{const{__scopeSlider:r,...o}=e,a=yd(Ad,r);return t.jsx(j.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...o,ref:n})}));Sd.displayName=Ad;var jd="SliderRange",Pd=l.forwardRef(((e,n)=>{const{__scopeSlider:r,...o}=e,a=yd(jd,r),i=Ed(jd,r),s=g(n,l.useRef(null)),c=a.values.length,u=a.values.map((e=>Rd(e,a.min,a.max))),d=c>1?Math.min(...u):0,m=100-Math.max(...u);return t.jsx(j.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,...o,ref:s,style:{...e.style,[i.startEdge]:d+"%",[i.endEdge]:m+"%"}})}));Pd.displayName=jd;var qd="SliderThumb",Td=l.forwardRef(((e,n)=>{const r=hd(e.__scopeSlider),[o,a]=l.useState(null),i=g(n,(e=>a(e))),s=l.useMemo((()=>o?r().findIndex((e=>e.ref.current===o)):-1),[r,o]);return t.jsx(Nd,{...e,ref:i,index:s})})),Nd=l.forwardRef(((e,n)=>{const{__scopeSlider:r,index:o,name:a,...i}=e,s=yd(qd,r),c=Ed(qd,r),[u,d]=l.useState(null),m=g(n,(e=>d(e))),p=!u||(s.form||!!u.closest("form")),f=Ou(u),h=s.values[o],v=void 0===h?0:Rd(h,s.min,s.max),b=function(e,t){return t>2?`Value ${e+1} of ${t}`:2===t?["Minimum","Maximum"][e]:void 0}(o,s.values.length),y=f?.[c.size],_=y?function(e,t,n){const r=e/2,o=Dd([0,50],[0,r]);return(r-o(t)*n)*n}(y,v,c.direction):0;return l.useEffect((()=>{if(u)return s.thumbs.add(u),()=>{s.thumbs.delete(u)}}),[u,s.thumbs]),t.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[c.startEdge]:`calc(${v}% + ${_}px)`},children:[t.jsx(fd.ItemSlot,{scope:e.__scopeSlider,children:t.jsx(j.span,{role:"slider","aria-label":e["aria-label"]||b,"aria-valuemin":s.min,"aria-valuenow":h,"aria-valuemax":s.max,"aria-orientation":s.orientation,"data-orientation":s.orientation,"data-disabled":s.disabled?"":void 0,tabIndex:s.disabled?void 0:0,...i,ref:m,style:void 0===h?{display:"none"}:e.style,onFocus:w(e.onFocus,(()=>{s.valueIndexToChangeRef.current=o}))})}),p&&t.jsx(kd,{name:a??(s.name?s.name+(s.values.length>1?"[]":""):void 0),form:s.form,value:h},o)]})}));Td.displayName=qd;var kd=e=>{const{value:n,...r}=e,o=l.useRef(null),a=Cu(n);return l.useEffect((()=>{const e=o.current,t=window.HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(t,"value").set;if(a!==n&&r){const t=new Event("input",{bubbles:!0});r.call(e,n),e.dispatchEvent(t)}}),[a,n]),t.jsx("input",{style:{display:"none"},...r,ref:o,defaultValue:n})};function Rd(e,t,n){return id(100/(n-t)*(e-t),[0,100])}function Dd(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}var Id=_d,Ld=Sd,Bd=Pd,Fd=Td,zd="Slider-modules_container__ZtkgF",Vd="Slider-modules_track__KLggY",Hd="Slider-modules_range__3s39d",Ud="Slider-modules_thumb__P9ZoJ",Wd="Slider-modules_thumbArea__lNKj-";const Kd=e.memo((t=>{const{className:n,isDisabled:r=!1,max:o,min:a,name:i="slider",onChange:l,step:s,thumbAriaLabel:c="",value:u=0}=t,[d,p]=e.useState(u);return e.useEffect((()=>{p(u)}),[u]),e.createElement(Id,{className:m("demio-ui-slider-container",zd,n),"data-testid":"container",disabled:r,min:a,max:o,name:i,onValueChange:e=>{return t=e[0],p(t),void(l&&l(t));var t},step:s,value:[d]},e.createElement(Ld,{className:m("demio-ui-slider-track",Vd),"data-testid":"track"},e.createElement(Bd,{className:m("demio-ui-slider-range",Hd),"data-testid":"range"})),e.createElement(Fd,{"aria-label":c,className:m("demio-ui-slider-thumb",Ud),"data-testid":"thumb"},e.createElement("div",{className:m("demio-ui-slider-thumb-area",Wd)})))}));var Gd="Crop-modules_root__rN-SB",$d="Crop-modules_wrapper__gCOCS",Qd="Crop-modules_slider__-2TIB";const Xd=e.memo((t=>{const{aspect:n=1,className:o="",image:a="",isGridVisible:i=!1,onCropChange:l,onCropComplete:s,onZoomChange:c,sliderMin:u=1,sliderMax:d=3,sliderStep:p=.1}=t,[f,h]=e.useState({x:0,y:0}),[v,g]=e.useState(u);return a&&e.createElement("div",{className:m("demio-ui-crop-root",Gd,o),"data-testid":"crop-root"},e.createElement("div",{className:m("demio-ui-crop-wrapper",$d),"data-testid":"crop-wrapper"},e.createElement(r,{...t,aspect:n,classes:{containerClassName:"demio-ui-crop-container",mediaClassName:"demio-ui-crop-image "+(i?"demio-ui-crop-grid":"")},crop:f,image:a,onCropChange:e=>{h(e),l&&l(e)},onCropComplete:async(e,t)=>{s&&s(e,t)},onZoomChange:g,showGrid:i,zoom:v})),e.createElement("div",{className:m("demio-ui-crop-slider",Qd),"data-testid":"crop-slider"},e.createElement(Kd,{max:d,min:u,onChange:e=>{g(e),c&&c(e)},step:p})))})),Yd={jpg:["image/jpeg"],jpeg:["image/jpeg"],png:["image/png"],gif:["image/gif"],bmp:["image/bmp"],webp:["image/webp"],tiff:["image/tiff"],ico:["image/x-icon"],svg:["image/svg+xml"],pdf:["application/pdf"],txt:["text/plain"],doc:["application/msword"],docx:["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],xls:["application/vnd.ms-excel"],xlsx:["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],pps:["application/vnd.ms-powerpoint","application/mspowerpoint","application/powerpoint","application/x-mspowerpoint","application/x-powerpoint"],ppt:["application/vnd.ms-powerpoint"],pptx:["application/vnd.openxmlformats-officedocument.presentationml.presentation"],odt:["application/vnd.oasis.opendocument.text"],ods:["application/vnd.oasis.opendocument.spreadsheet"],odp:["application/vnd.oasis.opendocument.presentation"],rtf:["application/rtf"],mp3:["audio/mpeg"],wav:["audio/wav"],ogg:["audio/ogg"],aac:["audio/aac"],flac:["audio/flac"],avi:["video/x-msvideo","video/avi","video/x-avi"],flv:["video/x-flv","video/flv"],m4v:["video/x-m4v","video/m4v","video/mp4"],mkv:["video/x-matroska"],mov:["video/quicktime"],mp4:["video/mp4"],mpeg:["video/mpeg"],mpg:["video/mpeg"],webm:["video/webm"],zip:["application/zip"],tar:["application/x-tar"],gz:["application/gzip","application/x-gzip"],rar:["application/x-rar-compressed"],"7z":["application/x-7z-compressed"],html:["text/html"],htm:["text/html"],css:["text/css"],js:["application/javascript"],json:["application/json"],xml:["application/xml"],ttf:["font/ttf"],otf:["font/otf"],woff:["font/woff"],woff2:["font/woff2"],csv:["text/csv"],sql:["application/sql"],md:["text/markdown"],yaml:["text/yaml"],yml:["text/yaml"],epub:["application/epub+zip"],mobi:["application/x-mobipocket-ebook"]},Zd=(e=null)=>{if(!(e instanceof File&&e.name))return"";const t=e.name.toLowerCase().trim(),n=t.lastIndexOf(".");return-1!==n?t.substring(n+1):""},Jd=(e=null)=>{if(!(e instanceof File))return"";const t=e.type?.toLowerCase().trim()||"";return t.length>0?t:""},em=(e="",t="")=>{if("string"!=typeof e||"string"!=typeof t)return!1;const n=e.toLowerCase().trim(),r=t.toLowerCase().trim(),o=Yd[n]||[];return!(o.length>0)||o.includes(r)},tm=(e=null,t="")=>{if(!(e instanceof File))return!1;if(!("string"==typeof t&&t?.length>0))return!0;const n=Zd(e),r=Jd(e);if(!n||!r)return!1;if(!em(n,r))return!1;return t.toLowerCase().trim().includes(n)},nm=(e=null)=>e instanceof File&&e.type.startsWith("image/"),rm=(e=null,t=0)=>{if(!(e instanceof File))return!1;if(!t||"number"!=typeof t||t<0)return!0;const n=1024*t*1024;return e.size<n},om=async(e=null,t=0,n=0)=>new Promise(((r,o)=>{if(!(e instanceof File))return r(!1);if(!nm(e))return r(!0);const a=new FileReader;a.onload=e=>{const a=new Image;a.onload=()=>{const e=a.width>=t&&a.height>=n;r(e)},a.onerror=()=>{o(new Error("Error while loading Image"))},a.src=e.target?.result},a.onerror=()=>{o(new Error("Error while reading Image"))},a.readAsDataURL(e)})),am=e=>new Promise(((t,n)=>{if(!e)return void n(new Error("URL is empty"));const r=new Image;r.addEventListener("load",(()=>t(r))),r.addEventListener("error",(e=>n(e))),r.setAttribute("crossOrigin","anonymous"),r.src=e})),im=(e=0)=>e*Math.PI/180,lm=(e,t,n)=>{const r=im(n);return{width:Math.abs(Math.cos(r)*e)+Math.abs(Math.sin(r)*t),height:Math.abs(Math.sin(r)*e)+Math.abs(Math.cos(r)*t)}},sm=async(e,t,n=0,r={horizontal:!1,vertical:!1})=>{const o=await am(e),a=document.createElement("canvas"),i=a.getContext("2d");if(!i)return null;const{width:l,height:s}=lm(o.width,o.height,n);a.width=l,a.height=s,i.translate(l/2,s/2),i.scale(r.horizontal?-1:1,r.vertical?-1:1),i.translate(-o.width/2,-o.height/2),i.drawImage(o,0,0);const c=document.createElement("canvas"),u=c.getContext("2d");return u?(c.width=t.width,c.height=t.height,u.drawImage(a,t.x,t.y,t.width,t.height,0,0,t.width,t.height),new Promise(((e,t)=>{c.toBlob((n=>{n?e(URL.createObjectURL(n)):t(null)}),"image/jpeg")}))):null};var cm="Toast-modules_toast__jBLRk",um="Toast-modules_noCloseBtn__pyGvH",dm="Toast-modules_icon__ORsLy",mm="Toast-modules_success__BYfwB",pm="Toast-modules_warning__HLJ8C",fm="Toast-modules_error__yN4Cu",hm="Toast-modules_info__V0nO3",vm="Toast-modules_message__fnWMJ",gm="Toast-modules_description__GYPY5",wm="Toast-modules_noMessage__3Wskx",bm="Toast-modules_closeButton__GIv2a",ym="Toast-modules_closeIcon__2qev9";const _m=e.memo((({className:t="",description:n="",duration:r=4e3,icon:o=null,id:a,isClosable:i=!0,message:l="",onClose:s,style:c={},type:u="info"})=>{const[d,p]=e.useState(!0),f=a||Date.now(),h=Boolean(n),v=Boolean(l),g="error"===u&&!o,w="info"===u&&!o,b="success"===u&&!o,y="warning"===u&&!o,_=r<1e3?1e3*r:r,x=e=>{"object"==typeof e&&(e?.preventDefault?.(),e?.stopPropagation?.()),clearTimeout("number"==typeof e?e:void 0),p(!1),s?.(f)};return e.useEffect((()=>{const e=setTimeout((()=>x(e)),_);return()=>clearTimeout(e)}),[]),(v||h)&&d&&e.createElement("div",{className:m("demio-ui-toast",cm,{[um]:!i},t),"data-testid":`toast-${f}`,style:c},o&&e.createElement("div",{className:m("demio-ui-toast-custom-icon",dm),"data-testid":"toast-custom-icon"},o),g&&e.createElement(da,{className:m("demio-ui-toast-icon demio-ui-toast-icon-error",dm,fm),"data-testid":"toast-icon-error"}),w&&e.createElement(si,{className:m("demio-ui-toast-icon demio-ui-toast-icon-info",dm,hm),"data-testid":"toast-icon-info"}),b&&e.createElement(ro,{className:m("demio-ui-toast-icon demio-ui-toast-icon-success",dm,mm),"data-testid":"toast-icon-success"}),y&&e.createElement(ei,{className:m("demio-ui-toast-icon demio-ui-toast-icon-warning",dm,pm),"data-testid":"toast-icon-warning"}),e.createElement("div",{className:m("demio-ui-toast-message",vm),"data-testid":"toast-message"},l,h&&e.createElement("div",{className:m("demio-ui-toast-description",gm,{[wm]:!v}),"data-testid":"toast-description"},n)),i&&e.createElement("button",{className:m("demio-ui-toast-close-btn",bm),"data-testid":"toast-close-btn",onClick:()=>x(null)},e.createElement(mn,{className:m("demio-ui-toast-close-icon",ym),"data-testid":"toast-close-icon"})))}));var xm="ToastList-modules_toastList__9nnFy";const Em=e.memo((()=>{const[t,n]=e.useState([]),r=0===t.length,o=e.useCallback((e=>n((t=>t.filter((t=>t.id!==e))))),[n]),a=e.useCallback((()=>{r||(o(Number(t[0].id)),t[0].onClose?.(Number(t[0].id)))}),[r,t[0],o]),i=e.useCallback((e=>{"Escape"===e?.key&&a()}),[a]);return e.useEffect((()=>{Om?.updateSetter(n)}),[]),e.useEffect((()=>(document.addEventListener("keydown",i),()=>{document.removeEventListener("keydown",i)})),[i]),e.createElement("div",{className:m("demio-ui-toast-list",xm),id:"demio-ui-toast-list","data-testid":"toast-list"},t.map((t=>e.createElement(_m,{...t,key:`toast-${t.id}`}))))})),Cm=()=>{if("undefined"==typeof document)return!1;let t=document.getElementById("demio-ui-toast-root");return t||(t=document.createElement("div"),t.setAttribute("id","demio-ui-toast-root"),t.setAttribute("data-testid","demio-ui-toast-root"),document.body.appendChild(t),o.createRoot(t).render(e.createElement(Em,null))),!0};const Om=new class{setToastList=null;toastQueue=[];timerId=null;isWaitingForClient=!1;constructor(){this.render()}render=()=>{"undefined"!=typeof document?Cm():this.waitForClient()};waitForClient(){if(!this.isWaitingForClient&&"undefined"!=typeof window&&(this.isWaitingForClient=!0,window.addEventListener("load",(()=>{Cm(),this.isWaitingForClient=!1})),"undefined"!=typeof MutationObserver)){const e=new MutationObserver((()=>{document.getElementById("demio-ui-toast-root")&&(Cm(),e.disconnect(),this.isWaitingForClient=!1)}));e.observe(document.body,{childList:!0,subtree:!0})}}updateSetter(e){this.setToastList=e}remove=e=>{this.setToastList?.((t=>t.map((t=>t.id===e?{...t,message:""}:t))))};getUIToastListAmount=()=>document.getElementById("demio-ui-toast-list")?.children?.length||null;add=e=>{const t=this.getUIToastListAmount(),n={...e,id:e.id||Date.now()};this.setToastList?.((e=>null===t?[{...n}]:[...e,{...n}]))};processQueue=()=>{if(null!==this.timerId||0===this.toastQueue.length)return;const e=this.toastQueue.shift();e&&(this.add(e),this.timerId=setTimeout((()=>{this.timerId=null,this.processQueue()}),40))};addToQueue=e=>{if(!Cm())return this.isWaitingForClient||this.waitForClient(),void setTimeout((()=>this.addToQueue(e)),50);this.toastQueue.push(e),this.processQueue()};error=e=>{this.addToQueue({...e,type:"error"})};info=e=>{this.addToQueue({...e,type:"info"})};success=e=>{this.addToQueue({...e,type:"success"})};warning=e=>{this.addToQueue({...e,type:"warning"})}},Mm=(t="",n=null)=>{const[r,o]=e.useState("");return e.useEffect((()=>{n&&t?sm(t,n).then((e=>{o(String(e))})).catch((()=>{o("")})):o("")}),[t,n]),{croppedImageURL:r}},Am={isFileDimensionValid:!0,isFileSizeValid:!0,isFileTypeValid:!0,isFileValid:!0},Sm=({acceptableFileTypes:t="",fileSizeMbLimit:n=0,isValidationEnabled:r=!0,isDimensionValidationEnabled:o=!0,isSizeValidationEnabled:a=!0,minHeightLimit:i=0,minWidthLimit:l=0})=>{const[s,c]=e.useState(Am);return{...s,validate:async(e=null)=>{if(!(r&&e instanceof File))return Am;const u=!o||await om(e,l,i),d=!a||rm(e,n),m=!(t.length>0)||tm(e,t),p=u&&d&&m,f={...s,isFileDimensionValid:u,isFileSizeValid:d,isFileTypeValid:m,isFileValid:p};return c(f),f}}};var jm="Note-modules_note__6dcyr",Pm="Note-modules_error__sG0TM",qm="Note-modules_info__4-D0C",Tm="Note-modules_icon__P-p8I",Nm="Note-modules_blue__uKo5V";const km={info:mi,error:yc},Rm=e.memo((t=>{const{className:n="",classNameIcon:r="",text:o="",type:a="error"}=t,i=o.trim().length>0,l="info"===a,s=km[a];return i&&e.createElement("div",{className:m("demio-ui-note",jm,{[Pm]:!l,[qm]:l},n),"data-testid":"note",role:l?"status":"alert"},e.createElement(s,{className:m("demio-ui-note-icon",Tm,{[Nm]:l},r),"data-testid":`note-icon-${a}`}),o)}));var Dm="DnDArea-modules_container__bPaID",Im="DnDArea-modules_isDraggedOver__A5x5L";const Lm=e.memo((t=>{const{acceptableFileTypes:n="",className:r="",children:o="Drag the file into the selected area",dropText:a="Drop it like it’s hot! 🔥",fileSizeMbLimit:i=0,error:l="",minHeightLimit:s=0,minWidthLimit:c=0,errorDimension:u=`Minimum required dimensions are ${c}x${s}.`,errorSize:d=`Exceeds maximum size limit of ${i} MB.`,errorType:p="File type is not supported.",isValidationEnabled:f=!0,isDimensionValidationEnabled:h=!0,isSizeValidationEnabled:v=!0,onDragLeave:g,onDragOver:w,onDrop:b}=t,[y,_]=e.useState(!1),{isFileDimensionValid:x,isFileSizeValid:E,isFileTypeValid:C,validate:O}=Sm({acceptableFileTypes:n,fileSizeMbLimit:i,isDimensionValidationEnabled:h,isSizeValidationEnabled:v,isValidationEnabled:f,minHeightLimit:s,minWidthLimit:c}),M=l.length>0,A=n.length>0,S=f&&h&&!x,j=f&&v&&!E,P=f&&A&&!C;return e.createElement("div",{className:"demio-ui-dnd-area-root","data-testid":"dnd-area-root"},f&&M&&e.createElement(Rm,{text:l}),f&&!M&&P&&e.createElement(Rm,{text:p}),f&&!M&&!P&&j&&e.createElement(Rm,{text:d}),f&&!M&&!P&&!j&&S&&e.createElement(Rm,{text:u}),e.createElement("div",{className:m("demio-ui-dnd-area-container",Dm,{[Im]:y},r),"data-testid":"dnd-area-container",onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),_(!1),g&&g(e)},onDragOver:e=>{e.preventDefault(),e.stopPropagation(),_(!0),w&&w(e)},onDrop:async e=>{e.preventDefault(),e.stopPropagation(),_(!1);const t=e.dataTransfer?.files[0]||null;await O(t),b&&b(e,t)}},y&&a,!y&&o))}));var Bm="Modal-modules_overlay__V-vTn",Fm="Modal-modules_header__-dxAm",zm="Modal-modules_isTitleHidden__T6g1-",Vm="Modal-modules_close__CwIjR",Hm="Modal-modules_title__3ehge",Um="Modal-modules_titleCentered__Qqy8u",Wm="Modal-modules_content__sK9HS",Km="Modal-modules_body__8Khpx";function Gm({children:t=null,contentClassName:n="",isCloseButtonVisible:r=!0,onClose:o=()=>{},onOpenChange:a,open:i,overlayClassName:l="",title:s,isClosable:c=!0,portalContainer:u=document.body,...d}){return e.createElement(At,{open:i,onOpenChange:e=>{c&&a&&a(e)},"data-testid":"modal-overlay"},e.createElement(jt,{container:u||void 0},e.createElement(Pt,{"data-testid":"modal-overlay",className:m(Bm,{[l]:!!l,[zm]:!s&&!r},"demio-ui-modal-overlay")},e.createElement(qt,{...d,className:m(Wm,{[n]:!!n},"demio-ui-modal-content"),"aria-describedby":void 0},e.createElement("div",{className:m(Fm,"demio-ui-modal-header"),"data-html":"header"},e.createElement(Tt,{className:m(Hm,{[Um]:!r},"demio-ui-modal-title"),"data-html":"title"},s),r&&e.createElement(kt,{className:m(Vm,"demio-ui-modal-close-button"),onClick:()=>{a(!1),o()},"data-html":"close-btn","data-testid":"close-btn"},e.createElement(mn,null))),e.createElement("div",{className:m(Km,"demio-ui-modal-children"),"data-html":"content"},t)))))}var $m={overlay:"Drawer-modules_overlay__BbKV9",content:"Drawer-modules_content__mZs-5",alignRight:"Drawer-modules_alignRight__QQxn4",alignLeft:"Drawer-modules_alignLeft__4W0Tp",childrenWrapper:"Drawer-modules_childrenWrapper__dGPQP",header:"Drawer-modules_header__cM4Mi"};const Qm=["top","right","bottom","left"],Xm=Math.min,Ym=Math.max,Zm=Math.round,Jm=Math.floor,ep=e=>({x:e,y:e}),tp={left:"right",right:"left",bottom:"top",top:"bottom"},np={start:"end",end:"start"};function rp(e,t,n){return Ym(e,Xm(t,n))}function op(e,t){return"function"==typeof e?e(t):e}function ap(e){return e.split("-")[0]}function ip(e){return e.split("-")[1]}function lp(e){return"x"===e?"y":"x"}function sp(e){return"y"===e?"height":"width"}function cp(e){return["top","bottom"].includes(ap(e))?"y":"x"}function up(e){return lp(cp(e))}function dp(e){return e.replace(/start|end/g,(e=>np[e]))}function mp(e){return e.replace(/left|right|bottom|top/g,(e=>tp[e]))}function pp(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function fp(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function hp(e,t,n){let{reference:r,floating:o}=e;const a=cp(t),i=up(t),l=sp(i),s=ap(t),c="y"===a,u=r.x+r.width/2-o.width/2,d=r.y+r.height/2-o.height/2,m=r[l]/2-o[l]/2;let p;switch(s){case"top":p={x:u,y:r.y-o.height};break;case"bottom":p={x:u,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:d};break;case"left":p={x:r.x-o.width,y:d};break;default:p={x:r.x,y:r.y}}switch(ip(t)){case"start":p[i]-=m*(n&&c?-1:1);break;case"end":p[i]+=m*(n&&c?-1:1)}return p}async function vp(e,t){var n;void 0===t&&(t={});const{x:r,y:o,platform:a,rects:i,elements:l,strategy:s}=e,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:m=!1,padding:p=0}=op(t,e),f=pp(p),h=l[m?"floating"===d?"reference":"floating":d],v=fp(await a.getClippingRect({element:null==(n=await(null==a.isElement?void 0:a.isElement(h)))||n?h:h.contextElement||await(null==a.getDocumentElement?void 0:a.getDocumentElement(l.floating)),boundary:c,rootBoundary:u,strategy:s})),g="floating"===d?{x:r,y:o,width:i.floating.width,height:i.floating.height}:i.reference,w=await(null==a.getOffsetParent?void 0:a.getOffsetParent(l.floating)),b=await(null==a.isElement?void 0:a.isElement(w))&&await(null==a.getScale?void 0:a.getScale(w))||{x:1,y:1},y=fp(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:g,offsetParent:w,strategy:s}):g);return{top:(v.top-y.top+f.top)/b.y,bottom:(y.bottom-v.bottom+f.bottom)/b.y,left:(v.left-y.left+f.left)/b.x,right:(y.right-v.right+f.right)/b.x}}function gp(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function wp(e){return Qm.some((t=>e[t]>=0))}function bp(){return"undefined"!=typeof window}function yp(e){return Ep(e)?(e.nodeName||"").toLowerCase():"#document"}function _p(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function xp(e){var t;return null==(t=(Ep(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function Ep(e){return!!bp()&&(e instanceof Node||e instanceof _p(e).Node)}function Cp(e){return!!bp()&&(e instanceof Element||e instanceof _p(e).Element)}function Op(e){return!!bp()&&(e instanceof HTMLElement||e instanceof _p(e).HTMLElement)}function Mp(e){return!(!bp()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof _p(e).ShadowRoot)}function Ap(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=Np(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(o)}function Sp(e){return["table","td","th"].includes(yp(e))}function jp(e){return[":popover-open",":modal"].some((t=>{try{return e.matches(t)}catch(e){return!1}}))}function Pp(e){const t=qp(),n=Cp(e)?Np(e):e;return["transform","translate","scale","rotate","perspective"].some((e=>!!n[e]&&"none"!==n[e]))||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||["transform","translate","scale","rotate","perspective","filter"].some((e=>(n.willChange||"").includes(e)))||["paint","layout","strict","content"].some((e=>(n.contain||"").includes(e)))}function qp(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function Tp(e){return["html","body","#document"].includes(yp(e))}function Np(e){return _p(e).getComputedStyle(e)}function kp(e){return Cp(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Rp(e){if("html"===yp(e))return e;const t=e.assignedSlot||e.parentNode||Mp(e)&&e.host||xp(e);return Mp(t)?t.host:t}function Dp(e){const t=Rp(e);return Tp(t)?e.ownerDocument?e.ownerDocument.body:e.body:Op(t)&&Ap(t)?t:Dp(t)}function Ip(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);const o=Dp(e),a=o===(null==(r=e.ownerDocument)?void 0:r.body),i=_p(o);if(a){const e=Lp(i);return t.concat(i,i.visualViewport||[],Ap(o)?o:[],e&&n?Ip(e):[])}return t.concat(o,Ip(o,[],n))}function Lp(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Bp(e){const t=Np(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=Op(e),a=o?e.offsetWidth:n,i=o?e.offsetHeight:r,l=Zm(n)!==a||Zm(r)!==i;return l&&(n=a,r=i),{width:n,height:r,$:l}}function Fp(e){return Cp(e)?e:e.contextElement}function zp(e){const t=Fp(e);if(!Op(t))return ep(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:a}=Bp(t);let i=(a?Zm(n.width):n.width)/r,l=(a?Zm(n.height):n.height)/o;return i&&Number.isFinite(i)||(i=1),l&&Number.isFinite(l)||(l=1),{x:i,y:l}}const Vp=ep(0);function Hp(e){const t=_p(e);return qp()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:Vp}function Up(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=!1);const o=e.getBoundingClientRect(),a=Fp(e);let i=ep(1);t&&(r?Cp(r)&&(i=zp(r)):i=zp(e));const l=function(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==_p(e))&&t}(a,n,r)?Hp(a):ep(0);let s=(o.left+l.x)/i.x,c=(o.top+l.y)/i.y,u=o.width/i.x,d=o.height/i.y;if(a){const e=_p(a),t=r&&Cp(r)?_p(r):r;let n=e,o=Lp(n);for(;o&&r&&t!==n;){const e=zp(o),t=o.getBoundingClientRect(),r=Np(o),a=t.left+(o.clientLeft+parseFloat(r.paddingLeft))*e.x,i=t.top+(o.clientTop+parseFloat(r.paddingTop))*e.y;s*=e.x,c*=e.y,u*=e.x,d*=e.y,s+=a,c+=i,n=_p(o),o=Lp(n)}}return fp({width:u,height:d,x:s,y:c})}function Wp(e,t){const n=kp(e).scrollLeft;return t?t.left+n:Up(xp(e)).left+n}function Kp(e,t,n){void 0===n&&(n=!1);const r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-(n?0:Wp(e,r)),y:r.top+t.scrollTop}}function Gp(e,t,n){let r;if("viewport"===t)r=function(e,t){const n=_p(e),r=xp(e),o=n.visualViewport;let a=r.clientWidth,i=r.clientHeight,l=0,s=0;if(o){a=o.width,i=o.height;const e=qp();(!e||e&&"fixed"===t)&&(l=o.offsetLeft,s=o.offsetTop)}return{width:a,height:i,x:l,y:s}}(e,n);else if("document"===t)r=function(e){const t=xp(e),n=kp(e),r=e.ownerDocument.body,o=Ym(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=Ym(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let i=-n.scrollLeft+Wp(e);const l=-n.scrollTop;return"rtl"===Np(r).direction&&(i+=Ym(t.clientWidth,r.clientWidth)-o),{width:o,height:a,x:i,y:l}}(xp(e));else if(Cp(t))r=function(e,t){const n=Up(e,!0,"fixed"===t),r=n.top+e.clientTop,o=n.left+e.clientLeft,a=Op(e)?zp(e):ep(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:o*a.x,y:r*a.y}}(t,n);else{const n=Hp(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return fp(r)}function $p(e,t){const n=Rp(e);return!(n===t||!Cp(n)||Tp(n))&&("fixed"===Np(n).position||$p(n,t))}function Qp(e,t,n){const r=Op(t),o=xp(t),a="fixed"===n,i=Up(e,!0,a,t);let l={scrollLeft:0,scrollTop:0};const s=ep(0);if(r||!r&&!a)if(("body"!==yp(t)||Ap(o))&&(l=kp(t)),r){const e=Up(t,!0,a,t);s.x=e.x+t.clientLeft,s.y=e.y+t.clientTop}else o&&(s.x=Wp(o));const c=!o||r||a?ep(0):Kp(o,l);return{x:i.left+l.scrollLeft-s.x-c.x,y:i.top+l.scrollTop-s.y-c.y,width:i.width,height:i.height}}function Xp(e){return"static"===Np(e).position}function Yp(e,t){if(!Op(e)||"fixed"===Np(e).position)return null;if(t)return t(e);let n=e.offsetParent;return xp(e)===n&&(n=n.ownerDocument.body),n}function Zp(e,t){const n=_p(e);if(jp(e))return n;if(!Op(e)){let t=Rp(e);for(;t&&!Tp(t);){if(Cp(t)&&!Xp(t))return t;t=Rp(t)}return n}let r=Yp(e,t);for(;r&&Sp(r)&&Xp(r);)r=Yp(r,t);return r&&Tp(r)&&Xp(r)&&!Pp(r)?n:r||function(e){let t=Rp(e);for(;Op(t)&&!Tp(t);){if(Pp(t))return t;if(jp(t))return null;t=Rp(t)}return null}(e)||n}const Jp={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const a="fixed"===o,i=xp(r),l=!!t&&jp(t.floating);if(r===i||l&&a)return n;let s={scrollLeft:0,scrollTop:0},c=ep(1);const u=ep(0),d=Op(r);if((d||!d&&!a)&&(("body"!==yp(r)||Ap(i))&&(s=kp(r)),Op(r))){const e=Up(r);c=zp(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}const m=!i||d||a?ep(0):Kp(i,s,!0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-s.scrollLeft*c.x+u.x+m.x,y:n.y*c.y-s.scrollTop*c.y+u.y+m.y}},getDocumentElement:xp,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const a=[..."clippingAncestors"===n?jp(t)?[]:function(e,t){const n=t.get(e);if(n)return n;let r=Ip(e,[],!1).filter((e=>Cp(e)&&"body"!==yp(e))),o=null;const a="fixed"===Np(e).position;let i=a?Rp(e):e;for(;Cp(i)&&!Tp(i);){const t=Np(i),n=Pp(i);n||"fixed"!==t.position||(o=null),(a?!n&&!o:!n&&"static"===t.position&&o&&["absolute","fixed"].includes(o.position)||Ap(i)&&!n&&$p(e,i))?r=r.filter((e=>e!==i)):o=t,i=Rp(i)}return t.set(e,r),r}(t,this._c):[].concat(n),r],i=a[0],l=a.reduce(((e,n)=>{const r=Gp(t,n,o);return e.top=Ym(r.top,e.top),e.right=Xm(r.right,e.right),e.bottom=Xm(r.bottom,e.bottom),e.left=Ym(r.left,e.left),e}),Gp(t,i,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},getOffsetParent:Zp,getElementRects:async function(e){const t=this.getOffsetParent||Zp,n=this.getDimensions,r=await n(e.floating);return{reference:Qp(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:n}=Bp(e);return{width:t,height:n}},getScale:zp,isElement:Cp,isRTL:function(e){return"rtl"===Np(e).direction}};function ef(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function tf(e,t,n,r){void 0===r&&(r={});const{ancestorScroll:o=!0,ancestorResize:a=!0,elementResize:i="function"==typeof ResizeObserver,layoutShift:l="function"==typeof IntersectionObserver,animationFrame:s=!1}=r,c=Fp(e),u=o||a?[...c?Ip(c):[],...Ip(t)]:[];u.forEach((e=>{o&&e.addEventListener("scroll",n,{passive:!0}),a&&e.addEventListener("resize",n)}));const d=c&&l?function(e,t){let n,r=null;const o=xp(e);function a(){var e;clearTimeout(n),null==(e=r)||e.disconnect(),r=null}return function i(l,s){void 0===l&&(l=!1),void 0===s&&(s=1),a();const c=e.getBoundingClientRect(),{left:u,top:d,width:m,height:p}=c;if(l||t(),!m||!p)return;const f={rootMargin:-Jm(d)+"px "+-Jm(o.clientWidth-(u+m))+"px "+-Jm(o.clientHeight-(d+p))+"px "+-Jm(u)+"px",threshold:Ym(0,Xm(1,s))||1};let h=!0;function v(t){const r=t[0].intersectionRatio;if(r!==s){if(!h)return i();r?i(!1,r):n=setTimeout((()=>{i(!1,1e-7)}),1e3)}1!==r||ef(c,e.getBoundingClientRect())||i(),h=!1}try{r=new IntersectionObserver(v,{...f,root:o.ownerDocument})}catch(e){r=new IntersectionObserver(v,f)}r.observe(e)}(!0),a}(c,n):null;let m,p=-1,f=null;i&&(f=new ResizeObserver((e=>{let[r]=e;r&&r.target===c&&f&&(f.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame((()=>{var e;null==(e=f)||e.observe(t)}))),n()})),c&&!s&&f.observe(c),f.observe(t));let h=s?Up(e):null;return s&&function t(){const r=Up(e);h&&!ef(h,r)&&n();h=r,m=requestAnimationFrame(t)}(),n(),()=>{var e;u.forEach((e=>{o&&e.removeEventListener("scroll",n),a&&e.removeEventListener("resize",n)})),null==d||d(),null==(e=f)||e.disconnect(),f=null,s&&cancelAnimationFrame(m)}}const nf=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:o,y:a,placement:i,middlewareData:l}=t,s=await async function(e,t){const{placement:n,platform:r,elements:o}=e,a=await(null==r.isRTL?void 0:r.isRTL(o.floating)),i=ap(n),l=ip(n),s="y"===cp(n),c=["left","top"].includes(i)?-1:1,u=a&&s?-1:1,d=op(t,e);let{mainAxis:m,crossAxis:p,alignmentAxis:f}="number"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return l&&"number"==typeof f&&(p="end"===l?-1*f:f),s?{x:p*u,y:m*c}:{x:m*c,y:p*u}}(t,e);return i===(null==(n=l.offset)?void 0:n.placement)&&null!=(r=l.arrow)&&r.alignmentOffset?{}:{x:o+s.x,y:a+s.y,data:{...s,placement:i}}}}},rf=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:a=!0,crossAxis:i=!1,limiter:l={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...s}=op(e,t),c={x:n,y:r},u=await vp(t,s),d=cp(ap(o)),m=lp(d);let p=c[m],f=c[d];if(a){const e="y"===m?"bottom":"right";p=rp(p+u["y"===m?"top":"left"],p,p-u[e])}if(i){const e="y"===d?"bottom":"right";f=rp(f+u["y"===d?"top":"left"],f,f-u[e])}const h=l.fn({...t,[m]:p,[d]:f});return{...h,data:{x:h.x-n,y:h.y-r,enabled:{[m]:a,[d]:i}}}}}},of=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:o,middlewareData:a,rects:i,initialPlacement:l,platform:s,elements:c}=t,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:m,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:f="none",flipAlignment:h=!0,...v}=op(e,t);if(null!=(n=a.arrow)&&n.alignmentOffset)return{};const g=ap(o),w=cp(l),b=ap(l)===l,y=await(null==s.isRTL?void 0:s.isRTL(c.floating)),_=m||(b||!h?[mp(l)]:function(e){const t=mp(e);return[dp(e),t,dp(t)]}(l)),x="none"!==f;!m&&x&&_.push(...function(e,t,n,r){const o=ip(e);let a=function(e,t,n){const r=["left","right"],o=["right","left"],a=["top","bottom"],i=["bottom","top"];switch(e){case"top":case"bottom":return n?t?o:r:t?r:o;case"left":case"right":return t?a:i;default:return[]}}(ap(e),"start"===n,r);return o&&(a=a.map((e=>e+"-"+o)),t&&(a=a.concat(a.map(dp)))),a}(l,h,f,y));const E=[l,..._],C=await vp(t,v),O=[];let M=(null==(r=a.flip)?void 0:r.overflows)||[];if(u&&O.push(C[g]),d){const e=function(e,t,n){void 0===n&&(n=!1);const r=ip(e),o=up(e),a=sp(o);let i="x"===o?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[a]>t.floating[a]&&(i=mp(i)),[i,mp(i)]}(o,i,y);O.push(C[e[0]],C[e[1]])}if(M=[...M,{placement:o,overflows:O}],!O.every((e=>e<=0))){var A,S;const e=((null==(A=a.flip)?void 0:A.index)||0)+1,t=E[e];if(t)return{data:{index:e,overflows:M},reset:{placement:t}};let n=null==(S=M.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:S.placement;if(!n)switch(p){case"bestFit":{var j;const e=null==(j=M.filter((e=>{if(x){const t=cp(e.placement);return t===w||"y"===t}return!0})).map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:j[0];e&&(n=e);break}case"initialPlacement":n=l}if(o!==n)return{reset:{placement:n}}}return{}}}},af=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:o,rects:a,platform:i,elements:l}=t,{apply:s=()=>{},...c}=op(e,t),u=await vp(t,c),d=ap(o),m=ip(o),p="y"===cp(o),{width:f,height:h}=a.floating;let v,g;"top"===d||"bottom"===d?(v=d,g=m===(await(null==i.isRTL?void 0:i.isRTL(l.floating))?"start":"end")?"left":"right"):(g=d,v="end"===m?"top":"bottom");const w=h-u.top-u.bottom,b=f-u.left-u.right,y=Xm(h-u[v],w),_=Xm(f-u[g],b),x=!t.middlewareData.shift;let E=y,C=_;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(C=b),null!=(r=t.middlewareData.shift)&&r.enabled.y&&(E=w),x&&!m){const e=Ym(u.left,0),t=Ym(u.right,0),n=Ym(u.top,0),r=Ym(u.bottom,0);p?C=f-2*(0!==e||0!==t?e+t:Ym(u.left,u.right)):E=h-2*(0!==n||0!==r?n+r:Ym(u.top,u.bottom))}await s({...t,availableWidth:C,availableHeight:E});const O=await i.getDimensions(l.floating);return f!==O.width||h!==O.height?{reset:{rects:!0}}:{}}}},lf=function(e){return void 0===e&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...o}=op(e,t);switch(r){case"referenceHidden":{const e=gp(await vp(t,{...o,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:wp(e)}}}case"escaped":{const e=gp(await vp(t,{...o,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:wp(e)}}}default:return{}}}}},sf=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:a,platform:i,elements:l,middlewareData:s}=t,{element:c,padding:u=0}=op(e,t)||{};if(null==c)return{};const d=pp(u),m={x:n,y:r},p=up(o),f=sp(p),h=await i.getDimensions(c),v="y"===p,g=v?"top":"left",w=v?"bottom":"right",b=v?"clientHeight":"clientWidth",y=a.reference[f]+a.reference[p]-m[p]-a.floating[f],_=m[p]-a.reference[p],x=await(null==i.getOffsetParent?void 0:i.getOffsetParent(c));let E=x?x[b]:0;E&&await(null==i.isElement?void 0:i.isElement(x))||(E=l.floating[b]||a.floating[f]);const C=y/2-_/2,O=E/2-h[f]/2-1,M=Xm(d[g],O),A=Xm(d[w],O),S=M,j=E-h[f]-A,P=E/2-h[f]/2+C,q=rp(S,P,j),T=!s.arrow&&null!=ip(o)&&P!==q&&a.reference[f]/2-(P<S?M:A)-h[f]/2<0,N=T?P<S?P-S:P-j:0;return{[p]:m[p]+N,data:{[p]:q,centerOffset:P-q-N,...T&&{alignmentOffset:N}},reset:T}}}),cf=function(e){return void 0===e&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:o,rects:a,middlewareData:i}=t,{offset:l=0,mainAxis:s=!0,crossAxis:c=!0}=op(e,t),u={x:n,y:r},d=cp(o),m=lp(d);let p=u[m],f=u[d];const h=op(l,t),v="number"==typeof h?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(s){const e="y"===m?"height":"width",t=a.reference[m]-a.floating[e]+v.mainAxis,n=a.reference[m]+a.reference[e]-v.mainAxis;p<t?p=t:p>n&&(p=n)}if(c){var g,w;const e="y"===m?"width":"height",t=["top","left"].includes(ap(o)),n=a.reference[d]-a.floating[e]+(t&&(null==(g=i.offset)?void 0:g[d])||0)+(t?0:v.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:(null==(w=i.offset)?void 0:w[d])||0)-(t?v.crossAxis:0);f<n?f=n:f>r&&(f=r)}return{[m]:p,[d]:f}}}},uf=(e,t,n)=>{const r=new Map,o={platform:Jp,...n},a={...o.platform,_c:r};return(async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:a=[],platform:i}=n,l=a.filter(Boolean),s=await(null==i.isRTL?void 0:i.isRTL(t));let c=await i.getElementRects({reference:e,floating:t,strategy:o}),{x:u,y:d}=hp(c,r,s),m=r,p={},f=0;for(let n=0;n<l.length;n++){const{name:a,fn:h}=l[n],{x:v,y:g,data:w,reset:b}=await h({x:u,y:d,initialPlacement:r,placement:m,strategy:o,middlewareData:p,rects:c,platform:i,elements:{reference:e,floating:t}});u=null!=v?v:u,d=null!=g?g:d,p={...p,[a]:{...p[a],...w}},b&&f<=50&&(f++,"object"==typeof b&&(b.placement&&(m=b.placement),b.rects&&(c=!0===b.rects?await i.getElementRects({reference:e,floating:t,strategy:o}):b.rects),({x:u,y:d}=hp(c,m,s))),n=-1)}return{x:u,y:d,placement:m,strategy:o,middlewareData:p}})(e,t,{...o,platform:a})};var df="undefined"!=typeof document?e.useLayoutEffect:e.useEffect;function mf(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;let n,r,o;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;0!=r--;)if(!mf(e[r],t[r]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!{}.hasOwnProperty.call(t,o[r]))return!1;for(r=n;0!=r--;){const n=o[r];if(("_owner"!==n||!e.$$typeof)&&!mf(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function pf(e){if("undefined"==typeof window)return 1;return(e.ownerDocument.defaultView||window).devicePixelRatio||1}function ff(e,t){const n=pf(e);return Math.round(t*n)/n}function hf(e){const t=l.useRef(e);return df((()=>{t.current=e})),t}const vf=e=>({name:"arrow",options:e,fn(t){const{element:n,padding:r}="function"==typeof e?e(t):e;return n&&(o=n,{}.hasOwnProperty.call(o,"current"))?null!=n.current?sf({element:n.current,padding:r}).fn(t):{}:n?sf({element:n,padding:r}).fn(t):{};var o}}),gf=(e,t)=>({...nf(e),options:[e,t]}),wf=(e,t)=>({...rf(e),options:[e,t]}),bf=(e,t)=>({...cf(e),options:[e,t]}),yf=(e,t)=>({...of(e),options:[e,t]}),_f=(e,t)=>({...af(e),options:[e,t]}),xf=(e,t)=>({...lf(e),options:[e,t]}),Ef=(e,t)=>({...vf(e),options:[e,t]});var Cf=l.forwardRef(((e,n)=>{const{children:r,width:o=10,height:a=5,...i}=e;return t.jsx(j.svg,{...i,ref:n,width:o,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?r:t.jsx("polygon",{points:"0,0 30,0 15,10"})})}));Cf.displayName="Arrow";var Of=Cf,Mf="Popper",[Af,Sf]=p(Mf),[jf,Pf]=Af(Mf),qf=e=>{const{__scopePopper:n,children:r}=e,[o,a]=l.useState(null);return t.jsx(jf,{scope:n,anchor:o,onAnchorChange:a,children:r})};qf.displayName=Mf;var Tf="PopperAnchor",Nf=l.forwardRef(((e,n)=>{const{__scopePopper:r,virtualRef:o,...a}=e,i=Pf(Tf,r),s=l.useRef(null),c=g(n,s);return l.useEffect((()=>{i.onAnchorChange(o?.current||s.current)})),o?null:t.jsx(j.div,{...a,ref:c})}));Nf.displayName=Tf;var kf="PopperContent",[Rf,Df]=Af(kf),If=l.forwardRef(((e,n)=>{const{__scopePopper:r,side:o="bottom",sideOffset:a=0,align:i="center",alignOffset:c=0,arrowPadding:u=0,avoidCollisions:d=!0,collisionBoundary:m=[],collisionPadding:p=0,sticky:f="partial",hideWhenDetached:h=!1,updatePositionStrategy:v="optimized",onPlaced:w,...y}=e,_=Pf(kf,r),[x,C]=l.useState(null),O=g(n,(e=>C(e))),[M,A]=l.useState(null),S=Ou(M),P=S?.width??0,q=S?.height??0,T=o+("center"!==i?"-"+i:""),N="number"==typeof p?p:{top:0,right:0,bottom:0,left:0,...p},k=Array.isArray(m)?m:[m],R=k.length>0,D={padding:N,boundary:k.filter(zf),altBoundary:R},{refs:I,floatingStyles:L,placement:B,isPositioned:F,middlewareData:z}=function(e){void 0===e&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:o,elements:{reference:a,floating:i}={},transform:c=!0,whileElementsMounted:u,open:d}=e,[m,p]=l.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,h]=l.useState(r);mf(f,r)||h(r);const[v,g]=l.useState(null),[w,b]=l.useState(null),y=l.useCallback((e=>{e!==C.current&&(C.current=e,g(e))}),[]),_=l.useCallback((e=>{e!==O.current&&(O.current=e,b(e))}),[]),x=a||v,E=i||w,C=l.useRef(null),O=l.useRef(null),M=l.useRef(m),A=null!=u,S=hf(u),j=hf(o),P=hf(d),q=l.useCallback((()=>{if(!C.current||!O.current)return;const e={placement:t,strategy:n,middleware:f};j.current&&(e.platform=j.current),uf(C.current,O.current,e).then((e=>{const t={...e,isPositioned:!1!==P.current};T.current&&!mf(M.current,t)&&(M.current=t,s.flushSync((()=>{p(t)})))}))}),[f,t,n,j,P]);df((()=>{!1===d&&M.current.isPositioned&&(M.current.isPositioned=!1,p((e=>({...e,isPositioned:!1}))))}),[d]);const T=l.useRef(!1);df((()=>(T.current=!0,()=>{T.current=!1})),[]),df((()=>{if(x&&(C.current=x),E&&(O.current=E),x&&E){if(S.current)return S.current(x,E,q);q()}}),[x,E,q,S,A]);const N=l.useMemo((()=>({reference:C,floating:O,setReference:y,setFloating:_})),[y,_]),k=l.useMemo((()=>({reference:x,floating:E})),[x,E]),R=l.useMemo((()=>{const e={position:n,left:0,top:0};if(!k.floating)return e;const t=ff(k.floating,m.x),r=ff(k.floating,m.y);return c?{...e,transform:"translate("+t+"px, "+r+"px)",...pf(k.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:r}}),[n,c,k.floating,m.x,m.y]);return l.useMemo((()=>({...m,update:q,refs:N,elements:k,floatingStyles:R})),[m,q,N,k,R])}({strategy:"fixed",placement:T,whileElementsMounted:(...e)=>tf(...e,{animationFrame:"always"===v}),elements:{reference:_.anchor},middleware:[gf({mainAxis:a+q,alignmentAxis:c}),d&&wf({mainAxis:!0,crossAxis:!1,limiter:"partial"===f?bf():void 0,...D}),d&&yf({...D}),_f({...D,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{const{width:o,height:a}=t.reference,i=e.floating.style;i.setProperty("--radix-popper-available-width",`${n}px`),i.setProperty("--radix-popper-available-height",`${r}px`),i.setProperty("--radix-popper-anchor-width",`${o}px`),i.setProperty("--radix-popper-anchor-height",`${a}px`)}}),M&&Ef({element:M,padding:u}),Vf({arrowWidth:P,arrowHeight:q}),h&&xf({strategy:"referenceHidden",...D})]}),[V,H]=Hf(B),U=E(w);b((()=>{F&&U?.()}),[F,U]);const W=z.arrow?.x,K=z.arrow?.y,G=0!==z.arrow?.centerOffset,[$,Q]=l.useState();return b((()=>{x&&Q(window.getComputedStyle(x).zIndex)}),[x]),t.jsx("div",{ref:I.setFloating,"data-radix-popper-content-wrapper":"",style:{...L,transform:F?L.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:$,"--radix-popper-transform-origin":[z.transformOrigin?.x,z.transformOrigin?.y].join(" "),...z.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:t.jsx(Rf,{scope:r,placedSide:V,onArrowChange:A,arrowX:W,arrowY:K,shouldHideArrow:G,children:t.jsx(j.div,{"data-side":V,"data-align":H,...y,ref:O,style:{...y.style,animation:F?void 0:"none"}})})})}));If.displayName=kf;var Lf="PopperArrow",Bf={top:"bottom",right:"left",bottom:"top",left:"right"},Ff=l.forwardRef((function(e,n){const{__scopePopper:r,...o}=e,a=Df(Lf,r),i=Bf[a.placedSide];return t.jsx("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:t.jsx(Of,{...o,ref:n,style:{...o.style,display:"block"}})})}));function zf(e){return null!==e}Ff.displayName=Lf;var Vf=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:o}=t,a=0!==o.arrow?.centerOffset,i=a?0:e.arrowWidth,l=a?0:e.arrowHeight,[s,c]=Hf(n),u={start:"0%",center:"50%",end:"100%"}[c],d=(o.arrow?.x??0)+i/2,m=(o.arrow?.y??0)+l/2;let p="",f="";return"bottom"===s?(p=a?u:`${d}px`,f=-l+"px"):"top"===s?(p=a?u:`${d}px`,f=`${r.floating.height+l}px`):"right"===s?(p=-l+"px",f=a?u:`${m}px`):"left"===s&&(p=`${r.floating.width+l}px`,f=a?u:`${m}px`),{data:{x:p,y:f}}}});function Hf(e){const[t,n="center"]=e.split("-");return[t,n]}var Uf=qf,Wf=Nf,Kf=If,Gf=Ff,$f="rovingFocusGroup.onEntryFocus",Qf={bubbles:!1,cancelable:!0},Xf="RovingFocusGroup",[Yf,Zf,Jf]=cd(Xf),[eh,th]=p(Xf,[Jf]),[nh,rh]=eh(Xf),oh=l.forwardRef(((e,n)=>t.jsx(Yf.Provider,{scope:e.__scopeRovingFocusGroup,children:t.jsx(Yf.Slot,{scope:e.__scopeRovingFocusGroup,children:t.jsx(ah,{...e,ref:n})})})));oh.displayName=Xf;var ah=l.forwardRef(((e,n)=>{const{__scopeRovingFocusGroup:r,orientation:o,loop:a=!1,dir:i,currentTabStopId:s,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:u,onEntryFocus:d,preventScrollOnEntryFocus:m=!1,...p}=e,f=l.useRef(null),h=g(n,f),v=sd(i),[b=null,y]=C({prop:s,defaultProp:c,onChange:u}),[_,x]=l.useState(!1),O=E(d),M=Zf(r),A=l.useRef(!1),[S,P]=l.useState(0);return l.useEffect((()=>{const e=f.current;if(e)return e.addEventListener($f,O),()=>e.removeEventListener($f,O)}),[O]),t.jsx(nh,{scope:r,orientation:o,dir:v,loop:a,currentTabStopId:b,onItemFocus:l.useCallback((e=>y(e)),[y]),onItemShiftTab:l.useCallback((()=>x(!0)),[]),onFocusableItemAdd:l.useCallback((()=>P((e=>e+1))),[]),onFocusableItemRemove:l.useCallback((()=>P((e=>e-1))),[]),children:t.jsx(j.div,{tabIndex:_||0===S?-1:0,"data-orientation":o,...p,ref:h,style:{outline:"none",...e.style},onMouseDown:w(e.onMouseDown,(()=>{A.current=!0})),onFocus:w(e.onFocus,(e=>{const t=!A.current;if(e.target===e.currentTarget&&t&&!_){const t=new CustomEvent($f,Qf);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){const e=M().filter((e=>e.focusable));ch([e.find((e=>e.active)),e.find((e=>e.id===b)),...e].filter(Boolean).map((e=>e.ref.current)),m)}}A.current=!1})),onBlur:w(e.onBlur,(()=>x(!1)))})})})),ih="RovingFocusGroupItem",lh=l.forwardRef(((e,n)=>{const{__scopeRovingFocusGroup:r,focusable:o=!0,active:a=!1,tabStopId:i,...s}=e,c=x(),u=i||c,d=rh(ih,r),m=d.currentTabStopId===u,p=Zf(r),{onFocusableItemAdd:f,onFocusableItemRemove:h}=d;return l.useEffect((()=>{if(o)return f(),()=>h()}),[o,f,h]),t.jsx(Yf.ItemSlot,{scope:r,id:u,focusable:o,active:a,children:t.jsx(j.span,{tabIndex:m?0:-1,"data-orientation":d.orientation,...s,ref:n,onMouseDown:w(e.onMouseDown,(e=>{o?d.onItemFocus(u):e.preventDefault()})),onFocus:w(e.onFocus,(()=>d.onItemFocus(u))),onKeyDown:w(e.onKeyDown,(e=>{if("Tab"===e.key&&e.shiftKey)return void d.onItemShiftTab();if(e.target!==e.currentTarget)return;const t=function(e,t,n){const r=function(e,t){return"rtl"!==t?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}(e.key,n);return"vertical"===t&&["ArrowLeft","ArrowRight"].includes(r)||"horizontal"===t&&["ArrowUp","ArrowDown"].includes(r)?void 0:sh[r]}(e,d.orientation,d.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=p().filter((e=>e.focusable)).map((e=>e.ref.current));if("last"===t)o.reverse();else if("prev"===t||"next"===t){"prev"===t&&o.reverse();const a=o.indexOf(e.currentTarget);o=d.loop?(r=a+1,(n=o).map(((e,t)=>n[(r+t)%n.length]))):o.slice(a+1)}setTimeout((()=>ch(o)))}var n,r}))})})}));lh.displayName=ih;var sh={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function ch(e,t=!1){const n=document.activeElement;for(const r of e){if(r===n)return;if(r.focus({preventScroll:t}),document.activeElement!==n)return}}var uh=oh,dh=lh,mh=["Enter"," "],ph=["ArrowUp","PageDown","End"],fh=["ArrowDown","PageUp","Home",...ph],hh={ltr:[...mh,"ArrowRight"],rtl:[...mh,"ArrowLeft"]},vh={ltr:["ArrowLeft"],rtl:["ArrowRight"]},gh="Menu",[wh,bh,yh]=cd(gh),[_h,xh]=p(gh,[yh,Sf,th]),Eh=Sf(),Ch=th(),[Oh,Mh]=_h(gh),[Ah,Sh]=_h(gh),jh=e=>{const{__scopeMenu:n,open:r=!1,children:o,dir:a,onOpenChange:i,modal:s=!0}=e,c=Eh(n),[u,d]=l.useState(null),m=l.useRef(!1),p=E(i),f=sd(a);return l.useEffect((()=>{const e=()=>{m.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>m.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}}),[]),t.jsx(Uf,{...c,children:t.jsx(Oh,{scope:n,open:r,onOpenChange:p,content:u,onContentChange:d,children:t.jsx(Ah,{scope:n,onClose:l.useCallback((()=>p(!1)),[p]),isUsingKeyboardRef:m,dir:f,modal:s,children:o})})})};jh.displayName=gh;var Ph=l.forwardRef(((e,n)=>{const{__scopeMenu:r,...o}=e,a=Eh(r);return t.jsx(Wf,{...a,...o,ref:n})}));Ph.displayName="MenuAnchor";var qh="MenuPortal",[Th,Nh]=_h(qh,{forceMount:void 0}),kh=e=>{const{__scopeMenu:n,forceMount:r,children:o,container:a}=e,i=Mh(qh,n);return t.jsx(Th,{scope:n,forceMount:r,children:t.jsx(X,{present:r||i.open,children:t.jsx(Q,{asChild:!0,container:a,children:o})})})};kh.displayName=qh;var Rh="MenuContent",[Dh,Ih]=_h(Rh),Lh=l.forwardRef(((e,n)=>{const r=Nh(Rh,e.__scopeMenu),{forceMount:o=r.forceMount,...a}=e,i=Mh(Rh,e.__scopeMenu),l=Sh(Rh,e.__scopeMenu);return t.jsx(wh.Provider,{scope:e.__scopeMenu,children:t.jsx(X,{present:o||i.open,children:t.jsx(wh.Slot,{scope:e.__scopeMenu,children:l.modal?t.jsx(Bh,{...a,ref:n}):t.jsx(Fh,{...a,ref:n})})})})})),Bh=l.forwardRef(((e,n)=>{const r=Mh(Rh,e.__scopeMenu),o=l.useRef(null),a=g(n,o);return l.useEffect((()=>{const e=o.current;if(e)return $e(e)}),[]),t.jsx(zh,{...e,ref:a,trapFocus:r.open,disableOutsidePointerEvents:r.open,disableOutsideScroll:!0,onFocusOutside:w(e.onFocusOutside,(e=>e.preventDefault()),{checkForDefaultPrevented:!1}),onDismiss:()=>r.onOpenChange(!1)})})),Fh=l.forwardRef(((e,n)=>{const r=Mh(Rh,e.__scopeMenu);return t.jsx(zh,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>r.onOpenChange(!1)})})),zh=l.forwardRef(((e,n)=>{const{__scopeMenu:r,loop:o=!1,trapFocus:a,onOpenAutoFocus:i,onCloseAutoFocus:s,disableOutsidePointerEvents:c,onEntryFocus:u,onEscapeKeyDown:d,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:f,onDismiss:h,disableOutsideScroll:v,...b}=e,y=Mh(Rh,r),_=Sh(Rh,r),x=Eh(r),E=Ch(r),C=bh(r),[M,A]=l.useState(null),S=l.useRef(null),j=g(n,S,y.onContentChange),P=l.useRef(0),q=l.useRef(""),T=l.useRef(0),N=l.useRef(null),k=l.useRef("right"),R=l.useRef(0),I=v?ze:l.Fragment,L=v?{as:O,allowPinchZoom:!0}:void 0,B=e=>{const t=q.current+e,n=C().filter((e=>!e.disabled)),r=document.activeElement,o=n.find((e=>e.ref.current===r))?.textValue,a=function(e,t,n){const r=t.length>1&&Array.from(t).every((e=>e===t[0])),o=r?t[0]:t,a=n?e.indexOf(n):-1;let i=(l=e,s=Math.max(a,0),l.map(((e,t)=>l[(s+t)%l.length])));var l,s;1===o.length&&(i=i.filter((e=>e!==n)));const c=i.find((e=>e.toLowerCase().startsWith(o.toLowerCase())));return c!==n?c:void 0}(n.map((e=>e.textValue)),t,o),i=n.find((e=>e.textValue===a))?.ref.current;!function e(t){q.current=t,window.clearTimeout(P.current),""!==t&&(P.current=window.setTimeout((()=>e("")),1e3))}(t),i&&setTimeout((()=>i.focus()))};l.useEffect((()=>()=>window.clearTimeout(P.current)),[]),J();const F=l.useCallback((e=>k.current===N.current?.side&&function(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return function(e,t){const{x:n,y:r}=e;let o=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){const i=t[e].x,l=t[e].y,s=t[a].x,c=t[a].y;l>r!=c>r&&n<(s-i)*(r-l)/(c-l)+i&&(o=!o)}return o}(n,t)}(e,N.current?.area)),[]);return t.jsx(Dh,{scope:r,searchRef:q,onItemEnter:l.useCallback((e=>{F(e)&&e.preventDefault()}),[F]),onItemLeave:l.useCallback((e=>{F(e)||(S.current?.focus(),A(null))}),[F]),onTriggerLeave:l.useCallback((e=>{F(e)&&e.preventDefault()}),[F]),pointerGraceTimerRef:T,onPointerGraceIntentChange:l.useCallback((e=>{N.current=e}),[]),children:t.jsx(I,{...L,children:t.jsx(V,{asChild:!0,trapped:a,onMountAutoFocus:w(i,(e=>{e.preventDefault(),S.current?.focus({preventScroll:!0})})),onUnmountAutoFocus:s,children:t.jsx(D,{asChild:!0,disableOutsidePointerEvents:c,onEscapeKeyDown:d,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:f,onDismiss:h,children:t.jsx(uh,{asChild:!0,...E,dir:_.dir,orientation:"vertical",loop:o,currentTabStopId:M,onCurrentTabStopIdChange:A,onEntryFocus:w(u,(e=>{_.isUsingKeyboardRef.current||e.preventDefault()})),preventScrollOnEntryFocus:!0,children:t.jsx(Kf,{role:"menu","aria-orientation":"vertical","data-state":pv(y.open),"data-radix-menu-content":"",dir:_.dir,...x,...b,ref:j,style:{outline:"none",...b.style},onKeyDown:w(b.onKeyDown,(e=>{const t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=1===e.key.length;t&&("Tab"===e.key&&e.preventDefault(),!n&&r&&B(e.key));const o=S.current;if(e.target!==o)return;if(!fh.includes(e.key))return;e.preventDefault();const a=C().filter((e=>!e.disabled)).map((e=>e.ref.current));ph.includes(e.key)&&a.reverse(),function(e){const t=document.activeElement;for(const n of e){if(n===t)return;if(n.focus(),document.activeElement!==t)return}}(a)})),onBlur:w(e.onBlur,(e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(P.current),q.current="")})),onPointerMove:w(e.onPointerMove,vv((e=>{const t=e.target,n=R.current!==e.clientX;if(e.currentTarget.contains(t)&&n){const t=e.clientX>R.current?"right":"left";k.current=t,R.current=e.clientX}})))})})})})})})}));Lh.displayName=Rh;var Vh=l.forwardRef(((e,n)=>{const{__scopeMenu:r,...o}=e;return t.jsx(j.div,{role:"group",...o,ref:n})}));Vh.displayName="MenuGroup";var Hh=l.forwardRef(((e,n)=>{const{__scopeMenu:r,...o}=e;return t.jsx(j.div,{...o,ref:n})}));Hh.displayName="MenuLabel";var Uh="MenuItem",Wh="menu.itemSelect",Kh=l.forwardRef(((e,n)=>{const{disabled:r=!1,onSelect:o,...a}=e,i=l.useRef(null),s=Sh(Uh,e.__scopeMenu),c=Ih(Uh,e.__scopeMenu),u=g(n,i),d=l.useRef(!1);return t.jsx(Gh,{...a,ref:u,disabled:r,onClick:w(e.onClick,(()=>{const e=i.current;if(!r&&e){const t=new CustomEvent(Wh,{bubbles:!0,cancelable:!0});e.addEventListener(Wh,(e=>o?.(e)),{once:!0}),P(e,t),t.defaultPrevented?d.current=!1:s.onClose()}})),onPointerDown:t=>{e.onPointerDown?.(t),d.current=!0},onPointerUp:w(e.onPointerUp,(e=>{d.current||e.currentTarget?.click()})),onKeyDown:w(e.onKeyDown,(e=>{const t=""!==c.searchRef.current;r||t&&" "===e.key||mh.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())}))})}));Kh.displayName=Uh;var Gh=l.forwardRef(((e,n)=>{const{__scopeMenu:r,disabled:o=!1,textValue:a,...i}=e,s=Ih(Uh,r),c=Ch(r),u=l.useRef(null),d=g(n,u),[m,p]=l.useState(!1),[f,h]=l.useState("");return l.useEffect((()=>{const e=u.current;e&&h((e.textContent??"").trim())}),[i.children]),t.jsx(wh.ItemSlot,{scope:r,disabled:o,textValue:a??f,children:t.jsx(dh,{asChild:!0,...c,focusable:!o,children:t.jsx(j.div,{role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...i,ref:d,onPointerMove:w(e.onPointerMove,vv((e=>{if(o)s.onItemLeave(e);else if(s.onItemEnter(e),!e.defaultPrevented){e.currentTarget.focus({preventScroll:!0})}}))),onPointerLeave:w(e.onPointerLeave,vv((e=>s.onItemLeave(e)))),onFocus:w(e.onFocus,(()=>p(!0))),onBlur:w(e.onBlur,(()=>p(!1)))})})})})),$h=l.forwardRef(((e,n)=>{const{checked:r=!1,onCheckedChange:o,...a}=e;return t.jsx(nv,{scope:e.__scopeMenu,checked:r,children:t.jsx(Kh,{role:"menuitemcheckbox","aria-checked":fv(r)?"mixed":r,...a,ref:n,"data-state":hv(r),onSelect:w(a.onSelect,(()=>o?.(!!fv(r)||!r)),{checkForDefaultPrevented:!1})})})}));$h.displayName="MenuCheckboxItem";var Qh="MenuRadioGroup",[Xh,Yh]=_h(Qh,{value:void 0,onValueChange:()=>{}}),Zh=l.forwardRef(((e,n)=>{const{value:r,onValueChange:o,...a}=e,i=E(o);return t.jsx(Xh,{scope:e.__scopeMenu,value:r,onValueChange:i,children:t.jsx(Vh,{...a,ref:n})})}));Zh.displayName=Qh;var Jh="MenuRadioItem",ev=l.forwardRef(((e,n)=>{const{value:r,...o}=e,a=Yh(Jh,e.__scopeMenu),i=r===a.value;return t.jsx(nv,{scope:e.__scopeMenu,checked:i,children:t.jsx(Kh,{role:"menuitemradio","aria-checked":i,...o,ref:n,"data-state":hv(i),onSelect:w(o.onSelect,(()=>a.onValueChange?.(r)),{checkForDefaultPrevented:!1})})})}));ev.displayName=Jh;var tv="MenuItemIndicator",[nv,rv]=_h(tv,{checked:!1}),ov=l.forwardRef(((e,n)=>{const{__scopeMenu:r,forceMount:o,...a}=e,i=rv(tv,r);return t.jsx(X,{present:o||fv(i.checked)||!0===i.checked,children:t.jsx(j.span,{...a,ref:n,"data-state":hv(i.checked)})})}));ov.displayName=tv;var av=l.forwardRef(((e,n)=>{const{__scopeMenu:r,...o}=e;return t.jsx(j.div,{role:"separator","aria-orientation":"horizontal",...o,ref:n})}));av.displayName="MenuSeparator";var iv=l.forwardRef(((e,n)=>{const{__scopeMenu:r,...o}=e,a=Eh(r);return t.jsx(Gf,{...a,...o,ref:n})}));iv.displayName="MenuArrow";var[lv,sv]=_h("MenuSub"),cv="MenuSubTrigger",uv=l.forwardRef(((e,n)=>{const r=Mh(cv,e.__scopeMenu),o=Sh(cv,e.__scopeMenu),a=sv(cv,e.__scopeMenu),i=Ih(cv,e.__scopeMenu),s=l.useRef(null),{pointerGraceTimerRef:c,onPointerGraceIntentChange:u}=i,d={__scopeMenu:e.__scopeMenu},m=l.useCallback((()=>{s.current&&window.clearTimeout(s.current),s.current=null}),[]);return l.useEffect((()=>m),[m]),l.useEffect((()=>{const e=c.current;return()=>{window.clearTimeout(e),u(null)}}),[c,u]),t.jsx(Ph,{asChild:!0,...d,children:t.jsx(Gh,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":r.open,"aria-controls":a.contentId,"data-state":pv(r.open),...e,ref:v(n,a.onTriggerChange),onClick:t=>{e.onClick?.(t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),r.open||r.onOpenChange(!0))},onPointerMove:w(e.onPointerMove,vv((t=>{i.onItemEnter(t),t.defaultPrevented||e.disabled||r.open||s.current||(i.onPointerGraceIntentChange(null),s.current=window.setTimeout((()=>{r.onOpenChange(!0),m()}),100))}))),onPointerLeave:w(e.onPointerLeave,vv((e=>{m();const t=r.content?.getBoundingClientRect();if(t){const n=r.content?.dataset.side,o="right"===n,a=o?-5:5,l=t[o?"left":"right"],s=t[o?"right":"left"];i.onPointerGraceIntentChange({area:[{x:e.clientX+a,y:e.clientY},{x:l,y:t.top},{x:s,y:t.top},{x:s,y:t.bottom},{x:l,y:t.bottom}],side:n}),window.clearTimeout(c.current),c.current=window.setTimeout((()=>i.onPointerGraceIntentChange(null)),300)}else{if(i.onTriggerLeave(e),e.defaultPrevented)return;i.onPointerGraceIntentChange(null)}}))),onKeyDown:w(e.onKeyDown,(t=>{const n=""!==i.searchRef.current;e.disabled||n&&" "===t.key||hh[o.dir].includes(t.key)&&(r.onOpenChange(!0),r.content?.focus(),t.preventDefault())}))})})}));uv.displayName=cv;var dv="MenuSubContent",mv=l.forwardRef(((e,n)=>{const r=Nh(Rh,e.__scopeMenu),{forceMount:o=r.forceMount,...a}=e,i=Mh(Rh,e.__scopeMenu),s=Sh(Rh,e.__scopeMenu),c=sv(dv,e.__scopeMenu),u=l.useRef(null),d=g(n,u);return t.jsx(wh.Provider,{scope:e.__scopeMenu,children:t.jsx(X,{present:o||i.open,children:t.jsx(wh.Slot,{scope:e.__scopeMenu,children:t.jsx(zh,{id:c.contentId,"aria-labelledby":c.triggerId,...a,ref:d,align:"start",side:"rtl"===s.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{s.isUsingKeyboardRef.current&&u.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:w(e.onFocusOutside,(e=>{e.target!==c.trigger&&i.onOpenChange(!1)})),onEscapeKeyDown:w(e.onEscapeKeyDown,(e=>{s.onClose(),e.preventDefault()})),onKeyDown:w(e.onKeyDown,(e=>{const t=e.currentTarget.contains(e.target),n=vh[s.dir].includes(e.key);t&&n&&(i.onOpenChange(!1),c.trigger?.focus(),e.preventDefault())}))})})})})}));function pv(e){return e?"open":"closed"}function fv(e){return"indeterminate"===e}function hv(e){return fv(e)?"indeterminate":e?"checked":"unchecked"}function vv(e){return t=>"mouse"===t.pointerType?e(t):void 0}mv.displayName=dv;var gv=jh,wv=Ph,bv=kh,yv=Lh,_v=Vh,xv=Hh,Ev=Kh,Cv=$h,Ov=Zh,Mv=ev,Av=ov,Sv=av,jv=iv,Pv=uv,qv=mv,Tv="DropdownMenu",[Nv,kv]=p(Tv,[xh]),Rv=xh(),[Dv,Iv]=Nv(Tv),Lv=e=>{const{__scopeDropdownMenu:n,children:r,dir:o,open:a,defaultOpen:i,onOpenChange:s,modal:c=!0}=e,u=Rv(n),d=l.useRef(null),[m=!1,p]=C({prop:a,defaultProp:i,onChange:s});return t.jsx(Dv,{scope:n,triggerId:x(),triggerRef:d,contentId:x(),open:m,onOpenChange:p,onOpenToggle:l.useCallback((()=>p((e=>!e))),[p]),modal:c,children:t.jsx(gv,{...u,open:m,onOpenChange:p,dir:o,modal:c,children:r})})};Lv.displayName=Tv;var Bv="DropdownMenuTrigger",Fv=l.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,disabled:o=!1,...a}=e,i=Iv(Bv,r),l=Rv(r);return t.jsx(wv,{asChild:!0,...l,children:t.jsx(j.button,{type:"button",id:i.triggerId,"aria-haspopup":"menu","aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":i.open?"open":"closed","data-disabled":o?"":void 0,disabled:o,...a,ref:v(n,i.triggerRef),onPointerDown:w(e.onPointerDown,(e=>{o||0!==e.button||!1!==e.ctrlKey||(i.onOpenToggle(),i.open||e.preventDefault())})),onKeyDown:w(e.onKeyDown,(e=>{o||(["Enter"," "].includes(e.key)&&i.onOpenToggle(),"ArrowDown"===e.key&&i.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())}))})})}));Fv.displayName=Bv;var zv=e=>{const{__scopeDropdownMenu:n,...r}=e,o=Rv(n);return t.jsx(bv,{...o,...r})};zv.displayName="DropdownMenuPortal";var Vv="DropdownMenuContent",Hv=l.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...o}=e,a=Iv(Vv,r),i=Rv(r),s=l.useRef(!1);return t.jsx(yv,{id:a.contentId,"aria-labelledby":a.triggerId,...i,...o,ref:n,onCloseAutoFocus:w(e.onCloseAutoFocus,(e=>{s.current||a.triggerRef.current?.focus(),s.current=!1,e.preventDefault()})),onInteractOutside:w(e.onInteractOutside,(e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,r=2===t.button||n;a.modal&&!r||(s.current=!0)})),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})}));Hv.displayName=Vv;var Uv=l.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...o}=e,a=Rv(r);return t.jsx(_v,{...a,...o,ref:n})}));Uv.displayName="DropdownMenuGroup";var Wv=l.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...o}=e,a=Rv(r);return t.jsx(xv,{...a,...o,ref:n})}));Wv.displayName="DropdownMenuLabel";var Kv=l.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...o}=e,a=Rv(r);return t.jsx(Ev,{...a,...o,ref:n})}));Kv.displayName="DropdownMenuItem";l.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...o}=e,a=Rv(r);return t.jsx(Cv,{...a,...o,ref:n})})).displayName="DropdownMenuCheckboxItem";l.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...o}=e,a=Rv(r);return t.jsx(Ov,{...a,...o,ref:n})})).displayName="DropdownMenuRadioGroup";l.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...o}=e,a=Rv(r);return t.jsx(Mv,{...a,...o,ref:n})})).displayName="DropdownMenuRadioItem";l.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...o}=e,a=Rv(r);return t.jsx(Av,{...a,...o,ref:n})})).displayName="DropdownMenuItemIndicator";var Gv=l.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...o}=e,a=Rv(r);return t.jsx(Sv,{...a,...o,ref:n})}));Gv.displayName="DropdownMenuSeparator";l.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...o}=e,a=Rv(r);return t.jsx(jv,{...a,...o,ref:n})})).displayName="DropdownMenuArrow";l.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...o}=e,a=Rv(r);return t.jsx(Pv,{...a,...o,ref:n})})).displayName="DropdownMenuSubTrigger";l.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...o}=e,a=Rv(r);return t.jsx(qv,{...a,...o,ref:n,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})})).displayName="DropdownMenuSubContent";var $v=Lv,Qv=Fv,Xv=zv,Yv=Hv,Zv=Uv,Jv=Wv,eg=Kv,tg=Gv,ng="Dropdown-modules_content__hz-wg",rg="Dropdown-modules_scrollableArea__9SHHg",og="Dropdown-modules_item__67YXq",ag="Dropdown-modules_label__05rx3",ig="Dropdown-modules_warning__dIJD1",lg="Dropdown-modules_separator__dNtZP";const sg=e.forwardRef((({children:t,className:n,...r},o)=>e.createElement(Xv,null,e.createElement(Yv,{className:m(ng,"demio-ui-dropdown-content",n),...r,ref:o},e.createElement("div",{className:rg},t))))),cg=e.forwardRef((({className:t,...n},r)=>e.createElement(tg,{ref:r,...n,className:m(lg,"demio-ui-dropdown-separator",t)}))),ug=$v,dg=Qv,mg=Jv,pg=eg,fg=Zv,hg=Xv;var vg={formGroup:"FormGroup-modules_formGroup__Zjh7i",horizontal:"FormGroup-modules_horizontal__9g7gn",vertical:"FormGroup-modules_vertical__yPEor",between:"FormGroup-modules_between__poqnA",start:"FormGroup-modules_start__ylflU",center:"FormGroup-modules_center__xkWT-",startAlignItems:"FormGroup-modules_startAlignItems__h-nDr",stretchAlignItems:"FormGroup-modules_stretchAlignItems__jg3e0",centerAlignItems:"FormGroup-modules_centerAlignItems__J7KaF"};var gg="InfoBanner-modules_infoBanner__6KCFX",wg="InfoBanner-modules_infoBannerWrapper__mUG2s",bg="InfoBanner-modules_contentWrapper__GVYBK",yg="InfoBanner-modules_title__HqhSZ",_g="InfoBanner-modules_iconWrapper__MiPMN";var xg="ModalScrollable-modules_overlay__e4-c1",Eg="ModalScrollable-modules_closeBtn__prSB-",Cg="ModalScrollable-modules_isHidden__rqtyM",Og="ModalScrollable-modules_title__TzPu5",Mg="ModalScrollable-modules_withHeader__OTqO-",Ag="ModalScrollable-modules_header__BaeDK",Sg="ModalScrollable-modules_noTitle__Aeqsv",jg="ModalScrollable-modules_content__oWfLS",Pg="ModalScrollable-modules_body__zrctf",qg="ModalScrollable-modules_footer__fxnqN",Tg="ModalScrollable-modules_footerButtonsContainer__MhbTv",Ng="ModalScrollable-modules_withFooter__HDHPq",kg="ModalScrollable-modules_btn__KdfVl",Rg="ModalScrollable-modules_cancelButton__gQ23p";const Dg=e.memo(e.forwardRef((({cancelBtnText:t="Cancel",children:n,customBodyClass:r="",customCancelBtnClass:o="",customCloseBtnClass:a="",customContentClass:i="",customFooterClass:l="",customOkBtnClass:s="",customOverlayClass:c="",customTitleClass:u="",footer:d,header:p,isAvailableCancelBtn:f=!0,isAvailableOkBtn:h=!0,isClosable:v=!0,isCloseButtonVisible:g=!0,isOkBtnDisabled:w=!1,isOpen:b,isOpenByDefault:y=!1,okBtnText:_="ok",onCancel:x,onOk:E,onOpenChange:C,portalContainer:O,title:M=""},A)=>{const S=e=>{C?.(e)};return e.createElement(At,{defaultOpen:y,open:b,onOpenChange:S},e.createElement(jt,{container:O||void 0},e.createElement(Pt,{className:m("demio-ui-scrollable-modal-overlay",xg,c),"data-testid":"scrollable-modal-overlay"}),e.createElement(qt,{"aria-describedby":void 0,className:m("demio-ui-scrollable-modal-content",jg,i),"data-testid":"scrollable-modal-content",onPointerDownOutside:e=>{v||e?.preventDefault()},ref:A},e.createElement(Tt,{className:m("demio-ui-scrollable-modal-title",Og,{"no-title":!M,[Cg]:!M,"with-header":!!p,[Mg]:!!p},u),"data-testid":"scrollable-modal-title"},M),!!p&&e.createElement("div",{className:m("demio-ui-scrollable-modal-header",Ag,{"without-title":!M,[Sg]:!M}),"data-testid":"scrollable-modal-header"},p),e.createElement(kt,{className:m("demio-ui-scrollable-modal-close-btn",Eg,{"no-close-btn":!g,[Cg]:!g},a),"data-testid":"scrollable-modal-close-btn"},e.createElement(mn,null)),e.createElement("div",{className:m("demio-ui-scrollable-modal-body",Pg,r),"data-testid":"scrollable-modal-body"},n),(f||h||!!d)&&e.createElement("div",{className:m("demio-ui-scrollable-modal-footer",qg,l),"data-testid":"scrollable-modal-footer"},d,(f||h)&&e.createElement("div",{className:m("demio-ui-scrollable-modal-footer-buttons-container",Tg,{"with-footer":!!d,[Ng]:!!d}),"data-testid":"scrollable-modal-footer-buttons-container"},f&&e.createElement(vn,{className:m("demio-ui-scrollable-modal-footer-cancel-btn",kg,Rg,o),"data-testid":"scrollable-modal-footer-cancel-btn",onClick:e=>{x?.(e),S(!1)},variant:"outline"},t),h&&e.createElement(vn,{className:m("demio-ui-scrollable-modal-footer-ok-btn",kg,s),"data-testid":"scrollable-modal-footer-ok-btn",disabled:w,onClick:e=>{E?.(e)},variant:"primary"},_))))))})));var Ig="MultiSelect-modules_menuPortal__ul6k7",Lg="MultiSelect-modules_container__Mn9VS",Bg="MultiSelect-modules_menu__W5T89",Fg="MultiSelect-modules_menuList__xbYKy",zg="MultiSelect-modules_option__K81Xh",Vg="MultiSelect-modules_optionFocused__wx-Me",Hg="MultiSelect-modules_optionSelected__WQUPs",Ug="MultiSelect-modules_optionDisabled__5vZh1",Wg="MultiSelect-modules_input__HhsgF",Kg="MultiSelect-modules_control__8x7-K",Gg="MultiSelect-modules_controlIsFocused__82GDX",$g="MultiSelect-modules_isDisabled__OstVw",Qg="MultiSelect-modules_placeholder__DbrLc",Xg="MultiSelect-modules_multiValue__PO-ik",Yg="MultiSelect-modules_indicator__tnLxc",Zg="MultiSelect-modules_indicatorIsDisabled__e6zXU",Jg="MultiSelect-modules_controlIsOpened__x9-TZ",ew="MultiSelect-modules_multiValueIsDisabled__nPxAv",tw="MultiSelect-modules_multiValueLabel__kDgH6",nw="MultiSelect-modules_multiValueLabelIsDisabled__jgqo0",rw="MultiSelect-modules_multiValueRemove__c6VU-",ow="MultiSelect-modules_multiValueRemoveIsDisabled__Dc-gy",aw="MultiSelect-modules_valueContainer__KLcgg",iw="MultiSelect-modules_singleValue__7-x1w",lw="MultiSelect-modules_noOptionMessage__1T9-0",sw="MultiSelect-modules_errorMessage__crhXM",cw="MultiSelect-modules_wrapper__NZzex",uw="MultiSelect-modules_label__q8Ey7",dw="MultiSelect-modules_optional__3QTxE";const mw=t=>e.createElement(a.components.IndicatorsContainer,{...t,className:m("demio-ui-multiselect-indicator",Yg,{"demio-ui-multiselect-indicator-disabled":t.isDisabled,[Zg]:t.isDisabled})},t.children||e.createElement(_i,{className:m("demio-ui-multiselect-indicator-icon")})),pw=t=>e.createElement(a.components.MultiValueRemove,{...t},e.createElement(mn,{className:m("demio-ui-multiselect-multi-value-remove-icon")})),fw=()=>e.createElement("p",{className:m("demio-ui-multiselect-empty-options",lw)},"No results found."),hw=e.memo(e.forwardRef(((t,n)=>{const{className:r="",classNamePrefix:o="",errorMessage:i="",errorMessageClass:l="",isMulti:s=!0,isVisibleOptional:c=!1,label:u="",onChange:d=null,portalTarget:p=document.body,value:f=""}=t,[h,v]=e.useState("");return e.useEffect((()=>{v(f)}),[f]),e.createElement("div",{className:m("demio-ui-multiselect-wrapper",cw)},e.createElement(a,{...t,className:m("demio-ui-multiselect",Lg,r),classNamePrefix:o,classNames:{control:e=>m("demio-ui-multiselect-control",Kg,{"demio-ui-multiselect-control-focused":e.isFocused,[Gg]:e.isFocused,"demio-ui-multiselect-control-menu-is-open":e.menuIsOpen,[Jg]:e.menuIsOpen,"demio-ui-multiselect-control-is-disabled":e.isDisabled,[$g]:e.isDisabled}),input:e=>m("demio-ui-multiselect-input",Wg,{"demio-ui-multiselect-input-is-multi":e.isMulti}),menu:()=>m("demio-ui-multiselect-menu",Bg),menuList:()=>m("demio-ui-multiselect-menu-list",Fg),menuPortal:()=>m("demio-ui-multiselect-menu-portal",Ig),multiValue:e=>m("demio-ui-multiselect-multi-value",Xg,{"demio-ui-multiselect-multi-value-focused":e.isFocused,"demio-ui-multiselect-multi-value-is-multi":e.isMulti,"demio-ui-multiselect-multi-value-disabled":e.isDisabled,[ew]:e.isDisabled}),multiValueLabel:e=>m("demio-ui-multiselect-multi-value-label",tw,{"demio-ui-multiselect-multi-value-label-disabled":e.isDisabled,[nw]:e.isDisabled}),multiValueRemove:e=>m("demio-ui-multiselect-multi-value-remove",rw,{"demio-ui-multiselect-multi-value-remove-disabled":e.isDisabled,[ow]:e.isDisabled}),option:e=>m("demio-ui-multiselect-option",zg,{"demio-ui-multiselect-option-selected":e.isSelected,[Hg]:e.isSelected,"demio-ui-multiselect-option-focused":e.isFocused,[Vg]:e.isFocused,"demio-ui-multiselect-option-disabled":e.isDisabled,[Ug]:e.isDisabled}),placeholder:e=>m("demio-ui-multiselect-placeholder",Qg,{"demio-ui-multiselect-placeholder-focused":e.isFocused,"demio-ui-multiselect-placeholder-is-multi":e.isMulti}),singleValue:()=>m("demio-ui-multiselect-single-value",iw),valueContainer:()=>m("demio-ui-multiselect-value-container",aw)},components:{IndicatorSeparator:null,DropdownIndicator:mw,MultiValueRemove:pw,NoOptionsMessage:fw},isMulti:s,menuPortalTarget:p,onChange:e=>{v(e),d&&d(e)},ref:n,styles:{multiValue:(e,t)=>({...e,pointerEvents:t.selectProps.isDisabled?"none":"auto"})},value:h}),u&&e.createElement("div",{className:m("demio-ui-multiselect-label",uw)},u),c&&e.createElement("div",{className:m("demio-ui-multiselect-optional",dw)},"Optional"),!!i&&e.createElement(Zu,{className:m("demio-ui-multiselect-error",sw,l),type:"error"},i))})));var vw="Pagination-modules_container__KyJ0Q",gw="Pagination-modules_button__wRk2o",ww="Pagination-modules_selected__ZgeXX",bw="Pagination-modules_rotated__k03AZ",yw="Pagination-modules_disabled__NU2ZU";const _w=e.memo((t=>{const{className:n="",currentPage:r=1,isDisabled:o=!1,onChange:a,pageSize:i=10,total:l}=t,[s,c]=e.useState(r),u=Math.ceil(l/i),d=s<=1,p=s>=u,f=l>i,h=s-1,v=s-2,g=s+1,w=s+2,b=e.useCallback((e=>Math.min(Math.max(e,1),u)),[u]),y=e=>{if(e===s)return;const t=b(e);c(t),a&&a(t)};return e.useEffect((()=>{c(b(r))}),[r,b]),f&&e.createElement("div",{"aria-label":"Pagination Navigation",className:m("demio-ui-pagination",vw,n,{"demio-ui-pagination-disabled":o,[yw]:o}),role:"navigation"},e.createElement(_u,{"aria-label":"Go to first page",className:m("demio-ui-pagination-first",gw),disabled:d,onClick:()=>y(1)},e.createElement(Xn,null)),e.createElement(_u,{"aria-label":"Go to previous page",className:m("demio-ui-pagination-previous",gw),disabled:d,onClick:()=>y(h)},e.createElement(er,null)),p&&v>=1&&e.createElement(_u,{"aria-label":`Go to page ${v}`,className:m("demio-ui-pagination-previous-previous",gw),onClick:()=>y(v)},v),!d&&e.createElement(_u,{"aria-label":`Go to page ${h}`,className:m("demio-ui-pagination-previous-page",gw),onClick:()=>y(h)},h),e.createElement(_u,{"aria-label":`Selected page ${s}`,className:m("demio-ui-pagination-selected",gw,ww),onClick:()=>y(s)},s),!p&&e.createElement(_u,{"aria-label":`Go to page ${g}`,className:m("demio-ui-pagination-next-page",gw),onClick:()=>y(g)},g),d&&w<=u&&e.createElement(_u,{"aria-label":`Go to page ${w}`,className:m("demio-ui-pagination-next-next",gw),onClick:()=>y(w)},w),e.createElement(_u,{"aria-label":"Go to next page",className:m("demio-ui-pagination-next",gw,bw),disabled:p,onClick:()=>y(g)},e.createElement(er,null)),e.createElement(_u,{"aria-label":"Go to last page",className:m("demio-ui-pagination-last",gw,bw),disabled:p,onClick:()=>y(u)},e.createElement(Xn,null)))}));var xw="Popover",[Ew,Cw]=p(xw,[Sf]),Ow=Sf(),[Mw,Aw]=Ew(xw),Sw=e=>{const{__scopePopover:n,children:r,open:o,defaultOpen:a,onOpenChange:i,modal:s=!1}=e,c=Ow(n),u=l.useRef(null),[d,m]=l.useState(!1),[p=!1,f]=C({prop:o,defaultProp:a,onChange:i});return t.jsx(Uf,{...c,children:t.jsx(Mw,{scope:n,contentId:x(),triggerRef:u,open:p,onOpenChange:f,onOpenToggle:l.useCallback((()=>f((e=>!e))),[f]),hasCustomAnchor:d,onCustomAnchorAdd:l.useCallback((()=>m(!0)),[]),onCustomAnchorRemove:l.useCallback((()=>m(!1)),[]),modal:s,children:r})})};Sw.displayName=xw;var jw="PopoverAnchor";l.forwardRef(((e,n)=>{const{__scopePopover:r,...o}=e,a=Aw(jw,r),i=Ow(r),{onCustomAnchorAdd:s,onCustomAnchorRemove:c}=a;return l.useEffect((()=>(s(),()=>c())),[s,c]),t.jsx(Wf,{...i,...o,ref:n})})).displayName=jw;var Pw="PopoverTrigger",qw=l.forwardRef(((e,n)=>{const{__scopePopover:r,...o}=e,a=Aw(Pw,r),i=Ow(r),l=g(n,a.triggerRef),s=t.jsx(j.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":Hw(a.open),...o,ref:l,onClick:w(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?s:t.jsx(Wf,{asChild:!0,...i,children:s})}));qw.displayName=Pw;var Tw="PopoverPortal",[Nw,kw]=Ew(Tw,{forceMount:void 0}),Rw=e=>{const{__scopePopover:n,forceMount:r,children:o,container:a}=e,i=Aw(Tw,n);return t.jsx(Nw,{scope:n,forceMount:r,children:t.jsx(X,{present:r||i.open,children:t.jsx(Q,{asChild:!0,container:a,children:o})})})};Rw.displayName=Tw;var Dw="PopoverContent",Iw=l.forwardRef(((e,n)=>{const r=kw(Dw,e.__scopePopover),{forceMount:o=r.forceMount,...a}=e,i=Aw(Dw,e.__scopePopover);return t.jsx(X,{present:o||i.open,children:i.modal?t.jsx(Lw,{...a,ref:n}):t.jsx(Bw,{...a,ref:n})})}));Iw.displayName=Dw;var Lw=l.forwardRef(((e,n)=>{const r=Aw(Dw,e.__scopePopover),o=l.useRef(null),a=g(n,o),i=l.useRef(!1);return l.useEffect((()=>{const e=o.current;if(e)return $e(e)}),[]),t.jsx(ze,{as:O,allowPinchZoom:!0,children:t.jsx(Fw,{...e,ref:a,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:w(e.onCloseAutoFocus,(e=>{e.preventDefault(),i.current||r.triggerRef.current?.focus()})),onPointerDownOutside:w(e.onPointerDownOutside,(e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,r=2===t.button||n;i.current=r}),{checkForDefaultPrevented:!1}),onFocusOutside:w(e.onFocusOutside,(e=>e.preventDefault()),{checkForDefaultPrevented:!1})})})})),Bw=l.forwardRef(((e,n)=>{const r=Aw(Dw,e.__scopePopover),o=l.useRef(!1),a=l.useRef(!1);return t.jsx(Fw,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||r.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(a.current=!0));const n=t.target,i=r.triggerRef.current?.contains(n);i&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})})),Fw=l.forwardRef(((e,n)=>{const{__scopePopover:r,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:i,disableOutsidePointerEvents:l,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:u,onInteractOutside:d,...m}=e,p=Aw(Dw,r),f=Ow(r);return J(),t.jsx(V,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:a,onUnmountAutoFocus:i,children:t.jsx(D,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:d,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:u,onDismiss:()=>p.onOpenChange(!1),children:t.jsx(Kf,{"data-state":Hw(p.open),role:"dialog",id:p.contentId,...f,...m,ref:n,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})})),zw="PopoverClose";l.forwardRef(((e,n)=>{const{__scopePopover:r,...o}=e,a=Aw(zw,r);return t.jsx(j.button,{type:"button",...o,ref:n,onClick:w(e.onClick,(()=>a.onOpenChange(!1)))})})).displayName=zw;var Vw=l.forwardRef(((e,n)=>{const{__scopePopover:r,...o}=e,a=Ow(r);return t.jsx(Gf,{...a,...o,ref:n})}));function Hw(e){return e?"open":"closed"}Vw.displayName="PopoverArrow";var Uw=Sw,Ww=qw,Kw=Rw,Gw=Iw,$w=Vw,Qw="Popover-modules_popoverContent__EQXkn",Xw="Popover-modules_popoverTrigger__vCIUa",Yw="Popover-modules_arrow__x1Xqe";const Zw=({children:t="",content:n="",contentClassName:r="",triggerClassName:o="",container:a=document.body,contentProps:i={},open:l,onOpenChange:s,showArrow:c=!1,asChild:u=!1})=>n?e.createElement(Uw,{open:l,onOpenChange:e=>{s&&"function"==typeof s&&s(e)}},e.createElement(Ww,{asChild:u,className:m("demio-ui-popover-trigger",{[Xw]:!0,[o]:!!o})},t),e.createElement(Kw,{container:a},e.createElement(Gw,{...i,className:m("demio-ui-popover-content",Qw,{[r]:!!r})},c&&e.createElement($w,{className:Yw}),n))):t;var Jw="Progress",eb=100,[tb,nb]=p(Jw),[rb,ob]=tb(Jw),ab=l.forwardRef(((e,n)=>{const{__scopeProgress:r,value:o=null,max:a,getValueLabel:i=sb,...l}=e;!a&&0!==a||db(a)||console.error(`Invalid prop \`max\` of value \`${`${a}`}\` supplied to \`${"Progress"}\`. Only numbers greater than 0 are valid max values. Defaulting to \`100\`.`);const s=db(a)?a:eb;null===o||mb(o,s)||console.error(function(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be:\n - a positive number\n - less than the value passed to \`max\` (or 100 if no \`max\` prop is set)\n - \`null\` or \`undefined\` if the progress is indeterminate.\n\nDefaulting to \`null\`.`}(`${o}`,"Progress"));const c=mb(o,s)?o:null,u=ub(c)?i(c,s):void 0;return t.jsx(rb,{scope:r,value:c,max:s,children:t.jsx(j.div,{"aria-valuemax":s,"aria-valuemin":0,"aria-valuenow":ub(c)?c:void 0,"aria-valuetext":u,role:"progressbar","data-state":cb(c,s),"data-value":c??void 0,"data-max":s,...l,ref:n})})}));ab.displayName=Jw;var ib="ProgressIndicator",lb=l.forwardRef(((e,n)=>{const{__scopeProgress:r,...o}=e,a=ob(ib,r);return t.jsx(j.div,{"data-state":cb(a.value,a.max),"data-value":a.value??void 0,"data-max":a.max,...o,ref:n})}));function sb(e,t){return`${Math.round(e/t*100)}%`}function cb(e,t){return null==e?"indeterminate":e===t?"complete":"loading"}function ub(e){return"number"==typeof e}function db(e){return ub(e)&&!isNaN(e)&&e>0}function mb(e,t){return ub(e)&&!isNaN(e)&&e<=t&&e>=0}lb.displayName=ib;var pb=ab,fb=lb,hb="Progress-modules_root__E0rHH",vb="Progress-modules_indicator__qpwRi";var gb="Radio",[wb,bb]=p(gb),[yb,_b]=wb(gb),xb=l.forwardRef(((e,n)=>{const{__scopeRadio:r,name:o,checked:a=!1,required:i,disabled:s,value:c="on",onCheck:u,form:d,...m}=e,[p,f]=l.useState(null),h=g(n,(e=>f(e))),v=l.useRef(!1),b=!p||(d||!!p.closest("form"));return t.jsxs(yb,{scope:r,checked:a,disabled:s,children:[t.jsx(j.button,{type:"button",role:"radio","aria-checked":a,"data-state":Mb(a),"data-disabled":s?"":void 0,disabled:s,value:c,...m,ref:h,onClick:w(e.onClick,(e=>{a||u?.(),b&&(v.current=e.isPropagationStopped(),v.current||e.stopPropagation())}))}),b&&t.jsx(Ob,{control:p,bubbles:!v.current,name:o,value:c,checked:a,required:i,disabled:s,form:d,style:{transform:"translateX(-100%)"}})]})}));xb.displayName=gb;var Eb="RadioIndicator",Cb=l.forwardRef(((e,n)=>{const{__scopeRadio:r,forceMount:o,...a}=e,i=_b(Eb,r);return t.jsx(X,{present:o||i.checked,children:t.jsx(j.span,{"data-state":Mb(i.checked),"data-disabled":i.disabled?"":void 0,...a,ref:n})})}));Cb.displayName=Eb;var Ob=e=>{const{control:n,checked:r,bubbles:o=!0,...a}=e,i=l.useRef(null),s=Cu(r),c=Ou(n);return l.useEffect((()=>{const e=i.current,t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,"checked").set;if(s!==r&&n){const t=new Event("click",{bubbles:o});n.call(e,r),e.dispatchEvent(t)}}),[s,r,o]),t.jsx("input",{type:"radio","aria-hidden":!0,defaultChecked:r,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function Mb(e){return e?"checked":"unchecked"}var Ab=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],Sb="RadioGroup",[jb,Pb]=p(Sb,[th,bb]),qb=th(),Tb=bb(),[Nb,kb]=jb(Sb),Rb=l.forwardRef(((e,n)=>{const{__scopeRadioGroup:r,name:o,defaultValue:a,value:i,required:l=!1,disabled:s=!1,orientation:c,dir:u,loop:d=!0,onValueChange:m,...p}=e,f=qb(r),h=sd(u),[v,g]=C({prop:i,defaultProp:a,onChange:m});return t.jsx(Nb,{scope:r,name:o,required:l,disabled:s,value:v,onValueChange:g,children:t.jsx(uh,{asChild:!0,...f,orientation:c,dir:h,loop:d,children:t.jsx(j.div,{role:"radiogroup","aria-required":l,"aria-orientation":c,"data-disabled":s?"":void 0,dir:h,...p,ref:n})})})}));Rb.displayName=Sb;var Db="RadioGroupItem",Ib=l.forwardRef(((e,n)=>{const{__scopeRadioGroup:r,disabled:o,...a}=e,i=kb(Db,r),s=i.disabled||o,c=qb(r),u=Tb(r),d=l.useRef(null),m=g(n,d),p=i.value===a.value,f=l.useRef(!1);return l.useEffect((()=>{const e=e=>{Ab.includes(e.key)&&(f.current=!0)},t=()=>f.current=!1;return document.addEventListener("keydown",e),document.addEventListener("keyup",t),()=>{document.removeEventListener("keydown",e),document.removeEventListener("keyup",t)}}),[]),t.jsx(dh,{asChild:!0,...c,focusable:!s,active:p,children:t.jsx(xb,{disabled:s,required:i.required,checked:p,...u,...a,name:i.name,ref:m,onCheck:()=>i.onValueChange(a.value),onKeyDown:w((e=>{"Enter"===e.key&&e.preventDefault()})),onFocus:w(a.onFocus,(()=>{f.current&&d.current?.click()}))})})}));Ib.displayName=Db;var Lb=l.forwardRef(((e,n)=>{const{__scopeRadioGroup:r,...o}=e,a=Tb(r);return t.jsx(Cb,{...a,...o,ref:n})}));Lb.displayName="RadioGroupIndicator";var Bb=Rb,Fb=Ib,zb=Lb,Vb={root:"RadioGroup-modules_root__AbbNa",container:"RadioGroup-modules_container__yPAMg",indicator:"RadioGroup-modules_indicator__jEw97",item:"RadioGroup-modules_item__wuUmn",label:"RadioGroup-modules_label__ggYdY",footer:"RadioGroup-modules_footer__1Zp99",disabled:"RadioGroup-modules_disabled__H3T--"};var Hb=l.forwardRef(((e,n)=>t.jsx(j.span,{...e,ref:n,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}})));Hb.displayName="VisuallyHidden";var Ub=[" ","Enter","ArrowUp","ArrowDown"],Wb=[" ","Enter"],Kb="Select",[Gb,$b,Qb]=cd(Kb),[Xb,Yb]=p(Kb,[Qb,Sf]),Zb=Sf(),[Jb,ey]=Xb(Kb),[ty,ny]=Xb(Kb),ry=e=>{const{__scopeSelect:n,children:r,open:o,defaultOpen:a,onOpenChange:i,value:s,defaultValue:c,onValueChange:u,dir:d,name:m,autoComplete:p,disabled:f,required:h,form:v}=e,g=Zb(n),[w,b]=l.useState(null),[y,_]=l.useState(null),[E,O]=l.useState(!1),M=sd(d),[A=!1,S]=C({prop:o,defaultProp:a,onChange:i}),[j,P]=C({prop:s,defaultProp:c,onChange:u}),q=l.useRef(null),T=!w||(v||!!w.closest("form")),[N,k]=l.useState(new Set),R=Array.from(N).map((e=>e.props.value)).join(";");return t.jsx(Uf,{...g,children:t.jsxs(Jb,{required:h,scope:n,trigger:w,onTriggerChange:b,valueNode:y,onValueNodeChange:_,valueNodeHasChildren:E,onValueNodeHasChildrenChange:O,contentId:x(),value:j,onValueChange:P,open:A,onOpenChange:S,dir:M,triggerPointerDownPosRef:q,disabled:f,children:[t.jsx(Gb.Provider,{scope:n,children:t.jsx(ty,{scope:e.__scopeSelect,onNativeOptionAdd:l.useCallback((e=>{k((t=>new Set(t).add(e)))}),[]),onNativeOptionRemove:l.useCallback((e=>{k((t=>{const n=new Set(t);return n.delete(e),n}))}),[]),children:r})}),T?t.jsxs(Ly,{"aria-hidden":!0,required:h,tabIndex:-1,name:m,autoComplete:p,value:j,onChange:e=>P(e.target.value),disabled:f,form:v,children:[void 0===j?t.jsx("option",{value:""}):null,Array.from(N)]},R):null]})})};ry.displayName=Kb;var oy="SelectTrigger",ay=l.forwardRef(((e,n)=>{const{__scopeSelect:r,disabled:o=!1,...a}=e,i=Zb(r),s=ey(oy,r),c=s.disabled||o,u=g(n,s.onTriggerChange),d=$b(r),m=l.useRef("touch"),[p,f,h]=By((e=>{const t=d().filter((e=>!e.disabled)),n=t.find((e=>e.value===s.value)),r=Fy(t,e,n);void 0!==r&&s.onValueChange(r.value)})),v=e=>{c||(s.onOpenChange(!0),h()),e&&(s.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return t.jsx(Wf,{asChild:!0,...i,children:t.jsx(j.button,{type:"button",role:"combobox","aria-controls":s.contentId,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":"none",dir:s.dir,"data-state":s.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":Iy(s.value)?"":void 0,...a,ref:u,onClick:w(a.onClick,(e=>{e.currentTarget.focus(),"mouse"!==m.current&&v(e)})),onPointerDown:w(a.onPointerDown,(e=>{m.current=e.pointerType;const t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(v(e),e.preventDefault())})),onKeyDown:w(a.onKeyDown,(e=>{const t=""!==p.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||f(e.key),t&&" "===e.key||Ub.includes(e.key)&&(v(),e.preventDefault())}))})})}));ay.displayName=oy;var iy="SelectValue",ly=l.forwardRef(((e,n)=>{const{__scopeSelect:r,className:o,style:a,children:i,placeholder:l="",...s}=e,c=ey(iy,r),{onValueNodeHasChildrenChange:u}=c,d=void 0!==i,m=g(n,c.onValueNodeChange);return b((()=>{u(d)}),[u,d]),t.jsx(j.span,{...s,ref:m,style:{pointerEvents:"none"},children:Iy(c.value)?t.jsx(t.Fragment,{children:l}):i})}));ly.displayName=iy;var sy=l.forwardRef(((e,n)=>{const{__scopeSelect:r,children:o,...a}=e;return t.jsx(j.span,{"aria-hidden":!0,...a,ref:n,children:o||"▼"})}));sy.displayName="SelectIcon";var cy=e=>t.jsx(Q,{asChild:!0,...e});cy.displayName="SelectPortal";var uy="SelectContent",dy=l.forwardRef(((e,n)=>{const r=ey(uy,e.__scopeSelect),[o,a]=l.useState();if(b((()=>{a(new DocumentFragment)}),[]),!r.open){const n=o;return n?s.createPortal(t.jsx(py,{scope:e.__scopeSelect,children:t.jsx(Gb.Slot,{scope:e.__scopeSelect,children:t.jsx("div",{children:e.children})})}),n):null}return t.jsx(hy,{...e,ref:n})}));dy.displayName=uy;var my=10,[py,fy]=Xb(uy),hy=l.forwardRef(((e,n)=>{const{__scopeSelect:r,position:o="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:i,onPointerDownOutside:s,side:c,sideOffset:u,align:d,alignOffset:m,arrowPadding:p,collisionBoundary:f,collisionPadding:h,sticky:v,hideWhenDetached:b,avoidCollisions:y,..._}=e,x=ey(uy,r),[E,C]=l.useState(null),[M,A]=l.useState(null),S=g(n,(e=>C(e))),[j,P]=l.useState(null),[q,T]=l.useState(null),N=$b(r),[k,R]=l.useState(!1),I=l.useRef(!1);l.useEffect((()=>{if(E)return $e(E)}),[E]),J();const L=l.useCallback((e=>{const[t,...n]=N().map((e=>e.ref.current)),[r]=n.slice(-1),o=document.activeElement;for(const n of e){if(n===o)return;if(n?.scrollIntoView({block:"nearest"}),n===t&&M&&(M.scrollTop=0),n===r&&M&&(M.scrollTop=M.scrollHeight),n?.focus(),document.activeElement!==o)return}}),[N,M]),B=l.useCallback((()=>L([j,E])),[L,j,E]);l.useEffect((()=>{k&&B()}),[k,B]);const{onOpenChange:F,triggerPointerDownPosRef:z}=x;l.useEffect((()=>{if(E){let e={x:0,y:0};const t=t=>{e={x:Math.abs(Math.round(t.pageX)-(z.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(z.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():E.contains(n.target)||F(!1),document.removeEventListener("pointermove",t),z.current=null};return null!==z.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",n,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",n,{capture:!0})}}}),[E,F,z]),l.useEffect((()=>{const e=()=>F(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}}),[F]);const[H,U]=By((e=>{const t=N().filter((e=>!e.disabled)),n=t.find((e=>e.ref.current===document.activeElement)),r=Fy(t,e,n);r&&setTimeout((()=>r.ref.current.focus()))})),W=l.useCallback(((e,t,n)=>{const r=!I.current&&!n;(void 0!==x.value&&x.value===t||r)&&(P(e),r&&(I.current=!0))}),[x.value]),K=l.useCallback((()=>E?.focus()),[E]),G=l.useCallback(((e,t,n)=>{const r=!I.current&&!n;(void 0!==x.value&&x.value===t||r)&&T(e)}),[x.value]),$="popper"===o?gy:vy,Q=$===gy?{side:c,sideOffset:u,align:d,alignOffset:m,arrowPadding:p,collisionBoundary:f,collisionPadding:h,sticky:v,hideWhenDetached:b,avoidCollisions:y}:{};return t.jsx(py,{scope:r,content:E,viewport:M,onViewportChange:A,itemRefCallback:W,selectedItem:j,onItemLeave:K,itemTextRefCallback:G,focusSelectedItem:B,selectedItemText:q,position:o,isPositioned:k,searchRef:H,children:t.jsx(ze,{as:O,allowPinchZoom:!0,children:t.jsx(V,{asChild:!0,trapped:x.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:w(a,(e=>{x.trigger?.focus({preventScroll:!0}),e.preventDefault()})),children:t.jsx(D,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:i,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:t.jsx($,{role:"listbox",id:x.contentId,"data-state":x.open?"open":"closed",dir:x.dir,onContextMenu:e=>e.preventDefault(),..._,...Q,onPlaced:()=>R(!0),ref:S,style:{display:"flex",flexDirection:"column",outline:"none",..._.style},onKeyDown:w(_.onKeyDown,(e=>{const t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||U(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=N().filter((e=>!e.disabled)).map((e=>e.ref.current));if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){const n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout((()=>L(t))),e.preventDefault()}}))})})})})})}));hy.displayName="SelectContentImpl";var vy=l.forwardRef(((e,n)=>{const{__scopeSelect:r,onPlaced:o,...a}=e,i=ey(uy,r),s=fy(uy,r),[c,u]=l.useState(null),[d,m]=l.useState(null),p=g(n,(e=>m(e))),f=$b(r),h=l.useRef(!1),v=l.useRef(!0),{viewport:w,selectedItem:y,selectedItemText:_,focusSelectedItem:x}=s,E=l.useCallback((()=>{if(i.trigger&&i.valueNode&&c&&d&&w&&y&&_){const e=i.trigger.getBoundingClientRect(),t=d.getBoundingClientRect(),n=i.valueNode.getBoundingClientRect(),r=_.getBoundingClientRect();if("rtl"!==i.dir){const o=r.left-t.left,a=n.left-o,i=e.left-a,l=e.width+i,s=Math.max(l,t.width),u=window.innerWidth-my,d=id(a,[my,Math.max(my,u-s)]);c.style.minWidth=l+"px",c.style.left=d+"px"}else{const o=t.right-r.right,a=window.innerWidth-n.right-o,i=window.innerWidth-e.right-a,l=e.width+i,s=Math.max(l,t.width),u=window.innerWidth-my,d=id(a,[my,Math.max(my,u-s)]);c.style.minWidth=l+"px",c.style.right=d+"px"}const a=f(),l=window.innerHeight-2*my,s=w.scrollHeight,u=window.getComputedStyle(d),m=parseInt(u.borderTopWidth,10),p=parseInt(u.paddingTop,10),v=parseInt(u.borderBottomWidth,10),g=m+p+s+parseInt(u.paddingBottom,10)+v,b=Math.min(5*y.offsetHeight,g),x=window.getComputedStyle(w),E=parseInt(x.paddingTop,10),C=parseInt(x.paddingBottom,10),O=e.top+e.height/2-my,M=l-O,A=y.offsetHeight/2,S=m+p+(y.offsetTop+A),j=g-S;if(S<=O){const e=a.length>0&&y===a[a.length-1].ref.current;c.style.bottom="0px";const t=d.clientHeight-w.offsetTop-w.offsetHeight,n=S+Math.max(M,A+(e?C:0)+t+v);c.style.height=n+"px"}else{const e=a.length>0&&y===a[0].ref.current;c.style.top="0px";const t=Math.max(O,m+w.offsetTop+(e?E:0)+A)+j;c.style.height=t+"px",w.scrollTop=S-O+w.offsetTop}c.style.margin=`${my}px 0`,c.style.minHeight=b+"px",c.style.maxHeight=l+"px",o?.(),requestAnimationFrame((()=>h.current=!0))}}),[f,i.trigger,i.valueNode,c,d,w,y,_,i.dir,o]);b((()=>E()),[E]);const[C,O]=l.useState();b((()=>{d&&O(window.getComputedStyle(d).zIndex)}),[d]);const M=l.useCallback((e=>{e&&!0===v.current&&(E(),x?.(),v.current=!1)}),[E,x]);return t.jsx(wy,{scope:r,contentWrapper:c,shouldExpandOnScrollRef:h,onScrollButtonChange:M,children:t.jsx("div",{ref:u,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:C},children:t.jsx(j.div,{...a,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})}));vy.displayName="SelectItemAlignedPosition";var gy=l.forwardRef(((e,n)=>{const{__scopeSelect:r,align:o="start",collisionPadding:a=my,...i}=e,l=Zb(r);return t.jsx(Kf,{...l,...i,ref:n,align:o,collisionPadding:a,style:{boxSizing:"border-box",...i.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})}));gy.displayName="SelectPopperPosition";var[wy,by]=Xb(uy,{}),yy="SelectViewport",_y=l.forwardRef(((e,n)=>{const{__scopeSelect:r,nonce:o,...a}=e,i=fy(yy,r),s=by(yy,r),c=g(n,i.onViewportChange),u=l.useRef(0);return t.jsxs(t.Fragment,{children:[t.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),t.jsx(Gb.Slot,{scope:r,children:t.jsx(j.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:w(a.onScroll,(e=>{const t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=s;if(r?.current&&n){const e=Math.abs(u.current-t.scrollTop);if(e>0){const r=window.innerHeight-2*my,o=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),i=Math.max(o,a);if(i<r){const o=i+e,a=Math.min(r,o),l=o-a;n.style.height=a+"px","0px"===n.style.bottom&&(t.scrollTop=l>0?l:0,n.style.justifyContent="flex-end")}}}u.current=t.scrollTop}))})})]})}));_y.displayName=yy;var xy="SelectGroup",[Ey,Cy]=Xb(xy);l.forwardRef(((e,n)=>{const{__scopeSelect:r,...o}=e,a=x();return t.jsx(Ey,{scope:r,id:a,children:t.jsx(j.div,{role:"group","aria-labelledby":a,...o,ref:n})})})).displayName=xy;var Oy="SelectLabel";l.forwardRef(((e,n)=>{const{__scopeSelect:r,...o}=e,a=Cy(Oy,r);return t.jsx(j.div,{id:a.id,...o,ref:n})})).displayName=Oy;var My="SelectItem",[Ay,Sy]=Xb(My),jy=l.forwardRef(((e,n)=>{const{__scopeSelect:r,value:o,disabled:a=!1,textValue:i,...s}=e,c=ey(My,r),u=fy(My,r),d=c.value===o,[m,p]=l.useState(i??""),[f,h]=l.useState(!1),v=g(n,(e=>u.itemRefCallback?.(e,o,a))),b=x(),y=l.useRef("touch"),_=()=>{a||(c.onValueChange(o),c.onOpenChange(!1))};if(""===o)throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return t.jsx(Ay,{scope:r,value:o,disabled:a,textId:b,isSelected:d,onItemTextChange:l.useCallback((e=>{p((t=>t||(e?.textContent??"").trim()))}),[]),children:t.jsx(Gb.ItemSlot,{scope:r,value:o,disabled:a,textValue:m,children:t.jsx(j.div,{role:"option","aria-labelledby":b,"data-highlighted":f?"":void 0,"aria-selected":d&&f,"data-state":d?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...s,ref:v,onFocus:w(s.onFocus,(()=>h(!0))),onBlur:w(s.onBlur,(()=>h(!1))),onClick:w(s.onClick,(()=>{"mouse"!==y.current&&_()})),onPointerUp:w(s.onPointerUp,(()=>{"mouse"===y.current&&_()})),onPointerDown:w(s.onPointerDown,(e=>{y.current=e.pointerType})),onPointerMove:w(s.onPointerMove,(e=>{y.current=e.pointerType,a?u.onItemLeave?.():"mouse"===y.current&&e.currentTarget.focus({preventScroll:!0})})),onPointerLeave:w(s.onPointerLeave,(e=>{e.currentTarget===document.activeElement&&u.onItemLeave?.()})),onKeyDown:w(s.onKeyDown,(e=>{""!==u.searchRef?.current&&" "===e.key||(Wb.includes(e.key)&&_()," "===e.key&&e.preventDefault())}))})})})}));jy.displayName=My;var Py="SelectItemText",qy=l.forwardRef(((e,n)=>{const{__scopeSelect:r,className:o,style:a,...i}=e,c=ey(Py,r),u=fy(Py,r),d=Sy(Py,r),m=ny(Py,r),[p,f]=l.useState(null),h=g(n,(e=>f(e)),d.onItemTextChange,(e=>u.itemTextRefCallback?.(e,d.value,d.disabled))),v=p?.textContent,w=l.useMemo((()=>t.jsx("option",{value:d.value,disabled:d.disabled,children:v},d.value)),[d.disabled,d.value,v]),{onNativeOptionAdd:y,onNativeOptionRemove:_}=m;return b((()=>(y(w),()=>_(w))),[y,_,w]),t.jsxs(t.Fragment,{children:[t.jsx(j.span,{id:d.textId,...i,ref:h}),d.isSelected&&c.valueNode&&!c.valueNodeHasChildren?s.createPortal(i.children,c.valueNode):null]})}));qy.displayName=Py;var Ty="SelectItemIndicator";l.forwardRef(((e,n)=>{const{__scopeSelect:r,...o}=e;return Sy(Ty,r).isSelected?t.jsx(j.span,{"aria-hidden":!0,...o,ref:n}):null})).displayName=Ty;var Ny="SelectScrollUpButton";l.forwardRef(((e,n)=>{const r=fy(Ny,e.__scopeSelect),o=by(Ny,e.__scopeSelect),[a,i]=l.useState(!1),s=g(n,o.onScrollButtonChange);return b((()=>{if(r.viewport&&r.isPositioned){let e=function(){const e=t.scrollTop>0;i(e)};const t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}}),[r.viewport,r.isPositioned]),a?t.jsx(Ry,{...e,ref:s,onAutoScroll:()=>{const{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null})).displayName=Ny;var ky="SelectScrollDownButton";l.forwardRef(((e,n)=>{const r=fy(ky,e.__scopeSelect),o=by(ky,e.__scopeSelect),[a,i]=l.useState(!1),s=g(n,o.onScrollButtonChange);return b((()=>{if(r.viewport&&r.isPositioned){let e=function(){const e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;i(n)};const t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}}),[r.viewport,r.isPositioned]),a?t.jsx(Ry,{...e,ref:s,onAutoScroll:()=>{const{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null})).displayName=ky;var Ry=l.forwardRef(((e,n)=>{const{__scopeSelect:r,onAutoScroll:o,...a}=e,i=fy("SelectScrollButton",r),s=l.useRef(null),c=$b(r),u=l.useCallback((()=>{null!==s.current&&(window.clearInterval(s.current),s.current=null)}),[]);return l.useEffect((()=>()=>u()),[u]),b((()=>{const e=c().find((e=>e.ref.current===document.activeElement));e?.ref.current?.scrollIntoView({block:"nearest"})}),[c]),t.jsx(j.div,{"aria-hidden":!0,...a,ref:n,style:{flexShrink:0,...a.style},onPointerDown:w(a.onPointerDown,(()=>{null===s.current&&(s.current=window.setInterval(o,50))})),onPointerMove:w(a.onPointerMove,(()=>{i.onItemLeave?.(),null===s.current&&(s.current=window.setInterval(o,50))})),onPointerLeave:w(a.onPointerLeave,(()=>{u()}))})}));l.forwardRef(((e,n)=>{const{__scopeSelect:r,...o}=e;return t.jsx(j.div,{"aria-hidden":!0,...o,ref:n})})).displayName="SelectSeparator";var Dy="SelectArrow";function Iy(e){return""===e||void 0===e}l.forwardRef(((e,n)=>{const{__scopeSelect:r,...o}=e,a=Zb(r),i=ey(Dy,r),l=fy(Dy,r);return i.open&&"popper"===l.position?t.jsx(Gf,{...a,...o,ref:n}):null})).displayName=Dy;var Ly=l.forwardRef(((e,n)=>{const{value:r,...o}=e,a=l.useRef(null),i=g(n,a),s=Cu(r);return l.useEffect((()=>{const e=a.current,t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,"value").set;if(s!==r&&n){const t=new Event("change",{bubbles:!0});n.call(e,r),e.dispatchEvent(t)}}),[s,r]),t.jsx(Hb,{asChild:!0,children:t.jsx("select",{...o,ref:i,defaultValue:r})})}));function By(e){const t=E(e),n=l.useRef(""),r=l.useRef(0),o=l.useCallback((e=>{const o=n.current+e;t(o),function e(t){n.current=t,window.clearTimeout(r.current),""!==t&&(r.current=window.setTimeout((()=>e("")),1e3))}(o)}),[t]),a=l.useCallback((()=>{n.current="",window.clearTimeout(r.current)}),[]);return l.useEffect((()=>()=>window.clearTimeout(r.current)),[]),[n,o,a]}function Fy(e,t,n){const r=t.length>1&&Array.from(t).every((e=>e===t[0]))?t[0]:t,o=n?e.indexOf(n):-1;let a=(i=e,l=Math.max(o,0),i.map(((e,t)=>i[(l+t)%i.length])));var i,l;1===r.length&&(a=a.filter((e=>e!==n)));const s=a.find((e=>e.textValue.toLowerCase().startsWith(r.toLowerCase())));return s!==n?s:void 0}Ly.displayName="BubbleSelect";var zy=ry,Vy=ay,Hy=ly,Uy=sy,Wy=cy,Ky=dy,Gy=_y,$y=jy,Qy=qy,Xy="Select-modules_trigger__dS9Dx",Yy="Select-modules_icon__sgRRc",Zy="Select-modules_startIcon__kohMV",Jy="Select-modules_value__h6Q4Z",e_="Select-modules_content__YuAqS",t_="Select-modules_item__cTAIm";const n_=e.forwardRef((({children:t,cssClass:n="",sideOffset:r=4,position:o="popper",disabled:a=!1,value:i="",id:l,icon:s=null,placeholder:c="",portalContainer:u=document.body,contentClassName:d="",contentProps:p={},...f},h)=>e.createElement(zy,{value:i||void 0,disabled:a,...f},e.createElement(Vy,{id:l,ref:h,className:m(Xy,n,"demio-ui-select-trigger")},s&&e.createElement("span",{className:m(Zy,"demio-ui-select-start-icon")},s),e.createElement("span",{className:m(Jy,"demio-ui-select-value")},e.createElement(Hy,{placeholder:i||c})),e.createElement(Uy,{className:m(Yy,"demio-ui-select-icon")},e.createElement(_i,null))),e.createElement(Wy,{container:u},e.createElement(Ky,{position:o,className:m("demio-ui-select-content",e_,d),...p,sideOffset:r},e.createElement(Gy,null,e.createElement(Gy,null,t))))))),r_=e.forwardRef((({children:t,className:n,disabled:r=!1,...o},a)=>e.createElement($y,{...o,ref:a,className:m(t_,"demio-ui-select-item",n),disabled:r},t))),o_=Qy;var a_="Switch",[i_,l_]=p(a_),[s_,c_]=i_(a_),u_=l.forwardRef(((e,n)=>{const{__scopeSwitch:r,name:o,checked:a,defaultChecked:i,required:s,disabled:c,value:u="on",onCheckedChange:d,form:m,...p}=e,[f,h]=l.useState(null),v=g(n,(e=>h(e))),b=l.useRef(!1),y=!f||(m||!!f.closest("form")),[_=!1,x]=C({prop:a,defaultProp:i,onChange:d});return t.jsxs(s_,{scope:r,checked:_,disabled:c,children:[t.jsx(j.button,{type:"button",role:"switch","aria-checked":_,"aria-required":s,"data-state":f_(_),"data-disabled":c?"":void 0,disabled:c,value:u,...p,ref:v,onClick:w(e.onClick,(e=>{x((e=>!e)),y&&(b.current=e.isPropagationStopped(),b.current||e.stopPropagation())}))}),y&&t.jsx(p_,{control:f,bubbles:!b.current,name:o,value:u,checked:_,required:s,disabled:c,form:m,style:{transform:"translateX(-100%)"}})]})}));u_.displayName=a_;var d_="SwitchThumb",m_=l.forwardRef(((e,n)=>{const{__scopeSwitch:r,...o}=e,a=c_(d_,r);return t.jsx(j.span,{"data-state":f_(a.checked),"data-disabled":a.disabled?"":void 0,...o,ref:n})}));m_.displayName=d_;var p_=e=>{const{control:n,checked:r,bubbles:o=!0,...a}=e,i=l.useRef(null),s=Cu(r),c=Ou(n);return l.useEffect((()=>{const e=i.current,t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,"checked").set;if(s!==r&&n){const t=new Event("click",{bubbles:o});n.call(e,r),e.dispatchEvent(t)}}),[s,r,o]),t.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:r,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function f_(e){return e?"checked":"unchecked"}var h_=u_,v_=m_,g_="Switch-modules_root__V5S6a",w_="Switch-modules_thumb__PZ-lR";var b_="Tabs",[y_,__]=p(b_,[th]),x_=th(),[E_,C_]=y_(b_),O_=l.forwardRef(((e,n)=>{const{__scopeTabs:r,value:o,onValueChange:a,defaultValue:i,orientation:l="horizontal",dir:s,activationMode:c="automatic",...u}=e,d=sd(s),[m,p]=C({prop:o,onChange:a,defaultProp:i});return t.jsx(E_,{scope:r,baseId:x(),value:m,onValueChange:p,orientation:l,dir:d,activationMode:c,children:t.jsx(j.div,{dir:d,"data-orientation":l,...u,ref:n})})}));O_.displayName=b_;var M_="TabsList",A_=l.forwardRef(((e,n)=>{const{__scopeTabs:r,loop:o=!0,...a}=e,i=C_(M_,r),l=x_(r);return t.jsx(uh,{asChild:!0,...l,orientation:i.orientation,dir:i.dir,loop:o,children:t.jsx(j.div,{role:"tablist","aria-orientation":i.orientation,...a,ref:n})})}));A_.displayName=M_;var S_="TabsTrigger",j_=l.forwardRef(((e,n)=>{const{__scopeTabs:r,value:o,disabled:a=!1,...i}=e,l=C_(S_,r),s=x_(r),c=T_(l.baseId,o),u=N_(l.baseId,o),d=o===l.value;return t.jsx(dh,{asChild:!0,...s,focusable:!a,active:d,children:t.jsx(j.button,{type:"button",role:"tab","aria-selected":d,"aria-controls":u,"data-state":d?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:c,...i,ref:n,onMouseDown:w(e.onMouseDown,(e=>{a||0!==e.button||!1!==e.ctrlKey?e.preventDefault():l.onValueChange(o)})),onKeyDown:w(e.onKeyDown,(e=>{[" ","Enter"].includes(e.key)&&l.onValueChange(o)})),onFocus:w(e.onFocus,(()=>{const e="manual"!==l.activationMode;d||a||!e||l.onValueChange(o)}))})})}));j_.displayName=S_;var P_="TabsContent",q_=l.forwardRef(((e,n)=>{const{__scopeTabs:r,value:o,forceMount:a,children:i,...s}=e,c=C_(P_,r),u=T_(c.baseId,o),d=N_(c.baseId,o),m=o===c.value,p=l.useRef(m);return l.useEffect((()=>{const e=requestAnimationFrame((()=>p.current=!1));return()=>cancelAnimationFrame(e)}),[]),t.jsx(X,{present:a||m,children:({present:r})=>t.jsx(j.div,{"data-state":m?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":u,hidden:!r,id:d,tabIndex:0,...s,ref:n,style:{...e.style,animationDuration:p.current?"0s":void 0},children:r&&i})})}));function T_(e,t){return`${e}-trigger-${t}`}function N_(e,t){return`${e}-content-${t}`}q_.displayName=P_;var k_=O_,R_=A_,D_=j_,I_=q_,L_="Tabs-modules_root__TvYE1",B_="Tabs-modules_list__G3KVd",F_="Tabs-modules_tab__-FuG6",z_="Tabs-modules_content__X0OLh";var V_="Tag-modules_default__A5rGa",H_="Tag-modules_deleteButton__HzjLp";var U_=l.forwardRef(((e,n)=>t.jsx(j.span,{...e,ref:n,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}})));U_.displayName="VisuallyHidden";var W_=U_,[K_,G_]=p("Tooltip",[Sf]),$_=Sf(),Q_="TooltipProvider",X_=700,Y_="tooltip.open",[Z_,J_]=K_(Q_),ex=e=>{const{__scopeTooltip:n,delayDuration:r=X_,skipDelayDuration:o=300,disableHoverableContent:a=!1,children:i}=e,[s,c]=l.useState(!0),u=l.useRef(!1),d=l.useRef(0);return l.useEffect((()=>{const e=d.current;return()=>window.clearTimeout(e)}),[]),t.jsx(Z_,{scope:n,isOpenDelayed:s,delayDuration:r,onOpen:l.useCallback((()=>{window.clearTimeout(d.current),c(!1)}),[]),onClose:l.useCallback((()=>{window.clearTimeout(d.current),d.current=window.setTimeout((()=>c(!0)),o)}),[o]),isPointerInTransitRef:u,onPointerInTransitChange:l.useCallback((e=>{u.current=e}),[]),disableHoverableContent:a,children:i})};ex.displayName=Q_;var tx="Tooltip",[nx,rx]=K_(tx),ox=e=>{const{__scopeTooltip:n,children:r,open:o,defaultOpen:a=!1,onOpenChange:i,disableHoverableContent:s,delayDuration:c}=e,u=J_(tx,e.__scopeTooltip),d=$_(n),[m,p]=l.useState(null),f=x(),h=l.useRef(0),v=s??u.disableHoverableContent,g=c??u.delayDuration,w=l.useRef(!1),[b=!1,y]=C({prop:o,defaultProp:a,onChange:e=>{e?(u.onOpen(),document.dispatchEvent(new CustomEvent(Y_))):u.onClose(),i?.(e)}}),_=l.useMemo((()=>b?w.current?"delayed-open":"instant-open":"closed"),[b]),E=l.useCallback((()=>{window.clearTimeout(h.current),h.current=0,w.current=!1,y(!0)}),[y]),O=l.useCallback((()=>{window.clearTimeout(h.current),h.current=0,y(!1)}),[y]),M=l.useCallback((()=>{window.clearTimeout(h.current),h.current=window.setTimeout((()=>{w.current=!0,y(!0),h.current=0}),g)}),[g,y]);return l.useEffect((()=>()=>{h.current&&(window.clearTimeout(h.current),h.current=0)}),[]),t.jsx(Uf,{...d,children:t.jsx(nx,{scope:n,contentId:f,open:b,stateAttribute:_,trigger:m,onTriggerChange:p,onTriggerEnter:l.useCallback((()=>{u.isOpenDelayed?M():E()}),[u.isOpenDelayed,M,E]),onTriggerLeave:l.useCallback((()=>{v?O():(window.clearTimeout(h.current),h.current=0)}),[O,v]),onOpen:E,onClose:O,disableHoverableContent:v,children:r})})};ox.displayName=tx;var ax="TooltipTrigger",ix=l.forwardRef(((e,n)=>{const{__scopeTooltip:r,...o}=e,a=rx(ax,r),i=J_(ax,r),s=$_(r),c=g(n,l.useRef(null),a.onTriggerChange),u=l.useRef(!1),d=l.useRef(!1),m=l.useCallback((()=>u.current=!1),[]);return l.useEffect((()=>()=>document.removeEventListener("pointerup",m)),[m]),t.jsx(Wf,{asChild:!0,...s,children:t.jsx(j.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...o,ref:c,onPointerMove:w(e.onPointerMove,(e=>{"touch"!==e.pointerType&&(d.current||i.isPointerInTransitRef.current||(a.onTriggerEnter(),d.current=!0))})),onPointerLeave:w(e.onPointerLeave,(()=>{a.onTriggerLeave(),d.current=!1})),onPointerDown:w(e.onPointerDown,(()=>{u.current=!0,document.addEventListener("pointerup",m,{once:!0})})),onFocus:w(e.onFocus,(()=>{u.current||a.onOpen()})),onBlur:w(e.onBlur,a.onClose),onClick:w(e.onClick,a.onClose)})})}));ix.displayName=ax;var lx="TooltipPortal",[sx,cx]=K_(lx,{forceMount:void 0}),ux=e=>{const{__scopeTooltip:n,forceMount:r,children:o,container:a}=e,i=rx(lx,n);return t.jsx(sx,{scope:n,forceMount:r,children:t.jsx(X,{present:r||i.open,children:t.jsx(Q,{asChild:!0,container:a,children:o})})})};ux.displayName=lx;var dx="TooltipContent",mx=l.forwardRef(((e,n)=>{const r=cx(dx,e.__scopeTooltip),{forceMount:o=r.forceMount,side:a="top",...i}=e,l=rx(dx,e.__scopeTooltip);return t.jsx(X,{present:o||l.open,children:l.disableHoverableContent?t.jsx(vx,{side:a,...i,ref:n}):t.jsx(px,{side:a,...i,ref:n})})})),px=l.forwardRef(((e,n)=>{const r=rx(dx,e.__scopeTooltip),o=J_(dx,e.__scopeTooltip),a=l.useRef(null),i=g(n,a),[s,c]=l.useState(null),{trigger:u,onClose:d}=r,m=a.current,{onPointerInTransitChange:p}=o,f=l.useCallback((()=>{c(null),p(!1)}),[p]),h=l.useCallback(((e,t)=>{const n=e.currentTarget,r={x:e.clientX,y:e.clientY},o=function(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}(r,function(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,o,a)){case a:return"left";case o:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}(r,n.getBoundingClientRect())),a=function(e){const t=e.slice();return t.sort(((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0)),function(e){if(e.length<=1)return e.slice();const t=[];for(let n=0;n<e.length;n++){const r=e[n];for(;t.length>=2;){const e=t[t.length-1],n=t[t.length-2];if(!((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x)))break;t.pop()}t.push(r)}t.pop();const n=[];for(let t=e.length-1;t>=0;t--){const r=e[t];for(;n.length>=2;){const e=n[n.length-1],t=n[n.length-2];if(!((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x)))break;n.pop()}n.push(r)}return n.pop(),1===t.length&&1===n.length&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}(t)}([...o,...function(e){const{top:t,right:n,bottom:r,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:r},{x:o,y:r}]}(t.getBoundingClientRect())]);c(a),p(!0)}),[p]);return l.useEffect((()=>()=>f()),[f]),l.useEffect((()=>{if(u&&m){const e=e=>h(e,m),t=e=>h(e,u);return u.addEventListener("pointerleave",e),m.addEventListener("pointerleave",t),()=>{u.removeEventListener("pointerleave",e),m.removeEventListener("pointerleave",t)}}}),[u,m,h,f]),l.useEffect((()=>{if(s){const e=e=>{const t=e.target,n={x:e.clientX,y:e.clientY},r=u?.contains(t)||m?.contains(t),o=!function(e,t){const{x:n,y:r}=e;let o=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){const i=t[e].x,l=t[e].y,s=t[a].x,c=t[a].y;l>r!=c>r&&n<(s-i)*(r-l)/(c-l)+i&&(o=!o)}return o}(n,s);r?f():o&&(f(),d())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}}),[u,m,s,d,f]),t.jsx(vx,{...e,ref:i})})),[fx,hx]=K_(tx,{isInside:!1}),vx=l.forwardRef(((e,n)=>{const{__scopeTooltip:r,children:o,"aria-label":a,onEscapeKeyDown:i,onPointerDownOutside:s,...c}=e,u=rx(dx,r),d=$_(r),{onClose:m}=u;return l.useEffect((()=>(document.addEventListener(Y_,m),()=>document.removeEventListener(Y_,m))),[m]),l.useEffect((()=>{if(u.trigger){const e=e=>{const t=e.target;t?.contains(u.trigger)&&m()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}}),[u.trigger,m]),t.jsx(D,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:i,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:m,children:t.jsxs(Kf,{"data-state":u.stateAttribute,...d,...c,ref:n,style:{...c.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[t.jsx(A,{children:o}),t.jsx(fx,{scope:r,isInside:!0,children:t.jsx(W_,{id:u.contentId,role:"tooltip",children:a||o})})]})})}));mx.displayName=dx;var gx="TooltipArrow",wx=l.forwardRef(((e,n)=>{const{__scopeTooltip:r,...o}=e,a=$_(r);return hx(gx,r).isInside?null:t.jsx(Gf,{...a,...o,ref:n})}));wx.displayName=gx;var bx=ex,yx=ox,_x=ix,xx=ux,Ex=mx,Cx=wx,Ox="Tooltip-modules_content__--tK0",Mx="Tooltip-modules_tooltipTrigger__-SmeR",Ax="Tooltip-modules_arrow__4vjj8";function Sx({align:t="center",alignOffset:n=0,children:r,className:o="",collisionBoundary:a,container:i,content:l,defaultOpen:s,delayDuration:c=200,isCustomTrigger:u=!1,isPortal:d=!1,isTriggerAsChild:p=!0,open:f,onOpenChange:h,side:v="top",sideOffset:g=4,skipDelayDuration:w=300,...b}){const[y,_]=e.useState(s),x=f??y,E=e.createElement(Ex,{sideOffset:g,alignOffset:n,side:v,align:t,collisionBoundary:a,...b,className:m(Ox,"demio-ui-tooltip",{[o]:o})},l,e.createElement(Cx,{className:Ax,width:11,height:5}));return l?e.createElement(bx,{skipDelayDuration:w,delayDuration:c},e.createElement(yx,{defaultOpen:s,onOpenChange:e=>{h&&h(e),_(e)},open:x},e.createElement(_x,{asChild:u||p},u?e.createElement("div",{className:m("demio-ui-tooltip-trigger",Mx)},r):r),d?e.createElement(xx,{container:i},E):E)):r}var jx={default:"Typography-modules_default__JCzxD",headerFirst:"Typography-modules_headerFirst__NkO--",headerSecond:"Typography-modules_headerSecond__LEiQi",headerThird:"Typography-modules_headerThird__lSaFv",headerForth:"Typography-modules_headerForth__B5L3L",headerFifth:"Typography-modules_headerFifth__5LBdo",headerSixth:"Typography-modules_headerSixth__Bxy4-",bodyFirst:"Typography-modules_bodyFirst__iMtZC",bodySecond:"Typography-modules_bodySecond__bRjfb",bodyThird:"Typography-modules_bodyThird__SR8zo",semiBoldFirst:"Typography-modules_semiBoldFirst__IekIE",semiBoldSecond:"Typography-modules_semiBoldSecond__AaWKP",semiBoldThird:"Typography-modules_semiBoldThird__mmpEF",overLineFirst:"Typography-modules_overLineFirst__6-WmT",overLineSecond:"Typography-modules_overLineSecond__bRFIg",link:"Typography-modules_link__T8ZSo",left:"Typography-modules_left__toyKQ",center:"Typography-modules_center__LyrMT",right:"Typography-modules_right__s-R-0",inherit:"Typography-modules_inherit__yG6sp",regular:"Typography-modules_regular__nf3tw",bold:"Typography-modules_bold__kZqUJ",italic:"Typography-modules_italic__YadIq"};const Px={h1:"headerFirst",h2:"headerSecond",h3:"headerThird",h4:"headerForth",h5:"headerFifth",h6:"headerSixth",b1:"bodyFirst",b2:"bodySecond",b3:"bodyThird",sb1:"semiBoldFirst",sb2:"semiBoldSecond",sb3:"semiBoldThird",ol1:"overLineFirst",ol2:"overLineSecond",link:"link"};var qx="UploadMenu-modules_triggerButton__TnM4-",Tx="UploadMenu-modules_triggerButtonIcon__j-eLU",Nx="UploadMenu-modules_menuContent__hPJib",kx="UploadMenu-modules_menuItem__XOxMt",Rx="UploadMenu-modules_menuItemDisabled__QmNk4";const Dx=4,Ix=e.memo((t=>{const{align:n="end",isOpen:r=!1,menu:o=[],onInteractOutside:a,onOpen:i,portalContainer:l,sideOffset:s=Dx,triggerButton:c=null,triggerButtonClass:u=""}=t,[d,p]=e.useState(r||!1),f=Boolean(c),h=e.useMemo((()=>o.filter((e=>Boolean(e)&&Boolean(e?.text||e?.icon)))),[o]),v=Boolean(h.length);return e.useEffect((()=>{p(r)}),[r]),e.createElement("div",{className:m("demio-ui-upload-menu"),"data-testid":"upload-menu"},v&&e.createElement(ug,{open:d,onOpenChange:e=>{p(e),i&&i(e)}},e.createElement(dg,{className:m("demio-ui-upload-menu-trigger-button",qx,u),"data-testid":"upload-menu-trigger-button"},f&&c,!f&&e.createElement(Lo,{className:m("demio-ui-upload-menu-default-trigger-button",Tx),"data-testid":"upload-menu-default-trigger-button",width:16})),e.createElement(hg,{container:l instanceof Element?l:void 0},e.createElement(sg,{align:n,className:m("demio-ui-upload-menu-content",Nx),"data-testid":"upload-menu-content",onInteractOutside:e=>{e?.preventDefault(),p(!1),a?.()},sideOffset:s},h.map((({className:t,icon:n,isDisabled:r,text:o},a)=>e.createElement(pg,{className:m("demio-ui-upload-menu-item",kx,{[Rx]:r},t),"data-testid":`upload-menu-item-${a}`,disabled:r,key:`upload-menu-item-key-${a}`,onSelect:r?void 0:e=>((e,t)=>{h[t]&&h[t].onSelect&&h[t].onSelect(e,{itemNumber:t})})(e,a)},n,o)))))))}));var Lx="UploadProgressPreview-modules_root__9StJo",Bx="UploadProgressPreview-modules_image__OMRPt",Fx="UploadProgressPreview-modules_row__KkHVU",zx="UploadProgressPreview-modules_iconContainer__Ktq69",Vx="UploadProgressPreview-modules_icon__z5MfW",Hx="UploadProgressPreview-modules_percent__VVNJt",Ux="UploadProgressPreview-modules_fileData__hhid5",Wx="UploadProgressPreview-modules_isUploadMode__M13Qp",Kx="UploadProgressPreview-modules_noMenu__Kyn3S",Gx="UploadProgressPreview-modules_fileName__i-Dl-",$x="UploadProgressPreview-modules_duration__HRRaa";const Qx=e.memo((({className:t="",fileName:n="",fileInfo:r="",imageSrc:o="",imageTitle:a="",isUpload:i=!1,menu:l=[],percent:s})=>{const c=Boolean(l.length),u=i||"number"==typeof s&&s<100,d=e.useMemo((()=>l.filter((e=>e?.isPreviewOnly))),[l]),p=e.useMemo((()=>l.filter((e=>e?.isProgressOnly))),[l]);return e.createElement("div",{className:m("demio-ui-upload-progress-preview",Lx,t),"data-testid":"upload-progress-preview"},o&&!u&&e.createElement("img",{alt:a,className:m("demio-ui-upload-progress-preview-image",Bx),"data-testid":"upload-progress-preview-image",title:a,src:o}),e.createElement("div",{className:m("demio-ui-upload-progress-preview-row",Fx),"data-testid":"upload-progress-preview-row"},u&&e.createElement(e.Fragment,null,e.createElement("div",{className:m("demio-ui-upload-progress-preview-progress-icon-container",zx),"data-testid":"upload-progress-preview-progress-icon-container"},e.createElement(vs,{className:m("demio-ui-upload-progress-preview-progress-icon",Vx),"data-testid":"upload-progress-preview-progress-icon"})),e.createElement("div",{className:m("demio-ui-upload-progress-preview-progress-percentage",Hx),"data-testid":"upload-progress-preview-progress-percentage"},s,"%")),e.createElement("div",{className:m("demio-ui-upload-progress-preview-file-data",Ux,{[Kx]:!c,[Wx]:u}),"data-testid":"upload-progress-preview-file-data"},n&&e.createElement("div",{className:m("demio-ui-upload-progress-preview-file-name",Gx),"data-testid":"upload-progress-preview-file-name"},n),r&&!u&&e.createElement("div",{className:m("demio-ui-upload-progress-preview-file-info",$x),"data-testid":"upload-progress-preview-file-info"},r)),c&&e.createElement("div",{className:m("demio-ui-upload-progress-preview-menu",{isProgressOnly:u,isPreviewOnly:!u}),"data-testid":"upload-progress-preview-menu"},e.createElement(Ix,{menu:u?p:d}))))}));var Xx="Upload-modules_root__DE-cj",Yx="Upload-modules_croppedImageContainer__tPNFg",Zx="Upload-modules_croppedImageWrapper__H1aDd",Jx="Upload-modules_croppedImage__5pBYs",eE="Upload-modules_uploadLabel__aWGAb",tE="Upload-modules_uploadInput__Bq7Fp",nE="Upload-modules_icon__pmGlQ",rE="Upload-modules_header__adz5V",oE="Upload-modules_text__PS7SI",aE="Upload-modules_uploadTextFormat__IGVKt",iE="Upload-modules_modalContent__tfbd6",lE="Upload-modules_modalBody__q-3hj",sE="Upload-modules_modalFooter__jFAuB";const cE=e.memo(e.forwardRef(((t,n)=>{const{acceptableFileTypes:r="",children:o=null,className:a="",customIcon:i=null,customHeader:l="Upload Media",customText:s=null,cropAspectRatio:c=1,error:u="",fileSizeMbLimit:d=3,minHeightLimit:p=0,minWidthLimit:f=0,errorDimension:h=`Minimum required dimensions are ${f}x${p}.`,errorSize:v=`Exceeds maximum size limit of ${d} MB.`,errorType:g="File type is not supported.",isCropAllowed:w=!1,isDimensionValidationEnabled:b=!0,isSizeValidationEnabled:y=!0,isValidationEnabled:_=!0,menu:x=[],onUpload:E,onCropCancel:C,onCropOk:O,onCropComplete:M,onCropChange:A,onDrop:S,onReadFileError:j,onReadFileProgress:P,onReadFileStart:q,onReadFileSuccess:T,onZoomChange:N,previewFileInfo:k="",previewFileName:R="",previewImage:D="",previewImageTitle:I="",uploadPercent:L}=t,[B,F]=e.useState(null),[z,V]=e.useState(""),[H,U]=e.useState(!1),[W,K]=e.useState(!1),[G,$]=e.useState(""),[Q,X]=e.useState(null),[Y,Z]=e.useState(void 0),{croppedImageURL:J}=Mm(z,B),{validate:ee}=Sm({acceptableFileTypes:r,fileSizeMbLimit:d,isDimensionValidationEnabled:b,isSizeValidationEnabled:y,isValidationEnabled:_,minHeightLimit:p,minWidthLimit:f}),te="number"==typeof Y,ne=r.replaceAll(",","").toLowerCase()||"",re=Q?.name||"",oe=Boolean(J),ae=nm(Q),ie=r.length>0,le=async(e=null)=>{if(!(e instanceof File))return;const t=await(async e=>{const t=URL.createObjectURL(e)||"",{isFileValid:n,isFileDimensionValid:r,isFileSizeValid:o,isFileTypeValid:a}=await ee(e);n?(V(t),X(e)):ce();const i=(ie&&!a?g:"")||(y&&!o?v:"")||(b&&!r?h:"");return Z(i?void 0:0),$(_&&!n&&i||u),n})(e);if(t){E?.(e);try{const t=new FileReader;q?.(e),t.onprogress=t=>{if(t.lengthComputable){const n=Math.floor(Number(t.loaded/t.total*100));P?.(n,e)}},t.onload=()=>{T?.(t.result,e)},t.onerror=()=>{Z(void 0),j?.(t.error,e)},t.readAsDataURL(e)}catch(t){$("Something went wrong while reading File"),Z(void 0),j?.(t,e)}}},se=()=>{V(""),U(!1),K(!1),$(""),X(null),Z(void 0)},ce=()=>{se(),C&&C()},ue=e.useMemo((()=>x.filter((e=>Boolean(e))).map(((e,t)=>({...e,onSelect:e=>((e,t)=>{x[t]&&("cancel"===x[t].action?.toLowerCase()&&se(),x[t].onSelect&&x[t].onSelect(e,{itemNumber:t,croppedImageURL:J,setFileUrl:V,cancelUpload:se}))})(e,t)})))),[x]),de=e.useMemo((()=>ue.filter((e=>e.isPreviewOnly||e.isProgressOnly))),[ue]),me=e.useMemo((()=>ue.filter((e=>!(e.isProgressOnly||e.isPreviewOnly)))),[ue]);return e.useImperativeHandle(n,(()=>({cancelUpload:se}))),e.useEffect((()=>{w&&ae&&K(!0)}),[w,ae]),e.useEffect((()=>{oe||X(null)}),[oe]),e.useEffect((()=>{W||U(oe)}),[oe,W]),e.useEffect((()=>{$(u)}),[u]),e.useEffect((()=>{Z(L)}),[L]),e.useEffect((()=>{se()}),[r,d]),e.createElement("div",{className:m("demio-ui-upload-root",Xx,a),"data-testid":"upload-root"},G&&e.createElement(Rm,{text:G}),te&&e.createElement(Qx,{fileName:re||R,fileInfo:k,imageSrc:D,imageTitle:I,menu:de,percent:Y}),!te&&e.createElement(Lm,{...t,error:G,isValidationEnabled:!1,onDrop:async(e,t)=>{await le(t),S&&S(e,t)}},H&&e.createElement("div",{className:m("demio-ui-upload-cropped-image-container",Yx),"data-testid":"upload-cropped-image-container"},e.createElement("div",{className:m("demio-ui-upload-cropped-image-wrapper",Zx),"data-testid":"upload-cropped-image-wrapper"},e.createElement("img",{alt:"Cropped image",className:m("demio-ui-upload-cropped-image",Jx),"data-testid":"upload-cropped-image",src:J})),e.createElement("div",{className:m("demio-ui-upload-menu"),"data-testid":"upload-menu"},e.createElement(Ix,{menu:me}))),!H&&e.createElement("label",{className:m("demio-ui-upload-label",eE),"data-testid":"upload-label",htmlFor:"file"},e.createElement("input",{accept:r,className:m("demio-ui-upload-input",tE),"data-testid":"upload-input",id:"file",name:"file",onChange:async e=>{const t=e?.target?.files?.[0]||null;await le(t)},type:"file"}),o,!o&&e.createElement(e.Fragment,null,i||e.createElement(ns,{className:m("demio-ui-upload-icon",nE),"data-testid":"upload-icon"}),l&&e.createElement("div",{className:m("demio-ui-upload-header",rE),"data-testid":"upload-header"},l),e.createElement("div",{className:m("demio-ui-upload-text",oE),"data-testid":"upload-text"},s||e.createElement(e.Fragment,null,e.createElement("strong",{className:m("demio-ui-upload-text-format",aE),"data-testid":"upload-text-format"},ne)," ","up to ",e.createElement("strong",null,d," MB")))))),W&&ae&&w&&e.createElement(Gm,{contentClassName:iE,open:!0,isClosable:!1,onOpenChange:()=>K(!1),title:"Crop & Upload Profile Picture"},e.createElement("div",{className:m("demio-ui-upload-crop-modal-body",lE),"data-testid":"upload-crop-modal-body"},!!z&&e.createElement(Xd,{aspect:c,image:z,onCropChange:A,onCropComplete:(e,t)=>{F(t),M&&M(e,t)},onZoomChange:N})),e.createElement("div",{className:m("demio-ui-upload-crop-modal-footer",sE),"data-testid":"upload-crop-modal-footer"},e.createElement(vn,{className:"demio-ui-upload-crop-modal-btn-cancel","data-testid":"upload-crop-modal-btn-cancel",onClick:ce,variant:"secondary"},"no, never mind"),e.createElement(vn,{className:"demio-ui-upload-crop-modal-btn-ok","data-testid":"upload-crop-modal-btn-ok",onClick:()=>{U(!0),K(!1),O&&O(J)}},"crop image"))))})));exports.Alert=function({className:t="",open:n,actionText:r="OK",onActionClick:o,cancelText:a="Cancel",onCancelClick:i,title:l,description:s="",showLoader:c=!1,isOkDisabled:u=!1,actionButtonType:d="danger",maxWidth:p="540px",onClose:f,isCloseButtonVisible:h=!0,...v}){return e.createElement(tn,{open:n,...v},e.createElement(nn,null,e.createElement(rn,{className:m("demio-ui-alert__overlay",gn)}),e.createElement(on,{className:m("demio-ui-alert",bn,t),style:{maxWidth:p}},h&&e.createElement("button",{className:m("demio-ui-alert__close-button",wn),onClick:f||i,"data-testid":"close-button"},e.createElement(mn,null)),e.createElement(sn,{className:m("demio-ui-alert__title",yn)},l),s&&e.createElement(cn,{className:m("demio-ui-alert__description",_n)},s),e.createElement("div",{className:m("demio-ui-alert__action-buttons",xn)},e.createElement(ln,{asChild:!0},e.createElement(vn,{onClick:i,variant:"outline"},a)),e.createElement(an,{asChild:!0},e.createElement(vn,{onClick:o,disabled:u,variant:d,showLoader:c},r))))))},exports.Avatar=({src:t="",size:n=32,userName:r="",alt:o="",className:a="",fallbackDelay:i=600})=>{const l=wu.includes(n)?gu[`size${n}`]:gu.size32,s=String(r).slice(0,1)||"";return e.createElement("div",{className:m(l,"demio-ui-avatar",a)},e.createElement(Rn,{className:m(gu.avatarRoot,"demio-ui-avatar-root")},e.createElement(Dn,{className:m(gu.avatarImage,"demio-ui-avatar-image"),src:t,alt:o||`${r} profile picture`}),e.createElement(In,{className:m(gu.avatarFallback,"demio-ui-avatar-fallback"),delayMs:i},s||e.createElement(Hl,null))))},exports.Badge=({className:t="",icon:n=null,children:r=null,variant:o="contained",color:a="green"})=>e.createElement("div",{className:m(bu.badge,bu[o],bu[a],"demio-ui-badge",t)},n&&e.createElement("div",{className:m(bu.icon,"demio-ui-badge-icon")},n),e.createElement("p",{className:m(bu.title,"demio-ui-badge-title")},r)),exports.Button=vn,exports.ButtonNew=_u,exports.Card=Eu,exports.Checkbox=Qu,exports.CopyLinkInput=({value:t="",className:n="",hint:r="Link copied to clipboard",id:o="copy-link-input",...a})=>{const[i,l]=e.useState(!1),s=e.useRef(null),c=e.useRef(null),u=e.useCallback((async()=>{await(async e=>{try{await navigator.clipboard.writeText(e)}catch(e){console.error("Could not copy text: ",e)}})(t),l(!0),s.current=setTimeout((()=>{l(!1)}),2e3)}),[t]);return e.useEffect((()=>()=>{s.current&&clearTimeout(s.current)}),[]),e.createElement("div",{className:m(td,n)},e.createElement(ed,{className:nd,readOnly:!0,id:o,ref:c,value:t,hint:i?r:"",inputWrapperClass:od,endAdornment:e.createElement(ad,{onCopy:u}),required:!0,onFocus:e=>{u(),a.onFocus&&a.onFocus(e)},...a}))},exports.Crop=Xd,exports.DnDArea=Lm,exports.Drawer=({children:t=null,isOpen:n=!1,className:r="",isCloseButtonVisible:o=!0,header:a=null,toggleDrawer:i=()=>{},align:l="right",isClosable:s=!0})=>e.createElement(e.Fragment,null,n&&e.createElement("div",{className:m($m.drawer,"demio-ui-drawer",r)},e.createElement(Gm,{isClosable:s,open:n,overlayClassName:$m.overlay,contentClassName:m($m.content,{[$m.alignRight]:"right"===l,[$m.alignLeft]:"left"===l}),onOpenChange:i,isCloseButtonVisible:o},a&&e.createElement("div",{className:m($m.header,"demio-ui-drawer-header")},a),t&&e.createElement("div",{className:m($m.childrenWrapper,"demio-ui-drawer-children-wrapper")},t)))),exports.DropdownItem=({children:t,className:n="",isWarning:r=!1,isLabel:o=!1,disabled:a=!1,...i})=>{const l=o?Jv:eg;return e.createElement(l,{className:m(og,"demio-ui-dropdown-item",{[n]:n,[ig]:r,"demio-ui-dropdown-label":o,[ag]:o}),disabled:a,...i},t)},exports.DropdownMenuContent=sg,exports.DropdownMenuGroup=fg,exports.DropdownMenuItem=pg,exports.DropdownMenuLabel=mg,exports.DropdownMenuRoot=ug,exports.DropdownMenuSeparator=cg,exports.DropdownMenuTrigger=dg,exports.FormGroup=function({children:t,position:n="vertical",justify:r="start",alignItems:o="start",className:a}){return e.createElement("div",{className:m("demio-ui-form-group",vg.formGroup,a,{[vg.horizontal]:"horizontal"===n,[vg.vertical]:"vertical"===n,[vg[r]]:!!r,[vg[`${o}AlignItems`]]:!!o})},t)},exports.InfoBanner=({children:t=null,className:n="",icon:r=null,isIconVisible:o=!0,text:a=null,title:i=null})=>e.createElement("div",{className:m(gg,"demio-ui-info-banner",n)},e.createElement("div",{className:m(wg,"demio-ui-info-banner-wrapper")},o&&e.createElement("div",{className:m(_g,"demio-ui-info-banner-iconWrapper")},r||e.createElement(Ss,null)),t||e.createElement("div",{className:m(bg,"demio-ui-info-banner-contentWrapper")},i&&e.createElement("span",{className:m(yg,"demio-ui-info-banner-title")},i),a&&e.createElement("span",{className:"demio-ui-info-banner-text"},a)))),exports.Input=ed,exports.InputHint=Zu,exports.Label=Wu,exports.Loader=fn,exports.Modal=Gm,exports.ModalScrollable=Dg,exports.MultiSelect=hw,exports.Note=Rm,exports.Pagination=_w,exports.Popover=Zw,exports.PopoverContent=Gw,exports.PopoverPortal=Kw,exports.PopoverRoot=Uw,exports.PopoverTooltip=function({align:t="center",alignOffset:n=0,children:r,className:o="",collisionBoundary:a,container:i,content:l,side:s="top",sideOffset:c=4,...u}){return"ontouchstart"in window||navigator.maxTouchPoints>0?e.createElement(Zw,{content:l,contentProps:{side:s,align:t,sideOffset:c,alignOffset:n,collisionBoundary:a},...u,showArrow:!0,asChild:!0,container:i,contentClassName:m(Ox,o,"demio-ui-tooltip")},r):e.createElement(Sx,{align:t,alignOffset:n,children:r,className:o,collisionBoundary:a,container:i,content:l,side:s,sideOffset:c,...u})},exports.PopoverTrigger=Ww,exports.Progress=function({max:t=100,progress:n=0,className:r="",...o}){const a=n>t?"100%":n/t*100+"%";return e.createElement(pb,{className:m("demio-ui-progress",hb,{className:!!r}),value:n>t?t:n,max:t,...o},e.createElement(fb,{className:vb,style:{width:a}}))},exports.RadioGroup=function({items:t=[],error:n="",defaultValue:r="",ariaLabel:o="",hint:a="",onChange:i,disabled:l=!1,value:s="",className:c="",...u}){const d=e.useMemo((()=>i?{value:s,onValueChange:i}:{}),[s,i]);return e.createElement(Bb,{...d,...u,className:m("demio-ui-radio-group",Vb.root,{[Vb.error]:!!n,[c]:!!c}),defaultValue:r,"aria-label":o},t.map((t=>e.createElement("div",{key:t.id,className:m(Vb.container,{[Vb.disabled]:t.disabled||l})},e.createElement(Fb,{className:Vb.item,value:t.value,disabled:t.disabled||l,id:t.id},e.createElement(zb,{className:Vb.indicator})),e.createElement(Wu,{className:Vb.label,htmlFor:t.id,weight:"regular"},t.label)))),e.createElement("div",{className:Vb.footer},n&&e.createElement(Zu,{type:"error"},n),a&&!n&&e.createElement(Zu,null,a)))},exports.ScrollableModal=Dg,exports.Select=n_,exports.SelectItem=r_,exports.SelectItemText=o_,exports.Slider=Kd,exports.Switch=function({className:t="",id:n="",disabled:r=!1,required:o=!1,name:a,...i}){return e.createElement(h_,{className:m(g_,"demio-ui-switch",{[t]:!!t}),disabled:r,required:o,name:a,id:n||a,...i},e.createElement(v_,{className:w_}))},exports.Tab=function({children:t,className:n="",...r}){return e.createElement(D_,{...r,className:m(F_,{[n]:n})},t)},exports.TabsContent=function({children:t,value:n,className:r=""}){return e.createElement(I_,{value:n,className:m(z_,"demio-ui-tabs-tab",{[r]:r})},t)},exports.TabsList=function({children:t,className:n=""}){return e.createElement(R_,{className:m(B_,"demio-ui-tabs-list",{[n]:n})},t)},exports.TabsRoot=function({children:t,className:n="",...r}){return e.createElement(k_,{...r,className:m(L_,"demio-ui-tabs",{[n]:n})},t)},exports.Tag=function({children:t,onDelete:n=null,className:r=""}){return e.createElement("div",{className:m(V_,"demio-ui-tag-container",r)},t,Boolean(n)&&e.createElement("button",{type:"button",onClick:n,className:m(H_,"demio-ui-tag-delete-button")},e.createElement(mn,null)))},exports.Toast=_m,exports.Tooltip=Sx,exports.Typography=({tag:t,dataTestId:n="",align:r="left",className:o="",children:a=null,emphasis:i="regular",title:l="",variant:s="b1",...c})=>{const u=t;return e.createElement(u,{title:l,"data-testid":n,className:m(jx.default,jx[Px[s]],jx[r],jx[i],"demio-ui-typography-element",`typography-${s}`,o),...c},a)},exports.Upload=cE,exports.UploadMenu=Ix,exports.UploadProgressPreview=Qx,exports.createImage=am,exports.getCroppedImageURL=sm,exports.getFileExtension=Zd,exports.getFileMimeType=Jd,exports.getRadianAngle=im,exports.icons=vu,exports.isExtensionMatchingMimeType=em,exports.isImage=nm,exports.isValidFileDimension=om,exports.isValidFileSize=rm,exports.isValidFileType=tm,exports.isVideo=(e=null)=>e instanceof File&&e.type.startsWith("video/"),exports.mimeTypeMap=Yd,exports.rotateSize=lm,exports.toast=Om,exports.useCroppedImage=Mm,exports.useFileValidation=Sm;
|
|
7
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9jbGFzc25hbWVzL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1jb250ZXh0L2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMvZGlzdC9pbmRleC5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3ByaW1pdGl2ZS9kaXN0L2luZGV4Lm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWxheW91dC1lZmZlY3QvZGlzdC9pbmRleC5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWlkL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1zbG90L2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUvZGlzdC9pbmRleC5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtZXNjYXBlLWtleWRvd24vZGlzdC9pbmRleC5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWZvY3VzLXNjb3BlL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1wb3J0YWwvZGlzdC9pbmRleC5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXByZXNlbmNlL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1mb2N1cy1ndWFyZHMvZGlzdC9pbmRleC5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvdHNsaWIvdHNsaWIuZXM2LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwtYmFyL2Rpc3QvZXMyMDE1L2NvbnN0YW50cy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c2UtY2FsbGJhY2stcmVmL2Rpc3QvZXMyMDE1L2Fzc2lnblJlZi5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c2UtY2FsbGJhY2stcmVmL2Rpc3QvZXMyMDE1L3VzZU1lcmdlUmVmLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3VzZS1jYWxsYmFjay1yZWYvZGlzdC9lczIwMTUvdXNlUmVmLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3VzZS1zaWRlY2FyL2Rpc3QvZXMyMDE1L21lZGl1bS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c2Utc2lkZWNhci9kaXN0L2VzMjAxNS9leHBvcnRzLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwvZGlzdC9lczIwMTUvbWVkaXVtLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwvZGlzdC9lczIwMTUvVUkuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3R5bGUtc2luZ2xldG9uL2Rpc3QvZXMyMDE1L3NpbmdsZXRvbi5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9nZXQtbm9uY2UvZGlzdC9lczIwMTUvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3R5bGUtc2luZ2xldG9uL2Rpc3QvZXMyMDE1L2NvbXBvbmVudC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1zdHlsZS1zaW5nbGV0b24vZGlzdC9lczIwMTUvaG9vay5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS91dGlscy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS9jb21wb25lbnQuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QtcmVtb3ZlLXNjcm9sbC9kaXN0L2VzMjAxNS9hZ2dyZXNpdmVDYXB0dXJlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwvZGlzdC9lczIwMTUvaGFuZGxlU2Nyb2xsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwvZGlzdC9lczIwMTUvU2lkZUVmZmVjdC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L3NpZGVjYXIuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QtcmVtb3ZlLXNjcm9sbC9kaXN0L2VzMjAxNS9Db21iaW5hdGlvbi5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9hcmlhLWhpZGRlbi9kaXN0L2VzMjAxNS9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlhbG9nL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1hbGVydC1kaWFsb2cvZGlzdC9pbmRleC5tanMiLCIuLi8uLi9zcmMvaWNvbnMvY2xvc2Uuc3ZnIiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTG9hZGVyL0xvYWRlci50c3giLCIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLnRzeCIsIi4uLy4uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXZhdGFyL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vc3JjL2ljb25zL2FkZC5zdmciLCIuLi8uLi9zcmMvaWNvbnMvYXJyb3ctbGVmdC5zdmciLCIuLi8uLi9zcmMvaWNvbnMvYXJyb3ctbGVmdC1kb3VibGUuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL2Fycm93LWxlZnQtc2luZ2xlLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9hdC5zdmciLCIuLi8uLi9zcmMvaWNvbnMvYmFyX2NoYXJ0LnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9ibG9jay5zdmciLCIuLi8uLi9zcmMvaWNvbnMvYmx1cl9vbi5zdmciLCIuLi8uLi9zcmMvaWNvbnMvY2FjaGVkLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9jYWxlbmRhci5zdmciLCIuLi8uLi9zcmMvaWNvbnMvY2FtZXJhLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9jYW1lcmFfb3V0bGluZWQuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL2NoYXRfaWNvbi5zdmciLCIuLi8uLi9zcmMvaWNvbnMvY2hhdC1kaXNhYmxlZC5zdmciLCIuLi8uLi9zcmMvaWNvbnMvY2hlY2suc3ZnIiwiLi4vLi4vc3JjL2ljb25zL2NoZWNrX2NpcmNsZS5zdmciLCIuLi8uLi9zcmMvaWNvbnMvY2hlY2stY2lyY2xlLXNvbGlkLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9jaGVja2JveC5zdmciLCIuLi8uLi9zcmMvaWNvbnMvY2xvY2suc3ZnIiwiLi4vLi4vc3JjL2ljb25zL2NvbXByZXNzLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9jb3B5LnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9jdXN0b21pemUuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL2RlbGV0ZS5zdmciLCIuLi8uLi9zcmMvaWNvbnMvZG90cy5zdmciLCIuLi8uLi9zcmMvaWNvbnMvZG93bmxvYWQuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL2VkaXQuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL2VsZWN0cmljX2JvbHQuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL2V2ZW50X2RldGFpbHMuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL2V2ZW50X3JlcGVhdC5zdmciLCIuLi8uLi9zcmMvaWNvbnMvZXhjbGFtYXRpb24uc3ZnIiwiLi4vLi4vc3JjL2ljb25zL2V4cGFuZC5zdmciLCIuLi8uLi9zcmMvaWNvbnMvZXh0ZXJuYWxfbGluay5zdmciLCIuLi8uLi9zcmMvaWNvbnMvZmVhdHVyZV9hY3Rpb24uc3ZnIiwiLi4vLi4vc3JjL2ljb25zL2ZpbGUuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL2ZpbHRlcl9saXN0LnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9mbGlwLWNhbWVyYS5zdmciLCIuLi8uLi9zcmMvaWNvbnMvZ2Vhci5zdmciLCIuLi8uLi9zcmMvaWNvbnMvaGVscC5zdmciLCIuLi8uLi9zcmMvaWNvbnMvaGVscC1zb2xpZC5zdmciLCIuLi8uLi9zcmMvaWNvbnMvaW5mby5zdmciLCIuLi8uLi9zcmMvaWNvbnMvaW5mby0xLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9pbmZvLWNpcmNsZS5zdmciLCIuLi8uLi9zcmMvaWNvbnMvaW5mby1jaXJjbGUtc29saWQuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL2l0ZW1zLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9rZXlib2FyZF9hcnJvd19kb3duLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9saXN0LnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9sb2NhdGlvbi5zdmciLCIuLi8uLi9zcmMvaWNvbnMvbG9jay5zdmciLCIuLi8uLi9zcmMvaWNvbnMvbWFnaWMuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL21haWwuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL21hdGVyaWFscy5zdmciLCIuLi8uLi9zcmMvaWNvbnMvbWljX29mZi5zdmciLCIuLi8uLi9zcmMvaWNvbnMvbWljX29mZi0xLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9taWNfb3V0bGluZWQuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL21pYy0xLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9taWMtYm9sZC5zdmciLCIuLi8uLi9zcmMvaWNvbnMvbW9iaWxlLWRldmljZS5zdmciLCIuLi8uLi9zcmMvaWNvbnMvb3V0LXN0YWdlLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9wYXNzd29yZF9leWUuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL3Bhc3N3b3JkX2V5ZV9jcm9zc2VkLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9wZW9wbGUuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL3Blb3BsZS1jb21tdW5pdHkuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL3BlcnNvbi5zdmciLCIuLi8uLi9zcmMvaWNvbnMvcGVyc29uX2RlbGV0ZS5zdmciLCIuLi8uLi9zcmMvaWNvbnMvcGxheS5zdmciLCIuLi8uLi9zcmMvaWNvbnMvcGx1cy5zdmciLCIuLi8uLi9zcmMvaWNvbnMvcG9sbC5zdmciLCIuLi8uLi9zcmMvaWNvbnMvcHJlc2VudGF0aW9uLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9wcm9ncmVzcy5zdmciLCIuLi8uLi9zcmMvaWNvbnMvcmVwbGF5X2Rpc2FibGVkLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9yZXN0YXJ0LnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9yb2NrZXQuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL3NjcmVlbi1wZXJzb24uc3ZnIiwiLi4vLi4vc3JjL2ljb25zL3NjcmVlbi1zY2FyZS13aW5kb3dzLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9zY3JlZW4tc2hhcmluZy5zdmciLCIuLi8uLi9zcmMvaWNvbnMvc2VhcmNoLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9zaWRlYmFyLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9zbWlsZS5zdmciLCIuLi8uLi9zcmMvaWNvbnMvc3BvdGxpZ2h0LnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9zdGFja2VkX2VtYWlsLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy9zdGFnZS5zdmciLCIuLi8uLi9zcmMvaWNvbnMvc3luYy5zdmciLCIuLi8uLi9zcmMvaWNvbnMvdGltZXMtY2lyY2xlLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy90b2RheS5zdmciLCIuLi8uLi9zcmMvaWNvbnMvdHJhc2guc3ZnIiwiLi4vLi4vc3JjL2ljb25zL3RyZW5kaW5nX2Rvd24uc3ZnIiwiLi4vLi4vc3JjL2ljb25zL3RyZW5kaW5nX3VwLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy91bmRvLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy92aWRlb2NhbS5zdmciLCIuLi8uLi9zcmMvaWNvbnMvdmlkZW9jYW0tMS5zdmciLCIuLi8uLi9zcmMvaWNvbnMvdm9sdW1lX29mZi0xLnN2ZyIsIi4uLy4uL3NyYy9pY29ucy92b2x1bWVfdXAuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL3dhcm5pbmcuc3ZnIiwiLi4vLi4vc3JjL2ljb25zL3dhcm5pbmctMS5zdmciLCIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9BdmF0YXIvQXZhdGFyLnRzeCIsIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0J1dHRvbk5ldy9CdXR0b24udHN4IiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvQ2FyZC9DYXJkLnRzeCIsIi4uLy4uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLXByZXZpb3VzL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2Utc2l6ZS9kaXN0L2luZGV4Lm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY2hlY2tib3gvZGlzdC9pbmRleC5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWxhYmVsL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTGFiZWwvTGFiZWwudHN4IiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gudHN4IiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvSW5wdXRIaW50L0lucHV0SGludC50c3giLCIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9JbnB1dC9JbnB1dC50c3giLCIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Db3B5TGlua0lucHV0L0NvcHlMaW5rSW5wdXQudHN4IiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9udW1iZXIvZGlzdC9pbmRleC5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRpcmVjdGlvbi9kaXN0L2luZGV4Lm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29sbGVjdGlvbi9kaXN0L2luZGV4Lm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2xpZGVyL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvU2xpZGVyL1NsaWRlci50c3giLCIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Dcm9wL0Nyb3AudHN4IiwiLi4vLi4vLi4vc3JjL3V0aWxzL2ZpbGUvZmlsZS11dGlscy50cyIsIi4uLy4uLy4uL3NyYy91dGlscy9pbWFnZS9pbWFnZS11dGlscy50cyIsIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0LnRzeCIsIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RvYXN0TGlzdC9Ub2FzdExpc3QudHN4IiwiLi4vLi4vLi4vc3JjL3V0aWxzL3RvYXN0L3RvYXN0LnRzeCIsIi4uLy4uLy4uL3NyYy9ob29rcy91c2VDcm9wcGVkSW1hZ2UvdXNlQ3JvcHBlZEltYWdlLnRzIiwiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZUZpbGVWYWxpZGF0aW9uL3VzZUZpbGVWYWxpZGF0aW9uLnRzIiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTm90ZS9Ob3RlLnRzeCIsIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0RuREFyZWEvRG5EQXJlYS50c3giLCIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Nb2RhbC9Nb2RhbC50c3giLCIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9EcmF3ZXIvRHJhd2VyLnRzeCIsIi4uLy4uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvdXRpbHMvZGlzdC9mbG9hdGluZy11aS51dGlscy5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL2NvcmUvZGlzdC9mbG9hdGluZy11aS5jb3JlLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvdXRpbHMvZGlzdC9mbG9hdGluZy11aS51dGlscy5kb20ubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0BmbG9hdGluZy11aS9kb20vZGlzdC9mbG9hdGluZy11aS5kb20ubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0BmbG9hdGluZy11aS9yZWFjdC1kb20vZGlzdC9mbG9hdGluZy11aS5yZWFjdC1kb20ubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1hcnJvdy9kaXN0L2luZGV4Lm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcG9wcGVyL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1yb3ZpbmctZm9jdXMvZGlzdC9pbmRleC5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRyb3Bkb3duLW1lbnUvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1tZW51L2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1kcm9wZG93bi1tZW51L2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRHJvcGRvd24vRHJvcGRvd24udHN4IiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTW9kYWxTY3JvbGxhYmxlL01vZGFsU2Nyb2xsYWJsZS50c3giLCIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9NdWx0aVNlbGVjdC9NdWx0aVNlbGVjdC50c3giLCIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9QYWdpbmF0aW9uL1BhZ2luYXRpb24udHN4IiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1wb3BvdmVyL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvUG9wb3Zlci9Qb3BvdmVyLnRzeCIsIi4uLy4uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJvZ3Jlc3MvZGlzdC9pbmRleC5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXJhZGlvLWdyb3VwL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1zZWxlY3Qvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC12aXN1YWxseS1oaWRkZW4vZGlzdC9pbmRleC5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNlbGVjdC9kaXN0L2luZGV4Lm1qcyIsIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NlbGVjdC9TZWxlY3QudHN4IiwiLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1zd2l0Y2gvZGlzdC9pbmRleC5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXRhYnMvZGlzdC9pbmRleC5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXRvb2x0aXAvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC12aXN1YWxseS1oaWRkZW4vZGlzdC9pbmRleC5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXRvb2x0aXAvZGlzdC9pbmRleC5tanMiLCIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Ub29sdGlwL1Rvb2x0aXAudHN4IiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVHlwb2dyYXBoeS9UeXBvZ3JhcGh5LnRzeCIsIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1VwbG9hZE1lbnUvVXBsb2FkTWVudS50c3giLCIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9VcGxvYWRQcm9ncmVzc1ByZXZpZXcvVXBsb2FkUHJvZ3Jlc3NQcmV2aWV3LnRzeCIsIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1VwbG9hZC9VcGxvYWQudHN4IiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvQWxlcnQvQWxlcnQudHN4IiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvQmFkZ2UvQmFkZ2UudHN4IiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRHJvcGRvd24vRHJvcGRvd25JdGVtLnRzeCIsIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0Zvcm1Hcm91cC9Gb3JtR3JvdXAudHN4IiwiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvSW5mb0Jhbm5lci9JbmZvQmFubmVyLnRzeCIsIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1Byb2dyZXNzL1Byb2dyZXNzLnRzeCIsIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1JhZGlvR3JvdXAvUmFkaW9Hcm91cC50c3giLCIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Td2l0Y2gvU3dpdGNoLnRzeCIsIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RhYnMvVGFicy50c3giLCIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UYWcvVGFnLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcblx0Q29weXJpZ2h0IChjKSAyMDE4IEplZCBXYXRzb24uXG5cdExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZSAoTUlUKSwgc2VlXG5cdGh0dHA6Ly9qZWR3YXRzb24uZ2l0aHViLmlvL2NsYXNzbmFtZXNcbiovXG4vKiBnbG9iYWwgZGVmaW5lICovXG5cbihmdW5jdGlvbiAoKSB7XG5cdCd1c2Ugc3RyaWN0JztcblxuXHR2YXIgaGFzT3duID0ge30uaGFzT3duUHJvcGVydHk7XG5cblx0ZnVuY3Rpb24gY2xhc3NOYW1lcyAoKSB7XG5cdFx0dmFyIGNsYXNzZXMgPSAnJztcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR2YXIgYXJnID0gYXJndW1lbnRzW2ldO1xuXHRcdFx0aWYgKGFyZykge1xuXHRcdFx0XHRjbGFzc2VzID0gYXBwZW5kQ2xhc3MoY2xhc3NlcywgcGFyc2VWYWx1ZShhcmcpKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gY2xhc3Nlcztcblx0fVxuXG5cdGZ1bmN0aW9uIHBhcnNlVmFsdWUgKGFyZykge1xuXHRcdGlmICh0eXBlb2YgYXJnID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgYXJnID09PSAnbnVtYmVyJykge1xuXHRcdFx0cmV0dXJuIGFyZztcblx0XHR9XG5cblx0XHRpZiAodHlwZW9mIGFyZyAhPT0gJ29iamVjdCcpIHtcblx0XHRcdHJldHVybiAnJztcblx0XHR9XG5cblx0XHRpZiAoQXJyYXkuaXNBcnJheShhcmcpKSB7XG5cdFx0XHRyZXR1cm4gY2xhc3NOYW1lcy5hcHBseShudWxsLCBhcmcpO1xuXHRcdH1cblxuXHRcdGlmIChhcmcudG9TdHJpbmcgIT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcgJiYgIWFyZy50b1N0cmluZy50b1N0cmluZygpLmluY2x1ZGVzKCdbbmF0aXZlIGNvZGVdJykpIHtcblx0XHRcdHJldHVybiBhcmcudG9TdHJpbmcoKTtcblx0XHR9XG5cblx0XHR2YXIgY2xhc3NlcyA9ICcnO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGFyZykge1xuXHRcdFx0aWYgKGhhc093bi5jYWxsKGFyZywga2V5KSAmJiBhcmdba2V5XSkge1xuXHRcdFx0XHRjbGFzc2VzID0gYXBwZW5kQ2xhc3MoY2xhc3Nlcywga2V5KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gY2xhc3Nlcztcblx0fVxuXG5cdGZ1bmN0aW9uIGFwcGVuZENsYXNzICh2YWx1ZSwgbmV3Q2xhc3MpIHtcblx0XHRpZiAoIW5ld0NsYXNzKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHRcblx0XHRpZiAodmFsdWUpIHtcblx0XHRcdHJldHVybiB2YWx1ZSArICcgJyArIG5ld0NsYXNzO1xuXHRcdH1cblx0XG5cdFx0cmV0dXJuIHZhbHVlICsgbmV3Q2xhc3M7XG5cdH1cblxuXHRpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcblx0XHRjbGFzc05hbWVzLmRlZmF1bHQgPSBjbGFzc05hbWVzO1xuXHRcdG1vZHVsZS5leHBvcnRzID0gY2xhc3NOYW1lcztcblx0fSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBkZWZpbmUuYW1kID09PSAnb2JqZWN0JyAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gcmVnaXN0ZXIgYXMgJ2NsYXNzbmFtZXMnLCBjb25zaXN0ZW50IHdpdGggbnBtIHBhY2thZ2UgbmFtZVxuXHRcdGRlZmluZSgnY2xhc3NuYW1lcycsIFtdLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRyZXR1cm4gY2xhc3NOYW1lcztcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHR3aW5kb3cuY2xhc3NOYW1lcyA9IGNsYXNzTmFtZXM7XG5cdH1cbn0oKSk7XG4iLCIvLyBwYWNrYWdlcy9yZWFjdC9jb250ZXh0L3NyYy9jcmVhdGVDb250ZXh0LnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmZ1bmN0aW9uIGNyZWF0ZUNvbnRleHQyKHJvb3RDb21wb25lbnROYW1lLCBkZWZhdWx0Q29udGV4dCkge1xuICBjb25zdCBDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dChkZWZhdWx0Q29udGV4dCk7XG4gIGNvbnN0IFByb3ZpZGVyID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgLi4uY29udGV4dCB9ID0gcHJvcHM7XG4gICAgY29uc3QgdmFsdWUgPSBSZWFjdC51c2VNZW1vKCgpID0+IGNvbnRleHQsIE9iamVjdC52YWx1ZXMoY29udGV4dCkpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWUsIGNoaWxkcmVuIH0pO1xuICB9O1xuICBQcm92aWRlci5kaXNwbGF5TmFtZSA9IHJvb3RDb21wb25lbnROYW1lICsgXCJQcm92aWRlclwiO1xuICBmdW5jdGlvbiB1c2VDb250ZXh0Mihjb25zdW1lck5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChDb250ZXh0KTtcbiAgICBpZiAoY29udGV4dCkgcmV0dXJuIGNvbnRleHQ7XG4gICAgaWYgKGRlZmF1bHRDb250ZXh0ICE9PSB2b2lkIDApIHJldHVybiBkZWZhdWx0Q29udGV4dDtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFxcYCR7Y29uc3VtZXJOYW1lfVxcYCBtdXN0IGJlIHVzZWQgd2l0aGluIFxcYCR7cm9vdENvbXBvbmVudE5hbWV9XFxgYCk7XG4gIH1cbiAgcmV0dXJuIFtQcm92aWRlciwgdXNlQ29udGV4dDJdO1xufVxuZnVuY3Rpb24gY3JlYXRlQ29udGV4dFNjb3BlKHNjb3BlTmFtZSwgY3JlYXRlQ29udGV4dFNjb3BlRGVwcyA9IFtdKSB7XG4gIGxldCBkZWZhdWx0Q29udGV4dHMgPSBbXTtcbiAgZnVuY3Rpb24gY3JlYXRlQ29udGV4dDMocm9vdENvbXBvbmVudE5hbWUsIGRlZmF1bHRDb250ZXh0KSB7XG4gICAgY29uc3QgQmFzZUNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KGRlZmF1bHRDb250ZXh0KTtcbiAgICBjb25zdCBpbmRleCA9IGRlZmF1bHRDb250ZXh0cy5sZW5ndGg7XG4gICAgZGVmYXVsdENvbnRleHRzID0gWy4uLmRlZmF1bHRDb250ZXh0cywgZGVmYXVsdENvbnRleHRdO1xuICAgIGNvbnN0IFByb3ZpZGVyID0gKHByb3BzKSA9PiB7XG4gICAgICBjb25zdCB7IHNjb3BlLCBjaGlsZHJlbiwgLi4uY29udGV4dCB9ID0gcHJvcHM7XG4gICAgICBjb25zdCBDb250ZXh0ID0gc2NvcGU/LltzY29wZU5hbWVdPy5baW5kZXhdIHx8IEJhc2VDb250ZXh0O1xuICAgICAgY29uc3QgdmFsdWUgPSBSZWFjdC51c2VNZW1vKCgpID0+IGNvbnRleHQsIE9iamVjdC52YWx1ZXMoY29udGV4dCkpO1xuICAgICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZSwgY2hpbGRyZW4gfSk7XG4gICAgfTtcbiAgICBQcm92aWRlci5kaXNwbGF5TmFtZSA9IHJvb3RDb21wb25lbnROYW1lICsgXCJQcm92aWRlclwiO1xuICAgIGZ1bmN0aW9uIHVzZUNvbnRleHQyKGNvbnN1bWVyTmFtZSwgc2NvcGUpIHtcbiAgICAgIGNvbnN0IENvbnRleHQgPSBzY29wZT8uW3Njb3BlTmFtZV0/LltpbmRleF0gfHwgQmFzZUNvbnRleHQ7XG4gICAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChDb250ZXh0KTtcbiAgICAgIGlmIChjb250ZXh0KSByZXR1cm4gY29udGV4dDtcbiAgICAgIGlmIChkZWZhdWx0Q29udGV4dCAhPT0gdm9pZCAwKSByZXR1cm4gZGVmYXVsdENvbnRleHQ7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFxcYCR7Y29uc3VtZXJOYW1lfVxcYCBtdXN0IGJlIHVzZWQgd2l0aGluIFxcYCR7cm9vdENvbXBvbmVudE5hbWV9XFxgYCk7XG4gICAgfVxuICAgIHJldHVybiBbUHJvdmlkZXIsIHVzZUNvbnRleHQyXTtcbiAgfVxuICBjb25zdCBjcmVhdGVTY29wZSA9ICgpID0+IHtcbiAgICBjb25zdCBzY29wZUNvbnRleHRzID0gZGVmYXVsdENvbnRleHRzLm1hcCgoZGVmYXVsdENvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVDb250ZXh0KGRlZmF1bHRDb250ZXh0KTtcbiAgICB9KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gdXNlU2NvcGUoc2NvcGUpIHtcbiAgICAgIGNvbnN0IGNvbnRleHRzID0gc2NvcGU/LltzY29wZU5hbWVdIHx8IHNjb3BlQ29udGV4dHM7XG4gICAgICByZXR1cm4gUmVhY3QudXNlTWVtbyhcbiAgICAgICAgKCkgPT4gKHsgW2BfX3Njb3BlJHtzY29wZU5hbWV9YF06IHsgLi4uc2NvcGUsIFtzY29wZU5hbWVdOiBjb250ZXh0cyB9IH0pLFxuICAgICAgICBbc2NvcGUsIGNvbnRleHRzXVxuICAgICAgKTtcbiAgICB9O1xuICB9O1xuICBjcmVhdGVTY29wZS5zY29wZU5hbWUgPSBzY29wZU5hbWU7XG4gIHJldHVybiBbY3JlYXRlQ29udGV4dDMsIGNvbXBvc2VDb250ZXh0U2NvcGVzKGNyZWF0ZVNjb3BlLCAuLi5jcmVhdGVDb250ZXh0U2NvcGVEZXBzKV07XG59XG5mdW5jdGlvbiBjb21wb3NlQ29udGV4dFNjb3BlcyguLi5zY29wZXMpIHtcbiAgY29uc3QgYmFzZVNjb3BlID0gc2NvcGVzWzBdO1xuICBpZiAoc2NvcGVzLmxlbmd0aCA9PT0gMSkgcmV0dXJuIGJhc2VTY29wZTtcbiAgY29uc3QgY3JlYXRlU2NvcGUgPSAoKSA9PiB7XG4gICAgY29uc3Qgc2NvcGVIb29rcyA9IHNjb3Blcy5tYXAoKGNyZWF0ZVNjb3BlMikgPT4gKHtcbiAgICAgIHVzZVNjb3BlOiBjcmVhdGVTY29wZTIoKSxcbiAgICAgIHNjb3BlTmFtZTogY3JlYXRlU2NvcGUyLnNjb3BlTmFtZVxuICAgIH0pKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gdXNlQ29tcG9zZWRTY29wZXMob3ZlcnJpZGVTY29wZXMpIHtcbiAgICAgIGNvbnN0IG5leHRTY29wZXMgPSBzY29wZUhvb2tzLnJlZHVjZSgobmV4dFNjb3BlczIsIHsgdXNlU2NvcGUsIHNjb3BlTmFtZSB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHNjb3BlUHJvcHMgPSB1c2VTY29wZShvdmVycmlkZVNjb3Blcyk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTY29wZSA9IHNjb3BlUHJvcHNbYF9fc2NvcGUke3Njb3BlTmFtZX1gXTtcbiAgICAgICAgcmV0dXJuIHsgLi4ubmV4dFNjb3BlczIsIC4uLmN1cnJlbnRTY29wZSB9O1xuICAgICAgfSwge30pO1xuICAgICAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gKHsgW2BfX3Njb3BlJHtiYXNlU2NvcGUuc2NvcGVOYW1lfWBdOiBuZXh0U2NvcGVzIH0pLCBbbmV4dFNjb3Blc10pO1xuICAgIH07XG4gIH07XG4gIGNyZWF0ZVNjb3BlLnNjb3BlTmFtZSA9IGJhc2VTY29wZS5zY29wZU5hbWU7XG4gIHJldHVybiBjcmVhdGVTY29wZTtcbn1cbmV4cG9ydCB7XG4gIGNyZWF0ZUNvbnRleHQyIGFzIGNyZWF0ZUNvbnRleHQsXG4gIGNyZWF0ZUNvbnRleHRTY29wZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsIi8vIHBhY2thZ2VzL3JlYWN0L2NvbXBvc2UtcmVmcy9zcmMvY29tcG9zZVJlZnMudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmZ1bmN0aW9uIHNldFJlZihyZWYsIHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgcmVmID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gcmVmKHZhbHVlKTtcbiAgfSBlbHNlIGlmIChyZWYgIT09IG51bGwgJiYgcmVmICE9PSB2b2lkIDApIHtcbiAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICB9XG59XG5mdW5jdGlvbiBjb21wb3NlUmVmcyguLi5yZWZzKSB7XG4gIHJldHVybiAobm9kZSkgPT4ge1xuICAgIGxldCBoYXNDbGVhbnVwID0gZmFsc2U7XG4gICAgY29uc3QgY2xlYW51cHMgPSByZWZzLm1hcCgocmVmKSA9PiB7XG4gICAgICBjb25zdCBjbGVhbnVwID0gc2V0UmVmKHJlZiwgbm9kZSk7XG4gICAgICBpZiAoIWhhc0NsZWFudXAgJiYgdHlwZW9mIGNsZWFudXAgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGhhc0NsZWFudXAgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNsZWFudXA7XG4gICAgfSk7XG4gICAgaWYgKGhhc0NsZWFudXApIHtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2xlYW51cHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBjbGVhbnVwID0gY2xlYW51cHNbaV07XG4gICAgICAgICAgaWYgKHR5cGVvZiBjbGVhbnVwID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgY2xlYW51cCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRSZWYocmVmc1tpXSwgbnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn1cbmZ1bmN0aW9uIHVzZUNvbXBvc2VkUmVmcyguLi5yZWZzKSB7XG4gIHJldHVybiBSZWFjdC51c2VDYWxsYmFjayhjb21wb3NlUmVmcyguLi5yZWZzKSwgcmVmcyk7XG59XG5leHBvcnQge1xuICBjb21wb3NlUmVmcyxcbiAgdXNlQ29tcG9zZWRSZWZzXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIiwiLy8gcGFja2FnZXMvY29yZS9wcmltaXRpdmUvc3JjL3ByaW1pdGl2ZS50c3hcbmZ1bmN0aW9uIGNvbXBvc2VFdmVudEhhbmRsZXJzKG9yaWdpbmFsRXZlbnRIYW5kbGVyLCBvdXJFdmVudEhhbmRsZXIsIHsgY2hlY2tGb3JEZWZhdWx0UHJldmVudGVkID0gdHJ1ZSB9ID0ge30pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGhhbmRsZUV2ZW50KGV2ZW50KSB7XG4gICAgb3JpZ2luYWxFdmVudEhhbmRsZXI/LihldmVudCk7XG4gICAgaWYgKGNoZWNrRm9yRGVmYXVsdFByZXZlbnRlZCA9PT0gZmFsc2UgfHwgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHJldHVybiBvdXJFdmVudEhhbmRsZXI/LihldmVudCk7XG4gICAgfVxuICB9O1xufVxuZXhwb3J0IHtcbiAgY29tcG9zZUV2ZW50SGFuZGxlcnNcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCIvLyBwYWNrYWdlcy9yZWFjdC91c2UtbGF5b3V0LWVmZmVjdC9zcmMvdXNlTGF5b3V0RWZmZWN0LnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG52YXIgdXNlTGF5b3V0RWZmZWN0MiA9IEJvb2xlYW4oZ2xvYmFsVGhpcz8uZG9jdW1lbnQpID8gUmVhY3QudXNlTGF5b3V0RWZmZWN0IDogKCkgPT4ge1xufTtcbmV4cG9ydCB7XG4gIHVzZUxheW91dEVmZmVjdDIgYXMgdXNlTGF5b3V0RWZmZWN0XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIiwiLy8gcGFja2FnZXMvcmVhY3QvaWQvc3JjL2lkLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0XCI7XG52YXIgdXNlUmVhY3RJZCA9IFJlYWN0W1widXNlSWRcIi50b1N0cmluZygpXSB8fCAoKCkgPT4gdm9pZCAwKTtcbnZhciBjb3VudCA9IDA7XG5mdW5jdGlvbiB1c2VJZChkZXRlcm1pbmlzdGljSWQpIHtcbiAgY29uc3QgW2lkLCBzZXRJZF0gPSBSZWFjdC51c2VTdGF0ZSh1c2VSZWFjdElkKCkpO1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZGV0ZXJtaW5pc3RpY0lkKSBzZXRJZCgocmVhY3RJZCkgPT4gcmVhY3RJZCA/PyBTdHJpbmcoY291bnQrKykpO1xuICB9LCBbZGV0ZXJtaW5pc3RpY0lkXSk7XG4gIHJldHVybiBkZXRlcm1pbmlzdGljSWQgfHwgKGlkID8gYHJhZGl4LSR7aWR9YCA6IFwiXCIpO1xufVxuZXhwb3J0IHtcbiAgdXNlSWRcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCIvLyBwYWNrYWdlcy9yZWFjdC91c2UtY2FsbGJhY2stcmVmL3NyYy91c2VDYWxsYmFja1JlZi50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gdXNlQ2FsbGJhY2tSZWYoY2FsbGJhY2spIHtcbiAgY29uc3QgY2FsbGJhY2tSZWYgPSBSZWFjdC51c2VSZWYoY2FsbGJhY2spO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNhbGxiYWNrUmVmLmN1cnJlbnQgPSBjYWxsYmFjaztcbiAgfSk7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+ICguLi5hcmdzKSA9PiBjYWxsYmFja1JlZi5jdXJyZW50Py4oLi4uYXJncyksIFtdKTtcbn1cbmV4cG9ydCB7XG4gIHVzZUNhbGxiYWNrUmVmXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIiwiLy8gcGFja2FnZXMvcmVhY3QvdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZS9zcmMvdXNlQ29udHJvbGxhYmxlU3RhdGUudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmXCI7XG5mdW5jdGlvbiB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gIHByb3AsXG4gIGRlZmF1bHRQcm9wLFxuICBvbkNoYW5nZSA9ICgpID0+IHtcbiAgfVxufSkge1xuICBjb25zdCBbdW5jb250cm9sbGVkUHJvcCwgc2V0VW5jb250cm9sbGVkUHJvcF0gPSB1c2VVbmNvbnRyb2xsZWRTdGF0ZSh7IGRlZmF1bHRQcm9wLCBvbkNoYW5nZSB9KTtcbiAgY29uc3QgaXNDb250cm9sbGVkID0gcHJvcCAhPT0gdm9pZCAwO1xuICBjb25zdCB2YWx1ZSA9IGlzQ29udHJvbGxlZCA/IHByb3AgOiB1bmNvbnRyb2xsZWRQcm9wO1xuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFja1JlZihvbkNoYW5nZSk7XG4gIGNvbnN0IHNldFZhbHVlID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKG5leHRWYWx1ZSkgPT4ge1xuICAgICAgaWYgKGlzQ29udHJvbGxlZCkge1xuICAgICAgICBjb25zdCBzZXR0ZXIgPSBuZXh0VmFsdWU7XG4gICAgICAgIGNvbnN0IHZhbHVlMiA9IHR5cGVvZiBuZXh0VmFsdWUgPT09IFwiZnVuY3Rpb25cIiA/IHNldHRlcihwcm9wKSA6IG5leHRWYWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlMiAhPT0gcHJvcCkgaGFuZGxlQ2hhbmdlKHZhbHVlMik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRVbmNvbnRyb2xsZWRQcm9wKG5leHRWYWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbaXNDb250cm9sbGVkLCBwcm9wLCBzZXRVbmNvbnRyb2xsZWRQcm9wLCBoYW5kbGVDaGFuZ2VdXG4gICk7XG4gIHJldHVybiBbdmFsdWUsIHNldFZhbHVlXTtcbn1cbmZ1bmN0aW9uIHVzZVVuY29udHJvbGxlZFN0YXRlKHtcbiAgZGVmYXVsdFByb3AsXG4gIG9uQ2hhbmdlXG59KSB7XG4gIGNvbnN0IHVuY29udHJvbGxlZFN0YXRlID0gUmVhY3QudXNlU3RhdGUoZGVmYXVsdFByb3ApO1xuICBjb25zdCBbdmFsdWVdID0gdW5jb250cm9sbGVkU3RhdGU7XG4gIGNvbnN0IHByZXZWYWx1ZVJlZiA9IFJlYWN0LnVzZVJlZih2YWx1ZSk7XG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrUmVmKG9uQ2hhbmdlKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJldlZhbHVlUmVmLmN1cnJlbnQgIT09IHZhbHVlKSB7XG4gICAgICBoYW5kbGVDaGFuZ2UodmFsdWUpO1xuICAgICAgcHJldlZhbHVlUmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgcHJldlZhbHVlUmVmLCBoYW5kbGVDaGFuZ2VdKTtcbiAgcmV0dXJuIHVuY29udHJvbGxlZFN0YXRlO1xufVxuZXhwb3J0IHtcbiAgdXNlQ29udHJvbGxhYmxlU3RhdGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCIvLyBwYWNrYWdlcy9yZWFjdC9zbG90L3NyYy9zbG90LnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjb21wb3NlUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XG5pbXBvcnQgeyBGcmFnbWVudCBhcyBGcmFnbWVudDIsIGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIFNsb3QgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgY2hpbGRyZW4sIC4uLnNsb3RQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNoaWxkcmVuQXJyYXkgPSBSZWFjdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKTtcbiAgY29uc3Qgc2xvdHRhYmxlID0gY2hpbGRyZW5BcnJheS5maW5kKGlzU2xvdHRhYmxlKTtcbiAgaWYgKHNsb3R0YWJsZSkge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBzbG90dGFibGUucHJvcHMuY2hpbGRyZW47XG4gICAgY29uc3QgbmV3Q2hpbGRyZW4gPSBjaGlsZHJlbkFycmF5Lm1hcCgoY2hpbGQpID0+IHtcbiAgICAgIGlmIChjaGlsZCA9PT0gc2xvdHRhYmxlKSB7XG4gICAgICAgIGlmIChSZWFjdC5DaGlsZHJlbi5jb3VudChuZXdFbGVtZW50KSA+IDEpIHJldHVybiBSZWFjdC5DaGlsZHJlbi5vbmx5KG51bGwpO1xuICAgICAgICByZXR1cm4gUmVhY3QuaXNWYWxpZEVsZW1lbnQobmV3RWxlbWVudCkgPyBuZXdFbGVtZW50LnByb3BzLmNoaWxkcmVuIDogbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTbG90Q2xvbmUsIHsgLi4uc2xvdFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiwgY2hpbGRyZW46IFJlYWN0LmlzVmFsaWRFbGVtZW50KG5ld0VsZW1lbnQpID8gUmVhY3QuY2xvbmVFbGVtZW50KG5ld0VsZW1lbnQsIHZvaWQgMCwgbmV3Q2hpbGRyZW4pIDogbnVsbCB9KTtcbiAgfVxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTbG90Q2xvbmUsIHsgLi4uc2xvdFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiwgY2hpbGRyZW4gfSk7XG59KTtcblNsb3QuZGlzcGxheU5hbWUgPSBcIlNsb3RcIjtcbnZhciBTbG90Q2xvbmUgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgY2hpbGRyZW4sIC4uLnNsb3RQcm9wcyB9ID0gcHJvcHM7XG4gIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICBjb25zdCBjaGlsZHJlblJlZiA9IGdldEVsZW1lbnRSZWYoY2hpbGRyZW4pO1xuICAgIGNvbnN0IHByb3BzMiA9IG1lcmdlUHJvcHMoc2xvdFByb3BzLCBjaGlsZHJlbi5wcm9wcyk7XG4gICAgaWYgKGNoaWxkcmVuLnR5cGUgIT09IFJlYWN0LkZyYWdtZW50KSB7XG4gICAgICBwcm9wczIucmVmID0gZm9yd2FyZGVkUmVmID8gY29tcG9zZVJlZnMoZm9yd2FyZGVkUmVmLCBjaGlsZHJlblJlZikgOiBjaGlsZHJlblJlZjtcbiAgICB9XG4gICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZHJlbiwgcHJvcHMyKTtcbiAgfVxuICByZXR1cm4gUmVhY3QuQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMSA/IFJlYWN0LkNoaWxkcmVuLm9ubHkobnVsbCkgOiBudWxsO1xufSk7XG5TbG90Q2xvbmUuZGlzcGxheU5hbWUgPSBcIlNsb3RDbG9uZVwiO1xudmFyIFNsb3R0YWJsZSA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goRnJhZ21lbnQyLCB7IGNoaWxkcmVuIH0pO1xufTtcbmZ1bmN0aW9uIGlzU2xvdHRhYmxlKGNoaWxkKSB7XG4gIHJldHVybiBSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkgJiYgY2hpbGQudHlwZSA9PT0gU2xvdHRhYmxlO1xufVxuZnVuY3Rpb24gbWVyZ2VQcm9wcyhzbG90UHJvcHMsIGNoaWxkUHJvcHMpIHtcbiAgY29uc3Qgb3ZlcnJpZGVQcm9wcyA9IHsgLi4uY2hpbGRQcm9wcyB9O1xuICBmb3IgKGNvbnN0IHByb3BOYW1lIGluIGNoaWxkUHJvcHMpIHtcbiAgICBjb25zdCBzbG90UHJvcFZhbHVlID0gc2xvdFByb3BzW3Byb3BOYW1lXTtcbiAgICBjb25zdCBjaGlsZFByb3BWYWx1ZSA9IGNoaWxkUHJvcHNbcHJvcE5hbWVdO1xuICAgIGNvbnN0IGlzSGFuZGxlciA9IC9eb25bQS1aXS8udGVzdChwcm9wTmFtZSk7XG4gICAgaWYgKGlzSGFuZGxlcikge1xuICAgICAgaWYgKHNsb3RQcm9wVmFsdWUgJiYgY2hpbGRQcm9wVmFsdWUpIHtcbiAgICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSAoLi4uYXJncykgPT4ge1xuICAgICAgICAgIGNoaWxkUHJvcFZhbHVlKC4uLmFyZ3MpO1xuICAgICAgICAgIHNsb3RQcm9wVmFsdWUoLi4uYXJncyk7XG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKHNsb3RQcm9wVmFsdWUpIHtcbiAgICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSBzbG90UHJvcFZhbHVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvcE5hbWUgPT09IFwic3R5bGVcIikge1xuICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSB7IC4uLnNsb3RQcm9wVmFsdWUsIC4uLmNoaWxkUHJvcFZhbHVlIH07XG4gICAgfSBlbHNlIGlmIChwcm9wTmFtZSA9PT0gXCJjbGFzc05hbWVcIikge1xuICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSBbc2xvdFByb3BWYWx1ZSwgY2hpbGRQcm9wVmFsdWVdLmZpbHRlcihCb29sZWFuKS5qb2luKFwiIFwiKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgLi4uc2xvdFByb3BzLCAuLi5vdmVycmlkZVByb3BzIH07XG59XG5mdW5jdGlvbiBnZXRFbGVtZW50UmVmKGVsZW1lbnQpIHtcbiAgbGV0IGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudC5wcm9wcywgXCJyZWZcIik/LmdldDtcbiAgbGV0IG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gIGlmIChtYXlXYXJuKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQucmVmO1xuICB9XG4gIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudCwgXCJyZWZcIik/LmdldDtcbiAgbWF5V2FybiA9IGdldHRlciAmJiBcImlzUmVhY3RXYXJuaW5nXCIgaW4gZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZztcbiAgaWYgKG1heVdhcm4pIHtcbiAgICByZXR1cm4gZWxlbWVudC5wcm9wcy5yZWY7XG4gIH1cbiAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmIHx8IGVsZW1lbnQucmVmO1xufVxudmFyIFJvb3QgPSBTbG90O1xuZXhwb3J0IHtcbiAgUm9vdCxcbiAgU2xvdCxcbiAgU2xvdHRhYmxlXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIiwiLy8gcGFja2FnZXMvcmVhY3QvcHJpbWl0aXZlL3NyYy9wcmltaXRpdmUudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCAqIGFzIFJlYWN0RE9NIGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IFNsb3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXNsb3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIE5PREVTID0gW1xuICBcImFcIixcbiAgXCJidXR0b25cIixcbiAgXCJkaXZcIixcbiAgXCJmb3JtXCIsXG4gIFwiaDJcIixcbiAgXCJoM1wiLFxuICBcImltZ1wiLFxuICBcImlucHV0XCIsXG4gIFwibGFiZWxcIixcbiAgXCJsaVwiLFxuICBcIm5hdlwiLFxuICBcIm9sXCIsXG4gIFwicFwiLFxuICBcInNwYW5cIixcbiAgXCJzdmdcIixcbiAgXCJ1bFwiXG5dO1xudmFyIFByaW1pdGl2ZSA9IE5PREVTLnJlZHVjZSgocHJpbWl0aXZlLCBub2RlKSA9PiB7XG4gIGNvbnN0IE5vZGUgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBhc0NoaWxkLCAuLi5wcmltaXRpdmVQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgQ29tcCA9IGFzQ2hpbGQgPyBTbG90IDogbm9kZTtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgd2luZG93W1N5bWJvbC5mb3IoXCJyYWRpeC11aVwiKV0gPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChDb21wLCB7IC4uLnByaW1pdGl2ZVByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KTtcbiAgfSk7XG4gIE5vZGUuZGlzcGxheU5hbWUgPSBgUHJpbWl0aXZlLiR7bm9kZX1gO1xuICByZXR1cm4geyAuLi5wcmltaXRpdmUsIFtub2RlXTogTm9kZSB9O1xufSwge30pO1xuZnVuY3Rpb24gZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50KHRhcmdldCwgZXZlbnQpIHtcbiAgaWYgKHRhcmdldCkgUmVhY3RET00uZmx1c2hTeW5jKCgpID0+IHRhcmdldC5kaXNwYXRjaEV2ZW50KGV2ZW50KSk7XG59XG52YXIgUm9vdCA9IFByaW1pdGl2ZTtcbmV4cG9ydCB7XG4gIFByaW1pdGl2ZSxcbiAgUm9vdCxcbiAgZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIiwiXCJ1c2UgY2xpZW50XCI7XG5cbi8vIHBhY2thZ2VzL3JlYWN0L2Rpc21pc3NhYmxlLWxheWVyL3NyYy9kaXNtaXNzYWJsZS1sYXllci50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tIFwiQHJhZGl4LXVpL3ByaW1pdGl2ZVwiO1xuaW1wb3J0IHsgUHJpbWl0aXZlLCBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZVwiO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnNcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmXCI7XG5pbXBvcnQgeyB1c2VFc2NhcGVLZXlkb3duIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtZXNjYXBlLWtleWRvd25cIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIERJU01JU1NBQkxFX0xBWUVSX05BTUUgPSBcIkRpc21pc3NhYmxlTGF5ZXJcIjtcbnZhciBDT05URVhUX1VQREFURSA9IFwiZGlzbWlzc2FibGVMYXllci51cGRhdGVcIjtcbnZhciBQT0lOVEVSX0RPV05fT1VUU0lERSA9IFwiZGlzbWlzc2FibGVMYXllci5wb2ludGVyRG93bk91dHNpZGVcIjtcbnZhciBGT0NVU19PVVRTSURFID0gXCJkaXNtaXNzYWJsZUxheWVyLmZvY3VzT3V0c2lkZVwiO1xudmFyIG9yaWdpbmFsQm9keVBvaW50ZXJFdmVudHM7XG52YXIgRGlzbWlzc2FibGVMYXllckNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHtcbiAgbGF5ZXJzOiAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpLFxuICBsYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZDogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSxcbiAgYnJhbmNoZXM6IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KClcbn0pO1xudmFyIERpc21pc3NhYmxlTGF5ZXIgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cyA9IGZhbHNlLFxuICAgICAgb25Fc2NhcGVLZXlEb3duLFxuICAgICAgb25Qb2ludGVyRG93bk91dHNpZGUsXG4gICAgICBvbkZvY3VzT3V0c2lkZSxcbiAgICAgIG9uSW50ZXJhY3RPdXRzaWRlLFxuICAgICAgb25EaXNtaXNzLFxuICAgICAgLi4ubGF5ZXJQcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChEaXNtaXNzYWJsZUxheWVyQ29udGV4dCk7XG4gICAgY29uc3QgW25vZGUsIHNldE5vZGVdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgb3duZXJEb2N1bWVudCA9IG5vZGU/Lm93bmVyRG9jdW1lbnQgPz8gZ2xvYmFsVGhpcz8uZG9jdW1lbnQ7XG4gICAgY29uc3QgWywgZm9yY2VdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIChub2RlMikgPT4gc2V0Tm9kZShub2RlMikpO1xuICAgIGNvbnN0IGxheWVycyA9IEFycmF5LmZyb20oY29udGV4dC5sYXllcnMpO1xuICAgIGNvbnN0IFtoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZF0gPSBbLi4uY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZF0uc2xpY2UoLTEpO1xuICAgIGNvbnN0IGhpZ2hlc3RMYXllcldpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkSW5kZXggPSBsYXllcnMuaW5kZXhPZihoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZCk7XG4gICAgY29uc3QgaW5kZXggPSBub2RlID8gbGF5ZXJzLmluZGV4T2Yobm9kZSkgOiAtMTtcbiAgICBjb25zdCBpc0JvZHlQb2ludGVyRXZlbnRzRGlzYWJsZWQgPSBjb250ZXh0LmxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkLnNpemUgPiAwO1xuICAgIGNvbnN0IGlzUG9pbnRlckV2ZW50c0VuYWJsZWQgPSBpbmRleCA+PSBoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZEluZGV4O1xuICAgIGNvbnN0IHBvaW50ZXJEb3duT3V0c2lkZSA9IHVzZVBvaW50ZXJEb3duT3V0c2lkZSgoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICAgIGNvbnN0IGlzUG9pbnRlckRvd25PbkJyYW5jaCA9IFsuLi5jb250ZXh0LmJyYW5jaGVzXS5zb21lKChicmFuY2gpID0+IGJyYW5jaC5jb250YWlucyh0YXJnZXQpKTtcbiAgICAgIGlmICghaXNQb2ludGVyRXZlbnRzRW5hYmxlZCB8fCBpc1BvaW50ZXJEb3duT25CcmFuY2gpIHJldHVybjtcbiAgICAgIG9uUG9pbnRlckRvd25PdXRzaWRlPy4oZXZlbnQpO1xuICAgICAgb25JbnRlcmFjdE91dHNpZGU/LihldmVudCk7XG4gICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIG9uRGlzbWlzcz8uKCk7XG4gICAgfSwgb3duZXJEb2N1bWVudCk7XG4gICAgY29uc3QgZm9jdXNPdXRzaWRlID0gdXNlRm9jdXNPdXRzaWRlKChldmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgY29uc3QgaXNGb2N1c0luQnJhbmNoID0gWy4uLmNvbnRleHQuYnJhbmNoZXNdLnNvbWUoKGJyYW5jaCkgPT4gYnJhbmNoLmNvbnRhaW5zKHRhcmdldCkpO1xuICAgICAgaWYgKGlzRm9jdXNJbkJyYW5jaCkgcmV0dXJuO1xuICAgICAgb25Gb2N1c091dHNpZGU/LihldmVudCk7XG4gICAgICBvbkludGVyYWN0T3V0c2lkZT8uKGV2ZW50KTtcbiAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkgb25EaXNtaXNzPy4oKTtcbiAgICB9LCBvd25lckRvY3VtZW50KTtcbiAgICB1c2VFc2NhcGVLZXlkb3duKChldmVudCkgPT4ge1xuICAgICAgY29uc3QgaXNIaWdoZXN0TGF5ZXIgPSBpbmRleCA9PT0gY29udGV4dC5sYXllcnMuc2l6ZSAtIDE7XG4gICAgICBpZiAoIWlzSGlnaGVzdExheWVyKSByZXR1cm47XG4gICAgICBvbkVzY2FwZUtleURvd24/LihldmVudCk7XG4gICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgJiYgb25EaXNtaXNzKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG9uRGlzbWlzcygpO1xuICAgICAgfVxuICAgIH0sIG93bmVyRG9jdW1lbnQpO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIW5vZGUpIHJldHVybjtcbiAgICAgIGlmIChkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMpIHtcbiAgICAgICAgaWYgKGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgIG9yaWdpbmFsQm9keVBvaW50ZXJFdmVudHMgPSBvd25lckRvY3VtZW50LmJvZHkuc3R5bGUucG9pbnRlckV2ZW50cztcbiAgICAgICAgICBvd25lckRvY3VtZW50LmJvZHkuc3R5bGUucG9pbnRlckV2ZW50cyA9IFwibm9uZVwiO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuYWRkKG5vZGUpO1xuICAgICAgfVxuICAgICAgY29udGV4dC5sYXllcnMuYWRkKG5vZGUpO1xuICAgICAgZGlzcGF0Y2hVcGRhdGUoKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMgJiYgY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZC5zaXplID09PSAxKSB7XG4gICAgICAgICAgb3duZXJEb2N1bWVudC5ib2R5LnN0eWxlLnBvaW50ZXJFdmVudHMgPSBvcmlnaW5hbEJvZHlQb2ludGVyRXZlbnRzO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sIFtub2RlLCBvd25lckRvY3VtZW50LCBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMsIGNvbnRleHRdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKCFub2RlKSByZXR1cm47XG4gICAgICAgIGNvbnRleHQubGF5ZXJzLmRlbGV0ZShub2RlKTtcbiAgICAgICAgY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZC5kZWxldGUobm9kZSk7XG4gICAgICAgIGRpc3BhdGNoVXBkYXRlKCk7XG4gICAgICB9O1xuICAgIH0sIFtub2RlLCBjb250ZXh0XSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZVVwZGF0ZSA9ICgpID0+IGZvcmNlKHt9KTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoQ09OVEVYVF9VUERBVEUsIGhhbmRsZVVwZGF0ZSk7XG4gICAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihDT05URVhUX1VQREFURSwgaGFuZGxlVXBkYXRlKTtcbiAgICB9LCBbXSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBQcmltaXRpdmUuZGl2LFxuICAgICAge1xuICAgICAgICAuLi5sYXllclByb3BzLFxuICAgICAgICByZWY6IGNvbXBvc2VkUmVmcyxcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICBwb2ludGVyRXZlbnRzOiBpc0JvZHlQb2ludGVyRXZlbnRzRGlzYWJsZWQgPyBpc1BvaW50ZXJFdmVudHNFbmFibGVkID8gXCJhdXRvXCIgOiBcIm5vbmVcIiA6IHZvaWQgMCxcbiAgICAgICAgICAuLi5wcm9wcy5zdHlsZVxuICAgICAgICB9LFxuICAgICAgICBvbkZvY3VzQ2FwdHVyZTogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Gb2N1c0NhcHR1cmUsIGZvY3VzT3V0c2lkZS5vbkZvY3VzQ2FwdHVyZSksXG4gICAgICAgIG9uQmx1ckNhcHR1cmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQmx1ckNhcHR1cmUsIGZvY3VzT3V0c2lkZS5vbkJsdXJDYXB0dXJlKSxcbiAgICAgICAgb25Qb2ludGVyRG93bkNhcHR1cmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKFxuICAgICAgICAgIHByb3BzLm9uUG9pbnRlckRvd25DYXB0dXJlLFxuICAgICAgICAgIHBvaW50ZXJEb3duT3V0c2lkZS5vblBvaW50ZXJEb3duQ2FwdHVyZVxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcbkRpc21pc3NhYmxlTGF5ZXIuZGlzcGxheU5hbWUgPSBESVNNSVNTQUJMRV9MQVlFUl9OQU1FO1xudmFyIEJSQU5DSF9OQU1FID0gXCJEaXNtaXNzYWJsZUxheWVyQnJhbmNoXCI7XG52YXIgRGlzbWlzc2FibGVMYXllckJyYW5jaCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRGlzbWlzc2FibGVMYXllckNvbnRleHQpO1xuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IHJlZi5jdXJyZW50O1xuICAgIGlmIChub2RlKSB7XG4gICAgICBjb250ZXh0LmJyYW5jaGVzLmFkZChub2RlKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNvbnRleHQuYnJhbmNoZXMuZGVsZXRlKG5vZGUpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtjb250ZXh0LmJyYW5jaGVzXSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFByaW1pdGl2ZS5kaXYsIHsgLi4ucHJvcHMsIHJlZjogY29tcG9zZWRSZWZzIH0pO1xufSk7XG5EaXNtaXNzYWJsZUxheWVyQnJhbmNoLmRpc3BsYXlOYW1lID0gQlJBTkNIX05BTUU7XG5mdW5jdGlvbiB1c2VQb2ludGVyRG93bk91dHNpZGUob25Qb2ludGVyRG93bk91dHNpZGUsIG93bmVyRG9jdW1lbnQgPSBnbG9iYWxUaGlzPy5kb2N1bWVudCkge1xuICBjb25zdCBoYW5kbGVQb2ludGVyRG93bk91dHNpZGUgPSB1c2VDYWxsYmFja1JlZihvblBvaW50ZXJEb3duT3V0c2lkZSk7XG4gIGNvbnN0IGlzUG9pbnRlckluc2lkZVJlYWN0VHJlZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IGhhbmRsZUNsaWNrUmVmID0gUmVhY3QudXNlUmVmKCgpID0+IHtcbiAgfSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlUG9pbnRlckRvd24gPSAoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC50YXJnZXQgJiYgIWlzUG9pbnRlckluc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50KSB7XG4gICAgICAgIGxldCBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50MiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGhhbmRsZUFuZERpc3BhdGNoQ3VzdG9tRXZlbnQoXG4gICAgICAgICAgICBQT0lOVEVSX0RPV05fT1VUU0lERSxcbiAgICAgICAgICAgIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgICAgICAgIGV2ZW50RGV0YWlsLFxuICAgICAgICAgICAgeyBkaXNjcmV0ZTogdHJ1ZSB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGhhbmRsZUFuZERpc3BhdGNoUG9pbnRlckRvd25PdXRzaWRlRXZlbnQgPSBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50MjtcbiAgICAgICAgY29uc3QgZXZlbnREZXRhaWwgPSB7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50IH07XG4gICAgICAgIGlmIChldmVudC5wb2ludGVyVHlwZSA9PT0gXCJ0b3VjaFwiKSB7XG4gICAgICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCk7XG4gICAgICAgICAgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCA9IGhhbmRsZUFuZERpc3BhdGNoUG9pbnRlckRvd25PdXRzaWRlRXZlbnQyO1xuICAgICAgICAgIG93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZUNsaWNrUmVmLmN1cnJlbnQsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50MigpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBoYW5kbGVDbGlja1JlZi5jdXJyZW50KTtcbiAgICAgIH1cbiAgICAgIGlzUG9pbnRlckluc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfTtcbiAgICBjb25zdCB0aW1lcklkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIiwgaGFuZGxlUG9pbnRlckRvd24pO1xuICAgIH0sIDApO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIiwgaGFuZGxlUG9pbnRlckRvd24pO1xuICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCk7XG4gICAgfTtcbiAgfSwgW293bmVyRG9jdW1lbnQsIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZV0pO1xuICByZXR1cm4ge1xuICAgIC8vIGVuc3VyZXMgd2UgY2hlY2sgUmVhY3QgY29tcG9uZW50IHRyZWUgKG5vdCBqdXN0IERPTSB0cmVlKVxuICAgIG9uUG9pbnRlckRvd25DYXB0dXJlOiAoKSA9PiBpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IHRydWVcbiAgfTtcbn1cbmZ1bmN0aW9uIHVzZUZvY3VzT3V0c2lkZShvbkZvY3VzT3V0c2lkZSwgb3duZXJEb2N1bWVudCA9IGdsb2JhbFRoaXM/LmRvY3VtZW50KSB7XG4gIGNvbnN0IGhhbmRsZUZvY3VzT3V0c2lkZSA9IHVzZUNhbGxiYWNrUmVmKG9uRm9jdXNPdXRzaWRlKTtcbiAgY29uc3QgaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlRm9jdXMgPSAoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC50YXJnZXQgJiYgIWlzRm9jdXNJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCkge1xuICAgICAgICBjb25zdCBldmVudERldGFpbCA9IHsgb3JpZ2luYWxFdmVudDogZXZlbnQgfTtcbiAgICAgICAgaGFuZGxlQW5kRGlzcGF0Y2hDdXN0b21FdmVudChGT0NVU19PVVRTSURFLCBoYW5kbGVGb2N1c091dHNpZGUsIGV2ZW50RGV0YWlsLCB7XG4gICAgICAgICAgZGlzY3JldGU6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNpblwiLCBoYW5kbGVGb2N1cyk7XG4gICAgcmV0dXJuICgpID0+IG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzaW5cIiwgaGFuZGxlRm9jdXMpO1xuICB9LCBbb3duZXJEb2N1bWVudCwgaGFuZGxlRm9jdXNPdXRzaWRlXSk7XG4gIHJldHVybiB7XG4gICAgb25Gb2N1c0NhcHR1cmU6ICgpID0+IGlzRm9jdXNJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IHRydWUsXG4gICAgb25CbHVyQ2FwdHVyZTogKCkgPT4gaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gZmFsc2VcbiAgfTtcbn1cbmZ1bmN0aW9uIGRpc3BhdGNoVXBkYXRlKCkge1xuICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudChDT05URVhUX1VQREFURSk7XG4gIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xufVxuZnVuY3Rpb24gaGFuZGxlQW5kRGlzcGF0Y2hDdXN0b21FdmVudChuYW1lLCBoYW5kbGVyLCBkZXRhaWwsIHsgZGlzY3JldGUgfSkge1xuICBjb25zdCB0YXJnZXQgPSBkZXRhaWwub3JpZ2luYWxFdmVudC50YXJnZXQ7XG4gIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KG5hbWUsIHsgYnViYmxlczogZmFsc2UsIGNhbmNlbGFibGU6IHRydWUsIGRldGFpbCB9KTtcbiAgaWYgKGhhbmRsZXIpIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGhhbmRsZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgaWYgKGRpc2NyZXRlKSB7XG4gICAgZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50KHRhcmdldCwgZXZlbnQpO1xuICB9IGVsc2Uge1xuICAgIHRhcmdldC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfVxufVxudmFyIFJvb3QgPSBEaXNtaXNzYWJsZUxheWVyO1xudmFyIEJyYW5jaCA9IERpc21pc3NhYmxlTGF5ZXJCcmFuY2g7XG5leHBvcnQge1xuICBCcmFuY2gsXG4gIERpc21pc3NhYmxlTGF5ZXIsXG4gIERpc21pc3NhYmxlTGF5ZXJCcmFuY2gsXG4gIFJvb3Rcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCIvLyBwYWNrYWdlcy9yZWFjdC91c2UtZXNjYXBlLWtleWRvd24vc3JjL3VzZUVzY2FwZUtleWRvd24udHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmXCI7XG5mdW5jdGlvbiB1c2VFc2NhcGVLZXlkb3duKG9uRXNjYXBlS2V5RG93blByb3AsIG93bmVyRG9jdW1lbnQgPSBnbG9iYWxUaGlzPy5kb2N1bWVudCkge1xuICBjb25zdCBvbkVzY2FwZUtleURvd24gPSB1c2VDYWxsYmFja1JlZihvbkVzY2FwZUtleURvd25Qcm9wKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkVzY2FwZVwiKSB7XG4gICAgICAgIG9uRXNjYXBlS2V5RG93bihldmVudCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGhhbmRsZUtleURvd24sIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICByZXR1cm4gKCkgPT4gb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVLZXlEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gIH0sIFtvbkVzY2FwZUtleURvd24sIG93bmVyRG9jdW1lbnRdKTtcbn1cbmV4cG9ydCB7XG4gIHVzZUVzY2FwZUtleWRvd25cbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCJcInVzZSBjbGllbnRcIjtcblxuLy8gcGFja2FnZXMvcmVhY3QvZm9jdXMtc2NvcGUvc3JjL2ZvY3VzLXNjb3BlLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmltaXRpdmVcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmXCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBBVVRPRk9DVVNfT05fTU9VTlQgPSBcImZvY3VzU2NvcGUuYXV0b0ZvY3VzT25Nb3VudFwiO1xudmFyIEFVVE9GT0NVU19PTl9VTk1PVU5UID0gXCJmb2N1c1Njb3BlLmF1dG9Gb2N1c09uVW5tb3VudFwiO1xudmFyIEVWRU5UX09QVElPTlMgPSB7IGJ1YmJsZXM6IGZhbHNlLCBjYW5jZWxhYmxlOiB0cnVlIH07XG52YXIgRk9DVVNfU0NPUEVfTkFNRSA9IFwiRm9jdXNTY29wZVwiO1xudmFyIEZvY3VzU2NvcGUgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsb29wID0gZmFsc2UsXG4gICAgdHJhcHBlZCA9IGZhbHNlLFxuICAgIG9uTW91bnRBdXRvRm9jdXM6IG9uTW91bnRBdXRvRm9jdXNQcm9wLFxuICAgIG9uVW5tb3VudEF1dG9Gb2N1czogb25Vbm1vdW50QXV0b0ZvY3VzUHJvcCxcbiAgICAuLi5zY29wZVByb3BzXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW2NvbnRhaW5lciwgc2V0Q29udGFpbmVyXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBvbk1vdW50QXV0b0ZvY3VzID0gdXNlQ2FsbGJhY2tSZWYob25Nb3VudEF1dG9Gb2N1c1Byb3ApO1xuICBjb25zdCBvblVubW91bnRBdXRvRm9jdXMgPSB1c2VDYWxsYmFja1JlZihvblVubW91bnRBdXRvRm9jdXNQcm9wKTtcbiAgY29uc3QgbGFzdEZvY3VzZWRFbGVtZW50UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCAobm9kZSkgPT4gc2V0Q29udGFpbmVyKG5vZGUpKTtcbiAgY29uc3QgZm9jdXNTY29wZSA9IFJlYWN0LnVzZVJlZih7XG4gICAgcGF1c2VkOiBmYWxzZSxcbiAgICBwYXVzZSgpIHtcbiAgICAgIHRoaXMucGF1c2VkID0gdHJ1ZTtcbiAgICB9LFxuICAgIHJlc3VtZSgpIHtcbiAgICAgIHRoaXMucGF1c2VkID0gZmFsc2U7XG4gICAgfVxuICB9KS5jdXJyZW50O1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0cmFwcGVkKSB7XG4gICAgICBsZXQgaGFuZGxlRm9jdXNJbjIgPSBmdW5jdGlvbihldmVudCkge1xuICAgICAgICBpZiAoZm9jdXNTY29wZS5wYXVzZWQgfHwgIWNvbnRhaW5lcikgcmV0dXJuO1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgIGlmIChjb250YWluZXIuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgIGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50ID0gdGFyZ2V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvY3VzKGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50LCB7IHNlbGVjdDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSwgaGFuZGxlRm9jdXNPdXQyID0gZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgaWYgKGZvY3VzU2NvcGUucGF1c2VkIHx8ICFjb250YWluZXIpIHJldHVybjtcbiAgICAgICAgY29uc3QgcmVsYXRlZFRhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGlmIChyZWxhdGVkVGFyZ2V0ID09PSBudWxsKSByZXR1cm47XG4gICAgICAgIGlmICghY29udGFpbmVyLmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICAgICAgZm9jdXMobGFzdEZvY3VzZWRFbGVtZW50UmVmLmN1cnJlbnQsIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICB9LCBoYW5kbGVNdXRhdGlvbnMyID0gZnVuY3Rpb24obXV0YXRpb25zKSB7XG4gICAgICAgIGNvbnN0IGZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKGZvY3VzZWRFbGVtZW50ICE9PSBkb2N1bWVudC5ib2R5KSByZXR1cm47XG4gICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgICAgaWYgKG11dGF0aW9uLnJlbW92ZWROb2Rlcy5sZW5ndGggPiAwKSBmb2N1cyhjb250YWluZXIpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgdmFyIGhhbmRsZUZvY3VzSW4gPSBoYW5kbGVGb2N1c0luMiwgaGFuZGxlRm9jdXNPdXQgPSBoYW5kbGVGb2N1c091dDIsIGhhbmRsZU11dGF0aW9ucyA9IGhhbmRsZU11dGF0aW9uczI7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNpblwiLCBoYW5kbGVGb2N1c0luMik7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlRm9jdXNPdXQyKTtcbiAgICAgIGNvbnN0IG11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihoYW5kbGVNdXRhdGlvbnMyKTtcbiAgICAgIGlmIChjb250YWluZXIpIG11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShjb250YWluZXIsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzaW5cIiwgaGFuZGxlRm9jdXNJbjIpO1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlRm9jdXNPdXQyKTtcbiAgICAgICAgbXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9O1xuICAgIH1cbiAgfSwgW3RyYXBwZWQsIGNvbnRhaW5lciwgZm9jdXNTY29wZS5wYXVzZWRdKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICBmb2N1c1Njb3Blc1N0YWNrLmFkZChmb2N1c1Njb3BlKTtcbiAgICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCBoYXNGb2N1c2VkQ2FuZGlkYXRlID0gY29udGFpbmVyLmNvbnRhaW5zKHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCk7XG4gICAgICBpZiAoIWhhc0ZvY3VzZWRDYW5kaWRhdGUpIHtcbiAgICAgICAgY29uc3QgbW91bnRFdmVudCA9IG5ldyBDdXN0b21FdmVudChBVVRPRk9DVVNfT05fTU9VTlQsIEVWRU5UX09QVElPTlMpO1xuICAgICAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihBVVRPRk9DVVNfT05fTU9VTlQsIG9uTW91bnRBdXRvRm9jdXMpO1xuICAgICAgICBjb250YWluZXIuZGlzcGF0Y2hFdmVudChtb3VudEV2ZW50KTtcbiAgICAgICAgaWYgKCFtb3VudEV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICBmb2N1c0ZpcnN0KHJlbW92ZUxpbmtzKGdldFRhYmJhYmxlQ2FuZGlkYXRlcyhjb250YWluZXIpKSwgeyBzZWxlY3Q6IHRydWUgfSk7XG4gICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCkge1xuICAgICAgICAgICAgZm9jdXMoY29udGFpbmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKEFVVE9GT0NVU19PTl9NT1VOVCwgb25Nb3VudEF1dG9Gb2N1cyk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVubW91bnRFdmVudCA9IG5ldyBDdXN0b21FdmVudChBVVRPRk9DVVNfT05fVU5NT1VOVCwgRVZFTlRfT1BUSU9OUyk7XG4gICAgICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoQVVUT0ZPQ1VTX09OX1VOTU9VTlQsIG9uVW5tb3VudEF1dG9Gb2N1cyk7XG4gICAgICAgICAgY29udGFpbmVyLmRpc3BhdGNoRXZlbnQodW5tb3VudEV2ZW50KTtcbiAgICAgICAgICBpZiAoIXVubW91bnRFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICBmb2N1cyhwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgPz8gZG9jdW1lbnQuYm9keSwgeyBzZWxlY3Q6IHRydWUgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKEFVVE9GT0NVU19PTl9VTk1PVU5ULCBvblVubW91bnRBdXRvRm9jdXMpO1xuICAgICAgICAgIGZvY3VzU2NvcGVzU3RhY2sucmVtb3ZlKGZvY3VzU2NvcGUpO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH07XG4gICAgfVxuICB9LCBbY29udGFpbmVyLCBvbk1vdW50QXV0b0ZvY3VzLCBvblVubW91bnRBdXRvRm9jdXMsIGZvY3VzU2NvcGVdKTtcbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgIChldmVudCkgPT4ge1xuICAgICAgaWYgKCFsb29wICYmICF0cmFwcGVkKSByZXR1cm47XG4gICAgICBpZiAoZm9jdXNTY29wZS5wYXVzZWQpIHJldHVybjtcbiAgICAgIGNvbnN0IGlzVGFiS2V5ID0gZXZlbnQua2V5ID09PSBcIlRhYlwiICYmICFldmVudC5hbHRLZXkgJiYgIWV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50Lm1ldGFLZXk7XG4gICAgICBjb25zdCBmb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICBpZiAoaXNUYWJLZXkgJiYgZm9jdXNlZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyMiA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IFtmaXJzdCwgbGFzdF0gPSBnZXRUYWJiYWJsZUVkZ2VzKGNvbnRhaW5lcjIpO1xuICAgICAgICBjb25zdCBoYXNUYWJiYWJsZUVsZW1lbnRzSW5zaWRlID0gZmlyc3QgJiYgbGFzdDtcbiAgICAgICAgaWYgKCFoYXNUYWJiYWJsZUVsZW1lbnRzSW5zaWRlKSB7XG4gICAgICAgICAgaWYgKGZvY3VzZWRFbGVtZW50ID09PSBjb250YWluZXIyKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghZXZlbnQuc2hpZnRLZXkgJiYgZm9jdXNlZEVsZW1lbnQgPT09IGxhc3QpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAobG9vcCkgZm9jdXMoZmlyc3QsIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgZm9jdXNlZEVsZW1lbnQgPT09IGZpcnN0KSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKGxvb3ApIGZvY3VzKGxhc3QsIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgW2xvb3AsIHRyYXBwZWQsIGZvY3VzU2NvcGUucGF1c2VkXVxuICApO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChQcmltaXRpdmUuZGl2LCB7IHRhYkluZGV4OiAtMSwgLi4uc2NvcGVQcm9wcywgcmVmOiBjb21wb3NlZFJlZnMsIG9uS2V5RG93bjogaGFuZGxlS2V5RG93biB9KTtcbn0pO1xuRm9jdXNTY29wZS5kaXNwbGF5TmFtZSA9IEZPQ1VTX1NDT1BFX05BTUU7XG5mdW5jdGlvbiBmb2N1c0ZpcnN0KGNhbmRpZGF0ZXMsIHsgc2VsZWN0ID0gZmFsc2UgfSA9IHt9KSB7XG4gIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBmb2N1cyhjYW5kaWRhdGUsIHsgc2VsZWN0IH0pO1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQpIHJldHVybjtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0VGFiYmFibGVFZGdlcyhjb250YWluZXIpIHtcbiAgY29uc3QgY2FuZGlkYXRlcyA9IGdldFRhYmJhYmxlQ2FuZGlkYXRlcyhjb250YWluZXIpO1xuICBjb25zdCBmaXJzdCA9IGZpbmRWaXNpYmxlKGNhbmRpZGF0ZXMsIGNvbnRhaW5lcik7XG4gIGNvbnN0IGxhc3QgPSBmaW5kVmlzaWJsZShjYW5kaWRhdGVzLnJldmVyc2UoKSwgY29udGFpbmVyKTtcbiAgcmV0dXJuIFtmaXJzdCwgbGFzdF07XG59XG5mdW5jdGlvbiBnZXRUYWJiYWJsZUNhbmRpZGF0ZXMoY29udGFpbmVyKSB7XG4gIGNvbnN0IG5vZGVzID0gW107XG4gIGNvbnN0IHdhbGtlciA9IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29udGFpbmVyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwge1xuICAgIGFjY2VwdE5vZGU6IChub2RlKSA9PiB7XG4gICAgICBjb25zdCBpc0hpZGRlbklucHV0ID0gbm9kZS50YWdOYW1lID09PSBcIklOUFVUXCIgJiYgbm9kZS50eXBlID09PSBcImhpZGRlblwiO1xuICAgICAgaWYgKG5vZGUuZGlzYWJsZWQgfHwgbm9kZS5oaWRkZW4gfHwgaXNIaWRkZW5JbnB1dCkgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG4gICAgICByZXR1cm4gbm9kZS50YWJJbmRleCA+PSAwID8gTm9kZUZpbHRlci5GSUxURVJfQUNDRVBUIDogTm9kZUZpbHRlci5GSUxURVJfU0tJUDtcbiAgICB9XG4gIH0pO1xuICB3aGlsZSAod2Fsa2VyLm5leHROb2RlKCkpIG5vZGVzLnB1c2god2Fsa2VyLmN1cnJlbnROb2RlKTtcbiAgcmV0dXJuIG5vZGVzO1xufVxuZnVuY3Rpb24gZmluZFZpc2libGUoZWxlbWVudHMsIGNvbnRhaW5lcikge1xuICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZWxlbWVudHMpIHtcbiAgICBpZiAoIWlzSGlkZGVuKGVsZW1lbnQsIHsgdXBUbzogY29udGFpbmVyIH0pKSByZXR1cm4gZWxlbWVudDtcbiAgfVxufVxuZnVuY3Rpb24gaXNIaWRkZW4obm9kZSwgeyB1cFRvIH0pIHtcbiAgaWYgKGdldENvbXB1dGVkU3R5bGUobm9kZSkudmlzaWJpbGl0eSA9PT0gXCJoaWRkZW5cIikgcmV0dXJuIHRydWU7XG4gIHdoaWxlIChub2RlKSB7XG4gICAgaWYgKHVwVG8gIT09IHZvaWQgMCAmJiBub2RlID09PSB1cFRvKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGdldENvbXB1dGVkU3R5bGUobm9kZSkuZGlzcGxheSA9PT0gXCJub25lXCIpIHJldHVybiB0cnVlO1xuICAgIG5vZGUgPSBub2RlLnBhcmVudEVsZW1lbnQ7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gaXNTZWxlY3RhYmxlSW5wdXQoZWxlbWVudCkge1xuICByZXR1cm4gZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgJiYgXCJzZWxlY3RcIiBpbiBlbGVtZW50O1xufVxuZnVuY3Rpb24gZm9jdXMoZWxlbWVudCwgeyBzZWxlY3QgPSBmYWxzZSB9ID0ge30pIHtcbiAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5mb2N1cykge1xuICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgZWxlbWVudC5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgaWYgKGVsZW1lbnQgIT09IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCAmJiBpc1NlbGVjdGFibGVJbnB1dChlbGVtZW50KSAmJiBzZWxlY3QpXG4gICAgICBlbGVtZW50LnNlbGVjdCgpO1xuICB9XG59XG52YXIgZm9jdXNTY29wZXNTdGFjayA9IGNyZWF0ZUZvY3VzU2NvcGVzU3RhY2soKTtcbmZ1bmN0aW9uIGNyZWF0ZUZvY3VzU2NvcGVzU3RhY2soKSB7XG4gIGxldCBzdGFjayA9IFtdO1xuICByZXR1cm4ge1xuICAgIGFkZChmb2N1c1Njb3BlKSB7XG4gICAgICBjb25zdCBhY3RpdmVGb2N1c1Njb3BlID0gc3RhY2tbMF07XG4gICAgICBpZiAoZm9jdXNTY29wZSAhPT0gYWN0aXZlRm9jdXNTY29wZSkge1xuICAgICAgICBhY3RpdmVGb2N1c1Njb3BlPy5wYXVzZSgpO1xuICAgICAgfVxuICAgICAgc3RhY2sgPSBhcnJheVJlbW92ZShzdGFjaywgZm9jdXNTY29wZSk7XG4gICAgICBzdGFjay51bnNoaWZ0KGZvY3VzU2NvcGUpO1xuICAgIH0sXG4gICAgcmVtb3ZlKGZvY3VzU2NvcGUpIHtcbiAgICAgIHN0YWNrID0gYXJyYXlSZW1vdmUoc3RhY2ssIGZvY3VzU2NvcGUpO1xuICAgICAgc3RhY2tbMF0/LnJlc3VtZSgpO1xuICAgIH1cbiAgfTtcbn1cbmZ1bmN0aW9uIGFycmF5UmVtb3ZlKGFycmF5LCBpdGVtKSB7XG4gIGNvbnN0IHVwZGF0ZWRBcnJheSA9IFsuLi5hcnJheV07XG4gIGNvbnN0IGluZGV4ID0gdXBkYXRlZEFycmF5LmluZGV4T2YoaXRlbSk7XG4gIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICB1cGRhdGVkQXJyYXkuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxuICByZXR1cm4gdXBkYXRlZEFycmF5O1xufVxuZnVuY3Rpb24gcmVtb3ZlTGlua3MoaXRlbXMpIHtcbiAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS50YWdOYW1lICE9PSBcIkFcIik7XG59XG52YXIgUm9vdCA9IEZvY3VzU2NvcGU7XG5leHBvcnQge1xuICBGb2N1c1Njb3BlLFxuICBSb290XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIiwiXCJ1c2UgY2xpZW50XCI7XG5cbi8vIHBhY2thZ2VzL3JlYWN0L3BvcnRhbC9zcmMvcG9ydGFsLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmltaXRpdmVcIjtcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWxheW91dC1lZmZlY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIFBPUlRBTF9OQU1FID0gXCJQb3J0YWxcIjtcbnZhciBQb3J0YWwgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgY29udGFpbmVyOiBjb250YWluZXJQcm9wLCAuLi5wb3J0YWxQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IFttb3VudGVkLCBzZXRNb3VudGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHNldE1vdW50ZWQodHJ1ZSksIFtdKTtcbiAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUHJvcCB8fCBtb3VudGVkICYmIGdsb2JhbFRoaXM/LmRvY3VtZW50Py5ib2R5O1xuICByZXR1cm4gY29udGFpbmVyID8gUmVhY3RET00uY3JlYXRlUG9ydGFsKC8qIEBfX1BVUkVfXyAqLyBqc3goUHJpbWl0aXZlLmRpdiwgeyAuLi5wb3J0YWxQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSksIGNvbnRhaW5lcikgOiBudWxsO1xufSk7XG5Qb3J0YWwuZGlzcGxheU5hbWUgPSBQT1JUQUxfTkFNRTtcbnZhciBSb290ID0gUG9ydGFsO1xuZXhwb3J0IHtcbiAgUG9ydGFsLFxuICBSb290XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIiwiXCJ1c2UgY2xpZW50XCI7XG5cbi8vIHBhY2thZ2VzL3JlYWN0L3ByZXNlbmNlL3NyYy9QcmVzZW5jZS50c3hcbmltcG9ydCAqIGFzIFJlYWN0MiBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0XCI7XG5cbi8vIHBhY2thZ2VzL3JlYWN0L3ByZXNlbmNlL3NyYy91c2VTdGF0ZU1hY2hpbmUudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmZ1bmN0aW9uIHVzZVN0YXRlTWFjaGluZShpbml0aWFsU3RhdGUsIG1hY2hpbmUpIHtcbiAgcmV0dXJuIFJlYWN0LnVzZVJlZHVjZXIoKHN0YXRlLCBldmVudCkgPT4ge1xuICAgIGNvbnN0IG5leHRTdGF0ZSA9IG1hY2hpbmVbc3RhdGVdW2V2ZW50XTtcbiAgICByZXR1cm4gbmV4dFN0YXRlID8/IHN0YXRlO1xuICB9LCBpbml0aWFsU3RhdGUpO1xufVxuXG4vLyBwYWNrYWdlcy9yZWFjdC9wcmVzZW5jZS9zcmMvUHJlc2VuY2UudHN4XG52YXIgUHJlc2VuY2UgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBwcmVzZW50LCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gIGNvbnN0IHByZXNlbmNlID0gdXNlUHJlc2VuY2UocHJlc2VudCk7XG4gIGNvbnN0IGNoaWxkID0gdHlwZW9mIGNoaWxkcmVuID09PSBcImZ1bmN0aW9uXCIgPyBjaGlsZHJlbih7IHByZXNlbnQ6IHByZXNlbmNlLmlzUHJlc2VudCB9KSA6IFJlYWN0Mi5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgY29uc3QgcmVmID0gdXNlQ29tcG9zZWRSZWZzKHByZXNlbmNlLnJlZiwgZ2V0RWxlbWVudFJlZihjaGlsZCkpO1xuICBjb25zdCBmb3JjZU1vdW50ID0gdHlwZW9mIGNoaWxkcmVuID09PSBcImZ1bmN0aW9uXCI7XG4gIHJldHVybiBmb3JjZU1vdW50IHx8IHByZXNlbmNlLmlzUHJlc2VudCA/IFJlYWN0Mi5jbG9uZUVsZW1lbnQoY2hpbGQsIHsgcmVmIH0pIDogbnVsbDtcbn07XG5QcmVzZW5jZS5kaXNwbGF5TmFtZSA9IFwiUHJlc2VuY2VcIjtcbmZ1bmN0aW9uIHVzZVByZXNlbmNlKHByZXNlbnQpIHtcbiAgY29uc3QgW25vZGUsIHNldE5vZGVdID0gUmVhY3QyLnVzZVN0YXRlKCk7XG4gIGNvbnN0IHN0eWxlc1JlZiA9IFJlYWN0Mi51c2VSZWYoe30pO1xuICBjb25zdCBwcmV2UHJlc2VudFJlZiA9IFJlYWN0Mi51c2VSZWYocHJlc2VudCk7XG4gIGNvbnN0IHByZXZBbmltYXRpb25OYW1lUmVmID0gUmVhY3QyLnVzZVJlZihcIm5vbmVcIik7XG4gIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHByZXNlbnQgPyBcIm1vdW50ZWRcIiA6IFwidW5tb3VudGVkXCI7XG4gIGNvbnN0IFtzdGF0ZSwgc2VuZF0gPSB1c2VTdGF0ZU1hY2hpbmUoaW5pdGlhbFN0YXRlLCB7XG4gICAgbW91bnRlZDoge1xuICAgICAgVU5NT1VOVDogXCJ1bm1vdW50ZWRcIixcbiAgICAgIEFOSU1BVElPTl9PVVQ6IFwidW5tb3VudFN1c3BlbmRlZFwiXG4gICAgfSxcbiAgICB1bm1vdW50U3VzcGVuZGVkOiB7XG4gICAgICBNT1VOVDogXCJtb3VudGVkXCIsXG4gICAgICBBTklNQVRJT05fRU5EOiBcInVubW91bnRlZFwiXG4gICAgfSxcbiAgICB1bm1vdW50ZWQ6IHtcbiAgICAgIE1PVU5UOiBcIm1vdW50ZWRcIlxuICAgIH1cbiAgfSk7XG4gIFJlYWN0Mi51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRBbmltYXRpb25OYW1lID0gZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXNSZWYuY3VycmVudCk7XG4gICAgcHJldkFuaW1hdGlvbk5hbWVSZWYuY3VycmVudCA9IHN0YXRlID09PSBcIm1vdW50ZWRcIiA/IGN1cnJlbnRBbmltYXRpb25OYW1lIDogXCJub25lXCI7XG4gIH0sIFtzdGF0ZV0pO1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHN0eWxlcyA9IHN0eWxlc1JlZi5jdXJyZW50O1xuICAgIGNvbnN0IHdhc1ByZXNlbnQgPSBwcmV2UHJlc2VudFJlZi5jdXJyZW50O1xuICAgIGNvbnN0IGhhc1ByZXNlbnRDaGFuZ2VkID0gd2FzUHJlc2VudCAhPT0gcHJlc2VudDtcbiAgICBpZiAoaGFzUHJlc2VudENoYW5nZWQpIHtcbiAgICAgIGNvbnN0IHByZXZBbmltYXRpb25OYW1lID0gcHJldkFuaW1hdGlvbk5hbWVSZWYuY3VycmVudDtcbiAgICAgIGNvbnN0IGN1cnJlbnRBbmltYXRpb25OYW1lID0gZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXMpO1xuICAgICAgaWYgKHByZXNlbnQpIHtcbiAgICAgICAgc2VuZChcIk1PVU5UXCIpO1xuICAgICAgfSBlbHNlIGlmIChjdXJyZW50QW5pbWF0aW9uTmFtZSA9PT0gXCJub25lXCIgfHwgc3R5bGVzPy5kaXNwbGF5ID09PSBcIm5vbmVcIikge1xuICAgICAgICBzZW5kKFwiVU5NT1VOVFwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGlzQW5pbWF0aW5nID0gcHJldkFuaW1hdGlvbk5hbWUgIT09IGN1cnJlbnRBbmltYXRpb25OYW1lO1xuICAgICAgICBpZiAod2FzUHJlc2VudCAmJiBpc0FuaW1hdGluZykge1xuICAgICAgICAgIHNlbmQoXCJBTklNQVRJT05fT1VUXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlbmQoXCJVTk1PVU5UXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBwcmV2UHJlc2VudFJlZi5jdXJyZW50ID0gcHJlc2VudDtcbiAgICB9XG4gIH0sIFtwcmVzZW50LCBzZW5kXSk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIGxldCB0aW1lb3V0SWQ7XG4gICAgICBjb25zdCBvd25lcldpbmRvdyA9IG5vZGUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyA/PyB3aW5kb3c7XG4gICAgICBjb25zdCBoYW5kbGVBbmltYXRpb25FbmQgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudEFuaW1hdGlvbk5hbWUgPSBnZXRBbmltYXRpb25OYW1lKHN0eWxlc1JlZi5jdXJyZW50KTtcbiAgICAgICAgY29uc3QgaXNDdXJyZW50QW5pbWF0aW9uID0gY3VycmVudEFuaW1hdGlvbk5hbWUuaW5jbHVkZXMoZXZlbnQuYW5pbWF0aW9uTmFtZSk7XG4gICAgICAgIGlmIChldmVudC50YXJnZXQgPT09IG5vZGUgJiYgaXNDdXJyZW50QW5pbWF0aW9uKSB7XG4gICAgICAgICAgc2VuZChcIkFOSU1BVElPTl9FTkRcIik7XG4gICAgICAgICAgaWYgKCFwcmV2UHJlc2VudFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RmlsbE1vZGUgPSBub2RlLnN0eWxlLmFuaW1hdGlvbkZpbGxNb2RlO1xuICAgICAgICAgICAgbm9kZS5zdHlsZS5hbmltYXRpb25GaWxsTW9kZSA9IFwiZm9yd2FyZHNcIjtcbiAgICAgICAgICAgIHRpbWVvdXRJZCA9IG93bmVyV2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAobm9kZS5zdHlsZS5hbmltYXRpb25GaWxsTW9kZSA9PT0gXCJmb3J3YXJkc1wiKSB7XG4gICAgICAgICAgICAgICAgbm9kZS5zdHlsZS5hbmltYXRpb25GaWxsTW9kZSA9IGN1cnJlbnRGaWxsTW9kZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY29uc3QgaGFuZGxlQW5pbWF0aW9uU3RhcnQgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gbm9kZSkge1xuICAgICAgICAgIHByZXZBbmltYXRpb25OYW1lUmVmLmN1cnJlbnQgPSBnZXRBbmltYXRpb25OYW1lKHN0eWxlc1JlZi5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihcImFuaW1hdGlvbnN0YXJ0XCIsIGhhbmRsZUFuaW1hdGlvblN0YXJ0KTtcbiAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihcImFuaW1hdGlvbmNhbmNlbFwiLCBoYW5kbGVBbmltYXRpb25FbmQpO1xuICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKFwiYW5pbWF0aW9uZW5kXCIsIGhhbmRsZUFuaW1hdGlvbkVuZCk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBvd25lcldpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKFwiYW5pbWF0aW9uc3RhcnRcIiwgaGFuZGxlQW5pbWF0aW9uU3RhcnQpO1xuICAgICAgICBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhbmltYXRpb25jYW5jZWxcIiwgaGFuZGxlQW5pbWF0aW9uRW5kKTtcbiAgICAgICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKFwiYW5pbWF0aW9uZW5kXCIsIGhhbmRsZUFuaW1hdGlvbkVuZCk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzZW5kKFwiQU5JTUFUSU9OX0VORFwiKTtcbiAgICB9XG4gIH0sIFtub2RlLCBzZW5kXSk7XG4gIHJldHVybiB7XG4gICAgaXNQcmVzZW50OiBbXCJtb3VudGVkXCIsIFwidW5tb3VudFN1c3BlbmRlZFwiXS5pbmNsdWRlcyhzdGF0ZSksXG4gICAgcmVmOiBSZWFjdDIudXNlQ2FsbGJhY2soKG5vZGUyKSA9PiB7XG4gICAgICBpZiAobm9kZTIpIHN0eWxlc1JlZi5jdXJyZW50ID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlMik7XG4gICAgICBzZXROb2RlKG5vZGUyKTtcbiAgICB9LCBbXSlcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldEFuaW1hdGlvbk5hbWUoc3R5bGVzKSB7XG4gIHJldHVybiBzdHlsZXM/LmFuaW1hdGlvbk5hbWUgfHwgXCJub25lXCI7XG59XG5mdW5jdGlvbiBnZXRFbGVtZW50UmVmKGVsZW1lbnQpIHtcbiAgbGV0IGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudC5wcm9wcywgXCJyZWZcIik/LmdldDtcbiAgbGV0IG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gIGlmIChtYXlXYXJuKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQucmVmO1xuICB9XG4gIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudCwgXCJyZWZcIik/LmdldDtcbiAgbWF5V2FybiA9IGdldHRlciAmJiBcImlzUmVhY3RXYXJuaW5nXCIgaW4gZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZztcbiAgaWYgKG1heVdhcm4pIHtcbiAgICByZXR1cm4gZWxlbWVudC5wcm9wcy5yZWY7XG4gIH1cbiAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmIHx8IGVsZW1lbnQucmVmO1xufVxuZXhwb3J0IHtcbiAgUHJlc2VuY2Vcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCJcInVzZSBjbGllbnRcIjtcblxuLy8gcGFja2FnZXMvcmVhY3QvZm9jdXMtZ3VhcmRzL3NyYy9Gb2N1c0d1YXJkcy50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIGNvdW50ID0gMDtcbmZ1bmN0aW9uIEZvY3VzR3VhcmRzKHByb3BzKSB7XG4gIHVzZUZvY3VzR3VhcmRzKCk7XG4gIHJldHVybiBwcm9wcy5jaGlsZHJlbjtcbn1cbmZ1bmN0aW9uIHVzZUZvY3VzR3VhcmRzKCkge1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVkZ2VHdWFyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtcmFkaXgtZm9jdXMtZ3VhcmRdXCIpO1xuICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFwiYWZ0ZXJiZWdpblwiLCBlZGdlR3VhcmRzWzBdID8/IGNyZWF0ZUZvY3VzR3VhcmQoKSk7XG4gICAgZG9jdW1lbnQuYm9keS5pbnNlcnRBZGphY2VudEVsZW1lbnQoXCJiZWZvcmVlbmRcIiwgZWRnZUd1YXJkc1sxXSA/PyBjcmVhdGVGb2N1c0d1YXJkKCkpO1xuICAgIGNvdW50Kys7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChjb3VudCA9PT0gMSkge1xuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtcmFkaXgtZm9jdXMtZ3VhcmRdXCIpLmZvckVhY2goKG5vZGUpID0+IG5vZGUucmVtb3ZlKCkpO1xuICAgICAgfVxuICAgICAgY291bnQtLTtcbiAgICB9O1xuICB9LCBbXSk7XG59XG5mdW5jdGlvbiBjcmVhdGVGb2N1c0d1YXJkKCkge1xuICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XG4gIGVsZW1lbnQuc2V0QXR0cmlidXRlKFwiZGF0YS1yYWRpeC1mb2N1cy1ndWFyZFwiLCBcIlwiKTtcbiAgZWxlbWVudC50YWJJbmRleCA9IDA7XG4gIGVsZW1lbnQuc3R5bGUub3V0bGluZSA9IFwibm9uZVwiO1xuICBlbGVtZW50LnN0eWxlLm9wYWNpdHkgPSBcIjBcIjtcbiAgZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9IFwiZml4ZWRcIjtcbiAgZWxlbWVudC5zdHlsZS5wb2ludGVyRXZlbnRzID0gXCJub25lXCI7XG4gIHJldHVybiBlbGVtZW50O1xufVxudmFyIFJvb3QgPSBGb2N1c0d1YXJkcztcbmV4cG9ydCB7XG4gIEZvY3VzR3VhcmRzLFxuICBSb290LFxuICB1c2VGb2N1c0d1YXJkc1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxucHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG5SRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4vKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wsIEl0ZXJhdG9yICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XHJcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2VzRGVjb3JhdGUoY3RvciwgZGVzY3JpcHRvckluLCBkZWNvcmF0b3JzLCBjb250ZXh0SW4sIGluaXRpYWxpemVycywgZXh0cmFJbml0aWFsaXplcnMpIHtcclxuICAgIGZ1bmN0aW9uIGFjY2VwdChmKSB7IGlmIChmICE9PSB2b2lkIDAgJiYgdHlwZW9mIGYgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkZ1bmN0aW9uIGV4cGVjdGVkXCIpOyByZXR1cm4gZjsgfVxyXG4gICAgdmFyIGtpbmQgPSBjb250ZXh0SW4ua2luZCwga2V5ID0ga2luZCA9PT0gXCJnZXR0ZXJcIiA/IFwiZ2V0XCIgOiBraW5kID09PSBcInNldHRlclwiID8gXCJzZXRcIiA6IFwidmFsdWVcIjtcclxuICAgIHZhciB0YXJnZXQgPSAhZGVzY3JpcHRvckluICYmIGN0b3IgPyBjb250ZXh0SW5bXCJzdGF0aWNcIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsO1xyXG4gICAgdmFyIGRlc2NyaXB0b3IgPSBkZXNjcmlwdG9ySW4gfHwgKHRhcmdldCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSkgOiB7fSk7XHJcbiAgICB2YXIgXywgZG9uZSA9IGZhbHNlO1xyXG4gICAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICB2YXIgY29udGV4dCA9IHt9O1xyXG4gICAgICAgIGZvciAodmFyIHAgaW4gY29udGV4dEluKSBjb250ZXh0W3BdID0gcCA9PT0gXCJhY2Nlc3NcIiA/IHt9IDogY29udGV4dEluW3BdO1xyXG4gICAgICAgIGZvciAodmFyIHAgaW4gY29udGV4dEluLmFjY2VzcykgY29udGV4dC5hY2Nlc3NbcF0gPSBjb250ZXh0SW4uYWNjZXNzW3BdO1xyXG4gICAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIgPSBmdW5jdGlvbiAoZikgeyBpZiAoZG9uZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZFwiKTsgZXh0cmFJbml0aWFsaXplcnMucHVzaChhY2NlcHQoZiB8fCBudWxsKSk7IH07XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9ICgwLCBkZWNvcmF0b3JzW2ldKShraW5kID09PSBcImFjY2Vzc29yXCIgPyB7IGdldDogZGVzY3JpcHRvci5nZXQsIHNldDogZGVzY3JpcHRvci5zZXQgfSA6IGRlc2NyaXB0b3Jba2V5XSwgY29udGV4dCk7XHJcbiAgICAgICAgaWYgKGtpbmQgPT09IFwiYWNjZXNzb3JcIikge1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0ID09PSB2b2lkIDApIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHR5cGVvZiByZXN1bHQgIT09IFwib2JqZWN0XCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QgZXhwZWN0ZWRcIik7XHJcbiAgICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87XHJcbiAgICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5zZXQpKSBkZXNjcmlwdG9yLnNldCA9IF87XHJcbiAgICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5pbml0KSkgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKF8gPSBhY2NlcHQocmVzdWx0KSkge1xyXG4gICAgICAgICAgICBpZiAoa2luZCA9PT0gXCJmaWVsZFwiKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTtcclxuICAgICAgICAgICAgZWxzZSBkZXNjcmlwdG9yW2tleV0gPSBfO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0YXJnZXQpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGNvbnRleHRJbi5uYW1lLCBkZXNjcmlwdG9yKTtcclxuICAgIGRvbmUgPSB0cnVlO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXNBcmcsIGluaXRpYWxpemVycywgdmFsdWUpIHtcclxuICAgIHZhciB1c2VWYWx1ZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAyO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbml0aWFsaXplcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YWx1ZSA9IHVzZVZhbHVlID8gaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZywgdmFsdWUpIDogaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdXNlVmFsdWUgPyB2YWx1ZSA6IHZvaWQgMDtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Byb3BLZXkoeCkge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB4ID09PSBcInN5bWJvbFwiID8geCA6IFwiXCIuY29uY2F0KHgpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc2V0RnVuY3Rpb25OYW1lKGYsIG5hbWUsIHByZWZpeCkge1xyXG4gICAgaWYgKHR5cGVvZiBuYW1lID09PSBcInN5bWJvbFwiKSBuYW1lID0gbmFtZS5kZXNjcmlwdGlvbiA/IFwiW1wiLmNvbmNhdChuYW1lLmRlc2NyaXB0aW9uLCBcIl1cIikgOiBcIlwiO1xyXG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCBcIm5hbWVcIiwgeyBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiBwcmVmaXggPyBcIlwiLmNvbmNhdChwcmVmaXgsIFwiIFwiLCBuYW1lKSA6IG5hbWUgfSk7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSkge1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2dlbmVyYXRvcih0aGlzQXJnLCBib2R5KSB7XHJcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yID09PSBcImZ1bmN0aW9uXCIgPyBJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKTtcclxuICAgIHJldHVybiBnLm5leHQgPSB2ZXJiKDApLCBnW1widGhyb3dcIl0gPSB2ZXJiKDEpLCBnW1wicmV0dXJuXCJdID0gdmVyYigyKSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XHJcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xyXG4gICAgICAgIHdoaWxlIChnICYmIChnID0gMCwgb3BbMF0gJiYgKF8gPSAwKSksIF8pIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcclxuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cclxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspO1xyXG4gICAgaWYgKCFkZXNjIHx8IChcImdldFwiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHtcclxuICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9O1xyXG4gICAgfVxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTtcclxufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBvW2syXSA9IG1ba107XHJcbn0pO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXhwb3J0U3RhcihtLCBvKSB7XHJcbiAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSBcImRlZmF1bHRcIiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIHApKSBfX2NyZWF0ZUJpbmRpbmcobywgbSwgcCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3ZhbHVlcyhvKSB7XHJcbiAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwO1xyXG4gICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7XHJcbiAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09IFwibnVtYmVyXCIpIHJldHVybiB7XHJcbiAgICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwO1xyXG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbyAmJiBvW2krK10sIGRvbmU6ICFvIH07XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/IFwiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIiA6IFwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVhZChvLCBuKSB7XHJcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XHJcbiAgICBpZiAoIW0pIHJldHVybiBvO1xyXG4gICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XHJcbiAgICBmaW5hbGx5IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7IGlmIChlKSB0aHJvdyBlLmVycm9yOyB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbi8qKiBAZGVwcmVjYXRlZCAqL1xyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XHJcbiAgICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbi8qKiBAZGVwcmVjYXRlZCAqL1xyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheXMoKSB7XHJcbiAgICBmb3IgKHZhciBzID0gMCwgaSA9IDAsIGlsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGlsOyBpKyspIHMgKz0gYXJndW1lbnRzW2ldLmxlbmd0aDtcclxuICAgIGZvciAodmFyIHIgPSBBcnJheShzKSwgayA9IDAsIGkgPSAwOyBpIDwgaWw7IGkrKylcclxuICAgICAgICBmb3IgKHZhciBhID0gYXJndW1lbnRzW2ldLCBqID0gMCwgamwgPSBhLmxlbmd0aDsgaiA8IGpsOyBqKyssIGsrKylcclxuICAgICAgICAgICAgcltrXSA9IGFbal07XHJcbiAgICByZXR1cm4gcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXkodG8sIGZyb20sIHBhY2spIHtcclxuICAgIGlmIChwYWNrIHx8IGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIGkgPSAwLCBsID0gZnJvbS5sZW5ndGgsIGFyOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGFyIHx8ICEoaSBpbiBmcm9tKSkge1xyXG4gICAgICAgICAgICBpZiAoIWFyKSBhciA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20sIDAsIGkpO1xyXG4gICAgICAgICAgICBhcltpXSA9IGZyb21baV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvLmNvbmNhdChhciB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0KHYpIHtcclxuICAgIHJldHVybiB0aGlzIGluc3RhbmNlb2YgX19hd2FpdCA/ICh0aGlzLnYgPSB2LCB0aGlzKSA6IG5ldyBfX2F3YWl0KHYpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0dlbmVyYXRvcih0aGlzQXJnLCBfYXJndW1lbnRzLCBnZW5lcmF0b3IpIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgZyA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSwgaSwgcSA9IFtdO1xyXG4gICAgcmV0dXJuIGkgPSBPYmplY3QuY3JlYXRlKCh0eXBlb2YgQXN5bmNJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gQXN5bmNJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiLCBhd2FpdFJldHVybiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIGF3YWl0UmV0dXJuKGYpIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBQcm9taXNlLnJlc29sdmUodikudGhlbihmLCByZWplY3QpOyB9OyB9XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaWYgKGdbbl0pIHsgaVtuXSA9IGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAoYSwgYikgeyBxLnB1c2goW24sIHYsIGEsIGJdKSA+IDEgfHwgcmVzdW1lKG4sIHYpOyB9KTsgfTsgaWYgKGYpIGlbbl0gPSBmKGlbbl0pOyB9IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBmYWxzZSB9IDogZiA/IGYodikgOiB2OyB9IDogZjsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY1ZhbHVlcyhvKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIG0gPSBvW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSwgaTtcclxuICAgIHJldHVybiBtID8gbS5jYWxsKG8pIDogKG8gPSB0eXBlb2YgX192YWx1ZXMgPT09IFwiZnVuY3Rpb25cIiA/IF9fdmFsdWVzKG8pIDogb1tTeW1ib2wuaXRlcmF0b3JdKCksIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpKTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyBpW25dID0gb1tuXSAmJiBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeyB2ID0gb1tuXSh2KSwgc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgdi5kb25lLCB2LnZhbHVlKTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShyZXNvbHZlLCByZWplY3QsIGQsIHYpIHsgUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZnVuY3Rpb24odikgeyByZXNvbHZlKHsgdmFsdWU6IHYsIGRvbmU6IGQgfSk7IH0sIHJlamVjdCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWFrZVRlbXBsYXRlT2JqZWN0KGNvb2tlZCwgcmF3KSB7XHJcbiAgICBpZiAoT2JqZWN0LmRlZmluZVByb3BlcnR5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb29rZWQsIFwicmF3XCIsIHsgdmFsdWU6IHJhdyB9KTsgfSBlbHNlIHsgY29va2VkLnJhdyA9IHJhdzsgfVxyXG4gICAgcmV0dXJuIGNvb2tlZDtcclxufTtcclxuXHJcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcclxufSkgOiBmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XHJcbn07XHJcblxyXG52YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHtcclxuICAgIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiAobykge1xyXG4gICAgICAgIHZhciBhciA9IFtdO1xyXG4gICAgICAgIGZvciAodmFyIGsgaW4gbykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBrKSkgYXJbYXIubGVuZ3RoXSA9IGs7XHJcbiAgICAgICAgcmV0dXJuIGFyO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBvd25LZXlzKG8pO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcclxuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XHJcbiAgICB2YXIgcmVzdWx0ID0ge307XHJcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09IFwiZGVmYXVsdFwiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pO1xyXG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydERlZmF1bHQobW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xyXG4gICAgcmV0dXJuIGtpbmQgPT09IFwibVwiID8gZiA6IGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRTZXQocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xyXG4gICAgaWYgKGtpbmQgPT09IFwibVwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlXCIpO1xyXG4gICAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgc2V0dGVyXCIpO1xyXG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcclxuICAgIHJldHVybiAoa2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSksIHZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEluKHN0YXRlLCByZWNlaXZlcikge1xyXG4gICAgaWYgKHJlY2VpdmVyID09PSBudWxsIHx8ICh0eXBlb2YgcmVjZWl2ZXIgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHJlY2VpdmVyICE9PSBcImZ1bmN0aW9uXCIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHVzZSAnaW4nIG9wZXJhdG9yIG9uIG5vbi1vYmplY3RcIik7XHJcbiAgICByZXR1cm4gdHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciA9PT0gc3RhdGUgOiBzdGF0ZS5oYXMocmVjZWl2ZXIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hZGREaXNwb3NhYmxlUmVzb3VyY2UoZW52LCB2YWx1ZSwgYXN5bmMpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdm9pZCAwKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgdmFsdWUgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk9iamVjdCBleHBlY3RlZC5cIik7XHJcbiAgICAgICAgdmFyIGRpc3Bvc2UsIGlubmVyO1xyXG4gICAgICAgIGlmIChhc3luYykge1xyXG4gICAgICAgICAgICBpZiAoIVN5bWJvbC5hc3luY0Rpc3Bvc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgICAgICAgICAgZGlzcG9zZSA9IHZhbHVlW1N5bWJvbC5hc3luY0Rpc3Bvc2VdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGlzcG9zZSA9PT0gdm9pZCAwKSB7XHJcbiAgICAgICAgICAgIGlmICghU3ltYm9sLmRpc3Bvc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuZGlzcG9zZSBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICAgICAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuZGlzcG9zZV07XHJcbiAgICAgICAgICAgIGlmIChhc3luYykgaW5uZXIgPSBkaXNwb3NlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZW9mIGRpc3Bvc2UgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk9iamVjdCBub3QgZGlzcG9zYWJsZS5cIik7XHJcbiAgICAgICAgaWYgKGlubmVyKSBkaXNwb3NlID0gZnVuY3Rpb24oKSB7IHRyeSB7IGlubmVyLmNhbGwodGhpcyk7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIFByb21pc2UucmVqZWN0KGUpOyB9IH07XHJcbiAgICAgICAgZW52LnN0YWNrLnB1c2goeyB2YWx1ZTogdmFsdWUsIGRpc3Bvc2U6IGRpc3Bvc2UsIGFzeW5jOiBhc3luYyB9KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGFzeW5jKSB7XHJcbiAgICAgICAgZW52LnN0YWNrLnB1c2goeyBhc3luYzogdHJ1ZSB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuXHJcbn1cclxuXHJcbnZhciBfU3VwcHJlc3NlZEVycm9yID0gdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19kaXNwb3NlUmVzb3VyY2VzKGVudikge1xyXG4gICAgZnVuY3Rpb24gZmFpbChlKSB7XHJcbiAgICAgICAgZW52LmVycm9yID0gZW52Lmhhc0Vycm9yID8gbmV3IF9TdXBwcmVzc2VkRXJyb3IoZSwgZW52LmVycm9yLCBcIkFuIGVycm9yIHdhcyBzdXBwcmVzc2VkIGR1cmluZyBkaXNwb3NhbC5cIikgOiBlO1xyXG4gICAgICAgIGVudi5oYXNFcnJvciA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB2YXIgciwgcyA9IDA7XHJcbiAgICBmdW5jdGlvbiBuZXh0KCkge1xyXG4gICAgICAgIHdoaWxlIChyID0gZW52LnN0YWNrLnBvcCgpKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXIuYXN5bmMgJiYgcyA9PT0gMSkgcmV0dXJuIHMgPSAwLCBlbnYuc3RhY2sucHVzaChyKSwgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihuZXh0KTtcclxuICAgICAgICAgICAgICAgIGlmIChyLmRpc3Bvc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gci5kaXNwb3NlLmNhbGwoci52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHIuYXN5bmMpIHJldHVybiBzIHw9IDIsIFByb21pc2UucmVzb2x2ZShyZXN1bHQpLnRoZW4obmV4dCwgZnVuY3Rpb24oZSkgeyBmYWlsKGUpOyByZXR1cm4gbmV4dCgpOyB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgcyB8PSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBmYWlsKGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzID09PSAxKSByZXR1cm4gZW52Lmhhc0Vycm9yID8gUHJvbWlzZS5yZWplY3QoZW52LmVycm9yKSA6IFByb21pc2UucmVzb2x2ZSgpO1xyXG4gICAgICAgIGlmIChlbnYuaGFzRXJyb3IpIHRocm93IGVudi5lcnJvcjtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXh0KCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbihwYXRoLCBwcmVzZXJ2ZUpzeCkge1xyXG4gICAgaWYgKHR5cGVvZiBwYXRoID09PSBcInN0cmluZ1wiICYmIC9eXFwuXFwuP1xcLy8udGVzdChwYXRoKSkge1xyXG4gICAgICAgIHJldHVybiBwYXRoLnJlcGxhY2UoL1xcLih0c3gpJHwoKD86XFwuZCk/KSgoPzpcXC5bXi4vXSs/KT8pXFwuKFtjbV0/KXRzJC9pLCBmdW5jdGlvbiAobSwgdHN4LCBkLCBleHQsIGNtKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0c3ggPyBwcmVzZXJ2ZUpzeCA/IFwiLmpzeFwiIDogXCIuanNcIiA6IGQgJiYgKCFleHQgfHwgIWNtKSA/IG0gOiAoZCArIGV4dCArIFwiLlwiICsgY20udG9Mb3dlckNhc2UoKSArIFwianNcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGF0aDtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgX19leHRlbmRzOiBfX2V4dGVuZHMsXHJcbiAgICBfX2Fzc2lnbjogX19hc3NpZ24sXHJcbiAgICBfX3Jlc3Q6IF9fcmVzdCxcclxuICAgIF9fZGVjb3JhdGU6IF9fZGVjb3JhdGUsXHJcbiAgICBfX3BhcmFtOiBfX3BhcmFtLFxyXG4gICAgX19lc0RlY29yYXRlOiBfX2VzRGVjb3JhdGUsXHJcbiAgICBfX3J1bkluaXRpYWxpemVyczogX19ydW5Jbml0aWFsaXplcnMsXHJcbiAgICBfX3Byb3BLZXk6IF9fcHJvcEtleSxcclxuICAgIF9fc2V0RnVuY3Rpb25OYW1lOiBfX3NldEZ1bmN0aW9uTmFtZSxcclxuICAgIF9fbWV0YWRhdGE6IF9fbWV0YWRhdGEsXHJcbiAgICBfX2F3YWl0ZXI6IF9fYXdhaXRlcixcclxuICAgIF9fZ2VuZXJhdG9yOiBfX2dlbmVyYXRvcixcclxuICAgIF9fY3JlYXRlQmluZGluZzogX19jcmVhdGVCaW5kaW5nLFxyXG4gICAgX19leHBvcnRTdGFyOiBfX2V4cG9ydFN0YXIsXHJcbiAgICBfX3ZhbHVlczogX192YWx1ZXMsXHJcbiAgICBfX3JlYWQ6IF9fcmVhZCxcclxuICAgIF9fc3ByZWFkOiBfX3NwcmVhZCxcclxuICAgIF9fc3ByZWFkQXJyYXlzOiBfX3NwcmVhZEFycmF5cyxcclxuICAgIF9fc3ByZWFkQXJyYXk6IF9fc3ByZWFkQXJyYXksXHJcbiAgICBfX2F3YWl0OiBfX2F3YWl0LFxyXG4gICAgX19hc3luY0dlbmVyYXRvcjogX19hc3luY0dlbmVyYXRvcixcclxuICAgIF9fYXN5bmNEZWxlZ2F0b3I6IF9fYXN5bmNEZWxlZ2F0b3IsXHJcbiAgICBfX2FzeW5jVmFsdWVzOiBfX2FzeW5jVmFsdWVzLFxyXG4gICAgX19tYWtlVGVtcGxhdGVPYmplY3Q6IF9fbWFrZVRlbXBsYXRlT2JqZWN0LFxyXG4gICAgX19pbXBvcnRTdGFyOiBfX2ltcG9ydFN0YXIsXHJcbiAgICBfX2ltcG9ydERlZmF1bHQ6IF9faW1wb3J0RGVmYXVsdCxcclxuICAgIF9fY2xhc3NQcml2YXRlRmllbGRHZXQ6IF9fY2xhc3NQcml2YXRlRmllbGRHZXQsXHJcbiAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0OiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0LFxyXG4gICAgX19jbGFzc1ByaXZhdGVGaWVsZEluOiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4sXHJcbiAgICBfX2FkZERpc3Bvc2FibGVSZXNvdXJjZTogX19hZGREaXNwb3NhYmxlUmVzb3VyY2UsXHJcbiAgICBfX2Rpc3Bvc2VSZXNvdXJjZXM6IF9fZGlzcG9zZVJlc291cmNlcyxcclxuICAgIF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uOiBfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbixcclxufTtcclxuIiwiZXhwb3J0IHZhciB6ZXJvUmlnaHRDbGFzc05hbWUgPSAncmlnaHQtc2Nyb2xsLWJhci1wb3NpdGlvbic7XG5leHBvcnQgdmFyIGZ1bGxXaWR0aENsYXNzTmFtZSA9ICd3aWR0aC1iZWZvcmUtc2Nyb2xsLWJhcic7XG5leHBvcnQgdmFyIG5vU2Nyb2xsYmFyc0NsYXNzTmFtZSA9ICd3aXRoLXNjcm9sbC1iYXJzLWhpZGRlbic7XG4vKipcbiAqIE5hbWUgb2YgYSBDU1MgdmFyaWFibGUgY29udGFpbmluZyB0aGUgYW1vdW50IG9mIFwiaGlkZGVuXCIgc2Nyb2xsYmFyXG4gKiAhIG1pZ2h0IGJlIHVuZGVmaW5lZCAhIHVzZSB3aWxsIGZhbGxiYWNrIVxuICovXG5leHBvcnQgdmFyIHJlbW92ZWRCYXJTaXplVmFyaWFibGUgPSAnLS1yZW1vdmVkLWJvZHktc2Nyb2xsLWJhci1zaXplJztcbiIsIi8qKlxuICogQXNzaWducyBhIHZhbHVlIGZvciBhIGdpdmVuIHJlZiwgbm8gbWF0dGVyIG9mIHRoZSByZWYgZm9ybWF0XG4gKiBAcGFyYW0ge1JlZk9iamVjdH0gcmVmIC0gYSBjYWxsYmFjayBmdW5jdGlvbiBvciByZWYgb2JqZWN0XG4gKiBAcGFyYW0gdmFsdWUgLSBhIG5ldyB2YWx1ZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3RoZUthc2hleS91c2UtY2FsbGJhY2stcmVmI2Fzc2lnbnJlZlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHJlZk9iamVjdCA9IHVzZVJlZigpO1xuICogY29uc3QgcmVmRm4gPSAocmVmKSA9PiB7Li4uLn1cbiAqXG4gKiBhc3NpZ25SZWYocmVmT2JqZWN0LCBcInJlZlZhbHVlXCIpO1xuICogYXNzaWduUmVmKHJlZkZuLCBcInJlZlZhbHVlXCIpO1xuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzaWduUmVmKHJlZiwgdmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZWYodmFsdWUpO1xuICAgIH1cbiAgICBlbHNlIGlmIChyZWYpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlZjtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGFzc2lnblJlZiB9IGZyb20gJy4vYXNzaWduUmVmJztcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSAnLi91c2VSZWYnO1xudmFyIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFJlYWN0LnVzZUxheW91dEVmZmVjdCA6IFJlYWN0LnVzZUVmZmVjdDtcbnZhciBjdXJyZW50VmFsdWVzID0gbmV3IFdlYWtNYXAoKTtcbi8qKlxuICogTWVyZ2VzIHR3byBvciBtb3JlIHJlZnMgdG9nZXRoZXIgcHJvdmlkaW5nIGEgc2luZ2xlIGludGVyZmFjZSB0byBzZXQgdGhlaXIgdmFsdWVcbiAqIEBwYXJhbSB7UmVmT2JqZWN0fFJlZn0gcmVmc1xuICogQHJldHVybnMge011dGFibGVSZWZPYmplY3R9IC0gYSBuZXcgcmVmLCB3aGljaCB0cmFuc2xhdGVzIGFsbCBjaGFuZ2VzIHRvIHtyZWZzfVxuICpcbiAqIEBzZWUge0BsaW5rIG1lcmdlUmVmc30gYSB2ZXJzaW9uIHdpdGhvdXQgYnVpdC1pbiBtZW1vaXphdGlvblxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vdGhlS2FzaGV5L3VzZS1jYWxsYmFjay1yZWYjdXNlbWVyZ2VyZWZzXG4gKiBAZXhhbXBsZVxuICogY29uc3QgQ29tcG9uZW50ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICogICBjb25zdCBvd25SZWYgPSB1c2VSZWYoKTtcbiAqICAgY29uc3QgZG9tUmVmID0gdXNlTWVyZ2VSZWZzKFtyZWYsIG93blJlZl0pOyAvLyDwn5GIIG1lcmdlIHRvZ2V0aGVyXG4gKiAgIHJldHVybiA8ZGl2IHJlZj17ZG9tUmVmfT4uLi48L2Rpdj5cbiAqIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lcmdlUmVmcyhyZWZzLCBkZWZhdWx0VmFsdWUpIHtcbiAgICB2YXIgY2FsbGJhY2tSZWYgPSB1c2VDYWxsYmFja1JlZihkZWZhdWx0VmFsdWUgfHwgbnVsbCwgZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgICAgIHJldHVybiByZWZzLmZvckVhY2goZnVuY3Rpb24gKHJlZikgeyByZXR1cm4gYXNzaWduUmVmKHJlZiwgbmV3VmFsdWUpOyB9KTtcbiAgICB9KTtcbiAgICAvLyBoYW5kbGUgcmVmcyBjaGFuZ2VzIC0gYWRkZWQgb3IgcmVtb3ZlZFxuICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgb2xkVmFsdWUgPSBjdXJyZW50VmFsdWVzLmdldChjYWxsYmFja1JlZik7XG4gICAgICAgIGlmIChvbGRWYWx1ZSkge1xuICAgICAgICAgICAgdmFyIHByZXZSZWZzXzEgPSBuZXcgU2V0KG9sZFZhbHVlKTtcbiAgICAgICAgICAgIHZhciBuZXh0UmVmc18xID0gbmV3IFNldChyZWZzKTtcbiAgICAgICAgICAgIHZhciBjdXJyZW50XzEgPSBjYWxsYmFja1JlZi5jdXJyZW50O1xuICAgICAgICAgICAgcHJldlJlZnNfMS5mb3JFYWNoKGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW5leHRSZWZzXzEuaGFzKHJlZikpIHtcbiAgICAgICAgICAgICAgICAgICAgYXNzaWduUmVmKHJlZiwgbnVsbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBuZXh0UmVmc18xLmZvckVhY2goZnVuY3Rpb24gKHJlZikge1xuICAgICAgICAgICAgICAgIGlmICghcHJldlJlZnNfMS5oYXMocmVmKSkge1xuICAgICAgICAgICAgICAgICAgICBhc3NpZ25SZWYocmVmLCBjdXJyZW50XzEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnRWYWx1ZXMuc2V0KGNhbGxiYWNrUmVmLCByZWZzKTtcbiAgICB9LCBbcmVmc10pO1xuICAgIHJldHVybiBjYWxsYmFja1JlZjtcbn1cbiIsImltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBjcmVhdGVzIGEgTXV0YWJsZVJlZiB3aXRoIHJlZiBjaGFuZ2UgY2FsbGJhY2tcbiAqIEBwYXJhbSBpbml0aWFsVmFsdWUgLSBpbml0aWFsIHJlZiB2YWx1ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBhIGNhbGxiYWNrIHRvIHJ1biB3aGVuIHZhbHVlIGNoYW5nZXNcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcmVmID0gdXNlQ2FsbGJhY2tSZWYoMCwgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4gY29uc29sZS5sb2cob2xkVmFsdWUsICctPicsIG5ld1ZhbHVlKTtcbiAqIHJlZi5jdXJyZW50ID0gMTtcbiAqIC8vIHByaW50cyAwIC0+IDFcbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9ob29rcy1yZWZlcmVuY2UuaHRtbCN1c2VyZWZcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3RoZUthc2hleS91c2UtY2FsbGJhY2stcmVmI3VzZWNhbGxiYWNrcmVmLS0tdG8tcmVwbGFjZS1yZWFjdHVzZXJlZlxuICogQHJldHVybnMge011dGFibGVSZWZPYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDYWxsYmFja1JlZihpbml0aWFsVmFsdWUsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHJlZiA9IHVzZVN0YXRlKGZ1bmN0aW9uICgpIHsgcmV0dXJuICh7XG4gICAgICAgIC8vIHZhbHVlXG4gICAgICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXG4gICAgICAgIC8vIGxhc3QgY2FsbGJhY2tcbiAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrLFxuICAgICAgICAvLyBcIm1lbW9pemVkXCIgcHVibGljIGludGVyZmFjZVxuICAgICAgICBmYWNhZGU6IHtcbiAgICAgICAgICAgIGdldCBjdXJyZW50KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZWYudmFsdWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IGN1cnJlbnQodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB2YXIgbGFzdCA9IHJlZi52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAobGFzdCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJlZi5jYWxsYmFjayh2YWx1ZSwgbGFzdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9KTsgfSlbMF07XG4gICAgLy8gdXBkYXRlIGNhbGxiYWNrXG4gICAgcmVmLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgcmV0dXJuIHJlZi5mYWNhZGU7XG59XG4iLCJpbXBvcnQgeyBfX2Fzc2lnbiB9IGZyb20gXCJ0c2xpYlwiO1xuZnVuY3Rpb24gSXRvSShhKSB7XG4gICAgcmV0dXJuIGE7XG59XG5mdW5jdGlvbiBpbm5lckNyZWF0ZU1lZGl1bShkZWZhdWx0cywgbWlkZGxld2FyZSkge1xuICAgIGlmIChtaWRkbGV3YXJlID09PSB2b2lkIDApIHsgbWlkZGxld2FyZSA9IEl0b0k7IH1cbiAgICB2YXIgYnVmZmVyID0gW107XG4gICAgdmFyIGFzc2lnbmVkID0gZmFsc2U7XG4gICAgdmFyIG1lZGl1bSA9IHtcbiAgICAgICAgcmVhZDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKGFzc2lnbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaWRlY2FyOiBjb3VsZCBub3QgYHJlYWRgIGZyb20gYW4gYGFzc2lnbmVkYCBtZWRpdW0uIGByZWFkYCBjb3VsZCBiZSB1c2VkIG9ubHkgd2l0aCBgdXNlTWVkaXVtYC4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChidWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcltidWZmZXIubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdHM7XG4gICAgICAgIH0sXG4gICAgICAgIHVzZU1lZGl1bTogZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgICAgIHZhciBpdGVtID0gbWlkZGxld2FyZShkYXRhLCBhc3NpZ25lZCk7XG4gICAgICAgICAgICBidWZmZXIucHVzaChpdGVtKTtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgYnVmZmVyID0gYnVmZmVyLmZpbHRlcihmdW5jdGlvbiAoeCkgeyByZXR1cm4geCAhPT0gaXRlbTsgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBhc3NpZ25TeW5jTWVkaXVtOiBmdW5jdGlvbiAoY2IpIHtcbiAgICAgICAgICAgIGFzc2lnbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHdoaWxlIChidWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNicyA9IGJ1ZmZlcjtcbiAgICAgICAgICAgICAgICBidWZmZXIgPSBbXTtcbiAgICAgICAgICAgICAgICBjYnMuZm9yRWFjaChjYik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBidWZmZXIgPSB7XG4gICAgICAgICAgICAgICAgcHVzaDogZnVuY3Rpb24gKHgpIHsgcmV0dXJuIGNiKHgpOyB9LFxuICAgICAgICAgICAgICAgIGZpbHRlcjogZnVuY3Rpb24gKCkgeyByZXR1cm4gYnVmZmVyOyB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgYXNzaWduTWVkaXVtOiBmdW5jdGlvbiAoY2IpIHtcbiAgICAgICAgICAgIGFzc2lnbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHZhciBwZW5kaW5nUXVldWUgPSBbXTtcbiAgICAgICAgICAgIGlmIChidWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNicyA9IGJ1ZmZlcjtcbiAgICAgICAgICAgICAgICBidWZmZXIgPSBbXTtcbiAgICAgICAgICAgICAgICBjYnMuZm9yRWFjaChjYik7XG4gICAgICAgICAgICAgICAgcGVuZGluZ1F1ZXVlID0gYnVmZmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGV4ZWN1dGVRdWV1ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2JzID0gcGVuZGluZ1F1ZXVlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdRdWV1ZSA9IFtdO1xuICAgICAgICAgICAgICAgIGNicy5mb3JFYWNoKGNiKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB2YXIgY3ljbGUgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGV4ZWN1dGVRdWV1ZSk7IH07XG4gICAgICAgICAgICBjeWNsZSgpO1xuICAgICAgICAgICAgYnVmZmVyID0ge1xuICAgICAgICAgICAgICAgIHB1c2g6IGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIHBlbmRpbmdRdWV1ZS5wdXNoKHgpO1xuICAgICAgICAgICAgICAgICAgICBjeWNsZSgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmdW5jdGlvbiAoZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHBlbmRpbmdRdWV1ZSA9IHBlbmRpbmdRdWV1ZS5maWx0ZXIoZmlsdGVyKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICB9O1xuICAgIHJldHVybiBtZWRpdW07XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWVkaXVtKGRlZmF1bHRzLCBtaWRkbGV3YXJlKSB7XG4gICAgaWYgKG1pZGRsZXdhcmUgPT09IHZvaWQgMCkgeyBtaWRkbGV3YXJlID0gSXRvSTsgfVxuICAgIHJldHVybiBpbm5lckNyZWF0ZU1lZGl1bShkZWZhdWx0cywgbWlkZGxld2FyZSk7XG59XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNpZGVjYXJNZWRpdW0ob3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHsgb3B0aW9ucyA9IHt9OyB9XG4gICAgdmFyIG1lZGl1bSA9IGlubmVyQ3JlYXRlTWVkaXVtKG51bGwpO1xuICAgIG1lZGl1bS5vcHRpb25zID0gX19hc3NpZ24oeyBhc3luYzogdHJ1ZSwgc3NyOiBmYWxzZSB9LCBvcHRpb25zKTtcbiAgICByZXR1cm4gbWVkaXVtO1xufVxuIiwiaW1wb3J0IHsgX19hc3NpZ24sIF9fcmVzdCB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xudmFyIFNpZGVDYXIgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgc2lkZUNhciA9IF9hLnNpZGVDYXIsIHJlc3QgPSBfX3Jlc3QoX2EsIFtcInNpZGVDYXJcIl0pO1xuICAgIGlmICghc2lkZUNhcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NpZGVjYXI6IHBsZWFzZSBwcm92aWRlIGBzaWRlQ2FyYCBwcm9wZXJ0eSB0byBpbXBvcnQgdGhlIHJpZ2h0IGNhcicpO1xuICAgIH1cbiAgICB2YXIgVGFyZ2V0ID0gc2lkZUNhci5yZWFkKCk7XG4gICAgaWYgKCFUYXJnZXQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaWRlY2FyIG1lZGl1bSBub3QgZm91bmQnKTtcbiAgICB9XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFyZ2V0LCBfX2Fzc2lnbih7fSwgcmVzdCkpO1xufTtcblNpZGVDYXIuaXNTaWRlQ2FyRXhwb3J0ID0gdHJ1ZTtcbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRTaWRlY2FyKG1lZGl1bSwgZXhwb3J0ZWQpIHtcbiAgICBtZWRpdW0udXNlTWVkaXVtKGV4cG9ydGVkKTtcbiAgICByZXR1cm4gU2lkZUNhcjtcbn1cbiIsImltcG9ydCB7IGNyZWF0ZVNpZGVjYXJNZWRpdW0gfSBmcm9tICd1c2Utc2lkZWNhcic7XG5leHBvcnQgdmFyIGVmZmVjdENhciA9IGNyZWF0ZVNpZGVjYXJNZWRpdW0oKTtcbiIsImltcG9ydCB7IF9fYXNzaWduLCBfX3Jlc3QgfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGZ1bGxXaWR0aENsYXNzTmFtZSwgemVyb1JpZ2h0Q2xhc3NOYW1lIH0gZnJvbSAncmVhY3QtcmVtb3ZlLXNjcm9sbC1iYXIvY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZU1lcmdlUmVmcyB9IGZyb20gJ3VzZS1jYWxsYmFjay1yZWYnO1xuaW1wb3J0IHsgZWZmZWN0Q2FyIH0gZnJvbSAnLi9tZWRpdW0nO1xudmFyIG5vdGhpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuO1xufTtcbi8qKlxuICogUmVtb3ZlcyBzY3JvbGxiYXIgZnJvbSB0aGUgcGFnZSBhbmQgY29udGFpbiB0aGUgc2Nyb2xsIHdpdGhpbiB0aGUgTG9ja1xuICovXG52YXIgUmVtb3ZlU2Nyb2xsID0gUmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbiAocHJvcHMsIHBhcmVudFJlZikge1xuICAgIHZhciByZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgdmFyIF9hID0gUmVhY3QudXNlU3RhdGUoe1xuICAgICAgICBvblNjcm9sbENhcHR1cmU6IG5vdGhpbmcsXG4gICAgICAgIG9uV2hlZWxDYXB0dXJlOiBub3RoaW5nLFxuICAgICAgICBvblRvdWNoTW92ZUNhcHR1cmU6IG5vdGhpbmcsXG4gICAgfSksIGNhbGxiYWNrcyA9IF9hWzBdLCBzZXRDYWxsYmFja3MgPSBfYVsxXTtcbiAgICB2YXIgZm9yd2FyZFByb3BzID0gcHJvcHMuZm9yd2FyZFByb3BzLCBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsIHJlbW92ZVNjcm9sbEJhciA9IHByb3BzLnJlbW92ZVNjcm9sbEJhciwgZW5hYmxlZCA9IHByb3BzLmVuYWJsZWQsIHNoYXJkcyA9IHByb3BzLnNoYXJkcywgc2lkZUNhciA9IHByb3BzLnNpZGVDYXIsIG5vSXNvbGF0aW9uID0gcHJvcHMubm9Jc29sYXRpb24sIGluZXJ0ID0gcHJvcHMuaW5lcnQsIGFsbG93UGluY2hab29tID0gcHJvcHMuYWxsb3dQaW5jaFpvb20sIF9iID0gcHJvcHMuYXMsIENvbnRhaW5lciA9IF9iID09PSB2b2lkIDAgPyAnZGl2JyA6IF9iLCBnYXBNb2RlID0gcHJvcHMuZ2FwTW9kZSwgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiZm9yd2FyZFByb3BzXCIsIFwiY2hpbGRyZW5cIiwgXCJjbGFzc05hbWVcIiwgXCJyZW1vdmVTY3JvbGxCYXJcIiwgXCJlbmFibGVkXCIsIFwic2hhcmRzXCIsIFwic2lkZUNhclwiLCBcIm5vSXNvbGF0aW9uXCIsIFwiaW5lcnRcIiwgXCJhbGxvd1BpbmNoWm9vbVwiLCBcImFzXCIsIFwiZ2FwTW9kZVwiXSk7XG4gICAgdmFyIFNpZGVDYXIgPSBzaWRlQ2FyO1xuICAgIHZhciBjb250YWluZXJSZWYgPSB1c2VNZXJnZVJlZnMoW3JlZiwgcGFyZW50UmVmXSk7XG4gICAgdmFyIGNvbnRhaW5lclByb3BzID0gX19hc3NpZ24oX19hc3NpZ24oe30sIHJlc3QpLCBjYWxsYmFja3MpO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcbiAgICAgICAgZW5hYmxlZCAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTaWRlQ2FyLCB7IHNpZGVDYXI6IGVmZmVjdENhciwgcmVtb3ZlU2Nyb2xsQmFyOiByZW1vdmVTY3JvbGxCYXIsIHNoYXJkczogc2hhcmRzLCBub0lzb2xhdGlvbjogbm9Jc29sYXRpb24sIGluZXJ0OiBpbmVydCwgc2V0Q2FsbGJhY2tzOiBzZXRDYWxsYmFja3MsIGFsbG93UGluY2hab29tOiAhIWFsbG93UGluY2hab29tLCBsb2NrUmVmOiByZWYsIGdhcE1vZGU6IGdhcE1vZGUgfSkpLFxuICAgICAgICBmb3J3YXJkUHJvcHMgPyAoUmVhY3QuY2xvbmVFbGVtZW50KFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pLCBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgY29udGFpbmVyUHJvcHMpLCB7IHJlZjogY29udGFpbmVyUmVmIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDb250YWluZXIsIF9fYXNzaWduKHt9LCBjb250YWluZXJQcm9wcywgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgcmVmOiBjb250YWluZXJSZWYgfSksIGNoaWxkcmVuKSkpKTtcbn0pO1xuUmVtb3ZlU2Nyb2xsLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBlbmFibGVkOiB0cnVlLFxuICAgIHJlbW92ZVNjcm9sbEJhcjogdHJ1ZSxcbiAgICBpbmVydDogZmFsc2UsXG59O1xuUmVtb3ZlU2Nyb2xsLmNsYXNzTmFtZXMgPSB7XG4gICAgZnVsbFdpZHRoOiBmdWxsV2lkdGhDbGFzc05hbWUsXG4gICAgemVyb1JpZ2h0OiB6ZXJvUmlnaHRDbGFzc05hbWUsXG59O1xuZXhwb3J0IHsgUmVtb3ZlU2Nyb2xsIH07XG4iLCJpbXBvcnQgeyBnZXROb25jZSB9IGZyb20gJ2dldC1ub25jZSc7XG5mdW5jdGlvbiBtYWtlU3R5bGVUYWcoKSB7XG4gICAgaWYgKCFkb2N1bWVudClcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgdmFyIHRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgdGFnLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgIHZhciBub25jZSA9IGdldE5vbmNlKCk7XG4gICAgaWYgKG5vbmNlKSB7XG4gICAgICAgIHRhZy5zZXRBdHRyaWJ1dGUoJ25vbmNlJywgbm9uY2UpO1xuICAgIH1cbiAgICByZXR1cm4gdGFnO1xufVxuZnVuY3Rpb24gaW5qZWN0U3R5bGVzKHRhZywgY3NzKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlmICh0YWcuc3R5bGVTaGVldCkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRhZy5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0YWcuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gICAgfVxufVxuZnVuY3Rpb24gaW5zZXJ0U3R5bGVUYWcodGFnKSB7XG4gICAgdmFyIGhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG4gICAgaGVhZC5hcHBlbmRDaGlsZCh0YWcpO1xufVxuZXhwb3J0IHZhciBzdHlsZXNoZWV0U2luZ2xldG9uID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBjb3VudGVyID0gMDtcbiAgICB2YXIgc3R5bGVzaGVldCA9IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYWRkOiBmdW5jdGlvbiAoc3R5bGUpIHtcbiAgICAgICAgICAgIGlmIChjb3VudGVyID09IDApIHtcbiAgICAgICAgICAgICAgICBpZiAoKHN0eWxlc2hlZXQgPSBtYWtlU3R5bGVUYWcoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaW5qZWN0U3R5bGVzKHN0eWxlc2hlZXQsIHN0eWxlKTtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0U3R5bGVUYWcoc3R5bGVzaGVldCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY291bnRlcisrO1xuICAgICAgICB9LFxuICAgICAgICByZW1vdmU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNvdW50ZXItLTtcbiAgICAgICAgICAgIGlmICghY291bnRlciAmJiBzdHlsZXNoZWV0KSB7XG4gICAgICAgICAgICAgICAgc3R5bGVzaGVldC5wYXJlbnROb2RlICYmIHN0eWxlc2hlZXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZXNoZWV0KTtcbiAgICAgICAgICAgICAgICBzdHlsZXNoZWV0ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xufTtcbiIsInZhciBjdXJyZW50Tm9uY2U7XG5leHBvcnQgdmFyIHNldE5vbmNlID0gZnVuY3Rpb24gKG5vbmNlKSB7XG4gICAgY3VycmVudE5vbmNlID0gbm9uY2U7XG59O1xuZXhwb3J0IHZhciBnZXROb25jZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoY3VycmVudE5vbmNlKSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50Tm9uY2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgX193ZWJwYWNrX25vbmNlX18gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBfX3dlYnBhY2tfbm9uY2VfXztcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG4iLCJpbXBvcnQgeyBzdHlsZUhvb2tTaW5nbGV0b24gfSBmcm9tICcuL2hvb2snO1xuLyoqXG4gKiBjcmVhdGUgYSBDb21wb25lbnQgdG8gYWRkIHN0eWxlcyBvbiBkZW1hbmRcbiAqIC0gc3R5bGVzIGFyZSBhZGRlZCB3aGVuIGZpcnN0IGluc3RhbmNlIGlzIG1vdW50ZWRcbiAqIC0gc3R5bGVzIGFyZSByZW1vdmVkIHdoZW4gdGhlIGxhc3QgaW5zdGFuY2UgaXMgdW5tb3VudGVkXG4gKiAtIGNoYW5naW5nIHN0eWxlcyBpbiBydW50aW1lIGRvZXMgbm90aGluZyB1bmxlc3MgZHluYW1pYyBpcyBzZXQuIEJ1dCB3aXRoIG11bHRpcGxlIGNvbXBvbmVudHMgdGhhdCBjYW4gbGVhZCB0byB0aGUgdW5kZWZpbmVkIGJlaGF2aW9yXG4gKi9cbmV4cG9ydCB2YXIgc3R5bGVTaW5nbGV0b24gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHVzZVN0eWxlID0gc3R5bGVIb29rU2luZ2xldG9uKCk7XG4gICAgdmFyIFNoZWV0ID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgIHZhciBzdHlsZXMgPSBfYS5zdHlsZXMsIGR5bmFtaWMgPSBfYS5keW5hbWljO1xuICAgICAgICB1c2VTdHlsZShzdHlsZXMsIGR5bmFtaWMpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICAgIHJldHVybiBTaGVldDtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzdHlsZXNoZWV0U2luZ2xldG9uIH0gZnJvbSAnLi9zaW5nbGV0b24nO1xuLyoqXG4gKiBjcmVhdGVzIGEgaG9vayB0byBjb250cm9sIHN0eWxlIHNpbmdsZXRvblxuICogQHNlZSB7QGxpbmsgc3R5bGVTaW5nbGV0b259IGZvciBhIHNhZmVyIGNvbXBvbmVudCB2ZXJzaW9uXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB1c2VTdHlsZSA9IHN0eWxlSG9va1NpbmdsZXRvbigpO1xuICogLy8vXG4gKiB1c2VTdHlsZSgnYm9keSB7IG92ZXJmbG93OiBoaWRkZW59Jyk7XG4gKi9cbmV4cG9ydCB2YXIgc3R5bGVIb29rU2luZ2xldG9uID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBzaGVldCA9IHN0eWxlc2hlZXRTaW5nbGV0b24oKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHN0eWxlcywgaXNEeW5hbWljKSB7XG4gICAgICAgIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzaGVldC5hZGQoc3R5bGVzKTtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc2hlZXQucmVtb3ZlKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9LCBbc3R5bGVzICYmIGlzRHluYW1pY10pO1xuICAgIH07XG59O1xuIiwiZXhwb3J0IHZhciB6ZXJvR2FwID0ge1xuICAgIGxlZnQ6IDAsXG4gICAgdG9wOiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIGdhcDogMCxcbn07XG52YXIgcGFyc2UgPSBmdW5jdGlvbiAoeCkgeyByZXR1cm4gcGFyc2VJbnQoeCB8fCAnJywgMTApIHx8IDA7IH07XG52YXIgZ2V0T2Zmc2V0ID0gZnVuY3Rpb24gKGdhcE1vZGUpIHtcbiAgICB2YXIgY3MgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KTtcbiAgICB2YXIgbGVmdCA9IGNzW2dhcE1vZGUgPT09ICdwYWRkaW5nJyA/ICdwYWRkaW5nTGVmdCcgOiAnbWFyZ2luTGVmdCddO1xuICAgIHZhciB0b3AgPSBjc1tnYXBNb2RlID09PSAncGFkZGluZycgPyAncGFkZGluZ1RvcCcgOiAnbWFyZ2luVG9wJ107XG4gICAgdmFyIHJpZ2h0ID0gY3NbZ2FwTW9kZSA9PT0gJ3BhZGRpbmcnID8gJ3BhZGRpbmdSaWdodCcgOiAnbWFyZ2luUmlnaHQnXTtcbiAgICByZXR1cm4gW3BhcnNlKGxlZnQpLCBwYXJzZSh0b3ApLCBwYXJzZShyaWdodCldO1xufTtcbmV4cG9ydCB2YXIgZ2V0R2FwV2lkdGggPSBmdW5jdGlvbiAoZ2FwTW9kZSkge1xuICAgIGlmIChnYXBNb2RlID09PSB2b2lkIDApIHsgZ2FwTW9kZSA9ICdtYXJnaW4nOyB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiB6ZXJvR2FwO1xuICAgIH1cbiAgICB2YXIgb2Zmc2V0cyA9IGdldE9mZnNldChnYXBNb2RlKTtcbiAgICB2YXIgZG9jdW1lbnRXaWR0aCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICB2YXIgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICByZXR1cm4ge1xuICAgICAgICBsZWZ0OiBvZmZzZXRzWzBdLFxuICAgICAgICB0b3A6IG9mZnNldHNbMV0sXG4gICAgICAgIHJpZ2h0OiBvZmZzZXRzWzJdLFxuICAgICAgICBnYXA6IE1hdGgubWF4KDAsIHdpbmRvd1dpZHRoIC0gZG9jdW1lbnRXaWR0aCArIG9mZnNldHNbMl0gLSBvZmZzZXRzWzBdKSxcbiAgICB9O1xufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHN0eWxlU2luZ2xldG9uIH0gZnJvbSAncmVhY3Qtc3R5bGUtc2luZ2xldG9uJztcbmltcG9ydCB7IGZ1bGxXaWR0aENsYXNzTmFtZSwgemVyb1JpZ2h0Q2xhc3NOYW1lLCBub1Njcm9sbGJhcnNDbGFzc05hbWUsIHJlbW92ZWRCYXJTaXplVmFyaWFibGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRHYXBXaWR0aCB9IGZyb20gJy4vdXRpbHMnO1xudmFyIFN0eWxlID0gc3R5bGVTaW5nbGV0b24oKTtcbmV4cG9ydCB2YXIgbG9ja0F0dHJpYnV0ZSA9ICdkYXRhLXNjcm9sbC1sb2NrZWQnO1xuLy8gaW1wb3J0YW50IHRpcCAtIG9uY2Ugd2UgbWVhc3VyZSBzY3JvbGxCYXIgd2lkdGggYW5kIHJlbW92ZSB0aGVtXG4vLyB3ZSBjb3VsZCBub3QgcmVwZWF0IHRoaXMgb3BlcmF0aW9uXG4vLyB0aHVzIHdlIGFyZSB1c2luZyBzdHlsZS1zaW5nbGV0b24gLSBvbmx5IHRoZSBmaXJzdCBcInlldCBjb3JyZWN0XCIgc3R5bGUgd2lsbCBiZSBhcHBsaWVkLlxudmFyIGdldFN0eWxlcyA9IGZ1bmN0aW9uIChfYSwgYWxsb3dSZWxhdGl2ZSwgZ2FwTW9kZSwgaW1wb3J0YW50KSB7XG4gICAgdmFyIGxlZnQgPSBfYS5sZWZ0LCB0b3AgPSBfYS50b3AsIHJpZ2h0ID0gX2EucmlnaHQsIGdhcCA9IF9hLmdhcDtcbiAgICBpZiAoZ2FwTW9kZSA9PT0gdm9pZCAwKSB7IGdhcE1vZGUgPSAnbWFyZ2luJzsgfVxuICAgIHJldHVybiBcIlxcbiAgLlwiLmNvbmNhdChub1Njcm9sbGJhcnNDbGFzc05hbWUsIFwiIHtcXG4gICBvdmVyZmxvdzogaGlkZGVuIFwiKS5jb25jYXQoaW1wb3J0YW50LCBcIjtcXG4gICBwYWRkaW5nLXJpZ2h0OiBcIikuY29uY2F0KGdhcCwgXCJweCBcIikuY29uY2F0KGltcG9ydGFudCwgXCI7XFxuICB9XFxuICBib2R5W1wiKS5jb25jYXQobG9ja0F0dHJpYnV0ZSwgXCJdIHtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbiBcIikuY29uY2F0KGltcG9ydGFudCwgXCI7XFxuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XFxuICAgIFwiKS5jb25jYXQoW1xuICAgICAgICBhbGxvd1JlbGF0aXZlICYmIFwicG9zaXRpb246IHJlbGF0aXZlIFwiLmNvbmNhdChpbXBvcnRhbnQsIFwiO1wiKSxcbiAgICAgICAgZ2FwTW9kZSA9PT0gJ21hcmdpbicgJiZcbiAgICAgICAgICAgIFwiXFxuICAgIHBhZGRpbmctbGVmdDogXCIuY29uY2F0KGxlZnQsIFwicHg7XFxuICAgIHBhZGRpbmctdG9wOiBcIikuY29uY2F0KHRvcCwgXCJweDtcXG4gICAgcGFkZGluZy1yaWdodDogXCIpLmNvbmNhdChyaWdodCwgXCJweDtcXG4gICAgbWFyZ2luLWxlZnQ6MDtcXG4gICAgbWFyZ2luLXRvcDowO1xcbiAgICBtYXJnaW4tcmlnaHQ6IFwiKS5jb25jYXQoZ2FwLCBcInB4IFwiKS5jb25jYXQoaW1wb3J0YW50LCBcIjtcXG4gICAgXCIpLFxuICAgICAgICBnYXBNb2RlID09PSAncGFkZGluZycgJiYgXCJwYWRkaW5nLXJpZ2h0OiBcIi5jb25jYXQoZ2FwLCBcInB4IFwiKS5jb25jYXQoaW1wb3J0YW50LCBcIjtcIiksXG4gICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcnKSwgXCJcXG4gIH1cXG4gIFxcbiAgLlwiKS5jb25jYXQoemVyb1JpZ2h0Q2xhc3NOYW1lLCBcIiB7XFxuICAgIHJpZ2h0OiBcIikuY29uY2F0KGdhcCwgXCJweCBcIikuY29uY2F0KGltcG9ydGFudCwgXCI7XFxuICB9XFxuICBcXG4gIC5cIikuY29uY2F0KGZ1bGxXaWR0aENsYXNzTmFtZSwgXCIge1xcbiAgICBtYXJnaW4tcmlnaHQ6IFwiKS5jb25jYXQoZ2FwLCBcInB4IFwiKS5jb25jYXQoaW1wb3J0YW50LCBcIjtcXG4gIH1cXG4gIFxcbiAgLlwiKS5jb25jYXQoemVyb1JpZ2h0Q2xhc3NOYW1lLCBcIiAuXCIpLmNvbmNhdCh6ZXJvUmlnaHRDbGFzc05hbWUsIFwiIHtcXG4gICAgcmlnaHQ6IDAgXCIpLmNvbmNhdChpbXBvcnRhbnQsIFwiO1xcbiAgfVxcbiAgXFxuICAuXCIpLmNvbmNhdChmdWxsV2lkdGhDbGFzc05hbWUsIFwiIC5cIikuY29uY2F0KGZ1bGxXaWR0aENsYXNzTmFtZSwgXCIge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAgXCIpLmNvbmNhdChpbXBvcnRhbnQsIFwiO1xcbiAgfVxcbiAgXFxuICBib2R5W1wiKS5jb25jYXQobG9ja0F0dHJpYnV0ZSwgXCJdIHtcXG4gICAgXCIpLmNvbmNhdChyZW1vdmVkQmFyU2l6ZVZhcmlhYmxlLCBcIjogXCIpLmNvbmNhdChnYXAsIFwicHg7XFxuICB9XFxuXCIpO1xufTtcbnZhciBnZXRDdXJyZW50VXNlQ291bnRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY291bnRlciA9IHBhcnNlSW50KGRvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKGxvY2tBdHRyaWJ1dGUpIHx8ICcwJywgMTApO1xuICAgIHJldHVybiBpc0Zpbml0ZShjb3VudGVyKSA/IGNvdW50ZXIgOiAwO1xufTtcbmV4cG9ydCB2YXIgdXNlTG9ja0F0dHJpYnV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZShsb2NrQXR0cmlidXRlLCAoZ2V0Q3VycmVudFVzZUNvdW50ZXIoKSArIDEpLnRvU3RyaW5nKCkpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIG5ld0NvdW50ZXIgPSBnZXRDdXJyZW50VXNlQ291bnRlcigpIC0gMTtcbiAgICAgICAgICAgIGlmIChuZXdDb3VudGVyIDw9IDApIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZShsb2NrQXR0cmlidXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKGxvY2tBdHRyaWJ1dGUsIG5ld0NvdW50ZXIudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xufTtcbi8qKlxuICogUmVtb3ZlcyBwYWdlIHNjcm9sbGJhciBhbmQgYmxvY2tzIHBhZ2Ugc2Nyb2xsIHdoZW4gbW91bnRlZFxuICovXG5leHBvcnQgdmFyIFJlbW92ZVNjcm9sbEJhciA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBub1JlbGF0aXZlID0gX2Eubm9SZWxhdGl2ZSwgbm9JbXBvcnRhbnQgPSBfYS5ub0ltcG9ydGFudCwgX2IgPSBfYS5nYXBNb2RlLCBnYXBNb2RlID0gX2IgPT09IHZvaWQgMCA/ICdtYXJnaW4nIDogX2I7XG4gICAgdXNlTG9ja0F0dHJpYnV0ZSgpO1xuICAgIC8qXG4gICAgIGdhcCB3aWxsIGJlIG1lYXN1cmVkIG9uIGV2ZXJ5IGNvbXBvbmVudCBtb3VudFxuICAgICBob3dldmVyIGl0IHdpbGwgYmUgdXNlZCBvbmx5IGJ5IHRoZSBcImZpcnN0XCIgaW52b2NhdGlvblxuICAgICBkdWUgdG8gc2luZ2xldG9uIG5hdHVyZSBvZiA8U3R5bGVcbiAgICAgKi9cbiAgICB2YXIgZ2FwID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7IHJldHVybiBnZXRHYXBXaWR0aChnYXBNb2RlKTsgfSwgW2dhcE1vZGVdKTtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZSwgeyBzdHlsZXM6IGdldFN0eWxlcyhnYXAsICFub1JlbGF0aXZlLCBnYXBNb2RlLCAhbm9JbXBvcnRhbnQgPyAnIWltcG9ydGFudCcgOiAnJykgfSk7XG59O1xuIiwidmFyIHBhc3NpdmVTdXBwb3J0ZWQgPSBmYWxzZTtcbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHRyeSB7XG4gICAgICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAncGFzc2l2ZScsIHtcbiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHBhc3NpdmVTdXBwb3J0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBvcHRpb25zLCBvcHRpb25zKTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigndGVzdCcsIG9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHBhc3NpdmVTdXBwb3J0ZWQgPSBmYWxzZTtcbiAgICB9XG59XG5leHBvcnQgdmFyIG5vblBhc3NpdmUgPSBwYXNzaXZlU3VwcG9ydGVkID8geyBwYXNzaXZlOiBmYWxzZSB9IDogZmFsc2U7XG4iLCJ2YXIgYWx3YXlzQ29udGFpbnNTY3JvbGwgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgIC8vIHRleHRhcmVhIHdpbGwgYWx3YXlzIF9jb250YWluXyBzY3JvbGwgaW5zaWRlIHNlbGYuIEl0IG9ubHkgY2FuIGJlIGhpZGRlblxuICAgIHJldHVybiBub2RlLnRhZ05hbWUgPT09ICdURVhUQVJFQSc7XG59O1xudmFyIGVsZW1lbnRDYW5CZVNjcm9sbGVkID0gZnVuY3Rpb24gKG5vZGUsIG92ZXJmbG93KSB7XG4gICAgaWYgKCEobm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIHN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICAgIHJldHVybiAoXG4gICAgLy8gbm90LW5vdC1zY3JvbGxhYmxlXG4gICAgc3R5bGVzW292ZXJmbG93XSAhPT0gJ2hpZGRlbicgJiZcbiAgICAgICAgLy8gY29udGFpbnMgc2Nyb2xsIGluc2lkZSBzZWxmXG4gICAgICAgICEoc3R5bGVzLm92ZXJmbG93WSA9PT0gc3R5bGVzLm92ZXJmbG93WCAmJiAhYWx3YXlzQ29udGFpbnNTY3JvbGwobm9kZSkgJiYgc3R5bGVzW292ZXJmbG93XSA9PT0gJ3Zpc2libGUnKSk7XG59O1xudmFyIGVsZW1lbnRDb3VsZEJlVlNjcm9sbGVkID0gZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGVsZW1lbnRDYW5CZVNjcm9sbGVkKG5vZGUsICdvdmVyZmxvd1knKTsgfTtcbnZhciBlbGVtZW50Q291bGRCZUhTY3JvbGxlZCA9IGZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBlbGVtZW50Q2FuQmVTY3JvbGxlZChub2RlLCAnb3ZlcmZsb3dYJyk7IH07XG5leHBvcnQgdmFyIGxvY2F0aW9uQ291bGRCZVNjcm9sbGVkID0gZnVuY3Rpb24gKGF4aXMsIG5vZGUpIHtcbiAgICB2YXIgb3duZXJEb2N1bWVudCA9IG5vZGUub3duZXJEb2N1bWVudDtcbiAgICB2YXIgY3VycmVudCA9IG5vZGU7XG4gICAgZG8ge1xuICAgICAgICAvLyBTa2lwIG92ZXIgc2hhZG93IHJvb3RcbiAgICAgICAgaWYgKHR5cGVvZiBTaGFkb3dSb290ICE9PSAndW5kZWZpbmVkJyAmJiBjdXJyZW50IGluc3RhbmNlb2YgU2hhZG93Um9vdCkge1xuICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuaG9zdDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaXNTY3JvbGxhYmxlID0gZWxlbWVudENvdWxkQmVTY3JvbGxlZChheGlzLCBjdXJyZW50KTtcbiAgICAgICAgaWYgKGlzU2Nyb2xsYWJsZSkge1xuICAgICAgICAgICAgdmFyIF9hID0gZ2V0U2Nyb2xsVmFyaWFibGVzKGF4aXMsIGN1cnJlbnQpLCBzY3JvbGxIZWlnaHQgPSBfYVsxXSwgY2xpZW50SGVpZ2h0ID0gX2FbMl07XG4gICAgICAgICAgICBpZiAoc2Nyb2xsSGVpZ2h0ID4gY2xpZW50SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50Tm9kZTtcbiAgICB9IHdoaWxlIChjdXJyZW50ICYmIGN1cnJlbnQgIT09IG93bmVyRG9jdW1lbnQuYm9keSk7XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcbnZhciBnZXRWU2Nyb2xsVmFyaWFibGVzID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIHNjcm9sbFRvcCA9IF9hLnNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0ID0gX2Euc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgPSBfYS5jbGllbnRIZWlnaHQ7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgc2Nyb2xsVG9wLFxuICAgICAgICBzY3JvbGxIZWlnaHQsXG4gICAgICAgIGNsaWVudEhlaWdodCxcbiAgICBdO1xufTtcbnZhciBnZXRIU2Nyb2xsVmFyaWFibGVzID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIHNjcm9sbExlZnQgPSBfYS5zY3JvbGxMZWZ0LCBzY3JvbGxXaWR0aCA9IF9hLnNjcm9sbFdpZHRoLCBjbGllbnRXaWR0aCA9IF9hLmNsaWVudFdpZHRoO1xuICAgIHJldHVybiBbXG4gICAgICAgIHNjcm9sbExlZnQsXG4gICAgICAgIHNjcm9sbFdpZHRoLFxuICAgICAgICBjbGllbnRXaWR0aCxcbiAgICBdO1xufTtcbnZhciBlbGVtZW50Q291bGRCZVNjcm9sbGVkID0gZnVuY3Rpb24gKGF4aXMsIG5vZGUpIHtcbiAgICByZXR1cm4gYXhpcyA9PT0gJ3YnID8gZWxlbWVudENvdWxkQmVWU2Nyb2xsZWQobm9kZSkgOiBlbGVtZW50Q291bGRCZUhTY3JvbGxlZChub2RlKTtcbn07XG52YXIgZ2V0U2Nyb2xsVmFyaWFibGVzID0gZnVuY3Rpb24gKGF4aXMsIG5vZGUpIHtcbiAgICByZXR1cm4gYXhpcyA9PT0gJ3YnID8gZ2V0VlNjcm9sbFZhcmlhYmxlcyhub2RlKSA6IGdldEhTY3JvbGxWYXJpYWJsZXMobm9kZSk7XG59O1xudmFyIGdldERpcmVjdGlvbkZhY3RvciA9IGZ1bmN0aW9uIChheGlzLCBkaXJlY3Rpb24pIHtcbiAgICAvKipcbiAgICAgKiBJZiB0aGUgZWxlbWVudCdzIGRpcmVjdGlvbiBpcyBydGwgKHJpZ2h0LXRvLWxlZnQpLCB0aGVuIHNjcm9sbExlZnQgaXMgMCB3aGVuIHRoZSBzY3JvbGxiYXIgaXMgYXQgaXRzIHJpZ2h0bW9zdCBwb3NpdGlvbixcbiAgICAgKiBhbmQgdGhlbiBpbmNyZWFzaW5nbHkgbmVnYXRpdmUgYXMgeW91IHNjcm9sbCB0b3dhcmRzIHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQuXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRWxlbWVudC9zY3JvbGxMZWZ0XG4gICAgICovXG4gICAgcmV0dXJuIGF4aXMgPT09ICdoJyAmJiBkaXJlY3Rpb24gPT09ICdydGwnID8gLTEgOiAxO1xufTtcbmV4cG9ydCB2YXIgaGFuZGxlU2Nyb2xsID0gZnVuY3Rpb24gKGF4aXMsIGVuZFRhcmdldCwgZXZlbnQsIHNvdXJjZURlbHRhLCBub092ZXJzY3JvbGwpIHtcbiAgICB2YXIgZGlyZWN0aW9uRmFjdG9yID0gZ2V0RGlyZWN0aW9uRmFjdG9yKGF4aXMsIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVuZFRhcmdldCkuZGlyZWN0aW9uKTtcbiAgICB2YXIgZGVsdGEgPSBkaXJlY3Rpb25GYWN0b3IgKiBzb3VyY2VEZWx0YTtcbiAgICAvLyBmaW5kIHNjcm9sbGFibGUgdGFyZ2V0XG4gICAgdmFyIHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICB2YXIgdGFyZ2V0SW5Mb2NrID0gZW5kVGFyZ2V0LmNvbnRhaW5zKHRhcmdldCk7XG4gICAgdmFyIHNob3VsZENhbmNlbFNjcm9sbCA9IGZhbHNlO1xuICAgIHZhciBpc0RlbHRhUG9zaXRpdmUgPSBkZWx0YSA+IDA7XG4gICAgdmFyIGF2YWlsYWJsZVNjcm9sbCA9IDA7XG4gICAgdmFyIGF2YWlsYWJsZVNjcm9sbFRvcCA9IDA7XG4gICAgZG8ge1xuICAgICAgICB2YXIgX2EgPSBnZXRTY3JvbGxWYXJpYWJsZXMoYXhpcywgdGFyZ2V0KSwgcG9zaXRpb24gPSBfYVswXSwgc2Nyb2xsXzEgPSBfYVsxXSwgY2FwYWNpdHkgPSBfYVsyXTtcbiAgICAgICAgdmFyIGVsZW1lbnRTY3JvbGwgPSBzY3JvbGxfMSAtIGNhcGFjaXR5IC0gZGlyZWN0aW9uRmFjdG9yICogcG9zaXRpb247XG4gICAgICAgIGlmIChwb3NpdGlvbiB8fCBlbGVtZW50U2Nyb2xsKSB7XG4gICAgICAgICAgICBpZiAoZWxlbWVudENvdWxkQmVTY3JvbGxlZChheGlzLCB0YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlU2Nyb2xsICs9IGVsZW1lbnRTY3JvbGw7XG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlU2Nyb2xsVG9wICs9IHBvc2l0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBTaGFkb3dSb290KSB7XG4gICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQuaG9zdDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRhcmdldCA9IHRhcmdldC5wYXJlbnROb2RlO1xuICAgICAgICB9XG4gICAgfSB3aGlsZSAoXG4gICAgLy8gcG9ydGFsZWQgY29udGVudFxuICAgICghdGFyZ2V0SW5Mb2NrICYmIHRhcmdldCAhPT0gZG9jdW1lbnQuYm9keSkgfHxcbiAgICAgICAgLy8gc2VsZiBjb250ZW50XG4gICAgICAgICh0YXJnZXRJbkxvY2sgJiYgKGVuZFRhcmdldC5jb250YWlucyh0YXJnZXQpIHx8IGVuZFRhcmdldCA9PT0gdGFyZ2V0KSkpO1xuICAgIC8vIGhhbmRsZSBlcHNpbG9uIGFyb3VuZCAwIChub24gc3RhbmRhcmQgem9vbSBsZXZlbHMpXG4gICAgaWYgKGlzRGVsdGFQb3NpdGl2ZSAmJlxuICAgICAgICAoKG5vT3ZlcnNjcm9sbCAmJiBNYXRoLmFicyhhdmFpbGFibGVTY3JvbGwpIDwgMSkgfHwgKCFub092ZXJzY3JvbGwgJiYgZGVsdGEgPiBhdmFpbGFibGVTY3JvbGwpKSkge1xuICAgICAgICBzaG91bGRDYW5jZWxTY3JvbGwgPSB0cnVlO1xuICAgIH1cbiAgICBlbHNlIGlmICghaXNEZWx0YVBvc2l0aXZlICYmXG4gICAgICAgICgobm9PdmVyc2Nyb2xsICYmIE1hdGguYWJzKGF2YWlsYWJsZVNjcm9sbFRvcCkgPCAxKSB8fCAoIW5vT3ZlcnNjcm9sbCAmJiAtZGVsdGEgPiBhdmFpbGFibGVTY3JvbGxUb3ApKSkge1xuICAgICAgICBzaG91bGRDYW5jZWxTY3JvbGwgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gc2hvdWxkQ2FuY2VsU2Nyb2xsO1xufTtcbiIsImltcG9ydCB7IF9fc3ByZWFkQXJyYXkgfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFJlbW92ZVNjcm9sbEJhciB9IGZyb20gJ3JlYWN0LXJlbW92ZS1zY3JvbGwtYmFyJztcbmltcG9ydCB7IHN0eWxlU2luZ2xldG9uIH0gZnJvbSAncmVhY3Qtc3R5bGUtc2luZ2xldG9uJztcbmltcG9ydCB7IG5vblBhc3NpdmUgfSBmcm9tICcuL2FnZ3Jlc2l2ZUNhcHR1cmUnO1xuaW1wb3J0IHsgaGFuZGxlU2Nyb2xsLCBsb2NhdGlvbkNvdWxkQmVTY3JvbGxlZCB9IGZyb20gJy4vaGFuZGxlU2Nyb2xsJztcbmV4cG9ydCB2YXIgZ2V0VG91Y2hYWSA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHJldHVybiAnY2hhbmdlZFRvdWNoZXMnIGluIGV2ZW50ID8gW2V2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFgsIGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFldIDogWzAsIDBdO1xufTtcbmV4cG9ydCB2YXIgZ2V0RGVsdGFYWSA9IGZ1bmN0aW9uIChldmVudCkgeyByZXR1cm4gW2V2ZW50LmRlbHRhWCwgZXZlbnQuZGVsdGFZXTsgfTtcbnZhciBleHRyYWN0UmVmID0gZnVuY3Rpb24gKHJlZikge1xuICAgIHJldHVybiByZWYgJiYgJ2N1cnJlbnQnIGluIHJlZiA/IHJlZi5jdXJyZW50IDogcmVmO1xufTtcbnZhciBkZWx0YUNvbXBhcmUgPSBmdW5jdGlvbiAoeCwgeSkgeyByZXR1cm4geFswXSA9PT0geVswXSAmJiB4WzFdID09PSB5WzFdOyB9O1xudmFyIGdlbmVyYXRlU3R5bGUgPSBmdW5jdGlvbiAoaWQpIHsgcmV0dXJuIFwiXFxuICAuYmxvY2staW50ZXJhY3Rpdml0eS1cIi5jb25jYXQoaWQsIFwiIHtwb2ludGVyLWV2ZW50czogbm9uZTt9XFxuICAuYWxsb3ctaW50ZXJhY3Rpdml0eS1cIikuY29uY2F0KGlkLCBcIiB7cG9pbnRlci1ldmVudHM6IGFsbDt9XFxuXCIpOyB9O1xudmFyIGlkQ291bnRlciA9IDA7XG52YXIgbG9ja1N0YWNrID0gW107XG5leHBvcnQgZnVuY3Rpb24gUmVtb3ZlU2Nyb2xsU2lkZUNhcihwcm9wcykge1xuICAgIHZhciBzaG91bGRQcmV2ZW50UXVldWUgPSBSZWFjdC51c2VSZWYoW10pO1xuICAgIHZhciB0b3VjaFN0YXJ0UmVmID0gUmVhY3QudXNlUmVmKFswLCAwXSk7XG4gICAgdmFyIGFjdGl2ZUF4aXMgPSBSZWFjdC51c2VSZWYoKTtcbiAgICB2YXIgaWQgPSBSZWFjdC51c2VTdGF0ZShpZENvdW50ZXIrKylbMF07XG4gICAgdmFyIFN0eWxlID0gUmVhY3QudXNlU3RhdGUoc3R5bGVTaW5nbGV0b24pWzBdO1xuICAgIHZhciBsYXN0UHJvcHMgPSBSZWFjdC51c2VSZWYocHJvcHMpO1xuICAgIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxhc3RQcm9wcy5jdXJyZW50ID0gcHJvcHM7XG4gICAgfSwgW3Byb3BzXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHByb3BzLmluZXJ0KSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJibG9jay1pbnRlcmFjdGl2aXR5LVwiLmNvbmNhdChpZCkpO1xuICAgICAgICAgICAgdmFyIGFsbG93XzEgPSBfX3NwcmVhZEFycmF5KFtwcm9wcy5sb2NrUmVmLmN1cnJlbnRdLCAocHJvcHMuc2hhcmRzIHx8IFtdKS5tYXAoZXh0cmFjdFJlZiksIHRydWUpLmZpbHRlcihCb29sZWFuKTtcbiAgICAgICAgICAgIGFsbG93XzEuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHsgcmV0dXJuIGVsLmNsYXNzTGlzdC5hZGQoXCJhbGxvdy1pbnRlcmFjdGl2aXR5LVwiLmNvbmNhdChpZCkpOyB9KTtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwiYmxvY2staW50ZXJhY3Rpdml0eS1cIi5jb25jYXQoaWQpKTtcbiAgICAgICAgICAgICAgICBhbGxvd18xLmZvckVhY2goZnVuY3Rpb24gKGVsKSB7IHJldHVybiBlbC5jbGFzc0xpc3QucmVtb3ZlKFwiYWxsb3ctaW50ZXJhY3Rpdml0eS1cIi5jb25jYXQoaWQpKTsgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9LCBbcHJvcHMuaW5lcnQsIHByb3BzLmxvY2tSZWYuY3VycmVudCwgcHJvcHMuc2hhcmRzXSk7XG4gICAgdmFyIHNob3VsZENhbmNlbEV2ZW50ID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGV2ZW50LCBwYXJlbnQpIHtcbiAgICAgICAgaWYgKCgndG91Y2hlcycgaW4gZXZlbnQgJiYgZXZlbnQudG91Y2hlcy5sZW5ndGggPT09IDIpIHx8IChldmVudC50eXBlID09PSAnd2hlZWwnICYmIGV2ZW50LmN0cmxLZXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gIWxhc3RQcm9wcy5jdXJyZW50LmFsbG93UGluY2hab29tO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0b3VjaCA9IGdldFRvdWNoWFkoZXZlbnQpO1xuICAgICAgICB2YXIgdG91Y2hTdGFydCA9IHRvdWNoU3RhcnRSZWYuY3VycmVudDtcbiAgICAgICAgdmFyIGRlbHRhWCA9ICdkZWx0YVgnIGluIGV2ZW50ID8gZXZlbnQuZGVsdGFYIDogdG91Y2hTdGFydFswXSAtIHRvdWNoWzBdO1xuICAgICAgICB2YXIgZGVsdGFZID0gJ2RlbHRhWScgaW4gZXZlbnQgPyBldmVudC5kZWx0YVkgOiB0b3VjaFN0YXJ0WzFdIC0gdG91Y2hbMV07XG4gICAgICAgIHZhciBjdXJyZW50QXhpcztcbiAgICAgICAgdmFyIHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgdmFyIG1vdmVEaXJlY3Rpb24gPSBNYXRoLmFicyhkZWx0YVgpID4gTWF0aC5hYnMoZGVsdGFZKSA/ICdoJyA6ICd2JztcbiAgICAgICAgLy8gYWxsb3cgaG9yaXpvbnRhbCB0b3VjaCBtb3ZlIG9uIFJhbmdlIGlucHV0cy4gVGhleSB3aWxsIG5vdCBjYXVzZSBhbnkgc2Nyb2xsXG4gICAgICAgIGlmICgndG91Y2hlcycgaW4gZXZlbnQgJiYgbW92ZURpcmVjdGlvbiA9PT0gJ2gnICYmIHRhcmdldC50eXBlID09PSAncmFuZ2UnKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNhbkJlU2Nyb2xsZWRJbk1haW5EaXJlY3Rpb24gPSBsb2NhdGlvbkNvdWxkQmVTY3JvbGxlZChtb3ZlRGlyZWN0aW9uLCB0YXJnZXQpO1xuICAgICAgICBpZiAoIWNhbkJlU2Nyb2xsZWRJbk1haW5EaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYW5CZVNjcm9sbGVkSW5NYWluRGlyZWN0aW9uKSB7XG4gICAgICAgICAgICBjdXJyZW50QXhpcyA9IG1vdmVEaXJlY3Rpb247XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50QXhpcyA9IG1vdmVEaXJlY3Rpb24gPT09ICd2JyA/ICdoJyA6ICd2JztcbiAgICAgICAgICAgIGNhbkJlU2Nyb2xsZWRJbk1haW5EaXJlY3Rpb24gPSBsb2NhdGlvbkNvdWxkQmVTY3JvbGxlZChtb3ZlRGlyZWN0aW9uLCB0YXJnZXQpO1xuICAgICAgICAgICAgLy8gb3RoZXIgYXhpcyBtaWdodCBiZSBub3Qgc2Nyb2xsYWJsZVxuICAgICAgICB9XG4gICAgICAgIGlmICghY2FuQmVTY3JvbGxlZEluTWFpbkRpcmVjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYWN0aXZlQXhpcy5jdXJyZW50ICYmICdjaGFuZ2VkVG91Y2hlcycgaW4gZXZlbnQgJiYgKGRlbHRhWCB8fCBkZWx0YVkpKSB7XG4gICAgICAgICAgICBhY3RpdmVBeGlzLmN1cnJlbnQgPSBjdXJyZW50QXhpcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWN1cnJlbnRBeGlzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2FuY2VsaW5nQXhpcyA9IGFjdGl2ZUF4aXMuY3VycmVudCB8fCBjdXJyZW50QXhpcztcbiAgICAgICAgcmV0dXJuIGhhbmRsZVNjcm9sbChjYW5jZWxpbmdBeGlzLCBwYXJlbnQsIGV2ZW50LCBjYW5jZWxpbmdBeGlzID09PSAnaCcgPyBkZWx0YVggOiBkZWx0YVksIHRydWUpO1xuICAgIH0sIFtdKTtcbiAgICB2YXIgc2hvdWxkUHJldmVudCA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uIChfZXZlbnQpIHtcbiAgICAgICAgdmFyIGV2ZW50ID0gX2V2ZW50O1xuICAgICAgICBpZiAoIWxvY2tTdGFjay5sZW5ndGggfHwgbG9ja1N0YWNrW2xvY2tTdGFjay5sZW5ndGggLSAxXSAhPT0gU3R5bGUpIHtcbiAgICAgICAgICAgIC8vIG5vdCB0aGUgbGFzdCBhY3RpdmVcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGVsdGEgPSAnZGVsdGFZJyBpbiBldmVudCA/IGdldERlbHRhWFkoZXZlbnQpIDogZ2V0VG91Y2hYWShldmVudCk7XG4gICAgICAgIHZhciBzb3VyY2VFdmVudCA9IHNob3VsZFByZXZlbnRRdWV1ZS5jdXJyZW50LmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZS5uYW1lID09PSBldmVudC50eXBlICYmIChlLnRhcmdldCA9PT0gZXZlbnQudGFyZ2V0IHx8IGV2ZW50LnRhcmdldCA9PT0gZS5zaGFkb3dQYXJlbnQpICYmIGRlbHRhQ29tcGFyZShlLmRlbHRhLCBkZWx0YSk7IH0pWzBdO1xuICAgICAgICAvLyBzZWxmIGV2ZW50LCBhbmQgc2hvdWxkIGJlIGNhbmNlbGVkXG4gICAgICAgIGlmIChzb3VyY2VFdmVudCAmJiBzb3VyY2VFdmVudC5zaG91bGQpIHtcbiAgICAgICAgICAgIGlmIChldmVudC5jYW5jZWxhYmxlKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBvdXRzaWRlIG9yIHNoYXJkIGV2ZW50XG4gICAgICAgIGlmICghc291cmNlRXZlbnQpIHtcbiAgICAgICAgICAgIHZhciBzaGFyZE5vZGVzID0gKGxhc3RQcm9wcy5jdXJyZW50LnNoYXJkcyB8fCBbXSlcbiAgICAgICAgICAgICAgICAubWFwKGV4dHJhY3RSZWYpXG4gICAgICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUuY29udGFpbnMoZXZlbnQudGFyZ2V0KTsgfSk7XG4gICAgICAgICAgICB2YXIgc2hvdWxkU3RvcCA9IHNoYXJkTm9kZXMubGVuZ3RoID4gMCA/IHNob3VsZENhbmNlbEV2ZW50KGV2ZW50LCBzaGFyZE5vZGVzWzBdKSA6ICFsYXN0UHJvcHMuY3VycmVudC5ub0lzb2xhdGlvbjtcbiAgICAgICAgICAgIGlmIChzaG91bGRTdG9wKSB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmNhbmNlbGFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG4gICAgdmFyIHNob3VsZENhbmNlbCA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuYW1lLCBkZWx0YSwgdGFyZ2V0LCBzaG91bGQpIHtcbiAgICAgICAgdmFyIGV2ZW50ID0geyBuYW1lOiBuYW1lLCBkZWx0YTogZGVsdGEsIHRhcmdldDogdGFyZ2V0LCBzaG91bGQ6IHNob3VsZCwgc2hhZG93UGFyZW50OiBnZXRPdXRlcm1vc3RTaGFkb3dQYXJlbnQodGFyZ2V0KSB9O1xuICAgICAgICBzaG91bGRQcmV2ZW50UXVldWUuY3VycmVudC5wdXNoKGV2ZW50KTtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzaG91bGRQcmV2ZW50UXVldWUuY3VycmVudCA9IHNob3VsZFByZXZlbnRRdWV1ZS5jdXJyZW50LmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZSAhPT0gZXZlbnQ7IH0pO1xuICAgICAgICB9LCAxKTtcbiAgICB9LCBbXSk7XG4gICAgdmFyIHNjcm9sbFRvdWNoU3RhcnQgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdG91Y2hTdGFydFJlZi5jdXJyZW50ID0gZ2V0VG91Y2hYWShldmVudCk7XG4gICAgICAgIGFjdGl2ZUF4aXMuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICB9LCBbXSk7XG4gICAgdmFyIHNjcm9sbFdoZWVsID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHNob3VsZENhbmNlbChldmVudC50eXBlLCBnZXREZWx0YVhZKGV2ZW50KSwgZXZlbnQudGFyZ2V0LCBzaG91bGRDYW5jZWxFdmVudChldmVudCwgcHJvcHMubG9ja1JlZi5jdXJyZW50KSk7XG4gICAgfSwgW10pO1xuICAgIHZhciBzY3JvbGxUb3VjaE1vdmUgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgc2hvdWxkQ2FuY2VsKGV2ZW50LnR5cGUsIGdldFRvdWNoWFkoZXZlbnQpLCBldmVudC50YXJnZXQsIHNob3VsZENhbmNlbEV2ZW50KGV2ZW50LCBwcm9wcy5sb2NrUmVmLmN1cnJlbnQpKTtcbiAgICB9LCBbXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbG9ja1N0YWNrLnB1c2goU3R5bGUpO1xuICAgICAgICBwcm9wcy5zZXRDYWxsYmFja3Moe1xuICAgICAgICAgICAgb25TY3JvbGxDYXB0dXJlOiBzY3JvbGxXaGVlbCxcbiAgICAgICAgICAgIG9uV2hlZWxDYXB0dXJlOiBzY3JvbGxXaGVlbCxcbiAgICAgICAgICAgIG9uVG91Y2hNb3ZlQ2FwdHVyZTogc2Nyb2xsVG91Y2hNb3ZlLFxuICAgICAgICB9KTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBzaG91bGRQcmV2ZW50LCBub25QYXNzaXZlKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgc2hvdWxkUHJldmVudCwgbm9uUGFzc2l2ZSk7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBzY3JvbGxUb3VjaFN0YXJ0LCBub25QYXNzaXZlKTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxvY2tTdGFjayA9IGxvY2tTdGFjay5maWx0ZXIoZnVuY3Rpb24gKGluc3QpIHsgcmV0dXJuIGluc3QgIT09IFN0eWxlOyB9KTtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3doZWVsJywgc2hvdWxkUHJldmVudCwgbm9uUGFzc2l2ZSk7XG4gICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBzaG91bGRQcmV2ZW50LCBub25QYXNzaXZlKTtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBzY3JvbGxUb3VjaFN0YXJ0LCBub25QYXNzaXZlKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG4gICAgdmFyIHJlbW92ZVNjcm9sbEJhciA9IHByb3BzLnJlbW92ZVNjcm9sbEJhciwgaW5lcnQgPSBwcm9wcy5pbmVydDtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXG4gICAgICAgIGluZXJ0ID8gUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZSwgeyBzdHlsZXM6IGdlbmVyYXRlU3R5bGUoaWQpIH0pIDogbnVsbCxcbiAgICAgICAgcmVtb3ZlU2Nyb2xsQmFyID8gUmVhY3QuY3JlYXRlRWxlbWVudChSZW1vdmVTY3JvbGxCYXIsIHsgZ2FwTW9kZTogcHJvcHMuZ2FwTW9kZSB9KSA6IG51bGwpKTtcbn1cbmZ1bmN0aW9uIGdldE91dGVybW9zdFNoYWRvd1BhcmVudChub2RlKSB7XG4gICAgdmFyIHNoYWRvd1BhcmVudCA9IG51bGw7XG4gICAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBTaGFkb3dSb290KSB7XG4gICAgICAgICAgICBzaGFkb3dQYXJlbnQgPSBub2RlLmhvc3Q7XG4gICAgICAgICAgICBub2RlID0gbm9kZS5ob3N0O1xuICAgICAgICB9XG4gICAgICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gICAgfVxuICAgIHJldHVybiBzaGFkb3dQYXJlbnQ7XG59XG4iLCJpbXBvcnQgeyBleHBvcnRTaWRlY2FyIH0gZnJvbSAndXNlLXNpZGVjYXInO1xuaW1wb3J0IHsgUmVtb3ZlU2Nyb2xsU2lkZUNhciB9IGZyb20gJy4vU2lkZUVmZmVjdCc7XG5pbXBvcnQgeyBlZmZlY3RDYXIgfSBmcm9tICcuL21lZGl1bSc7XG5leHBvcnQgZGVmYXVsdCBleHBvcnRTaWRlY2FyKGVmZmVjdENhciwgUmVtb3ZlU2Nyb2xsU2lkZUNhcik7XG4iLCJpbXBvcnQgeyBfX2Fzc2lnbiB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUmVtb3ZlU2Nyb2xsIH0gZnJvbSAnLi9VSSc7XG5pbXBvcnQgU2lkZUNhciBmcm9tICcuL3NpZGVjYXInO1xudmFyIFJlYWN0UmVtb3ZlU2Nyb2xsID0gUmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbiAocHJvcHMsIHJlZikgeyByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVtb3ZlU2Nyb2xsLCBfX2Fzc2lnbih7fSwgcHJvcHMsIHsgcmVmOiByZWYsIHNpZGVDYXI6IFNpZGVDYXIgfSkpKTsgfSk7XG5SZWFjdFJlbW92ZVNjcm9sbC5jbGFzc05hbWVzID0gUmVtb3ZlU2Nyb2xsLmNsYXNzTmFtZXM7XG5leHBvcnQgZGVmYXVsdCBSZWFjdFJlbW92ZVNjcm9sbDtcbiIsInZhciBnZXREZWZhdWx0UGFyZW50ID0gZnVuY3Rpb24gKG9yaWdpbmFsVGFyZ2V0KSB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHZhciBzYW1wbGVUYXJnZXQgPSBBcnJheS5pc0FycmF5KG9yaWdpbmFsVGFyZ2V0KSA/IG9yaWdpbmFsVGFyZ2V0WzBdIDogb3JpZ2luYWxUYXJnZXQ7XG4gICAgcmV0dXJuIHNhbXBsZVRhcmdldC5vd25lckRvY3VtZW50LmJvZHk7XG59O1xudmFyIGNvdW50ZXJNYXAgPSBuZXcgV2Vha01hcCgpO1xudmFyIHVuY29udHJvbGxlZE5vZGVzID0gbmV3IFdlYWtNYXAoKTtcbnZhciBtYXJrZXJNYXAgPSB7fTtcbnZhciBsb2NrQ291bnQgPSAwO1xudmFyIHVud3JhcEhvc3QgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgIHJldHVybiBub2RlICYmIChub2RlLmhvc3QgfHwgdW53cmFwSG9zdChub2RlLnBhcmVudE5vZGUpKTtcbn07XG52YXIgY29ycmVjdFRhcmdldHMgPSBmdW5jdGlvbiAocGFyZW50LCB0YXJnZXRzKSB7XG4gICAgcmV0dXJuIHRhcmdldHNcbiAgICAgICAgLm1hcChmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgICAgIGlmIChwYXJlbnQuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY29ycmVjdGVkVGFyZ2V0ID0gdW53cmFwSG9zdCh0YXJnZXQpO1xuICAgICAgICBpZiAoY29ycmVjdGVkVGFyZ2V0ICYmIHBhcmVudC5jb250YWlucyhjb3JyZWN0ZWRUYXJnZXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gY29ycmVjdGVkVGFyZ2V0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ2FyaWEtaGlkZGVuJywgdGFyZ2V0LCAnaW4gbm90IGNvbnRhaW5lZCBpbnNpZGUnLCBwYXJlbnQsICcuIERvaW5nIG5vdGhpbmcnKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSlcbiAgICAgICAgLmZpbHRlcihmdW5jdGlvbiAoeCkgeyByZXR1cm4gQm9vbGVhbih4KTsgfSk7XG59O1xuLyoqXG4gKiBNYXJrcyBldmVyeXRoaW5nIGV4Y2VwdCBnaXZlbiBub2RlKG9yIG5vZGVzKSBhcyBhcmlhLWhpZGRlblxuICogQHBhcmFtIHtFbGVtZW50IHwgRWxlbWVudFtdfSBvcmlnaW5hbFRhcmdldCAtIGVsZW1lbnRzIHRvIGtlZXAgb24gdGhlIHBhZ2VcbiAqIEBwYXJhbSBbcGFyZW50Tm9kZV0gLSB0b3AgZWxlbWVudCwgZGVmYXVsdHMgdG8gZG9jdW1lbnQuYm9keVxuICogQHBhcmFtIHtTdHJpbmd9IFttYXJrZXJOYW1lXSAtIGEgc3BlY2lhbCBhdHRyaWJ1dGUgdG8gbWFyayBldmVyeSBub2RlXG4gKiBAcGFyYW0ge1N0cmluZ30gW2NvbnRyb2xBdHRyaWJ1dGVdIC0gaHRtbCBBdHRyaWJ1dGUgdG8gY29udHJvbFxuICogQHJldHVybiB7VW5kb30gdW5kbyBjb21tYW5kXG4gKi9cbnZhciBhcHBseUF0dHJpYnV0ZVRvT3RoZXJzID0gZnVuY3Rpb24gKG9yaWdpbmFsVGFyZ2V0LCBwYXJlbnROb2RlLCBtYXJrZXJOYW1lLCBjb250cm9sQXR0cmlidXRlKSB7XG4gICAgdmFyIHRhcmdldHMgPSBjb3JyZWN0VGFyZ2V0cyhwYXJlbnROb2RlLCBBcnJheS5pc0FycmF5KG9yaWdpbmFsVGFyZ2V0KSA/IG9yaWdpbmFsVGFyZ2V0IDogW29yaWdpbmFsVGFyZ2V0XSk7XG4gICAgaWYgKCFtYXJrZXJNYXBbbWFya2VyTmFtZV0pIHtcbiAgICAgICAgbWFya2VyTWFwW21hcmtlck5hbWVdID0gbmV3IFdlYWtNYXAoKTtcbiAgICB9XG4gICAgdmFyIG1hcmtlckNvdW50ZXIgPSBtYXJrZXJNYXBbbWFya2VyTmFtZV07XG4gICAgdmFyIGhpZGRlbk5vZGVzID0gW107XG4gICAgdmFyIGVsZW1lbnRzVG9LZWVwID0gbmV3IFNldCgpO1xuICAgIHZhciBlbGVtZW50c1RvU3RvcCA9IG5ldyBTZXQodGFyZ2V0cyk7XG4gICAgdmFyIGtlZXAgPSBmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgaWYgKCFlbCB8fCBlbGVtZW50c1RvS2VlcC5oYXMoZWwpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZWxlbWVudHNUb0tlZXAuYWRkKGVsKTtcbiAgICAgICAga2VlcChlbC5wYXJlbnROb2RlKTtcbiAgICB9O1xuICAgIHRhcmdldHMuZm9yRWFjaChrZWVwKTtcbiAgICB2YXIgZGVlcCA9IGZ1bmN0aW9uIChwYXJlbnQpIHtcbiAgICAgICAgaWYgKCFwYXJlbnQgfHwgZWxlbWVudHNUb1N0b3AuaGFzKHBhcmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHBhcmVudC5jaGlsZHJlbiwgZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50c1RvS2VlcC5oYXMobm9kZSkpIHtcbiAgICAgICAgICAgICAgICBkZWVwKG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGF0dHIgPSBub2RlLmdldEF0dHJpYnV0ZShjb250cm9sQXR0cmlidXRlKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFscmVhZHlIaWRkZW4gPSBhdHRyICE9PSBudWxsICYmIGF0dHIgIT09ICdmYWxzZSc7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjb3VudGVyVmFsdWUgPSAoY291bnRlck1hcC5nZXQobm9kZSkgfHwgMCkgKyAxO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbWFya2VyVmFsdWUgPSAobWFya2VyQ291bnRlci5nZXQobm9kZSkgfHwgMCkgKyAxO1xuICAgICAgICAgICAgICAgICAgICBjb3VudGVyTWFwLnNldChub2RlLCBjb3VudGVyVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBtYXJrZXJDb3VudGVyLnNldChub2RlLCBtYXJrZXJWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGhpZGRlbk5vZGVzLnB1c2gobm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb3VudGVyVmFsdWUgPT09IDEgJiYgYWxyZWFkeUhpZGRlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5jb250cm9sbGVkTm9kZXMuc2V0KG5vZGUsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXJrZXJWYWx1ZSA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUobWFya2VyTmFtZSwgJ3RydWUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIWFscmVhZHlIaWRkZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKGNvbnRyb2xBdHRyaWJ1dGUsICd0cnVlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignYXJpYS1oaWRkZW46IGNhbm5vdCBvcGVyYXRlIG9uICcsIG5vZGUsIGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBkZWVwKHBhcmVudE5vZGUpO1xuICAgIGVsZW1lbnRzVG9LZWVwLmNsZWFyKCk7XG4gICAgbG9ja0NvdW50Kys7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaGlkZGVuTm9kZXMuZm9yRWFjaChmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICAgICAgdmFyIGNvdW50ZXJWYWx1ZSA9IGNvdW50ZXJNYXAuZ2V0KG5vZGUpIC0gMTtcbiAgICAgICAgICAgIHZhciBtYXJrZXJWYWx1ZSA9IG1hcmtlckNvdW50ZXIuZ2V0KG5vZGUpIC0gMTtcbiAgICAgICAgICAgIGNvdW50ZXJNYXAuc2V0KG5vZGUsIGNvdW50ZXJWYWx1ZSk7XG4gICAgICAgICAgICBtYXJrZXJDb3VudGVyLnNldChub2RlLCBtYXJrZXJWYWx1ZSk7XG4gICAgICAgICAgICBpZiAoIWNvdW50ZXJWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICghdW5jb250cm9sbGVkTm9kZXMuaGFzKG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKGNvbnRyb2xBdHRyaWJ1dGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB1bmNvbnRyb2xsZWROb2Rlcy5kZWxldGUobm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW1hcmtlclZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUobWFya2VyTmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBsb2NrQ291bnQtLTtcbiAgICAgICAgaWYgKCFsb2NrQ291bnQpIHtcbiAgICAgICAgICAgIC8vIGNsZWFyXG4gICAgICAgICAgICBjb3VudGVyTWFwID0gbmV3IFdlYWtNYXAoKTtcbiAgICAgICAgICAgIGNvdW50ZXJNYXAgPSBuZXcgV2Vha01hcCgpO1xuICAgICAgICAgICAgdW5jb250cm9sbGVkTm9kZXMgPSBuZXcgV2Vha01hcCgpO1xuICAgICAgICAgICAgbWFya2VyTWFwID0ge307XG4gICAgICAgIH1cbiAgICB9O1xufTtcbi8qKlxuICogTWFya3MgZXZlcnl0aGluZyBleGNlcHQgZ2l2ZW4gbm9kZShvciBub2RlcykgYXMgYXJpYS1oaWRkZW5cbiAqIEBwYXJhbSB7RWxlbWVudCB8IEVsZW1lbnRbXX0gb3JpZ2luYWxUYXJnZXQgLSBlbGVtZW50cyB0byBrZWVwIG9uIHRoZSBwYWdlXG4gKiBAcGFyYW0gW3BhcmVudE5vZGVdIC0gdG9wIGVsZW1lbnQsIGRlZmF1bHRzIHRvIGRvY3VtZW50LmJvZHlcbiAqIEBwYXJhbSB7U3RyaW5nfSBbbWFya2VyTmFtZV0gLSBhIHNwZWNpYWwgYXR0cmlidXRlIHRvIG1hcmsgZXZlcnkgbm9kZVxuICogQHJldHVybiB7VW5kb30gdW5kbyBjb21tYW5kXG4gKi9cbmV4cG9ydCB2YXIgaGlkZU90aGVycyA9IGZ1bmN0aW9uIChvcmlnaW5hbFRhcmdldCwgcGFyZW50Tm9kZSwgbWFya2VyTmFtZSkge1xuICAgIGlmIChtYXJrZXJOYW1lID09PSB2b2lkIDApIHsgbWFya2VyTmFtZSA9ICdkYXRhLWFyaWEtaGlkZGVuJzsgfVxuICAgIHZhciB0YXJnZXRzID0gQXJyYXkuZnJvbShBcnJheS5pc0FycmF5KG9yaWdpbmFsVGFyZ2V0KSA/IG9yaWdpbmFsVGFyZ2V0IDogW29yaWdpbmFsVGFyZ2V0XSk7XG4gICAgdmFyIGFjdGl2ZVBhcmVudE5vZGUgPSBwYXJlbnROb2RlIHx8IGdldERlZmF1bHRQYXJlbnQob3JpZ2luYWxUYXJnZXQpO1xuICAgIGlmICghYWN0aXZlUGFyZW50Tm9kZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgeyByZXR1cm4gbnVsbDsgfTtcbiAgICB9XG4gICAgLy8gd2Ugc2hvdWxkIG5vdCBoaWRlIGFyaWFMaXZlIGVsZW1lbnRzIC0gaHR0cHM6Ly9naXRodWIuY29tL3RoZUthc2hleS9hcmlhLWhpZGRlbi9pc3N1ZXMvMTBcbiAgICB0YXJnZXRzLnB1c2guYXBwbHkodGFyZ2V0cywgQXJyYXkuZnJvbShhY3RpdmVQYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJ1thcmlhLWxpdmVdJykpKTtcbiAgICByZXR1cm4gYXBwbHlBdHRyaWJ1dGVUb090aGVycyh0YXJnZXRzLCBhY3RpdmVQYXJlbnROb2RlLCBtYXJrZXJOYW1lLCAnYXJpYS1oaWRkZW4nKTtcbn07XG4vKipcbiAqIE1hcmtzIGV2ZXJ5dGhpbmcgZXhjZXB0IGdpdmVuIG5vZGUob3Igbm9kZXMpIGFzIGluZXJ0XG4gKiBAcGFyYW0ge0VsZW1lbnQgfCBFbGVtZW50W119IG9yaWdpbmFsVGFyZ2V0IC0gZWxlbWVudHMgdG8ga2VlcCBvbiB0aGUgcGFnZVxuICogQHBhcmFtIFtwYXJlbnROb2RlXSAtIHRvcCBlbGVtZW50LCBkZWZhdWx0cyB0byBkb2N1bWVudC5ib2R5XG4gKiBAcGFyYW0ge1N0cmluZ30gW21hcmtlck5hbWVdIC0gYSBzcGVjaWFsIGF0dHJpYnV0ZSB0byBtYXJrIGV2ZXJ5IG5vZGVcbiAqIEByZXR1cm4ge1VuZG99IHVuZG8gY29tbWFuZFxuICovXG5leHBvcnQgdmFyIGluZXJ0T3RoZXJzID0gZnVuY3Rpb24gKG9yaWdpbmFsVGFyZ2V0LCBwYXJlbnROb2RlLCBtYXJrZXJOYW1lKSB7XG4gICAgaWYgKG1hcmtlck5hbWUgPT09IHZvaWQgMCkgeyBtYXJrZXJOYW1lID0gJ2RhdGEtaW5lcnQtZWQnOyB9XG4gICAgdmFyIGFjdGl2ZVBhcmVudE5vZGUgPSBwYXJlbnROb2RlIHx8IGdldERlZmF1bHRQYXJlbnQob3JpZ2luYWxUYXJnZXQpO1xuICAgIGlmICghYWN0aXZlUGFyZW50Tm9kZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgeyByZXR1cm4gbnVsbDsgfTtcbiAgICB9XG4gICAgcmV0dXJuIGFwcGx5QXR0cmlidXRlVG9PdGhlcnMob3JpZ2luYWxUYXJnZXQsIGFjdGl2ZVBhcmVudE5vZGUsIG1hcmtlck5hbWUsICdpbmVydCcpO1xufTtcbi8qKlxuICogQHJldHVybnMgaWYgY3VycmVudCBicm93c2VyIHN1cHBvcnRzIGluZXJ0XG4gKi9cbmV4cG9ydCB2YXIgc3VwcG9ydHNJbmVydCA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdHlwZW9mIEhUTUxFbGVtZW50ICE9PSAndW5kZWZpbmVkJyAmJiBIVE1MRWxlbWVudC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoJ2luZXJ0Jyk7XG59O1xuLyoqXG4gKiBBdXRvbWF0aWMgZnVuY3Rpb24gdG8gXCJzdXBwcmVzc1wiIERPTSBlbGVtZW50cyAtIF9oaWRlXyBvciBfaW5lcnRfIGluIHRoZSBiZXN0IHBvc3NpYmxlIHdheVxuICogQHBhcmFtIHtFbGVtZW50IHwgRWxlbWVudFtdfSBvcmlnaW5hbFRhcmdldCAtIGVsZW1lbnRzIHRvIGtlZXAgb24gdGhlIHBhZ2VcbiAqIEBwYXJhbSBbcGFyZW50Tm9kZV0gLSB0b3AgZWxlbWVudCwgZGVmYXVsdHMgdG8gZG9jdW1lbnQuYm9keVxuICogQHBhcmFtIHtTdHJpbmd9IFttYXJrZXJOYW1lXSAtIGEgc3BlY2lhbCBhdHRyaWJ1dGUgdG8gbWFyayBldmVyeSBub2RlXG4gKiBAcmV0dXJuIHtVbmRvfSB1bmRvIGNvbW1hbmRcbiAqL1xuZXhwb3J0IHZhciBzdXBwcmVzc090aGVycyA9IGZ1bmN0aW9uIChvcmlnaW5hbFRhcmdldCwgcGFyZW50Tm9kZSwgbWFya2VyTmFtZSkge1xuICAgIGlmIChtYXJrZXJOYW1lID09PSB2b2lkIDApIHsgbWFya2VyTmFtZSA9ICdkYXRhLXN1cHByZXNzZWQnOyB9XG4gICAgcmV0dXJuIChzdXBwb3J0c0luZXJ0KCkgPyBpbmVydE90aGVycyA6IGhpZGVPdGhlcnMpKG9yaWdpbmFsVGFyZ2V0LCBwYXJlbnROb2RlLCBtYXJrZXJOYW1lKTtcbn07XG4iLCJcInVzZSBjbGllbnRcIjtcblxuLy8gcGFja2FnZXMvcmVhY3QvZGlhbG9nL3NyYy9kaWFsb2cudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSBcIkByYWRpeC11aS9wcmltaXRpdmVcIjtcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbnRleHRcIjtcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1pZFwiO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxhYmxlU3RhdGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1jb250cm9sbGFibGUtc3RhdGVcIjtcbmltcG9ydCB7IERpc21pc3NhYmxlTGF5ZXIgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyXCI7XG5pbXBvcnQgeyBGb2N1c1Njb3BlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1mb2N1cy1zY29wZVwiO1xuaW1wb3J0IHsgUG9ydGFsIGFzIFBvcnRhbFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcG9ydGFsXCI7XG5pbXBvcnQgeyBQcmVzZW5jZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2VcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyB1c2VGb2N1c0d1YXJkcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtZm9jdXMtZ3VhcmRzXCI7XG5pbXBvcnQgeyBSZW1vdmVTY3JvbGwgfSBmcm9tIFwicmVhY3QtcmVtb3ZlLXNjcm9sbFwiO1xuaW1wb3J0IHsgaGlkZU90aGVycyB9IGZyb20gXCJhcmlhLWhpZGRlblwiO1xuaW1wb3J0IHsgU2xvdCB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtc2xvdFwiO1xuaW1wb3J0IHsgRnJhZ21lbnQsIGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIERJQUxPR19OQU1FID0gXCJEaWFsb2dcIjtcbnZhciBbY3JlYXRlRGlhbG9nQ29udGV4dCwgY3JlYXRlRGlhbG9nU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKERJQUxPR19OQU1FKTtcbnZhciBbRGlhbG9nUHJvdmlkZXIsIHVzZURpYWxvZ0NvbnRleHRdID0gY3JlYXRlRGlhbG9nQ29udGV4dChESUFMT0dfTkFNRSk7XG52YXIgRGlhbG9nID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfX3Njb3BlRGlhbG9nLFxuICAgIGNoaWxkcmVuLFxuICAgIG9wZW46IG9wZW5Qcm9wLFxuICAgIGRlZmF1bHRPcGVuLFxuICAgIG9uT3BlbkNoYW5nZSxcbiAgICBtb2RhbCA9IHRydWVcbiAgfSA9IHByb3BzO1xuICBjb25zdCB0cmlnZ2VyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBjb250ZW50UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBbb3BlbiA9IGZhbHNlLCBzZXRPcGVuXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICBwcm9wOiBvcGVuUHJvcCxcbiAgICBkZWZhdWx0UHJvcDogZGVmYXVsdE9wZW4sXG4gICAgb25DaGFuZ2U6IG9uT3BlbkNoYW5nZVxuICB9KTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgRGlhbG9nUHJvdmlkZXIsXG4gICAge1xuICAgICAgc2NvcGU6IF9fc2NvcGVEaWFsb2csXG4gICAgICB0cmlnZ2VyUmVmLFxuICAgICAgY29udGVudFJlZixcbiAgICAgIGNvbnRlbnRJZDogdXNlSWQoKSxcbiAgICAgIHRpdGxlSWQ6IHVzZUlkKCksXG4gICAgICBkZXNjcmlwdGlvbklkOiB1c2VJZCgpLFxuICAgICAgb3BlbixcbiAgICAgIG9uT3BlbkNoYW5nZTogc2V0T3BlbixcbiAgICAgIG9uT3BlblRvZ2dsZTogUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4gc2V0T3BlbigocHJldk9wZW4pID0+ICFwcmV2T3BlbiksIFtzZXRPcGVuXSksXG4gICAgICBtb2RhbCxcbiAgICAgIGNoaWxkcmVuXG4gICAgfVxuICApO1xufTtcbkRpYWxvZy5kaXNwbGF5TmFtZSA9IERJQUxPR19OQU1FO1xudmFyIFRSSUdHRVJfTkFNRSA9IFwiRGlhbG9nVHJpZ2dlclwiO1xudmFyIERpYWxvZ1RyaWdnZXIgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURpYWxvZywgLi4udHJpZ2dlclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChUUklHR0VSX05BTUUsIF9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IGNvbXBvc2VkVHJpZ2dlclJlZiA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRleHQudHJpZ2dlclJlZik7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBQcmltaXRpdmUuYnV0dG9uLFxuICAgICAge1xuICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICBcImFyaWEtaGFzcG9wdXBcIjogXCJkaWFsb2dcIixcbiAgICAgICAgXCJhcmlhLWV4cGFuZGVkXCI6IGNvbnRleHQub3BlbixcbiAgICAgICAgXCJhcmlhLWNvbnRyb2xzXCI6IGNvbnRleHQuY29udGVudElkLFxuICAgICAgICBcImRhdGEtc3RhdGVcIjogZ2V0U3RhdGUoY29udGV4dC5vcGVuKSxcbiAgICAgICAgLi4udHJpZ2dlclByb3BzLFxuICAgICAgICByZWY6IGNvbXBvc2VkVHJpZ2dlclJlZixcbiAgICAgICAgb25DbGljazogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25DbGljaywgY29udGV4dC5vbk9wZW5Ub2dnbGUpXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcbkRpYWxvZ1RyaWdnZXIuZGlzcGxheU5hbWUgPSBUUklHR0VSX05BTUU7XG52YXIgUE9SVEFMX05BTUUgPSBcIkRpYWxvZ1BvcnRhbFwiO1xudmFyIFtQb3J0YWxQcm92aWRlciwgdXNlUG9ydGFsQ29udGV4dF0gPSBjcmVhdGVEaWFsb2dDb250ZXh0KFBPUlRBTF9OQU1FLCB7XG4gIGZvcmNlTW91bnQ6IHZvaWQgMFxufSk7XG52YXIgRGlhbG9nUG9ydGFsID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZURpYWxvZywgZm9yY2VNb3VudCwgY2hpbGRyZW4sIGNvbnRhaW5lciB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KFBPUlRBTF9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUG9ydGFsUHJvdmlkZXIsIHsgc2NvcGU6IF9fc2NvcGVEaWFsb2csIGZvcmNlTW91bnQsIGNoaWxkcmVuOiBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIChjaGlsZCkgPT4gLyogQF9fUFVSRV9fICovIGpzeChQcmVzZW5jZSwgeyBwcmVzZW50OiBmb3JjZU1vdW50IHx8IGNvbnRleHQub3BlbiwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goUG9ydGFsUHJpbWl0aXZlLCB7IGFzQ2hpbGQ6IHRydWUsIGNvbnRhaW5lciwgY2hpbGRyZW46IGNoaWxkIH0pIH0pKSB9KTtcbn07XG5EaWFsb2dQb3J0YWwuZGlzcGxheU5hbWUgPSBQT1JUQUxfTkFNRTtcbnZhciBPVkVSTEFZX05BTUUgPSBcIkRpYWxvZ092ZXJsYXlcIjtcbnZhciBEaWFsb2dPdmVybGF5ID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCBwb3J0YWxDb250ZXh0ID0gdXNlUG9ydGFsQ29udGV4dChPVkVSTEFZX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IHsgZm9yY2VNb3VudCA9IHBvcnRhbENvbnRleHQuZm9yY2VNb3VudCwgLi4ub3ZlcmxheVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChPVkVSTEFZX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIHJldHVybiBjb250ZXh0Lm1vZGFsID8gLyogQF9fUFVSRV9fICovIGpzeChQcmVzZW5jZSwgeyBwcmVzZW50OiBmb3JjZU1vdW50IHx8IGNvbnRleHQub3BlbiwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goRGlhbG9nT3ZlcmxheUltcGwsIHsgLi4ub3ZlcmxheVByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KSB9KSA6IG51bGw7XG4gIH1cbik7XG5EaWFsb2dPdmVybGF5LmRpc3BsYXlOYW1lID0gT1ZFUkxBWV9OQU1FO1xudmFyIERpYWxvZ092ZXJsYXlJbXBsID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEaWFsb2csIC4uLm92ZXJsYXlQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoT1ZFUkxBWV9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgICByZXR1cm4gKFxuICAgICAgLy8gTWFrZSBzdXJlIGBDb250ZW50YCBpcyBzY3JvbGxhYmxlIGV2ZW4gd2hlbiBpdCBkb2Vzbid0IGxpdmUgaW5zaWRlIGBSZW1vdmVTY3JvbGxgXG4gICAgICAvLyBpZS4gd2hlbiBgT3ZlcmxheWAgYW5kIGBDb250ZW50YCBhcmUgc2libGluZ3NcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goUmVtb3ZlU2Nyb2xsLCB7IGFzOiBTbG90LCBhbGxvd1BpbmNoWm9vbTogdHJ1ZSwgc2hhcmRzOiBbY29udGV4dC5jb250ZW50UmVmXSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgIFByaW1pdGl2ZS5kaXYsXG4gICAgICAgIHtcbiAgICAgICAgICBcImRhdGEtc3RhdGVcIjogZ2V0U3RhdGUoY29udGV4dC5vcGVuKSxcbiAgICAgICAgICAuLi5vdmVybGF5UHJvcHMsXG4gICAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgICAgICAgc3R5bGU6IHsgcG9pbnRlckV2ZW50czogXCJhdXRvXCIsIC4uLm92ZXJsYXlQcm9wcy5zdHlsZSB9XG4gICAgICAgIH1cbiAgICAgICkgfSlcbiAgICApO1xuICB9XG4pO1xudmFyIENPTlRFTlRfTkFNRSA9IFwiRGlhbG9nQ29udGVudFwiO1xudmFyIERpYWxvZ0NvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHBvcnRhbENvbnRleHQgPSB1c2VQb3J0YWxDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZURpYWxvZyk7XG4gICAgY29uc3QgeyBmb3JjZU1vdW50ID0gcG9ydGFsQ29udGV4dC5mb3JjZU1vdW50LCAuLi5jb250ZW50UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZURpYWxvZyk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUHJlc2VuY2UsIHsgcHJlc2VudDogZm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW4sIGNoaWxkcmVuOiBjb250ZXh0Lm1vZGFsID8gLyogQF9fUFVSRV9fICovIGpzeChEaWFsb2dDb250ZW50TW9kYWwsIHsgLi4uY29udGVudFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goRGlhbG9nQ29udGVudE5vbk1vZGFsLCB7IC4uLmNvbnRlbnRQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSkgfSk7XG4gIH1cbik7XG5EaWFsb2dDb250ZW50LmRpc3BsYXlOYW1lID0gQ09OVEVOVF9OQU1FO1xudmFyIERpYWxvZ0NvbnRlbnRNb2RhbCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlRGlhbG9nKTtcbiAgICBjb25zdCBjb250ZW50UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRleHQuY29udGVudFJlZiwgY29udGVudFJlZik7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBjb250ZW50UmVmLmN1cnJlbnQ7XG4gICAgICBpZiAoY29udGVudCkgcmV0dXJuIGhpZGVPdGhlcnMoY29udGVudCk7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgRGlhbG9nQ29udGVudEltcGwsXG4gICAgICB7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICByZWY6IGNvbXBvc2VkUmVmcyxcbiAgICAgICAgdHJhcEZvY3VzOiBjb250ZXh0Lm9wZW4sXG4gICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50czogdHJ1ZSxcbiAgICAgICAgb25DbG9zZUF1dG9Gb2N1czogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25DbG9zZUF1dG9Gb2N1cywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBjb250ZXh0LnRyaWdnZXJSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgfSksXG4gICAgICAgIG9uUG9pbnRlckRvd25PdXRzaWRlOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJEb3duT3V0c2lkZSwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxFdmVudCA9IGV2ZW50LmRldGFpbC5vcmlnaW5hbEV2ZW50O1xuICAgICAgICAgIGNvbnN0IGN0cmxMZWZ0Q2xpY2sgPSBvcmlnaW5hbEV2ZW50LmJ1dHRvbiA9PT0gMCAmJiBvcmlnaW5hbEV2ZW50LmN0cmxLZXkgPT09IHRydWU7XG4gICAgICAgICAgY29uc3QgaXNSaWdodENsaWNrID0gb3JpZ2luYWxFdmVudC5idXR0b24gPT09IDIgfHwgY3RybExlZnRDbGljaztcbiAgICAgICAgICBpZiAoaXNSaWdodENsaWNrKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9KSxcbiAgICAgICAgb25Gb2N1c091dHNpZGU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKFxuICAgICAgICAgIHByb3BzLm9uRm9jdXNPdXRzaWRlLFxuICAgICAgICAgIChldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcbnZhciBEaWFsb2dDb250ZW50Tm9uTW9kYWwgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZURpYWxvZyk7XG4gICAgY29uc3QgaGFzSW50ZXJhY3RlZE91dHNpZGVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBEaWFsb2dDb250ZW50SW1wbCxcbiAgICAgIHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgICAgICB0cmFwRm9jdXM6IGZhbHNlLFxuICAgICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHM6IGZhbHNlLFxuICAgICAgICBvbkNsb3NlQXV0b0ZvY3VzOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICBwcm9wcy5vbkNsb3NlQXV0b0ZvY3VzPy4oZXZlbnQpO1xuICAgICAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgaWYgKCFoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZi5jdXJyZW50KSBjb250ZXh0LnRyaWdnZXJSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICBoYXNQb2ludGVyRG93bk91dHNpZGVSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICBvbkludGVyYWN0T3V0c2lkZTogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgcHJvcHMub25JbnRlcmFjdE91dHNpZGU/LihldmVudCk7XG4gICAgICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICBoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChldmVudC5kZXRhaWwub3JpZ2luYWxFdmVudC50eXBlID09PSBcInBvaW50ZXJkb3duXCIpIHtcbiAgICAgICAgICAgICAgaGFzUG9pbnRlckRvd25PdXRzaWRlUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0SXNUcmlnZ2VyID0gY29udGV4dC50cmlnZ2VyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKHRhcmdldCk7XG4gICAgICAgICAgaWYgKHRhcmdldElzVHJpZ2dlcikgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBpZiAoZXZlbnQuZGV0YWlsLm9yaWdpbmFsRXZlbnQudHlwZSA9PT0gXCJmb2N1c2luXCIgJiYgaGFzUG9pbnRlckRvd25PdXRzaWRlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcbnZhciBEaWFsb2dDb250ZW50SW1wbCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nLCB0cmFwRm9jdXMsIG9uT3BlbkF1dG9Gb2N1cywgb25DbG9zZUF1dG9Gb2N1cywgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChDT05URU5UX05BTUUsIF9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgY29udGVudFJlZik7XG4gICAgdXNlRm9jdXNHdWFyZHMoKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgIEZvY3VzU2NvcGUsXG4gICAgICAgIHtcbiAgICAgICAgICBhc0NoaWxkOiB0cnVlLFxuICAgICAgICAgIGxvb3A6IHRydWUsXG4gICAgICAgICAgdHJhcHBlZDogdHJhcEZvY3VzLFxuICAgICAgICAgIG9uTW91bnRBdXRvRm9jdXM6IG9uT3BlbkF1dG9Gb2N1cyxcbiAgICAgICAgICBvblVubW91bnRBdXRvRm9jdXM6IG9uQ2xvc2VBdXRvRm9jdXMsXG4gICAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgICBEaXNtaXNzYWJsZUxheWVyLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICByb2xlOiBcImRpYWxvZ1wiLFxuICAgICAgICAgICAgICBpZDogY29udGV4dC5jb250ZW50SWQsXG4gICAgICAgICAgICAgIFwiYXJpYS1kZXNjcmliZWRieVwiOiBjb250ZXh0LmRlc2NyaXB0aW9uSWQsXG4gICAgICAgICAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGNvbnRleHQudGl0bGVJZCxcbiAgICAgICAgICAgICAgXCJkYXRhLXN0YXRlXCI6IGdldFN0YXRlKGNvbnRleHQub3BlbiksXG4gICAgICAgICAgICAgIC4uLmNvbnRlbnRQcm9wcyxcbiAgICAgICAgICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXG4gICAgICAgICAgICAgIG9uRGlzbWlzczogKCkgPT4gY29udGV4dC5vbk9wZW5DaGFuZ2UoZmFsc2UpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgLyogQF9fUFVSRV9fICovIGpzeHMoRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtcbiAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChUaXRsZVdhcm5pbmcsIHsgdGl0bGVJZDogY29udGV4dC50aXRsZUlkIH0pLFxuICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KERlc2NyaXB0aW9uV2FybmluZywgeyBjb250ZW50UmVmLCBkZXNjcmlwdGlvbklkOiBjb250ZXh0LmRlc2NyaXB0aW9uSWQgfSlcbiAgICAgIF0gfSlcbiAgICBdIH0pO1xuICB9XG4pO1xudmFyIFRJVExFX05BTUUgPSBcIkRpYWxvZ1RpdGxlXCI7XG52YXIgRGlhbG9nVGl0bGUgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURpYWxvZywgLi4udGl0bGVQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoVElUTEVfTkFNRSwgX19zY29wZURpYWxvZyk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUHJpbWl0aXZlLmgyLCB7IGlkOiBjb250ZXh0LnRpdGxlSWQsIC4uLnRpdGxlUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xuICB9XG4pO1xuRGlhbG9nVGl0bGUuZGlzcGxheU5hbWUgPSBUSVRMRV9OQU1FO1xudmFyIERFU0NSSVBUSU9OX05BTUUgPSBcIkRpYWxvZ0Rlc2NyaXB0aW9uXCI7XG52YXIgRGlhbG9nRGVzY3JpcHRpb24gPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURpYWxvZywgLi4uZGVzY3JpcHRpb25Qcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoREVTQ1JJUFRJT05fTkFNRSwgX19zY29wZURpYWxvZyk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUHJpbWl0aXZlLnAsIHsgaWQ6IGNvbnRleHQuZGVzY3JpcHRpb25JZCwgLi4uZGVzY3JpcHRpb25Qcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XG4gIH1cbik7XG5EaWFsb2dEZXNjcmlwdGlvbi5kaXNwbGF5TmFtZSA9IERFU0NSSVBUSU9OX05BTUU7XG52YXIgQ0xPU0VfTkFNRSA9IFwiRGlhbG9nQ2xvc2VcIjtcbnZhciBEaWFsb2dDbG9zZSA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nLCAuLi5jbG9zZVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChDTE9TRV9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFByaW1pdGl2ZS5idXR0b24sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgIC4uLmNsb3NlUHJvcHMsXG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgICAgICBvbkNsaWNrOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCAoKSA9PiBjb250ZXh0Lm9uT3BlbkNoYW5nZShmYWxzZSkpXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcbkRpYWxvZ0Nsb3NlLmRpc3BsYXlOYW1lID0gQ0xPU0VfTkFNRTtcbmZ1bmN0aW9uIGdldFN0YXRlKG9wZW4pIHtcbiAgcmV0dXJuIG9wZW4gPyBcIm9wZW5cIiA6IFwiY2xvc2VkXCI7XG59XG52YXIgVElUTEVfV0FSTklOR19OQU1FID0gXCJEaWFsb2dUaXRsZVdhcm5pbmdcIjtcbnZhciBbV2FybmluZ1Byb3ZpZGVyLCB1c2VXYXJuaW5nQ29udGV4dF0gPSBjcmVhdGVDb250ZXh0KFRJVExFX1dBUk5JTkdfTkFNRSwge1xuICBjb250ZW50TmFtZTogQ09OVEVOVF9OQU1FLFxuICB0aXRsZU5hbWU6IFRJVExFX05BTUUsXG4gIGRvY3NTbHVnOiBcImRpYWxvZ1wiXG59KTtcbnZhciBUaXRsZVdhcm5pbmcgPSAoeyB0aXRsZUlkIH0pID0+IHtcbiAgY29uc3QgdGl0bGVXYXJuaW5nQ29udGV4dCA9IHVzZVdhcm5pbmdDb250ZXh0KFRJVExFX1dBUk5JTkdfTkFNRSk7XG4gIGNvbnN0IE1FU1NBR0UgPSBgXFxgJHt0aXRsZVdhcm5pbmdDb250ZXh0LmNvbnRlbnROYW1lfVxcYCByZXF1aXJlcyBhIFxcYCR7dGl0bGVXYXJuaW5nQ29udGV4dC50aXRsZU5hbWV9XFxgIGZvciB0aGUgY29tcG9uZW50IHRvIGJlIGFjY2Vzc2libGUgZm9yIHNjcmVlbiByZWFkZXIgdXNlcnMuXG5cbklmIHlvdSB3YW50IHRvIGhpZGUgdGhlIFxcYCR7dGl0bGVXYXJuaW5nQ29udGV4dC50aXRsZU5hbWV9XFxgLCB5b3UgY2FuIHdyYXAgaXQgd2l0aCBvdXIgVmlzdWFsbHlIaWRkZW4gY29tcG9uZW50LlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHBzOi8vcmFkaXgtdWkuY29tL3ByaW1pdGl2ZXMvZG9jcy9jb21wb25lbnRzLyR7dGl0bGVXYXJuaW5nQ29udGV4dC5kb2NzU2x1Z31gO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aXRsZUlkKSB7XG4gICAgICBjb25zdCBoYXNUaXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRpdGxlSWQpO1xuICAgICAgaWYgKCFoYXNUaXRsZSkgY29uc29sZS5lcnJvcihNRVNTQUdFKTtcbiAgICB9XG4gIH0sIFtNRVNTQUdFLCB0aXRsZUlkXSk7XG4gIHJldHVybiBudWxsO1xufTtcbnZhciBERVNDUklQVElPTl9XQVJOSU5HX05BTUUgPSBcIkRpYWxvZ0Rlc2NyaXB0aW9uV2FybmluZ1wiO1xudmFyIERlc2NyaXB0aW9uV2FybmluZyA9ICh7IGNvbnRlbnRSZWYsIGRlc2NyaXB0aW9uSWQgfSkgPT4ge1xuICBjb25zdCBkZXNjcmlwdGlvbldhcm5pbmdDb250ZXh0ID0gdXNlV2FybmluZ0NvbnRleHQoREVTQ1JJUFRJT05fV0FSTklOR19OQU1FKTtcbiAgY29uc3QgTUVTU0FHRSA9IGBXYXJuaW5nOiBNaXNzaW5nIFxcYERlc2NyaXB0aW9uXFxgIG9yIFxcYGFyaWEtZGVzY3JpYmVkYnk9e3VuZGVmaW5lZH1cXGAgZm9yIHske2Rlc2NyaXB0aW9uV2FybmluZ0NvbnRleHQuY29udGVudE5hbWV9fS5gO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGRlc2NyaWJlZEJ5SWQgPSBjb250ZW50UmVmLmN1cnJlbnQ/LmdldEF0dHJpYnV0ZShcImFyaWEtZGVzY3JpYmVkYnlcIik7XG4gICAgaWYgKGRlc2NyaXB0aW9uSWQgJiYgZGVzY3JpYmVkQnlJZCkge1xuICAgICAgY29uc3QgaGFzRGVzY3JpcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkZXNjcmlwdGlvbklkKTtcbiAgICAgIGlmICghaGFzRGVzY3JpcHRpb24pIGNvbnNvbGUud2FybihNRVNTQUdFKTtcbiAgICB9XG4gIH0sIFtNRVNTQUdFLCBjb250ZW50UmVmLCBkZXNjcmlwdGlvbklkXSk7XG4gIHJldHVybiBudWxsO1xufTtcbnZhciBSb290ID0gRGlhbG9nO1xudmFyIFRyaWdnZXIgPSBEaWFsb2dUcmlnZ2VyO1xudmFyIFBvcnRhbCA9IERpYWxvZ1BvcnRhbDtcbnZhciBPdmVybGF5ID0gRGlhbG9nT3ZlcmxheTtcbnZhciBDb250ZW50ID0gRGlhbG9nQ29udGVudDtcbnZhciBUaXRsZSA9IERpYWxvZ1RpdGxlO1xudmFyIERlc2NyaXB0aW9uID0gRGlhbG9nRGVzY3JpcHRpb247XG52YXIgQ2xvc2UgPSBEaWFsb2dDbG9zZTtcbmV4cG9ydCB7XG4gIENsb3NlLFxuICBDb250ZW50LFxuICBEZXNjcmlwdGlvbixcbiAgRGlhbG9nLFxuICBEaWFsb2dDbG9zZSxcbiAgRGlhbG9nQ29udGVudCxcbiAgRGlhbG9nRGVzY3JpcHRpb24sXG4gIERpYWxvZ092ZXJsYXksXG4gIERpYWxvZ1BvcnRhbCxcbiAgRGlhbG9nVGl0bGUsXG4gIERpYWxvZ1RyaWdnZXIsXG4gIE92ZXJsYXksXG4gIFBvcnRhbCxcbiAgUm9vdCxcbiAgVGl0bGUsXG4gIFRyaWdnZXIsXG4gIFdhcm5pbmdQcm92aWRlcixcbiAgY3JlYXRlRGlhbG9nU2NvcGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCJcInVzZSBjbGllbnRcIjtcblxuLy8gcGFja2FnZXMvcmVhY3QvYWxlcnQtZGlhbG9nL3NyYy9hbGVydC1kaWFsb2cudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29udGV4dFwiO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnNcIjtcbmltcG9ydCAqIGFzIERpYWxvZ1ByaW1pdGl2ZSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRpYWxvZ1wiO1xuaW1wb3J0IHsgY3JlYXRlRGlhbG9nU2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRpYWxvZ1wiO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tIFwiQHJhZGl4LXVpL3ByaW1pdGl2ZVwiO1xuaW1wb3J0IHsgU2xvdHRhYmxlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1zbG90XCI7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBST09UX05BTUUgPSBcIkFsZXJ0RGlhbG9nXCI7XG52YXIgW2NyZWF0ZUFsZXJ0RGlhbG9nQ29udGV4dCwgY3JlYXRlQWxlcnREaWFsb2dTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoUk9PVF9OQU1FLCBbXG4gIGNyZWF0ZURpYWxvZ1Njb3BlXG5dKTtcbnZhciB1c2VEaWFsb2dTY29wZSA9IGNyZWF0ZURpYWxvZ1Njb3BlKCk7XG52YXIgQWxlcnREaWFsb2cgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlQWxlcnREaWFsb2csIC4uLmFsZXJ0RGlhbG9nUHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBkaWFsb2dTY29wZSA9IHVzZURpYWxvZ1Njb3BlKF9fc2NvcGVBbGVydERpYWxvZyk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KERpYWxvZ1ByaW1pdGl2ZS5Sb290LCB7IC4uLmRpYWxvZ1Njb3BlLCAuLi5hbGVydERpYWxvZ1Byb3BzLCBtb2RhbDogdHJ1ZSB9KTtcbn07XG5BbGVydERpYWxvZy5kaXNwbGF5TmFtZSA9IFJPT1RfTkFNRTtcbnZhciBUUklHR0VSX05BTUUgPSBcIkFsZXJ0RGlhbG9nVHJpZ2dlclwiO1xudmFyIEFsZXJ0RGlhbG9nVHJpZ2dlciA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlQWxlcnREaWFsb2csIC4uLnRyaWdnZXJQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGlhbG9nU2NvcGUgPSB1c2VEaWFsb2dTY29wZShfX3Njb3BlQWxlcnREaWFsb2cpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KERpYWxvZ1ByaW1pdGl2ZS5UcmlnZ2VyLCB7IC4uLmRpYWxvZ1Njb3BlLCAuLi50cmlnZ2VyUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xuICB9XG4pO1xuQWxlcnREaWFsb2dUcmlnZ2VyLmRpc3BsYXlOYW1lID0gVFJJR0dFUl9OQU1FO1xudmFyIFBPUlRBTF9OQU1FID0gXCJBbGVydERpYWxvZ1BvcnRhbFwiO1xudmFyIEFsZXJ0RGlhbG9nUG9ydGFsID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZUFsZXJ0RGlhbG9nLCAuLi5wb3J0YWxQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGRpYWxvZ1Njb3BlID0gdXNlRGlhbG9nU2NvcGUoX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goRGlhbG9nUHJpbWl0aXZlLlBvcnRhbCwgeyAuLi5kaWFsb2dTY29wZSwgLi4ucG9ydGFsUHJvcHMgfSk7XG59O1xuQWxlcnREaWFsb2dQb3J0YWwuZGlzcGxheU5hbWUgPSBQT1JUQUxfTkFNRTtcbnZhciBPVkVSTEFZX05BTUUgPSBcIkFsZXJ0RGlhbG9nT3ZlcmxheVwiO1xudmFyIEFsZXJ0RGlhbG9nT3ZlcmxheSA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlQWxlcnREaWFsb2csIC4uLm92ZXJsYXlQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGlhbG9nU2NvcGUgPSB1c2VEaWFsb2dTY29wZShfX3Njb3BlQWxlcnREaWFsb2cpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5LCB7IC4uLmRpYWxvZ1Njb3BlLCAuLi5vdmVybGF5UHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xuICB9XG4pO1xuQWxlcnREaWFsb2dPdmVybGF5LmRpc3BsYXlOYW1lID0gT1ZFUkxBWV9OQU1FO1xudmFyIENPTlRFTlRfTkFNRSA9IFwiQWxlcnREaWFsb2dDb250ZW50XCI7XG52YXIgW0FsZXJ0RGlhbG9nQ29udGVudFByb3ZpZGVyLCB1c2VBbGVydERpYWxvZ0NvbnRlbnRDb250ZXh0XSA9IGNyZWF0ZUFsZXJ0RGlhbG9nQ29udGV4dChDT05URU5UX05BTUUpO1xudmFyIEFsZXJ0RGlhbG9nQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlQWxlcnREaWFsb2csIGNoaWxkcmVuLCAuLi5jb250ZW50UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpYWxvZ1Njb3BlID0gdXNlRGlhbG9nU2NvcGUoX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgICBjb25zdCBjb250ZW50UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRlbnRSZWYpO1xuICAgIGNvbnN0IGNhbmNlbFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIERpYWxvZ1ByaW1pdGl2ZS5XYXJuaW5nUHJvdmlkZXIsXG4gICAgICB7XG4gICAgICAgIGNvbnRlbnROYW1lOiBDT05URU5UX05BTUUsXG4gICAgICAgIHRpdGxlTmFtZTogVElUTEVfTkFNRSxcbiAgICAgICAgZG9jc1NsdWc6IFwiYWxlcnQtZGlhbG9nXCIsXG4gICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEFsZXJ0RGlhbG9nQ29udGVudFByb3ZpZGVyLCB7IHNjb3BlOiBfX3Njb3BlQWxlcnREaWFsb2csIGNhbmNlbFJlZiwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgICAgICAgIERpYWxvZ1ByaW1pdGl2ZS5Db250ZW50LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJvbGU6IFwiYWxlcnRkaWFsb2dcIixcbiAgICAgICAgICAgIC4uLmRpYWxvZ1Njb3BlLFxuICAgICAgICAgICAgLi4uY29udGVudFByb3BzLFxuICAgICAgICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXG4gICAgICAgICAgICBvbk9wZW5BdXRvRm9jdXM6IGNvbXBvc2VFdmVudEhhbmRsZXJzKGNvbnRlbnRQcm9wcy5vbk9wZW5BdXRvRm9jdXMsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjYW5jZWxSZWYuY3VycmVudD8uZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBvblBvaW50ZXJEb3duT3V0c2lkZTogKGV2ZW50KSA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpLFxuICAgICAgICAgICAgb25JbnRlcmFjdE91dHNpZGU6IChldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goU2xvdHRhYmxlLCB7IGNoaWxkcmVuIH0pLFxuICAgICAgICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KERlc2NyaXB0aW9uV2FybmluZywgeyBjb250ZW50UmVmIH0pXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICApIH0pXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcbkFsZXJ0RGlhbG9nQ29udGVudC5kaXNwbGF5TmFtZSA9IENPTlRFTlRfTkFNRTtcbnZhciBUSVRMRV9OQU1FID0gXCJBbGVydERpYWxvZ1RpdGxlXCI7XG52YXIgQWxlcnREaWFsb2dUaXRsZSA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlQWxlcnREaWFsb2csIC4uLnRpdGxlUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpYWxvZ1Njb3BlID0gdXNlRGlhbG9nU2NvcGUoX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChEaWFsb2dQcmltaXRpdmUuVGl0bGUsIHsgLi4uZGlhbG9nU2NvcGUsIC4uLnRpdGxlUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xuICB9XG4pO1xuQWxlcnREaWFsb2dUaXRsZS5kaXNwbGF5TmFtZSA9IFRJVExFX05BTUU7XG52YXIgREVTQ1JJUFRJT05fTkFNRSA9IFwiQWxlcnREaWFsb2dEZXNjcmlwdGlvblwiO1xudmFyIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb24gPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZUFsZXJ0RGlhbG9nLCAuLi5kZXNjcmlwdGlvblByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgZGlhbG9nU2NvcGUgPSB1c2VEaWFsb2dTY29wZShfX3Njb3BlQWxlcnREaWFsb2cpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChEaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb24sIHsgLi4uZGlhbG9nU2NvcGUsIC4uLmRlc2NyaXB0aW9uUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xufSk7XG5BbGVydERpYWxvZ0Rlc2NyaXB0aW9uLmRpc3BsYXlOYW1lID0gREVTQ1JJUFRJT05fTkFNRTtcbnZhciBBQ1RJT05fTkFNRSA9IFwiQWxlcnREaWFsb2dBY3Rpb25cIjtcbnZhciBBbGVydERpYWxvZ0FjdGlvbiA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlQWxlcnREaWFsb2csIC4uLmFjdGlvblByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaWFsb2dTY29wZSA9IHVzZURpYWxvZ1Njb3BlKF9fc2NvcGVBbGVydERpYWxvZyk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goRGlhbG9nUHJpbWl0aXZlLkNsb3NlLCB7IC4uLmRpYWxvZ1Njb3BlLCAuLi5hY3Rpb25Qcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XG4gIH1cbik7XG5BbGVydERpYWxvZ0FjdGlvbi5kaXNwbGF5TmFtZSA9IEFDVElPTl9OQU1FO1xudmFyIENBTkNFTF9OQU1FID0gXCJBbGVydERpYWxvZ0NhbmNlbFwiO1xudmFyIEFsZXJ0RGlhbG9nQ2FuY2VsID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVBbGVydERpYWxvZywgLi4uY2FuY2VsUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IHsgY2FuY2VsUmVmIH0gPSB1c2VBbGVydERpYWxvZ0NvbnRlbnRDb250ZXh0KENBTkNFTF9OQU1FLCBfX3Njb3BlQWxlcnREaWFsb2cpO1xuICAgIGNvbnN0IGRpYWxvZ1Njb3BlID0gdXNlRGlhbG9nU2NvcGUoX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgICBjb25zdCByZWYgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBjYW5jZWxSZWYpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KERpYWxvZ1ByaW1pdGl2ZS5DbG9zZSwgeyAuLi5kaWFsb2dTY29wZSwgLi4uY2FuY2VsUHJvcHMsIHJlZiB9KTtcbiAgfVxuKTtcbkFsZXJ0RGlhbG9nQ2FuY2VsLmRpc3BsYXlOYW1lID0gQ0FOQ0VMX05BTUU7XG52YXIgRGVzY3JpcHRpb25XYXJuaW5nID0gKHsgY29udGVudFJlZiB9KSA9PiB7XG4gIGNvbnN0IE1FU1NBR0UgPSBgXFxgJHtDT05URU5UX05BTUV9XFxgIHJlcXVpcmVzIGEgZGVzY3JpcHRpb24gZm9yIHRoZSBjb21wb25lbnQgdG8gYmUgYWNjZXNzaWJsZSBmb3Igc2NyZWVuIHJlYWRlciB1c2Vycy5cblxuWW91IGNhbiBhZGQgYSBkZXNjcmlwdGlvbiB0byB0aGUgXFxgJHtDT05URU5UX05BTUV9XFxgIGJ5IHBhc3NpbmcgYSBcXGAke0RFU0NSSVBUSU9OX05BTUV9XFxgIGNvbXBvbmVudCBhcyBhIGNoaWxkLCB3aGljaCBhbHNvIGJlbmVmaXRzIHNpZ2h0ZWQgdXNlcnMgYnkgYWRkaW5nIHZpc2libGUgY29udGV4dCB0byB0aGUgZGlhbG9nLlxuXG5BbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSB5b3VyIG93biBjb21wb25lbnQgYXMgYSBkZXNjcmlwdGlvbiBieSBhc3NpZ25pbmcgaXQgYW4gXFxgaWRcXGAgYW5kIHBhc3NpbmcgdGhlIHNhbWUgdmFsdWUgdG8gdGhlIFxcYGFyaWEtZGVzY3JpYmVkYnlcXGAgcHJvcCBpbiBcXGAke0NPTlRFTlRfTkFNRX1cXGAuIElmIHRoZSBkZXNjcmlwdGlvbiBpcyBjb25mdXNpbmcgb3IgZHVwbGljYXRpdmUgZm9yIHNpZ2h0ZWQgdXNlcnMsIHlvdSBjYW4gdXNlIHRoZSBcXGBAcmFkaXgtdWkvcmVhY3QtdmlzdWFsbHktaGlkZGVuXFxgIHByaW1pdGl2ZSBhcyBhIHdyYXBwZXIgYXJvdW5kIHlvdXIgZGVzY3JpcHRpb24gY29tcG9uZW50LlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHBzOi8vcmFkaXgtdWkuY29tL3ByaW1pdGl2ZXMvZG9jcy9jb21wb25lbnRzL2FsZXJ0LWRpYWxvZ2A7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFzRGVzY3JpcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgIGNvbnRlbnRSZWYuY3VycmVudD8uZ2V0QXR0cmlidXRlKFwiYXJpYS1kZXNjcmliZWRieVwiKVxuICAgICk7XG4gICAgaWYgKCFoYXNEZXNjcmlwdGlvbikgY29uc29sZS53YXJuKE1FU1NBR0UpO1xuICB9LCBbTUVTU0FHRSwgY29udGVudFJlZl0pO1xuICByZXR1cm4gbnVsbDtcbn07XG52YXIgUm9vdDIgPSBBbGVydERpYWxvZztcbnZhciBUcmlnZ2VyMiA9IEFsZXJ0RGlhbG9nVHJpZ2dlcjtcbnZhciBQb3J0YWwyID0gQWxlcnREaWFsb2dQb3J0YWw7XG52YXIgT3ZlcmxheTIgPSBBbGVydERpYWxvZ092ZXJsYXk7XG52YXIgQ29udGVudDIgPSBBbGVydERpYWxvZ0NvbnRlbnQ7XG52YXIgQWN0aW9uID0gQWxlcnREaWFsb2dBY3Rpb247XG52YXIgQ2FuY2VsID0gQWxlcnREaWFsb2dDYW5jZWw7XG52YXIgVGl0bGUyID0gQWxlcnREaWFsb2dUaXRsZTtcbnZhciBEZXNjcmlwdGlvbjIgPSBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uO1xuZXhwb3J0IHtcbiAgQWN0aW9uLFxuICBBbGVydERpYWxvZyxcbiAgQWxlcnREaWFsb2dBY3Rpb24sXG4gIEFsZXJ0RGlhbG9nQ2FuY2VsLFxuICBBbGVydERpYWxvZ0NvbnRlbnQsXG4gIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb24sXG4gIEFsZXJ0RGlhbG9nT3ZlcmxheSxcbiAgQWxlcnREaWFsb2dQb3J0YWwsXG4gIEFsZXJ0RGlhbG9nVGl0bGUsXG4gIEFsZXJ0RGlhbG9nVHJpZ2dlcixcbiAgQ2FuY2VsLFxuICBDb250ZW50MiBhcyBDb250ZW50LFxuICBEZXNjcmlwdGlvbjIgYXMgRGVzY3JpcHRpb24sXG4gIE92ZXJsYXkyIGFzIE92ZXJsYXksXG4gIFBvcnRhbDIgYXMgUG9ydGFsLFxuICBSb290MiBhcyBSb290LFxuICBUaXRsZTIgYXMgVGl0bGUsXG4gIFRyaWdnZXIyIGFzIFRyaWdnZXIsXG4gIGNyZWF0ZUFsZXJ0RGlhbG9nU2NvcGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzVkNjc2YlwiIGQ9XCJtMTIgMTMuNC00LjkgNC45YTEgMSAwIDAgMS0uNy4yOCAxIDEgMCAwIDEtLjctLjI4IDEgMSAwIDAgMS0uMjgtLjdxMC0uNDIuMjgtLjdsNC45LTQuOS00LjktNC45YTEgMSAwIDAgMS0uMjgtLjdxMC0uNDIuMjgtLjdhMSAxIDAgMCAxIC43LS4yN3EuNDIgMCAuNy4yN2w0LjkgNC45IDQuOS00LjlhMSAxIDAgMCAxIC43LS4yN3EuNDIgMCAuNy4yN2ExIDEgMCAwIDEgLjI3LjcgMSAxIDAgMCAxLS4yNy43TDEzLjQgMTJsNC45IDQuOWExIDEgMCAwIDEgLjI4LjcgMSAxIDAgMCAxLS4yOC43IDEgMSAwIDAgMS0uNy4yNyAxIDEgMCAwIDEtLjctLjI3elwiLz48L3N2Zz4iLG51bGwsbnVsbCwiXCJ1c2UgY2xpZW50XCI7XG5cbi8vIHBhY2thZ2VzL3JlYWN0L2F2YXRhci9zcmMvYXZhdGFyLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbnRleHRcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmXCI7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0XCI7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZVwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgQVZBVEFSX05BTUUgPSBcIkF2YXRhclwiO1xudmFyIFtjcmVhdGVBdmF0YXJDb250ZXh0LCBjcmVhdGVBdmF0YXJTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoQVZBVEFSX05BTUUpO1xudmFyIFtBdmF0YXJQcm92aWRlciwgdXNlQXZhdGFyQ29udGV4dF0gPSBjcmVhdGVBdmF0YXJDb250ZXh0KEFWQVRBUl9OQU1FKTtcbnZhciBBdmF0YXIgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZUF2YXRhciwgLi4uYXZhdGFyUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtpbWFnZUxvYWRpbmdTdGF0dXMsIHNldEltYWdlTG9hZGluZ1N0YXR1c10gPSBSZWFjdC51c2VTdGF0ZShcImlkbGVcIik7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBBdmF0YXJQcm92aWRlcixcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6IF9fc2NvcGVBdmF0YXIsXG4gICAgICAgIGltYWdlTG9hZGluZ1N0YXR1cyxcbiAgICAgICAgb25JbWFnZUxvYWRpbmdTdGF0dXNDaGFuZ2U6IHNldEltYWdlTG9hZGluZ1N0YXR1cyxcbiAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goUHJpbWl0aXZlLnNwYW4sIHsgLi4uYXZhdGFyUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcbkF2YXRhci5kaXNwbGF5TmFtZSA9IEFWQVRBUl9OQU1FO1xudmFyIElNQUdFX05BTUUgPSBcIkF2YXRhckltYWdlXCI7XG52YXIgQXZhdGFySW1hZ2UgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZUF2YXRhciwgc3JjLCBvbkxvYWRpbmdTdGF0dXNDaGFuZ2UgPSAoKSA9PiB7XG4gICAgfSwgLi4uaW1hZ2VQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZUF2YXRhckNvbnRleHQoSU1BR0VfTkFNRSwgX19zY29wZUF2YXRhcik7XG4gICAgY29uc3QgaW1hZ2VMb2FkaW5nU3RhdHVzID0gdXNlSW1hZ2VMb2FkaW5nU3RhdHVzKHNyYywgaW1hZ2VQcm9wcy5yZWZlcnJlclBvbGljeSk7XG4gICAgY29uc3QgaGFuZGxlTG9hZGluZ1N0YXR1c0NoYW5nZSA9IHVzZUNhbGxiYWNrUmVmKChzdGF0dXMpID0+IHtcbiAgICAgIG9uTG9hZGluZ1N0YXR1c0NoYW5nZShzdGF0dXMpO1xuICAgICAgY29udGV4dC5vbkltYWdlTG9hZGluZ1N0YXR1c0NoYW5nZShzdGF0dXMpO1xuICAgIH0pO1xuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaW1hZ2VMb2FkaW5nU3RhdHVzICE9PSBcImlkbGVcIikge1xuICAgICAgICBoYW5kbGVMb2FkaW5nU3RhdHVzQ2hhbmdlKGltYWdlTG9hZGluZ1N0YXR1cyk7XG4gICAgICB9XG4gICAgfSwgW2ltYWdlTG9hZGluZ1N0YXR1cywgaGFuZGxlTG9hZGluZ1N0YXR1c0NoYW5nZV0pO1xuICAgIHJldHVybiBpbWFnZUxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgPyAvKiBAX19QVVJFX18gKi8ganN4KFByaW1pdGl2ZS5pbWcsIHsgLi4uaW1hZ2VQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYsIHNyYyB9KSA6IG51bGw7XG4gIH1cbik7XG5BdmF0YXJJbWFnZS5kaXNwbGF5TmFtZSA9IElNQUdFX05BTUU7XG52YXIgRkFMTEJBQ0tfTkFNRSA9IFwiQXZhdGFyRmFsbGJhY2tcIjtcbnZhciBBdmF0YXJGYWxsYmFjayA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlQXZhdGFyLCBkZWxheU1zLCAuLi5mYWxsYmFja1Byb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlQXZhdGFyQ29udGV4dChGQUxMQkFDS19OQU1FLCBfX3Njb3BlQXZhdGFyKTtcbiAgICBjb25zdCBbY2FuUmVuZGVyLCBzZXRDYW5SZW5kZXJdID0gUmVhY3QudXNlU3RhdGUoZGVsYXlNcyA9PT0gdm9pZCAwKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGRlbGF5TXMgIT09IHZvaWQgMCkge1xuICAgICAgICBjb25zdCB0aW1lcklkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gc2V0Q2FuUmVuZGVyKHRydWUpLCBkZWxheU1zKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXJJZCk7XG4gICAgICB9XG4gICAgfSwgW2RlbGF5TXNdKTtcbiAgICByZXR1cm4gY2FuUmVuZGVyICYmIGNvbnRleHQuaW1hZ2VMb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiID8gLyogQF9fUFVSRV9fICovIGpzeChQcmltaXRpdmUuc3BhbiwgeyAuLi5mYWxsYmFja1Byb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KSA6IG51bGw7XG4gIH1cbik7XG5BdmF0YXJGYWxsYmFjay5kaXNwbGF5TmFtZSA9IEZBTExCQUNLX05BTUU7XG5mdW5jdGlvbiB1c2VJbWFnZUxvYWRpbmdTdGF0dXMoc3JjLCByZWZlcnJlclBvbGljeSkge1xuICBjb25zdCBbbG9hZGluZ1N0YXR1cywgc2V0TG9hZGluZ1N0YXR1c10gPSBSZWFjdC51c2VTdGF0ZShcImlkbGVcIik7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzcmMpIHtcbiAgICAgIHNldExvYWRpbmdTdGF0dXMoXCJlcnJvclwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGlzTW91bnRlZCA9IHRydWU7XG4gICAgY29uc3QgaW1hZ2UgPSBuZXcgd2luZG93LkltYWdlKCk7XG4gICAgY29uc3QgdXBkYXRlU3RhdHVzID0gKHN0YXR1cykgPT4gKCkgPT4ge1xuICAgICAgaWYgKCFpc01vdW50ZWQpIHJldHVybjtcbiAgICAgIHNldExvYWRpbmdTdGF0dXMoc3RhdHVzKTtcbiAgICB9O1xuICAgIHNldExvYWRpbmdTdGF0dXMoXCJsb2FkaW5nXCIpO1xuICAgIGltYWdlLm9ubG9hZCA9IHVwZGF0ZVN0YXR1cyhcImxvYWRlZFwiKTtcbiAgICBpbWFnZS5vbmVycm9yID0gdXBkYXRlU3RhdHVzKFwiZXJyb3JcIik7XG4gICAgaW1hZ2Uuc3JjID0gc3JjO1xuICAgIGlmIChyZWZlcnJlclBvbGljeSkge1xuICAgICAgaW1hZ2UucmVmZXJyZXJQb2xpY3kgPSByZWZlcnJlclBvbGljeTtcbiAgICB9XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlzTW91bnRlZCA9IGZhbHNlO1xuICAgIH07XG4gIH0sIFtzcmMsIHJlZmVycmVyUG9saWN5XSk7XG4gIHJldHVybiBsb2FkaW5nU3RhdHVzO1xufVxudmFyIFJvb3QgPSBBdmF0YXI7XG52YXIgSW1hZ2UgPSBBdmF0YXJJbWFnZTtcbnZhciBGYWxsYmFjayA9IEF2YXRhckZhbGxiYWNrO1xuZXhwb3J0IHtcbiAgQXZhdGFyLFxuICBBdmF0YXJGYWxsYmFjayxcbiAgQXZhdGFySW1hZ2UsXG4gIEZhbGxiYWNrLFxuICBJbWFnZSxcbiAgUm9vdCxcbiAgY3JlYXRlQXZhdGFyU2NvcGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48bWFzayBpZD1cImFcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB4PVwiMFwiIHk9XCIwXCIgbWFza1VuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBzdHlsZT1cIm1hc2stdHlwZTphbHBoYVwiPjxwYXRoIGZpbGw9XCIjZDlkOWQ5XCIgZD1cIk0wIDBoMjR2MjRIMHpcIi8+PC9tYXNrPjxnIG1hc2s9XCJ1cmwoI2EpXCI+PHBhdGggZmlsbD1cIiMyYzMzMzZcIiBkPVwiTTEyIDE4Ljc1YS43LjcgMCAwIDEtLjUzLS4yMi43LjcgMCAwIDEtLjIyLS41M3YtNS4yNUg2YS43LjcgMCAwIDEtLjUzLS4yMi43LjcgMCAwIDEtLjIyLS41M3EwLS4zMi4yMi0uNTNhLjcuNyAwIDAgMSAuNTMtLjIyaDUuMjVWNnEwLS4zMi4yMi0uNTNhLjcuNyAwIDAgMSAuNTMtLjIycS4zMiAwIC41NC4yMmEuNy43IDAgMCAxIC4yMS41M3Y1LjI1SDE4cS4zMiAwIC41My4yMmEuNy43IDAgMCAxIC4yMi41M3EwIC4zMi0uMjIuNTRhLjcuNyAwIDAgMS0uNTMuMjFoLTUuMjVWMThxMCAuMzItLjIyLjUzYS43LjcgMCAwIDEtLjUzLjIyXCIvPjwvZz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzJjMzMzNlwiIGQ9XCJtMTIuMjggMjIuMS45My0uOTRhLjU2LjU2IDAgMCAwIDAtLjhMNS45MyAxMy4xaDE2Yy4zMiAwIC41Ny0uMjUuNTctLjU3di0xLjNhLjU2LjU2IDAgMCAwLS41Ni0uNTdoLTE2bDcuMjctNy4yN2EuNTYuNTYgMCAwIDAgMC0uOGwtLjkzLS45M2EuNTYuNTYgMCAwIDAtLjggMGwtOS44MSA5LjgyYS41Ni41NiAwIDAgMCAwIC44bDkuODEgOS44MWMuMjIuMjIuNTguMjIuOCAwXCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGZpbGw9XCIjMmMzMzM2XCIgZD1cIm0zLjE3IDExLjYgNi45My02Ljk0YS41Ny41NyAwIDAgMSAuOCAwbC45My45M2EuNTYuNTYgMCAwIDEgMCAuOEw2LjI0IDEybDUuNiA1LjYxYS41Ni41NiAwIDAgMSAwIC44bC0uOTQuOTNhLjU3LjU3IDAgMCAxLS44IDBMMy4xNyAxMi40YS41Ni41NiAwIDAgMSAwLS44XCIvPjxwYXRoIGZpbGw9XCIjMmMzMzM2XCIgZD1cIm0xMi4xNyAxMS42IDYuOTMtNi45NGEuNTcuNTcgMCAwIDEgLjggMGwuOTMuOTNhLjU2LjU2IDAgMCAxIDAgLjhMMTUuMjQgMTJsNS42IDUuNjFhLjU2LjU2IDAgMCAxIDAgLjhsLS45NC45M2EuNTcuNTcgMCAwIDEtLjggMGwtNi45My02Ljk0YS41Ni41NiAwIDAgMSAwLS44XCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGZpbGw9XCIjMmMzMzM2XCIgZD1cIm03LjcgMTEuNiA2Ljg4LTYuOTRhLjU2LjU2IDAgMCAxIC44IDBsLjkyLjkzYy4yMi4yMi4yMi41OCAwIC44TDEwLjc1IDEybDUuNTUgNS42MWMuMjIuMjIuMjIuNTggMCAuOGwtLjkzLjkzYS41Ni41NiAwIDAgMS0uOCAwTDcuNyAxMi40YS41Ni41NiAwIDAgMSAwLS44XCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGZpbGw9XCIjMmMzMzM2XCIgZD1cIk0yMy42MyAxMC44OGMwLTYuNC01LjE2LTEwLjUtMTEuNjMtMTAuNWExMS42MiAxMS42MiAwIDEgMCA2LjkgMjAuOTguNTYuNTYgMCAwIDAgLjEtLjhsLS43Mi0uODhhLjU2LjU2IDAgMCAwLS43Ny0uMSA5LjQgOS40IDAgMCAxLTUuNTEgMS44IDkuMzkgOS4zOSAwIDAgMSAwLTE4Ljc1YzUuMTMgMCA5LjM4IDMuMDQgOS4zOCA4LjI1IDAgMi45NS0yIDQuNi0zLjkgNC42LS45MSAwLS45NC0uNTktLjc2LTEuNDdsMS4zNC02Ljk3YS41Ni41NiAwIDAgMC0uNTUtLjY3aC0xLjg0YS41Ni41NiAwIDAgMC0uNTUuNDZjLS4wNS4yNy0uMDguNC0uMS42Ni0uNTctLjkyLTEuNy0xLjQ2LTMuMDYtMS40Ni0zLjM2IDAtNi4zMyAyLjkzLTYuMzMgNy4xNyAwIDIuODYgMS41NCA0Ljc4IDQuMzYgNC43OCAxLjQgMCAyLjg4LS43OSAzLjc0LTEuOTguMiAxLjQ1IDEuMzQgMS43OCAyLjc5IDEuNzggNC42NCAwIDcuMS0yLjk4IDcuMS02LjlNMTAuOCAxNS40M2MtMS4zNCAwLTIuMTMtLjkxLTIuMTMtMi40NCAwLTIuNyAxLjg1LTQuMzggMy41LTQuMzggMS40IDAgMi4xMiAxLjAxIDIuMTIgMi40MiAwIDIuMi0xLjU1IDQuNC0zLjUgNC40XCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGZpbGw9XCIjMDAwXCIgZD1cIk0zIDIxYTEgMSAwIDAgMS0uNzEtLjI5QTEgMSAwIDAgMSAyIDIwcTAtLjQyLjI5LS43MUExIDEgMCAwIDEgMyAxOWgxOHEuNDIgMCAuNzEuMjlUMjIgMjB0LS4yOS43MUExIDEgMCAwIDEgMjEgMjF6bTEuNS0zcS0uNjIgMC0xLjA2LS40NEExLjUgMS41IDAgMCAxIDMgMTYuNXYtNHEwLS42Mi40NC0xLjA2QTEuNSAxLjUgMCAwIDEgNC41IDExcS42MiAwIDEuMDYuNDRUNiAxMi41djRxMCAuNjMtLjQ0IDEuMDZBMS41IDEuNSAwIDAgMSA0LjUgMThtNSAwcS0uNjIgMC0xLjA2LS40NEExLjUgMS41IDAgMCAxIDggMTYuNXYtOXEwLS42Mi40NC0xLjA2QTEuNSAxLjUgMCAwIDEgOS41IDZxLjYyIDAgMS4wNi40NC40NC40My40NCAxLjA2djlxMCAuNjMtLjQ0IDEuMDZBMS41IDEuNSAwIDAgMSA5LjUgMThtNSAwcS0uNjIgMC0xLjA2LS40NEExLjUgMS41IDAgMCAxIDEzIDE2LjV2LTZxMC0uNjIuNDQtMS4wNkExLjUgMS41IDAgMCAxIDE0LjUgOXEuNjIgMCAxLjA2LjQ0LjQ0LjQzLjQ0IDEuMDZ2NnEwIC42My0uNDQgMS4wNmExLjUgMS41IDAgMCAxLTEuMDYuNDRtNSAwcS0uNjIgMC0xLjA2LS40NEExLjUgMS41IDAgMCAxIDE4IDE2LjV2LTEycTAtLjYyLjQ0LTEuMDZBMS41IDEuNSAwIDAgMSAxOS41IDNxLjYzIDAgMS4wNi40NC40NC40My40NCAxLjA2djEycTAgLjYzLS40NCAxLjA2YTEuNSAxLjUgMCAwIDEtMS4wNi40NFwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48bWFzayBpZD1cImFcIiBtYXNrVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIHN0eWxlPVwibWFzay10eXBlOmFscGhhXCI+PHBhdGggZmlsbD1cIiNkOWQ5ZDlcIiBkPVwiTTAgMGgyNHYyNEgwelwiLz48L21hc2s+PGcgbWFzaz1cInVybCgjYSlcIj48cGF0aCBmaWxsPVwiIzQyNDU0YlwiIGQ9XCJNMTIgMjEuNWE5IDkgMCAwIDEtMy43LS43NSAxMCAxMCAwIDAgMS0zLjAyLTIuMDMgMTAgMTAgMCAwIDEtMi4wMy0zLjAxQTkgOSAwIDAgMSAyLjUgMTJxMC0xLjk4Ljc1LTMuNzFhMTAgMTAgMCAwIDEgMi4wMy0zLjAyIDEwIDEwIDAgMCAxIDMuMDEtMi4wM0E5IDkgMCAwIDEgMTIgMi41cTEuOTggMCAzLjcxLjc1YTEwIDEwIDAgMCAxIDMuMDIgMi4wMyAxMCAxMCAwIDAgMSAyLjAzIDMuMDEgOSA5IDAgMCAxIC43NSAzLjdxMCAxLjk4LS43NSAzLjcxYTEwIDEwIDAgMCAxLTIuMDMgMy4wMiAxMCAxMCAwIDAgMS0zLjAxIDIuMDMgOSA5IDAgMCAxLTMuNy43NU0xMiAyMHEzLjM1IDAgNS42OC0yLjMzVDIwIDEycTAtMS40LS40OC0yLjcxYTggOCAwIDAgMC0xLjM3LTIuMzhMNi45IDE4LjE1YTggOCAwIDAgMCAyLjM4IDEuMzdBOCA4IDAgMCAwIDEyIDIwbS02LjE1LTIuOUwxNy4xIDUuODRhOCA4IDAgMCAwLTIuMzctMS4zOEE4IDggMCAwIDAgMTIgNFE4LjY1IDQgNi4zMyA2LjMzVDQgMTJxMCAxLjQuNDggMi43MWE4IDggMCAwIDAgMS4zNyAyLjM4XCIvPjwvZz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48bWFzayBpZD1cImFcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB4PVwiMFwiIHk9XCIwXCIgbWFza1VuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBzdHlsZT1cIm1hc2stdHlwZTphbHBoYVwiPjxwYXRoIGZpbGw9XCIjZDlkOWQ5XCIgZD1cIk0wIDBoMjR2MjRIMHpcIi8+PC9tYXNrPjxnIG1hc2s9XCJ1cmwoI2EpXCI+PHBhdGggZmlsbD1cIiMyYzMzMzZcIiBkPVwiTTMgMTQuNWEuNS41IDAgMCAxLS4zNS0uMTUuNS41IDAgMCAxIDAtLjcuNS41IDAgMCAxIC43IDAgLjUuNSAwIDAgMSAwIC43LjUuNSAwIDAgMS0uMzUuMTVtMC00YS41LjUgMCAwIDEtLjM1LS4xNS41LjUgMCAwIDEgMC0uNy41LjUgMCAwIDEgLjcgMCAuNS41IDAgMCAxIDAgLjcuNS41IDAgMCAxLS4zNS4xNW0zIDguNDJhMSAxIDAgMCAxLS42Ni0uMjYgMSAxIDAgMCAxLS4yNi0uNjZxMC0uNC4yNi0uNjZhMSAxIDAgMCAxIC42Ni0uMjZxLjQgMCAuNjYuMjZhMSAxIDAgMCAxIC4yNi42NnEwIC40LS4yNi42NmExIDEgMCAwIDEtLjY2LjI2bTAtNGExIDEgMCAwIDEtLjY2LS4yNiAxIDEgMCAwIDEtLjI2LS42NnEwLS40LjI2LS42NmExIDEgMCAwIDEgLjY2LS4yNnEuNCAwIC42Ni4yNmExIDEgMCAwIDEgLjI2LjY2cTAgLjQtLjI2LjY2YTEgMSAwIDAgMS0uNjYuMjZtMC00YTEgMSAwIDAgMS0uNjYtLjI2IDEgMSAwIDAgMS0uMjYtLjY2cTAtLjQuMjYtLjY2QTEgMSAwIDAgMSA2IDkuMDhxLjQgMCAuNjYuMjZhMSAxIDAgMCAxIC4yNi42NnEwIC40LS4yNi42NmExIDEgMCAwIDEtLjY2LjI2bTAtNGExIDEgMCAwIDEtLjY2LS4yNkExIDEgMCAwIDEgNS4wOCA2cTAtLjQuMjYtLjY2QTEgMSAwIDAgMSA2IDUuMDhxLjQgMCAuNjYuMjZhMSAxIDAgMCAxIC4yNi42NnEwIC40LS4yNi42NmExIDEgMCAwIDEtLjY2LjI2bTQgOC40M3EtLjU2IDAtLjk1LS40YTEuMyAxLjMgMCAwIDEtLjQtLjk1cTAtLjU2LjQtLjk1LjM5LS40Ljk1LS40dC45NS40LjQuOTUtLjQuOTVhMS4zIDEuMyAwIDAgMS0uOTUuNG0wLTRxLS41NiAwLS45NS0uNGExLjMgMS4zIDAgMCAxLS40LS45NXEwLS41Ni40LS45NS4zOS0uNC45NS0uNHQuOTUuNC40Ljk1LS40Ljk1YTEuMyAxLjMgMCAwIDEtLjk1LjRtMCA3LjU3YTEgMSAwIDAgMS0uNjYtLjI2IDEgMSAwIDAgMS0uMjYtLjY2cTAtLjQuMjYtLjY2YTEgMSAwIDAgMSAuNjYtLjI2cS40IDAgLjY2LjI2YTEgMSAwIDAgMSAuMjYuNjZxMCAuNC0uMjYuNjZhMSAxIDAgMCAxLS42Ni4yNm0wLTEyYTEgMSAwIDAgMS0uNjYtLjI2QTEgMSAwIDAgMSA5LjA4IDZxMC0uNC4yNi0uNjZhMSAxIDAgMCAxIC42Ni0uMjZxLjQgMCAuNjYuMjZhMSAxIDAgMCAxIC4yNi42NnEwIC40LS4yNi42NmExIDEgMCAwIDEtLjY2LjI2bTAgMTQuNThhLjUuNSAwIDAgMS0uMzUtLjE1LjUuNSAwIDAgMSAwLS43LjUuNSAwIDAgMSAuNyAwIC41LjUgMCAwIDEgMCAuNy41LjUgMCAwIDEtLjM1LjE1bTAtMThhLjUuNSAwIDAgMS0uMzUtLjE1LjUuNSAwIDAgMSAwLS43LjUuNSAwIDAgMSAuNyAwIC41LjUgMCAwIDEgMCAuNy41LjUgMCAwIDEtLjM1LjE1bTQgMTEuODVxLS41NiAwLS45NS0uNGExLjMgMS4zIDAgMCAxLS40LS45NXEwLS41Ni40LS45NS4zOS0uNC45NS0uNHQuOTUuNC40Ljk1LS40Ljk1YTEuMyAxLjMgMCAwIDEtLjk1LjRtMC00cS0uNTYgMC0uOTUtLjRhMS4zIDEuMyAwIDAgMS0uNC0uOTVxMC0uNTYuNC0uOTUuMzktLjQuOTUtLjR0Ljk1LjQuNC45NS0uNC45NWExLjMgMS4zIDAgMCAxLS45NS40bTAgNy41N2ExIDEgMCAwIDEtLjY2LS4yNiAxIDEgMCAwIDEtLjI2LS42NnEwLS40LjI2LS42NmExIDEgMCAwIDEgLjY2LS4yNnEuNCAwIC42Ni4yNmExIDEgMCAwIDEgLjI2LjY2cTAgLjQtLjI2LjY2YTEgMSAwIDAgMS0uNjYuMjZtMC0xMmExIDEgMCAwIDEtLjY2LS4yNiAxIDEgMCAwIDEtLjI2LS42NnEwLS40LjI2LS42NmExIDEgMCAwIDEgLjY2LS4yNnEuNCAwIC42Ni4yNmExIDEgMCAwIDEgLjI2LjY2cTAgLjQtLjI2LjY2YTEgMSAwIDAgMS0uNjYuMjZtMCAxNC41OGEuNS41IDAgMCAxLS4zNS0uMTUuNS41IDAgMCAxIDAtLjcuNS41IDAgMCAxIC43IDAgLjUuNSAwIDAgMSAwIC43LjUuNSAwIDAgMS0uMzUuMTVtMC0xOGEuNS41IDAgMCAxLS4zNS0uMTUuNS41IDAgMCAxIDAtLjcuNS41IDAgMCAxIC43IDAgLjUuNSAwIDAgMSAwIC43LjUuNSAwIDAgMS0uMzUuMTVtNCAxNS40MmExIDEgMCAwIDEtLjY2LS4yNiAxIDEgMCAwIDEtLjI2LS42NnEwLS40LjI2LS42NmExIDEgMCAwIDEgLjY2LS4yNnEuNCAwIC42Ni4yNmExIDEgMCAwIDEgLjI2LjY2cTAgLjQtLjI2LjY2YTEgMSAwIDAgMS0uNjYuMjZtMC00YTEgMSAwIDAgMS0uNjYtLjI2IDEgMSAwIDAgMS0uMjYtLjY2cTAtLjQuMjYtLjY2YTEgMSAwIDAgMSAuNjYtLjI2cS40IDAgLjY2LjI2YTEgMSAwIDAgMSAuMjYuNjZxMCAuNC0uMjYuNjZhMSAxIDAgMCAxLS42Ni4yNm0wLTRhMSAxIDAgMCAxLS42Ni0uMjYgMSAxIDAgMCAxLS4yNi0uNjZxMC0uNC4yNi0uNjZhMSAxIDAgMCAxIC42Ni0uMjZxLjQgMCAuNjYuMjZhMSAxIDAgMCAxIC4yNi42NnEwIC40LS4yNi42NmExIDEgMCAwIDEtLjY2LjI2bTAtNGExIDEgMCAwIDEtLjY2LS4yNiAxIDEgMCAwIDEtLjI2LS42NnEwLS40LjI2LS42NmExIDEgMCAwIDEgLjY2LS4yNnEuNCAwIC42Ni4yNmExIDEgMCAwIDEgLjI2LjY2cTAgLjQtLjI2LjY2YTEgMSAwIDAgMS0uNjYuMjZtMyA3LjU4YS41LjUgMCAwIDEtLjM1LS4xNS41LjUgMCAwIDEgMC0uNy41LjUgMCAwIDEgLjcgMCAuNS41IDAgMCAxIDAgLjcuNS41IDAgMCAxLS4zNS4xNW0wLTRhLjUuNSAwIDAgMS0uMzUtLjE1LjUuNSAwIDAgMSAwLS43LjUuNSAwIDAgMSAuNyAwIC41LjUgMCAwIDEgMCAuNy41LjUgMCAwIDEtLjM1LjE1XCIvPjwvZz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48bWFzayBpZD1cImFcIiB4PVwiMFwiIHk9XCIwXCIgbWFza1VuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBzdHlsZT1cIm1hc2stdHlwZTphbHBoYVwiPjxwYXRoIGZpbGw9XCIjZDlkOWQ5XCIgZD1cIk0wIDBoMjR2MjRIMHpcIi8+PC9tYXNrPjxnIG1hc2s9XCJ1cmwoI2EpXCI+PHBhdGggZmlsbD1cIiMyYzMzMzZcIiBkPVwiTTEyLjA1IDE5Ljc1cS0zLjI0IDAtNS41Mi0yLjI2VDQuMjUgMTJ2LS43OGwtMS4zMiAxLjMyYS43LjcgMCAwIDEtLjUzLjIyLjcuNyAwIDAgMS0uNTMtLjIyLjcuNyAwIDAgMS0uMjEtLjUycTAtLjMxLjIxLS41M2wyLjUtMi41QTEgMSAwIDAgMSA1IDguNzJhMSAxIDAgMCAxIC42My4yN2wyLjUgMi41cS4yLjIuMi41MmEuNy43IDAgMCAxLS4yLjUzLjcuNyAwIDAgMS0uNTMuMjIuNy43IDAgMCAxLS41My0uMjJsLTEuMzItMS4zMlYxMnEwIDIuNiAxLjg0IDQuNDN0NC40NiAxLjgycS40NCAwIC44Ny0uMDZ0Ljg2LS4yYTEgMSAwIDAgMSAuNi4wMi44LjggMCAwIDEgLjQzLjQuNy43IDAgMCAxIC4wMi41OC43LjcgMCAwIDEtLjQ0LjM5cS0uNTcuMi0xLjE2LjI4YTggOCAwIDAgMS0xLjE4LjA5bS0uMS0xNHEtLjQ0IDAtLjg3LjA2YTUgNSAwIDAgMC0uODYuMkExIDEgMCAwIDEgOS42IDZhLjguOCAwIDAgMS0uNDQtLjQuNy43IDAgMCAxLS4wMi0uNTYuNy43IDAgMCAxIC40Mi0uMzlxLjU4LS4yIDEuMTgtLjNhOCA4IDAgMCAxIDEuMi0uMDlxMy4yNSAwIDUuNTIgMi4yNlQxOS43NSAxMnYuNzhsMS4zMi0xLjMyYS43LjcgMCAwIDEgLjUzLS4yMi43LjcgMCAwIDEgLjUzLjIycS4yMS4yMS4yMS41MmEuNy43IDAgMCAxLS4yMS41M2wtMi41IDIuNWExIDEgMCAwIDEtLjYzLjI3IDEgMSAwIDAgMS0uNjMtLjI3bC0yLjUtMi41YS43LjcgMCAwIDEtLjItLjUyLjcuNyAwIDAgMSAuMi0uNTMuNy43IDAgMCAxIC41My0uMjJxLjMxIDAgLjUzLjIybDEuMzIgMS4zMlYxMnEwLTIuNi0xLjgzLTQuNDN0LTQuNDctMS44MlwiLz48L2c+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+PG1hc2sgaWQ9XCJhXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgeD1cIjBcIiB5PVwiMFwiIG1hc2tVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgc3R5bGU9XCJtYXNrLXR5cGU6YWxwaGFcIj48cGF0aCBmaWxsPVwiI2Q5ZDlkOVwiIGQ9XCJNMCAwaDMydjMySDB6XCIvPjwvbWFzaz48ZyBtYXNrPVwidXJsKCNhKVwiPjxwYXRoIGZpbGw9XCIjMTFiMDZlXCIgZD1cIk02LjY3IDI5LjMzYTIuNiAyLjYgMCAwIDEtMS44OS0uNzhBMi42IDIuNiAwIDAgMSA0IDI2LjY3VjhxMC0xLjEuNzgtMS44OGEyLjYgMi42IDAgMCAxIDEuODktLjc5SDhWNHEwLS41Ny4zOC0uOTVhMS4zIDEuMyAwIDAgMSAuOTUtLjM4cS41NyAwIC45NS4zOC4zOS4zOC4zOS45NXYxLjMzaDEwLjY2VjRxMC0uNTcuMzktLjk1YTEuMyAxLjMgMCAwIDEgLjk1LS4zOHEuNTYgMCAuOTUuMzhUMjQgNHYxLjMzaDEuMzNxMS4xIDAgMS44OS43OVEyOCA2LjkgMjggOHYxOC42N3EwIDEuMS0uNzggMS44OGEyLjYgMi42IDAgMCAxLTEuODkuNzh6bTAtMi42NmgxOC42NlYxMy4zM0g2LjY3em05LjMzLThhMS4zIDEuMyAwIDAgMS0uOTUtLjM5IDEuMyAxLjMgMCAwIDEtLjM4LS45NXEwLS41Ni4zOC0uOTVBMS4zIDEuMyAwIDAgMSAxNiAxNnEuNTcgMCAuOTUuMzguMzguMzkuMzguOTV0LS4zOC45NWExLjMgMS4zIDAgMCAxLS45NS4zOW0tNS4zMyAwYTEuMyAxLjMgMCAwIDEtLjk1LS4zOSAxLjMgMS4zIDAgMCAxLS4zOS0uOTVxMC0uNTcuMzktLjk1YTEuMyAxLjMgMCAwIDEgLjk1LS4zOHEuNTYgMCAuOTUuMzh0LjM4Ljk1LS4zOC45NWExLjMgMS4zIDAgMCAxLS45NS4zOG0xMC42NiAwYTEuMyAxLjMgMCAwIDEtLjk1LS4zOCAxLjMgMS4zIDAgMCAxLS4zOC0uOTVxMC0uNTcuMzgtLjk1YTEuMyAxLjMgMCAwIDEgLjk1LS4zOHEuNTcgMCAuOTUuMzguMzkuMzguMzkuOTV0LS4zOS45NWExLjMgMS4zIDAgMCAxLS45NS4zOE0xNiAyNGExLjMgMS4zIDAgMCAxLS45NS0uMzggMS4zIDEuMyAwIDAgMS0uMzgtLjk1cTAtLjU3LjM4LS45NWExLjMgMS4zIDAgMCAxIC45NS0uMzlxLjU3IDAgLjk1LjM5LjM4LjM4LjM4Ljk1dC0uMzguOTVBMS4zIDEuMyAwIDAgMSAxNiAyNG0tNS4zMyAwYTEuMyAxLjMgMCAwIDEtLjk1LS4zOCAxLjMgMS4zIDAgMCAxLS4zOS0uOTVxMC0uNTcuMzktLjk1YTEuMyAxLjMgMCAwIDEgLjk1LS4zOXEuNTYgMCAuOTUuMzkuMzguMzguMzguOTV0LS4zOC45NWExLjMgMS4zIDAgMCAxLS45NS4zOG0xMC42NiAwYTEuMyAxLjMgMCAwIDEtLjk1LS4zOCAxLjMgMS4zIDAgMCAxLS4zOC0uOTVxMC0uNTcuMzgtLjk1YTEuMyAxLjMgMCAwIDEgLjk1LS4zOXEuNTcgMCAuOTUuMzkuMzkuMzguMzkuOTV0LS4zOS45NWExLjMgMS4zIDAgMCAxLS45NS4zOFwiLz48L2c+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPjxwYXRoIGQ9XCJNMTEuNjcgMy4yMkgxLjY2QTEuNjcgMS42NyAwIDAgMCAwIDQuOXYxMC4xNGMwIC45My43NCAxLjY4IDEuNjYgMS42OGgxMC4wMWExLjY3IDEuNjcgMCAwIDAgMS42Ni0xLjY4VjQuOWExLjY3IDEuNjcgMCAwIDAtMS42Ni0xLjY4bTYuNTggMS4zMy0zLjggMi42NnY1LjUzbDMuOCAyLjY1Yy43NC41MiAxLjc1IDAgMS43NS0uOVY1LjQ2YzAtLjktMS4wMS0xLjQyLTEuNzUtLjkxXCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMWVtXCIgaGVpZ2h0PVwiMWVtXCIgZmlsbD1cIm5vbmVcIj48ZyBjbGlwLXBhdGg9XCJ1cmwoI2EpXCI+PHBhdGggZmlsbD1cIiM5OGEyYjNcIiBkPVwiTTMuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMCA2LjI1djcuNUEzLjI1IDMuMjUgMCAwIDAgMy4yNSAxN2g3LjVBMy4yNSAzLjI1IDAgMCAwIDE0IDEzLjc1di0uMzFsMy4yNiAyLjI1YzEuMTYuOCAyLjc0LS4wMyAyLjc0LTEuNDR2LTguNWExLjc1IDEuNzUgMCAwIDAtMi43NC0xLjQ0TDE0IDYuNTZ2LS4zMUEzLjI1IDMuMjUgMCAwIDAgMTAuNzUgM3pNMTQgOC4zOGw0LjExLTIuODNhLjI1LjI1IDAgMCAxIC40LjJ2OC41YS4yNS4yNSAwIDAgMS0uNC4yTDE0IDExLjYyek0xLjUgNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWg3LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2Ny41YTEuNzUgMS43NSAwIDAgMS0xLjc1IDEuNzVoLTcuNWExLjc1IDEuNzUgMCAwIDEtMS43NS0xLjc1elwiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPVwiYVwiPjxwYXRoIGZpbGw9XCIjZmZmXCIgZD1cIk0wIDBoMjB2MjBIMHpcIi8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGQ9XCJNMTcuMzMgMTAuMzNWMy42N0EyLjY3IDIuNjcgMCAwIDAgMTQuNjcgMWgtMTJBMi42NyAyLjY3IDAgMCAwIDAgMy42N3Y2LjY2QTIuNjcgMi42NyAwIDAgMCAyLjY3IDEzdjIuMjZjMCAuMzMuMzguNTIuNjQuMzJMNi43NiAxM2g3LjlhMi42NiAyLjY2IDAgMCAwIDIuNjctMi42N200LTIuNjZoLTIuNjZ2Mi42NmE0IDQgMCAwIDEtNCA0SDhWMTdhMi42NyAyLjY3IDAgMCAwIDIuNjcgMi42N2g1LjIzbDMuNDUgMi41OGMuMjcuMi42NS4wMS42NS0uMzJ2LTIuMjZoMS4zM0EyLjY3IDIuNjcgMCAwIDAgMjQgMTd2LTYuNjdhMi42NyAyLjY3IDAgMCAwLTIuNjctMi42NlwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzAyYmY2ZlwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTAgMTUuNlYyLjRoMi40djEzLjJ6bTIxLjYgMFYyLjRIMjR2MTMuMnptMC0xMy4ySDIuNFYwaDE5LjJ6TTcuMiAxOEgyLjR2LTIuNGg0Ljh6bTE0LjQgMGgtNC44di0yLjRoNC44elwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIi8+PHBhdGggZmlsbD1cIiMwMmJmNmZcIiBkPVwiTTI0IDIuNEEyLjQgMi40IDAgMCAwIDIxLjYgMHYyLjR6bTAgMTMuMmEyLjQgMi40IDAgMCAxLTIuNCAyLjR2LTIuNHpNMCAyLjRBMi40IDIuNCAwIDAgMSAyLjQgMHYyLjR6bTAgMTMuMkEyLjQgMi40IDAgMCAwIDIuNCAxOHYtMi40em03LjIgMEEyLjQgMi40IDAgMCAxIDkuNiAxOEg3LjJ6bTAgNy4yYTEuMiAxLjIgMCAxIDAgMi40IDB6XCIvPjxwYXRoIGZpbGw9XCIjMDJiZjZmXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy4yIDIyLjhWMThoMi40djQuOHpcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIvPjxwYXRoIGZpbGw9XCIjMDJiZjZmXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTcuNzggMTYuMWExLjIgMS4yIDAgMCAxLS4yOCAxLjY4bC04LjQgNmExLjIgMS4yIDAgMCAxLTEuNC0xLjk2bDguNC02YTEuMiAxLjIgMCAwIDEgMS42OC4yOE0xMiA2YTMuNiAzLjYgMCAxIDAgMCA3LjJBMy42IDMuNiAwIDAgMCAxMiA2TTYgOS42YTYgNiAwIDEgMSAxMiAwIDYgNiAwIDAgMS0xMiAwXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiLz48cGF0aCBmaWxsPVwiIzAyYmY2ZlwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuMiAxMS41NiAxNS4wMyA2bDEuMzkgMS45Ni03LjgzIDUuNTZ6XCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiLz48L3N2Zz4iLCI8c3ZnIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBkYXRhLWljb249XCJjaGVja1wiIHZpZXdCb3g9XCI2NCA2NCA4OTYgODk2XCI+PHBhdGggZD1cIk05MTIgMTkwaC02OS45Yy05LjggMC0xOS4xIDQuNS0yNS4xIDEyLjJMNDA0LjcgNzI0LjUgMjA3IDQ3NGEzMiAzMiAwIDAgMC0yNS4xLTEyLjJIMTEyYy02LjcgMC0xMC40IDcuNy02LjMgMTIuOWwyNzMuOSAzNDdjMTIuOCAxNi4yIDM3LjQgMTYuMiA1MC4zIDBsNDg4LjQtNjE4LjljNC4xLTUuMS40LTEyLjgtNi4zLTEyLjhcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PHBhdGggZmlsbD1cIiMyYzMzMzZcIiBkPVwibTEwLjU4IDE0LjE1LTIuMzItMi4zM2EuNy43IDAgMCAwLS41Mi0uMi43LjcgMCAwIDAtLjU0LjIuNy43IDAgMCAwLS4yMS41M3EwIC4zMS4yMS41M2wyLjc1IDIuNzRhMSAxIDAgMCAwIC42My4yN3EuMzYgMCAuNjMtLjI3bDUuNTctNS41NmEuNy43IDAgMCAwIC4yLS41Mi43LjcgMCAwIDAtLjItLjU0LjcuNyAwIDAgMC0uNTMtLjIxLjcuNyAwIDAgMC0uNTMuMjF6TTEyIDIxLjVhOSA5IDAgMCAxLTMuNy0uNzUgMTAgMTAgMCAwIDEtMy4wMi0yLjAzIDEwIDEwIDAgMCAxLTIuMDMtMy4wMUE5IDkgMCAwIDEgMi41IDEycTAtMS45OC43NS0zLjcxYTEwIDEwIDAgMCAxIDIuMDMtMy4wMiAxMCAxMCAwIDAgMSAzLjAxLTIuMDNBOSA5IDAgMCAxIDEyIDIuNXExLjk4IDAgMy43MS43NWExMCAxMCAwIDAgMSAzLjAyIDIuMDMgMTAgMTAgMCAwIDEgMi4wMyAzLjAxIDkgOSAwIDAgMSAuNzUgMy43cTAgMS45OC0uNzUgMy43MWExMCAxMCAwIDAgMS0yLjAzIDMuMDIgMTAgMTAgMCAwIDEtMy4wMSAyLjAzIDkgOSAwIDAgMS0zLjcuNzVcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PHBhdGggZmlsbD1cIiMyYzMzMzZcIiBkPVwiTTIzLjk0IDEyQTExLjYzIDExLjYzIDAgMSAxIC42OSAxMmExMS42MyAxMS42MyAwIDAgMSAyMy4yNSAwbS0xMi45NyA2LjE2IDguNjItOC42M2EuNzUuNzUgMCAwIDAgMC0xLjA2bC0xLjA2LTEuMDZhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtNy4wMyA3LjAzLTMuMjktMy4yOGEuNzUuNzUgMCAwIDAtMS4wNiAwbC0xLjA2IDEuMDZhLjc1Ljc1IDAgMCAwIDAgMS4wNmw0Ljg4IDQuODhhLjc1Ljc1IDAgMCAwIDEuMDYgMFwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzAyYmY2ZlwiIGQ9XCJtMTAuNiAxMy40LTIuMTUtMi4xNWExIDEgMCAwIDAtLjctLjI4IDEgMSAwIDAgMC0uNy4yOCAxIDEgMCAwIDAtLjI4LjdxMCAuNDMuMjguN0w5LjkgMTUuNXEuMy4zLjcuM3QuNy0uM2w1LjY1LTUuNjVhMSAxIDAgMCAwIC4yOC0uNyAxIDEgMCAwIDAtLjI4LS43IDEgMSAwIDAgMC0uNy0uMjcgMSAxIDAgMCAwLS43LjI3ek01IDIxcS0uODIgMC0xLjQxLS41OUEyIDIgMCAwIDEgMyAxOVY1cTAtLjgyLjU5LTEuNDFBMiAyIDAgMCAxIDUgM2gxNHEuODIgMCAxLjQxLjU5VDIxIDV2MTRxMCAuODItLjU5IDEuNDFBMiAyIDAgMCAxIDE5IDIxelwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzAyYmY2ZlwiIGQ9XCJNMTMgMTEuNlY4YTEgMSAwIDAgMC0uMjktLjcxQTEgMSAwIDAgMCAxMiA3YTEgMSAwIDAgMC0uNzEuMjlBMSAxIDAgMCAwIDExIDh2My45OHEwIC4yLjA4LjM4LjA3LjE5LjIyLjM0bDMuMyAzLjNhMSAxIDAgMCAwIC43LjI4QTEgMSAwIDAgMCAxNiAxNmExIDEgMCAwIDAgLjI4LS43IDEgMSAwIDAgMC0uMjgtLjd6TTEyIDIyYTEwIDEwIDAgMCAxLTMuOS0uNzkgMTAgMTAgMCAwIDEtMy4xNy0yLjE0cS0xLjM1LTEuMzUtMi4xNC0zLjE3QTEwIDEwIDAgMCAxIDIgMTJxMC0yLjA4Ljc5LTMuOWExMCAxMCAwIDAgMSAyLjE0LTMuMTdRNi4yOCAzLjU4IDguMSAyLjc4QTEwIDEwIDAgMCAxIDEyIDJxMi4wOCAwIDMuOS43OWExMCAxMCAwIDAgMSAzLjE4IDIuMTRxMS4zNSAxLjM1IDIuMTMgMy4xN0ExMCAxMCAwIDAgMSAyMiAxMmExMCAxMCAwIDAgMS0uNzkgMy45IDEwIDEwIDAgMCAxLTIuMTQgMy4xOHEtMS4zNSAxLjM1LTMuMTcgMi4xM0ExMCAxMCAwIDAgMSAxMiAyMm0wLTJxMy4zMyAwIDUuNjYtMi4zNFQyMCAxMnQtMi4zNC01LjY2VDEyIDQgNi4zNCA2LjM0IDQgMTJ0Mi4zNCA1LjY2VDEyIDIwXCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBkPVwiTTEyIDEwLjg4VjYuNDJjMC0xIDEuMjEtMS41IDEuOTItLjhsMS4zIDEuMyA1LjI2LTUuMjZhLjU2LjU2IDAgMCAxIC44IDBsMS4wNiAxLjA2Yy4yMi4yMi4yMi41OCAwIC44bC01LjI2IDUuMjYgMS4zIDEuM2MuNy43LjIgMS45Mi0uOCAxLjkyaC00LjQ1QTEuMTMgMS4xMyAwIDAgMSAxMiAxMC44OE0zLjUyIDIyLjM0bDUuMjYtNS4yNiAxLjMgMS4zYy43LjcgMS45Mi4yIDEuOTItLjh2LTQuNDVjMC0uNjMtLjUtMS4xMy0xLjEyLTEuMTNINi40MmMtMSAwLTEuNSAxLjIxLS44IDEuOTJsMS4zIDEuMy01LjI2IDUuMjZhLjU2LjU2IDAgMCAwIDAgLjhsMS4wNiAxLjA2Yy4yMi4yMi41OC4yMi44IDBcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PHBhdGggZmlsbD1cIiMyYzMzMzZcIiBkPVwiTTIxLjg0IDMuMSAxOS40MS42NUEyLjMgMi4zIDAgMCAwIDE3LjggMEg5Ljc2QTIuMjUgMi4yNSAwIDAgMCA3LjUgMi4yNVY0LjVIMy43NUEyLjI1IDIuMjUgMCAwIDAgMS41IDYuNzV2MTVBMi4yNSAyLjI1IDAgMCAwIDMuNzUgMjRoMTAuNWEyLjI1IDIuMjUgMCAwIDAgMi4yNS0yLjI1VjE5LjVoMy43NWEyLjI1IDIuMjUgMCAwIDAgMi4yNS0yLjI1VjQuNjhhMi4zIDIuMyAwIDAgMC0uNjYtMS41OU0xOCAxLjUycS4yLjA2LjM1LjJsMi40MyAyLjQzYTEgMSAwIDAgMSAuMi4zNUgxOHptLTMgMjAuMjNhLjc1Ljc1IDAgMCAxLS43NS43NUgzLjc1YS43NS43NSAwIDAgMS0uNzUtLjc1di0xNUEuNzUuNzUgMCAwIDEgMy43NSA2SDcuNXYxMS4yNWEyLjI1IDIuMjUgMCAwIDAgMi4yNSAyLjI1SDE1em02LTQuNWEuNzUuNzUgMCAwIDEtLjc1Ljc1SDkuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTE1YS43NS43NSAwIDAgMSAuNzUtLjc1aDYuNzV2My4zOGMwIC42MS41IDEuMTIgMS4xMyAxLjEySDIxelwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48bWFzayBpZD1cImFcIiB3aWR0aD1cIjI1XCIgaGVpZ2h0PVwiMjRcIiB4PVwiMFwiIHk9XCIwXCIgbWFza1VuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBzdHlsZT1cIm1hc2stdHlwZTphbHBoYVwiPjxwYXRoIGZpbGw9XCIjZDlkOWQ5XCIgZD1cIk0uNSAwaDI0djI0SC41elwiLz48L21hc2s+PGcgbWFzaz1cInVybCgjYSlcIj48cGF0aCBmaWxsPVwiIzAyYmY2ZlwiIGQ9XCJNMTQuNSAyMWExIDEgMCAwIDEtLjcxLS4yOSAxIDEgMCAwIDEtLjI5LS43MXEwLS40Mi4yOS0uNzFhMSAxIDAgMCAxIC43MS0uMjlxMS4xOCAwIDIuMDktLjQ2dC45MS0xLjA0cTAtLjM1LS4zMi0uNjV0LS45LS41NWwxLjQ3LTEuNDdxLjguNDcgMS4yOCAxLjEyLjQ3LjY1LjQ3IDEuNTUgMCAxLjY1LTEuNTcgMi41OGE2LjYgNi42IDAgMCAxLTMuNDMuOTJtLTkuNDMtNy42NXEtLjcyLS40Mi0xLjE1LS45OVQzLjUgMTFxMC0xLjA1Ljc4LTEuNzYuNzctLjcyIDIuNzctMS41OSAxLjU3LS43MiAyLjAxLTEuMDFUOS41IDZxMC0uNC0uNDktLjdUNy41IDVxLS42MiAwLTEuMDUuMTV0LS43Ny41YTEgMSAwIDAgMS0uNjguMzIgMSAxIDAgMCAxLS43Mi0uMjIgMSAxIDAgMCAxLS4zOC0uNjUgMSAxIDAgMCAxIC4yMy0uNzJxLjQ3LS41OCAxLjM2LS45OFQ3LjUgM3ExLjggMCAyLjkuODFUMTEuNSA2cTAgLjk4LS43MiAxLjc1LS43My43OC0yLjkzIDEuNzMtMS40NS42Mi0xLjkuOTJ0LS40NS42cTAgLjIzLjI5LjQ0dC43OS40MXptMTQuMjgtMi45NUwxNS4xIDYuMTVsMS4wNS0xLjA1cS42LS42IDEuNDQtLjYuODMgMCAxLjQxLjZsMS40IDEuNHEuNi41Ny42IDEuNDF0LS42IDEuNDR6TTYuNSAxOWgxLjRsNy4yLTcuMi0xLjQtMS40LTcuMiA3LjJ6TTUgMjFhLjUuNSAwIDAgMS0uMzUtLjE1LjUuNSAwIDAgMS0uMTUtLjM1di0zLjU1cTAtLjA1LjE1LS4zNWw5LjA1LTkuMDUgNC4yNSA0LjI1LTkuMDUgOS4wNXEtLjA1LjA1LS4zNS4xNXpcIi8+PC9nPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxtYXNrIGlkPVwiYVwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHg9XCIwXCIgeT1cIjBcIiBtYXNrVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIHN0eWxlPVwibWFzay10eXBlOmFscGhhXCI+PHBhdGggZmlsbD1cIiNkOWQ5ZDlcIiBkPVwiTTAgMGgyNHYyNEgwelwiLz48L21hc2s+PGcgbWFzaz1cInVybCgjYSlcIj48cGF0aCBmaWxsPVwiIzJjMzMzNlwiIGQ9XCJNNy4zIDIwLjVxLS43NSAwLTEuMjctLjUyYTEuOCAxLjggMCAwIDEtLjUzLTEuMjlWNmgtLjI1YS43LjcgMCAwIDEtLjUzLS4yMS43LjcgMCAwIDEtLjIyLS41NC43LjcgMCAwIDEgLjIyLS41My43LjcgMCAwIDEgLjUzLS4yMkg5YS44LjggMCAwIDEgLjI2LS42MyAxIDEgMCAwIDEgLjY0LS4yNWg0LjJxLjM3IDAgLjY0LjI1YS44LjggMCAwIDEgLjI2LjYzaDMuNzVhLjcuNyAwIDAgMSAuNTQuMjIuNy43IDAgMCAxIC4yMS41My43LjcgMCAwIDEtLjIxLjU0LjcuNyAwIDAgMS0uNTQuMjFoLS4yNXYxMi43cTAgLjc1LS41MiAxLjI4dC0xLjI5LjUyek03IDZ2MTIuN2EuMy4zIDAgMCAwIC4wOS4yMS4zLjMgMCAwIDAgLjIyLjA5aDkuMzhhLjMuMyAwIDAgMCAuMjItLjA5LjMuMyAwIDAgMCAuMDktLjIyVjZ6bTIuNCAxMC4yNWEuNy43IDAgMCAwIC4yMi41NC43LjcgMCAwIDAgLjUzLjIxLjcuNyAwIDAgMCAuNTQtLjIxLjcuNyAwIDAgMCAuMjEtLjU0di03LjVhLjcuNyAwIDAgMC0uMjEtLjUzLjcuNyAwIDAgMC0uNTQtLjIyLjcuNyAwIDAgMC0uNTMuMjIuNy43IDAgMCAwLS4yMi41M3ptMy43IDBxMCAuMzIuMjEuNTRhLjcuNyAwIDAgMCAuNTQuMjEuNy43IDAgMCAwIC41My0uMjEuNy43IDAgMCAwIC4yMi0uNTR2LTcuNWEuNy43IDAgMCAwLS4yMi0uNTMuNy43IDAgMCAwLS41My0uMjIuNy43IDAgMCAwLS41NC4yMi43LjcgMCAwIDAtLjIxLjUzek03IDZ2MTIuN2EuMy4zIDAgMCAwIC4wOS4yMS4zLjMgMCAwIDAgLjIyLjA5SDd6XCIvPjwvZz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzgzOGI5N1wiIGQ9XCJNNiAxNHEtLjgyIDAtMS40MS0uNTlBMiAyIDAgMCAxIDQgMTJxMC0uODIuNTktMS40MUEyIDIgMCAwIDEgNiAxMHEuODIgMCAxLjQxLjU5VDggMTJ0LS41OSAxLjQxQTIgMiAwIDAgMSA2IDE0bTYgMHEtLjgyIDAtMS40MS0uNTlBMiAyIDAgMCAxIDEwIDEycTAtLjgyLjU5LTEuNDFBMiAyIDAgMCAxIDEyIDEwcS44MyAwIDEuNDEuNTkuNTkuNTkuNTkgMS40MXQtLjU5IDEuNDFBMiAyIDAgMCAxIDEyIDE0bTYgMHEtLjgyIDAtMS40MS0uNTlBMiAyIDAgMCAxIDE2IDEycTAtLjgyLjU5LTEuNDFBMiAyIDAgMCAxIDE4IDEwcS44MiAwIDEuNDEuNTlUMjAgMTJ0LS41OSAxLjQxQTIgMiAwIDAgMSAxOCAxNFwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzJjMzMzNlwiIGQ9XCJNMjIgMTMuMzNoLTMuODRsMS45Mi0xLjkyQTIgMiAwIDAgMCAxOC42OCA4SDE2VjMuMzNhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAyVjhINS4zNGEyIDIgMCAwIDAtMS40MSAzLjQxbDEuOTEgMS45MkgyYTIgMiAwIDAgMC0yIDJ2NS4zNGEyIDIgMCAwIDAgMiAyaDIwYTIgMiAwIDAgMCAyLTJ2LTUuMzRhMiAyIDAgMCAwLTItMk01LjMzIDEwSDEwVjMuMzNoNFYxMGg0LjY3TDEyIDE2LjY3ek0yMiAyMC42N0gydi01LjM0aDUuODRsMi43NCAyLjc1YTIgMiAwIDAgMCAyLjgzIDBsMi43NS0yLjc1SDIyek0xOC4zMyAxOGExIDEgMCAxIDEgMiAwYzAgLjU1LS40NCAxLTEgMXMtMS0uNDUtMS0xXCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGZpbGw9XCIjMWMxYjFmXCIgZD1cIk00IDIxYTEgMSAwIDAgMS0uNzEtLjI5QTEgMSAwIDAgMSAzIDIwdi0yLjQyYTIgMiAwIDAgMSAuNTctMS40TDE2LjIgMy41OHEuMy0uMjguNjYtLjQzdC43Ny0uMTUuNzcuMTUuNjUuNDVMMjAuNDMgNXEuMy4yOC40My42NWEyLjIgMi4yIDAgMCAxIDAgMS41MSAyIDIgMCAwIDEtLjQzLjY3bC0xMi42IDEyLjZhMiAyIDAgMCAxLTEuNC41N3pNMTcuNiA3LjggMTkgNi40IDE3LjYgNWwtMS40IDEuNHpcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCI+PG1hc2sgaWQ9XCJhXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgeD1cIjBcIiB5PVwiMFwiIG1hc2tVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgc3R5bGU9XCJtYXNrLXR5cGU6YWxwaGFcIj48cGF0aCBmaWxsPVwiI2Q5ZDlkOVwiIGQ9XCJNMCAwaDIwdjIwSDB6XCIvPjwvbWFzaz48ZyBtYXNrPVwidXJsKCNhKVwiPjxwYXRoIGZpbGw9XCIjZjE5MjQxXCIgZD1cIm05LjE3IDEyLjA4LTQuOTQtLjYycS0uNTItLjA2LS42OC0uNTYtLjE1LS41LjIyLS44Nmw4LjUyLTguMTZhMSAxIDAgMCAxIC4yNS0uMTZxLjE1LS4wNS40LS4wNS40MSAwIC42My4zNXQuMDEuNzNsLTIuNzUgNS4xNyA0Ljk0LjYycS41Mi4wNi42OC41Ni4xNS41LS4yMi44Nkw3LjcgMTguMTJhMSAxIDAgMCAxLS4yNS4xNnEtLjE1LjA1LS40LjA1YS43LjcgMCAwIDEtLjYzLS4zNS43LjcgMCAwIDEtLjAxLS43M3pcIi8+PC9nPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPjxtYXNrIGlkPVwiYVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHg9XCIwXCIgeT1cIjBcIiBtYXNrVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIHN0eWxlPVwibWFzay10eXBlOmFscGhhXCI+PHBhdGggZmlsbD1cIiNkOWQ5ZDlcIiBkPVwiTTAgMGgzMnYzMkgwelwiLz48L21hc2s+PGcgbWFzaz1cInVybCgjYSlcIj48cGF0aCBmaWxsPVwiIzExYjA2ZVwiIGQ9XCJNNS4zMyAyNi42N2EyLjYgMi42IDAgMCAxLTEuODgtLjc5QTIuNiAyLjYgMCAwIDEgMi42NyAyNFY4cTAtMS4xLjc4LTEuODhhMi42IDIuNiAwIDAgMSAxLjg4LS43OWgyMS4zNHExLjEgMCAxLjg4Ljc5Ljc4Ljc4Ljc4IDEuODh2MTZxMCAxLjEtLjc4IDEuODhhMi42IDIuNiAwIDAgMS0xLjg4Ljc5em0wLTIuNjdoMjEuMzRWOEg1LjMzek04IDIyLjY3aDE2cS41NyAwIC45NS0uMzlhMS4zIDEuMyAwIDAgMCAuMzgtLjk1IDEuMyAxLjMgMCAwIDAtLjM4LS45NUExLjMgMS4zIDAgMCAwIDI0IDIwSDhhMS4zIDEuMyAwIDAgMC0uOTUuMzggMS4zIDEuMyAwIDAgMC0uMzguOTVxMCAuNTcuMzguOTUuMzguMzkuOTUuMzltMC01LjM0aDE2cS41NyAwIC45NS0uMzhhMS4zIDEuMyAwIDAgMCAuMzgtLjk1IDEuMyAxLjMgMCAwIDAtLjM4LS45NSAxLjMgMS4zIDAgMCAwLS45NS0uMzhIOGExLjMgMS4zIDAgMCAwLS45NS4zOCAxLjMgMS4zIDAgMCAwLS4zOC45NXEwIC41Ny4zOC45NXQuOTUuMzhNOCAxMmgxMC42N3EuNTYgMCAuOTUtLjM4YTEuMyAxLjMgMCAwIDAgLjM4LS45NSAxLjMgMS4zIDAgMCAwLS4zOC0uOTUgMS4zIDEuMyAwIDAgMC0uOTUtLjM5SDhhMS4zIDEuMyAwIDAgMC0uOTUuMzkgMS4zIDEuMyAwIDAgMC0uMzguOTVxMCAuNTYuMzguOTVUOCAxMlwiLz48L2c+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PG1hc2sgaWQ9XCJhXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgeD1cIjBcIiB5PVwiMFwiIG1hc2tVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgc3R5bGU9XCJtYXNrLXR5cGU6YWxwaGFcIj48cGF0aCBmaWxsPVwiI2Q5ZDlkOVwiIGQ9XCJNMCAwaDI0djI0SDB6XCIvPjwvbWFzaz48ZyBtYXNrPVwidXJsKCNhKVwiPjxwYXRoIGZpbGw9XCIjNmM3MzdhXCIgZD1cIk01IDIycS0uODIgMC0xLjQxLS41OUEyIDIgMCAwIDEgMyAyMFY2cTAtLjgyLjU5LTEuNDFBMiAyIDAgMCAxIDUgNGgxVjNxMC0uNDIuMjktLjcxQTEgMSAwIDAgMSA3IDJxLjQyIDAgLjcxLjI5VDggM3YxaDhWM3EwLS40Mi4yOS0uNzFBMSAxIDAgMCAxIDE3IDJxLjQyIDAgLjcxLjI5VDE4IDN2MWgxcS44MiAwIDEuNDEuNTlUMjEgNnY1cTAgLjQyLS4yOS43MUExIDEgMCAwIDEgMjAgMTJhMSAxIDAgMCAxLS43MS0uMjlBMSAxIDAgMCAxIDE5IDExdi0xSDV2MTBoNnEuNDIgMCAuNzEuMjlUMTIgMjF0LS4yOS43MUExIDEgMCAwIDEgMTEgMjJ6bTE0IDJxLTEuNiAwLTIuODYtLjg5YTUgNSAwIDAgMS0xLjgyLTIuMzEuNS41IDAgMCAxIC4wNy0uNTQuNi42IDAgMCAxIC40OS0uMjZxLjM1IDAgLjYzLjIxdC40Ny41NGEzLjQgMy40IDAgMCAwIDEuMjUgMS4yNyAzLjQgMy40IDAgMCAwIDEuNzcuNDhxMS40NSAwIDIuNDgtMS4wMkEzLjQgMy40IDAgMCAwIDIyLjUgMTlxMC0xLjQ1LTEuMDItMi40N0EzLjQgMy40IDAgMCAwIDE5IDE1LjVhMy40IDMuNCAwIDAgMC0yLjQ1IDFoLjdhLjczLjczIDAgMCAxIC43NS43NS43My43MyAwIDAgMS0uNzUuNzVIMTVhMSAxIDAgMCAxLS43MS0uMjlBMSAxIDAgMCAxIDE0IDE3di0yLjI1YS43My43MyAwIDAgMSAuNzUtLjc1LjczLjczIDAgMCAxIC43NS43NXYuNjhxLjY4LS42NSAxLjU4LTEuMDRBNSA1IDAgMCAxIDE5IDE0cTIuMDggMCAzLjU0IDEuNDZUMjQgMTl0LTEuNDYgMy41NFQxOSAyNE01IDhoMTRWNkg1elwiLz48L2c+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PHBhdGggZmlsbD1cIiNlZGMxMjFcIiBkPVwiTTIzLjYzIDEyQTExLjYyIDExLjYyIDAgMSAxIC4zOCAxMmExMS42MiAxMS42MiAwIDAgMSAyMy4yNSAwTTEyIDE0LjM0YTIuMTYgMi4xNiAwIDEgMCAwIDQuMzIgMi4xNiAyLjE2IDAgMCAwIDAtNC4zMk05Ljk1IDYuNmwuMzUgNi4zOGEuNTYuNTYgMCAwIDAgLjU2LjUzaDIuMjhhLjU2LjU2IDAgMCAwIC41Ni0uNTNsLjM1LTYuMzhhLjU2LjU2IDAgMCAwLS41Ny0uNTloLTIuOTdhLjU2LjU2IDAgMCAwLS41Ni42XCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBkPVwiTTIyLjUgMi42M3Y0LjQ1YzAgMS0xLjIxIDEuNS0xLjkyLjhsLTEuMy0xLjMtNS4wMyA1LjAyYS41Ni41NiAwIDAgMS0uOCAwbC0xLjA1LTEuMDZhLjU2LjU2IDAgMCAxIDAtLjhsNS4wMi01LjAyLTEuMy0xLjNjLS43LS43LS4yLTEuOTIuOC0xLjkyaDQuNDVjLjYzIDAgMS4xMy41IDEuMTMgMS4xM005Ljc1IDEyLjRsLTUuMDMgNS4wMy0xLjMtMS4zYTEuMTIgMS4xMiAwIDAgMC0xLjkyLjh2NC40NWMwIC42Mi41IDEuMTIgMS4xMyAxLjEyaDQuNDVjMSAwIDEuNS0xLjIxLjgtMS45MmwtMS4zLTEuMyA1LjAyLTUuMDNhLjU2LjU2IDAgMCAwIDAtLjhsLTEuMDYtMS4wNWEuNTYuNTYgMCAwIDAtLjggMFwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIj48cGF0aCBmaWxsPVwiIzAyYmY2ZlwiIGQ9XCJNMTIgLjh2My40YS4zLjMgMCAwIDEtLjMuM0gxMWEuMy4zIDAgMCAxLS4zLS4zbC4wNi0xLjU0LS4wNC0uMDQtNS44MSA1LjhhLjI1LjI1IDAgMCAxLS4zNiAwbC0uNDgtLjQ3YS4yNS4yNSAwIDAgMSAwLS4zNmw1LjgxLTUuOC0uMDQtLjA1LTEuNTMuMDZBLjMuMyAwIDAgMSA4IDEuNVYuOGEuMy4zIDAgMCAxIC4zLS4zaDMuNGEuMy4zIDAgMCAxIC4zLjNNOC45IDUuMzdsLS41LjVhLjMuMyAwIDAgMC0uMDcuMTh2NGEuMTMuMTMgMCAwIDEtLjEyLjEySDEuMTJhLjEzLjEzIDAgMCAxLS4xMi0uMTNWMi45NmEuMTMuMTMgMCAwIDEgLjEzLS4xM2g2LjI5YS4yNS4yNSAwIDAgMCAuMTctLjQybC0uNS0uNWEuMy4zIDAgMCAwLS4xNy0uMDhIMWExIDEgMCAwIDAtMSAxdjcuMzRhMSAxIDAgMCAwIDEgMWg3LjMzYTEgMSAwIDAgMCAxLTFWNS41NWEuMjUuMjUgMCAwIDAtLjQyLS4xOFwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PGcgY2xpcC1wYXRoPVwidXJsKCNhKVwiPjxjaXJjbGUgY3g9XCIxMi4xMjVcIiBjeT1cIjEyLjAwNVwiIHI9XCIxMS42MjVcIiBmaWxsPVwiI2ZmZlwiLz48cGF0aCBmaWxsPVwiIzlmYTZhZFwiIGQ9XCJNMTIuMTMuMzhhMTEuNjMgMTEuNjMgMCAxIDAgMCAyMy4yNSAxMS42MyAxMS42MyAwIDAgMCAwLTIzLjI1bTAgMjAuMjVBOC42IDguNiAwIDAgMSAzLjUgMTJhOC42IDguNiAwIDAgMSA4LjYzLTguNjJBOC42IDguNiAwIDAgMSAyMC43NCAxMmE4LjYgOC42IDAgMCAxLTguNjIgOC42M20wLTE0LjYzYTYgNiAwIDEgMCAwIDEyIDYgNiAwIDAgMCAwLTEybTAgOWEzIDMgMCAxIDEgMC02IDMgMyAwIDAgMSAwIDZcIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD1cImFcIj48cGF0aCBmaWxsPVwiI2ZmZlwiIGQ9XCJNMCAwaDI0djI0SDB6XCIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGZpbGw9XCIjMmMzMzM2XCIgZD1cIk0xNi41IDExLjYzdjEuM2MwIC4zMi0uMjUuNTctLjU2LjU3SDguMDZhLjU2LjU2IDAgMCAxLS41Ni0uNTZ2LTEuMzFjMC0uMzIuMjUtLjU3LjU2LS41N2g3Ljg4Yy4zIDAgLjU2LjI2LjU2LjU3TTE1Ljk0IDE1SDguMDZhLjU2LjU2IDAgMCAwLS41Ni41NnYxLjMyYzAgLjMuMjUuNTYuNTYuNTZoNy44OGMuMyAwIC41Ni0uMjYuNTYtLjU3di0xLjNhLjU2LjU2IDAgMCAwLS41Ni0uNTdNMjEgNi4xOHYxNS41N0EyLjI1IDIuMjUgMCAwIDEgMTguNzUgMjRINS4yNUEyLjI1IDIuMjUgMCAwIDEgMyAyMS43NVYyLjI1QTIuMjUgMi4yNSAwIDAgMSA1LjI1IDBoOS41N2MuNiAwIDEuMTYuMjQgMS41OS42NmwzLjkzIDMuOTNjLjQyLjQyLjY2IDEgLjY2IDEuNm0tNi0zLjc2VjZoMy41N3ptMy43NSAxOS4zMlY4LjI1aC00Ljg3YTEuMSAxLjEgMCAwIDEtMS4xMy0xLjEyVjIuMjVoLTcuNXYxOS41elwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzFjMWIxZlwiIGQ9XCJNMTEgMThhMSAxIDAgMCAxLS43MS0uMjlBMSAxIDAgMCAxIDEwIDE3cTAtLjQyLjI5LS43MUExIDEgMCAwIDEgMTEgMTZoMnEuNDIgMCAuNzEuMjlUMTQgMTd0LS4yOS43MUExIDEgMCAwIDEgMTMgMTh6bS00LTVhMSAxIDAgMCAxLS43MS0uMjlBMSAxIDAgMCAxIDYgMTJxMC0uNDIuMjktLjcxQTEgMSAwIDAgMSA3IDExaDEwcS40MiAwIC43MS4yOVQxOCAxMnQtLjI5LjcxQTEgMSAwIDAgMSAxNyAxM3pNNCA4YTEgMSAwIDAgMS0uNzEtLjI5QTEgMSAwIDAgMSAzIDdxMC0uNDIuMjktLjcxQTEgMSAwIDAgMSA0IDZoMTZxLjQyIDAgLjcxLjI5VDIxIDd0LS4yOS43MUExIDEgMCAwIDEgMjAgOHpcIi8+PC9zdmc+IiwiPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PHBhdGggZD1cIk0yMCA1aC0zLjE3TDE1IDNIOUw3LjE3IDVINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJtLTggMTNhNSA1IDAgMCAxLTUtNUg1bDIuNS0yLjVMMTAgMTNIOGE0IDQgMCAwIDAgNS42MiAzLjY1bC43NC43NGMtLjcxLjM3LTEuNS42MS0yLjM2LjYxbTQuNS0yLjVMMTQgMTNoMmE0IDQgMCAwIDAtNS42Mi0zLjY1bC0uNzQtLjczQTQuOTcgNC45NyAwIDAgMSAxNyAxM2gyelwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PHBhdGggZD1cIm0yMi44NSAxNC44LTItMS4xNmE5IDkgMCAwIDAgMC0zLjI5bDItMS4xNWEuNi42IDAgMCAwIC4yNS0uNjYgMTIgMTIgMCAwIDAtMi41Ni00LjQzLjU2LjU2IDAgMCAwLS43LS4xbC0yIDEuMTVBOSA5IDAgMCAwIDE1IDMuNVYxLjJhLjU2LjU2IDAgMCAwLS40NC0uNTUgMTIgMTIgMCAwIDAtNS4xMiAwQS41Ni41NiAwIDAgMCA5IDEuMnYyLjNhOSA5IDAgMCAwLTIuODUgMS42NUw0LjE1IDRhLjU2LjU2IDAgMCAwLS42OS4xQTEyIDEyIDAgMCAwIC45IDguNTZhLjU2LjU2IDAgMCAwIC4yNi42NmwyIDEuMTVhOSA5IDAgMCAwIDAgMy4yOWwtMiAxLjE1YS42LjYgMCAwIDAtLjI2LjY2IDEyIDEyIDAgMCAwIDIuNTYgNC40My41Ni41NiAwIDAgMCAuNy4xMWwyLTEuMTVBOSA5IDAgMCAwIDkgMjAuNDl2Mi4zMWMwIC4yNi4xOC41LjQ0LjU1IDEuNzIuMzggMy40OC4zNiA1LjEyIDBhLjU2LjU2IDAgMCAwIC40NC0uNTV2LTIuM2E5IDkgMCAwIDAgMi44NS0xLjY1bDIgMS4xNWMuMjIuMTMuNS4xLjY5LS4xYTEyIDEyIDAgMCAwIDIuNTYtNC40NC42LjYgMCAwIDAtLjI2LS42NlpNMTIgMTUuNzVBMy43NiAzLjc2IDAgMCAxIDguMjUgMTIgMy43NiAzLjc2IDAgMCAxIDEyIDguMjUgMy43NiAzLjc2IDAgMCAxIDE1Ljc1IDEyIDMuNzYgMy43NiAwIDAgMSAxMiAxNS43NVwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48bWFzayBpZD1cImFcIiB4PVwiMFwiIHk9XCIwXCIgbWFza1VuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBzdHlsZT1cIm1hc2stdHlwZTphbHBoYVwiPjxwYXRoIGZpbGw9XCIjZDlkOWQ5XCIgZD1cIk0wIDBoMjR2MjRIMHpcIi8+PC9tYXNrPjxnIG1hc2s9XCJ1cmwoI2EpXCI+PHBhdGggZmlsbD1cIiMxYzFiMWZcIiBkPVwiTTExLjk1IDE4cS41MyAwIC44OS0uMzYuMzYtLjM3LjM2LS44OWMwLS41Mi0uMTItLjY1LS4zNi0uODlhMS4yIDEuMiAwIDAgMC0uODktLjM2IDEuMiAxLjIgMCAwIDAtLjg5LjM2IDEuMiAxLjIgMCAwIDAtLjM2Ljg5cTAgLjUzLjM2Ljg5dC44OS4zNm0uMDUgNGExMCAxMCAwIDAgMS0zLjktLjc5IDEwIDEwIDAgMCAxLTMuMTctMi4xNHEtMS4zNS0xLjM1LTIuMTQtMy4xN0ExMCAxMCAwIDAgMSAyIDEyYTEwIDEwIDAgMCAxIC43OS0zLjkgMTAgMTAgMCAwIDEgMi4xNC0zLjE3UTYuMjggMy41OCA4LjEgMi43OEExMCAxMCAwIDAgMSAxMiAyYTEwIDEwIDAgMCAxIDMuOS43OSAxMCAxMCAwIDAgMSAzLjE4IDIuMTRxMS4zNSAxLjM1IDIuMTMgMy4xN0ExMCAxMCAwIDAgMSAyMiAxMmExMCAxMCAwIDAgMS0uNzkgMy45IDEwIDEwIDAgMCAxLTIuMTQgMy4xOHEtMS4zNSAxLjM1LTMuMTcgMi4xM0ExMCAxMCAwIDAgMSAxMiAyMm0wLTJxMy4zNSAwIDUuNjgtMi4zM1QyMCAxMnQtMi4zMy01LjY3VDEyIDQgNi4zMyA2LjMzIDQgMTJ0Mi4zMyA1LjY4VDEyIDIwbS4xLTEyLjNxLjYzIDAgMS4wOS40dC40NiAxcTAgLjU1LS4zNC45OHQtLjc2LjhhNyA3IDAgMCAwLTEuMDEgMS4xcS0uNDQuNi0uNDQgMS4zNCAwIC4zNS4yNi42YTEgMSAwIDAgMCAuNjIuMjMgMSAxIDAgMCAwIC42My0uMjVxLjI3LS4yNS4zNC0uNjNhMiAyIDAgMCAxIC40NS0uOTNxLjM1LS40Mi43NS0uNzkuNTctLjU1Ljk5LTEuMmEyLjcgMi43IDAgMCAwIC40MS0xLjQ1cTAtMS4yOC0xLjA0LTIuMDlRMTMuNDggNiAxMi4xIDZhNCA0IDAgMCAwLTEuODEuNCAyLjggMi44IDAgMCAwLTEuMzIgMS4yMyAxIDEgMCAwIDAtLjEuNjMuNy43IDAgMCAwIC4zMy41MnEuMzUuMi43My4xMmExIDEgMCAwIDAgLjYyLS40MnEuMjctLjM4LjY5LS41OHQuODYtLjJcIi8+PC9nPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGZpbGw9XCIjMWMxYjFmXCIgZD1cIk0xMS45NSAxOHEuNTMgMCAuODktLjM2LjM2LS4zNy4zNi0uODl0LS4zNi0uODlhMS4yIDEuMiAwIDAgMC0uODktLjM2cS0uNTIgMC0uODkuMzZhMS4yIDEuMiAwIDAgMC0uMzYuODlxMCAuNTMuMzYuODl0Ljg5LjM2bS0uOS0zLjg1aDEuODVxMC0uODIuMTktMS4zdDEuMDYtMS4zYTggOCAwIDAgMCAxLjAyLTEuMjRxLjM4LS41OS4zOC0xLjQxIDAtMS40LTEuMDMtMi4xNVQxMi4xIDZxLTEuNDIgMC0yLjMxLjc1dC0xLjI0IDEuOGwxLjY1LjY1cS4xMi0uNDUuNTYtLjk3LjQ0LS41MyAxLjM0LS41My44IDAgMS4yLjQ0LjQuNDMuNC45NiAwIC41LS4zLjk0dC0uNzUuODFxLTEuMS45OC0xLjM1IDEuNDh0LS4yNSAxLjgyTTEyIDIyYTEwIDEwIDAgMCAxLTMuOS0uNzkgMTAgMTAgMCAwIDEtMy4xNy0yLjE0cS0xLjM1LTEuMzUtMi4xNC0zLjE3QTEwIDEwIDAgMCAxIDIgMTJxMC0yLjA4Ljc5LTMuOWExMCAxMCAwIDAgMSAyLjE0LTMuMTdRNi4yOCAzLjU4IDguMSAyLjc4QTEwIDEwIDAgMCAxIDEyIDJxMi4wOCAwIDMuOS43OWExMCAxMCAwIDAgMSAzLjE4IDIuMTRxMS4zNSAxLjM1IDIuMTMgMy4xN0ExMCAxMCAwIDAgMSAyMiAxMmExMCAxMCAwIDAgMS0uNzkgMy45IDEwIDEwIDAgMCAxLTIuMTQgMy4xOHEtMS4zNSAxLjM1LTMuMTcgMi4xM0ExMCAxMCAwIDAgMSAxMiAyMlwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzJjMzMzNlwiIGQ9XCJNMTIgMTdxLjQyIDAgLjcxLS4yOUExIDEgMCAwIDAgMTMgMTZ2LTRhMSAxIDAgMCAwLS4yOS0uNzFBMSAxIDAgMCAwIDEyIDExYTEgMSAwIDAgMC0uNzEuMjlBMSAxIDAgMCAwIDExIDEydjRxMCAuNDIuMjkuNzFUMTIgMTdtMC04cS40MiAwIC43MS0uMjlBMSAxIDAgMCAwIDEzIDhhMSAxIDAgMCAwLS4yOS0uNzFBMSAxIDAgMCAwIDEyIDdhMSAxIDAgMCAwLS43MS4yOUExIDEgMCAwIDAgMTEgOHEwIC40Mi4yOS43MVQxMiA5bTAgMTNhMTAgMTAgMCAwIDEtMy45LS43OSAxMCAxMCAwIDAgMS0zLjE3LTIuMTRxLTEuMzUtMS4zNS0yLjE0LTMuMTdBMTAgMTAgMCAwIDEgMiAxMnEwLTIuMDguNzktMy45YTEwIDEwIDAgMCAxIDIuMTQtMy4xN1E2LjI4IDMuNTggOC4xIDIuNzhBMTAgMTAgMCAwIDEgMTIgMnEyLjA4IDAgMy45Ljc5YTEwIDEwIDAgMCAxIDMuMTggMi4xNHExLjM1IDEuMzUgMi4xMyAzLjE3QTEwIDEwIDAgMCAxIDIyIDEyYTEwIDEwIDAgMCAxLS43OSAzLjkgMTAgMTAgMCAwIDEtMi4xNCAzLjE4cS0xLjM1IDEuMzUtMy4xNyAyLjEzQTEwIDEwIDAgMCAxIDEyIDIybTAtMnEzLjM1IDAgNS42OC0yLjMzVDIwIDEydC0yLjMzLTUuNjdUMTIgNCA2LjMzIDYuMzMgNCAxMnQyLjMzIDUuNjhUMTIgMjBcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PG1hc2sgaWQ9XCJhXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgeD1cIjBcIiB5PVwiMFwiIG1hc2tVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgc3R5bGU9XCJtYXNrLXR5cGU6YWxwaGFcIj48cGF0aCBmaWxsPVwiI2Q5ZDlkOVwiIGQ9XCJNMCAwaDI0djI0SDB6XCIvPjwvbWFzaz48ZyBtYXNrPVwidXJsKCNhKVwiPjxwYXRoIGZpbGw9XCIjMmMzMzM2XCIgZD1cIk0xMiAxN2ExIDEgMCAwIDAgLjcxLS4yOUExIDEgMCAwIDAgMTMgMTZ2LTRhMSAxIDAgMCAwLS4yOS0uNzFBMSAxIDAgMCAwIDEyIDExYTEgMSAwIDAgMC0uNzEuMjlBMSAxIDAgMCAwIDExIDEydjRxMCAuNDIuMjkuNzFUMTIgMTdtMC04cS40MiAwIC43MS0uMjlBMSAxIDAgMCAwIDEzIDhhMSAxIDAgMCAwLS4yOS0uNzFBMSAxIDAgMCAwIDEyIDdhMSAxIDAgMCAwLS43MS4yOUExIDEgMCAwIDAgMTEgOHEwIC40Mi4yOS43MVQxMiA5bTAgMTNhMTAgMTAgMCAwIDEtMy45LS43OSAxMCAxMCAwIDAgMS0zLjE3LTIuMTRxLTEuMzUtMS4zNS0yLjE0LTMuMTdBMTAgMTAgMCAwIDEgMiAxMmExMCAxMCAwIDAgMSAuNzktMy45IDEwIDEwIDAgMCAxIDIuMTQtMy4xN1E2LjI4IDMuNTggOC4xIDIuNzhBMTAgMTAgMCAwIDEgMTIgMmExMCAxMCAwIDAgMSAzLjkuNzkgMTAgMTAgMCAwIDEgMy4xOCAyLjE0cTEuMzUgMS4zNSAyLjEzIDMuMTdBMTAgMTAgMCAwIDEgMjIgMTJhMTAgMTAgMCAwIDEtLjc5IDMuOSAxMCAxMCAwIDAgMS0yLjE0IDMuMThxLTEuMzUgMS4zNS0zLjE3IDIuMTNBMTAgMTAgMCAwIDEgMTIgMjJcIi8+PC9nPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGZpbGw9XCIjMmMzMzM2XCIgZD1cIk0xMiAxLjg4YzUuNTYgMCAxMC4xMyA0LjUgMTAuMTMgMTAuMTJBMTAuMTIgMTAuMTIgMCAxIDEgMTIgMS44OG0tLjAxLTEuNWExMS42MyAxMS42MyAwIDEgMCAwIDIzLjI1QTExLjYzIDExLjYzIDAgMCAwIDEyIC4zOE0xMC4zMSAxNi41aC41N3YtNS42MmgtLjU3YS41Ni41NiAwIDAgMS0uNTYtLjU3di0uMzdjMC0uMzEuMjUtLjU2LjU2LS41NmgyLjI1Yy4zMSAwIC41Ny4yNS41Ny41NnY2LjU2aC41NmMuMyAwIC41Ni4yNS41Ni41NnYuMzhjMCAuMy0uMjUuNTYtLjU2LjU2SDEwLjNhLjU2LjU2IDAgMCAxLS41Ni0uNTZ2LS4zOGMwLS4zLjI1LS41Ni41Ni0uNTZNMTIgNS4yNWExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1wiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzJjMzMzNlwiIGQ9XCJNMTIgLjM4YTExLjYzIDExLjYzIDAgMSAwIDAgMjMuMjVBMTEuNjMgMTEuNjMgMCAwIDAgMTIgLjM4bTAgNS4xNWExLjk3IDEuOTcgMCAxIDEgMCAzLjk0IDEuOTcgMS45NyAwIDAgMSAwLTMuOTRtMi42MyAxMS45YzAgLjMyLS4yNi41Ny0uNTcuNTdIOS45NGEuNTYuNTYgMCAwIDEtLjU3LS41NlYxNi4zYzAtLjMuMjYtLjU2LjU3LS41NmguNTZ2LTNoLS41NmEuNTYuNTYgMCAwIDEtLjU3LS41NnYtMS4xM2MwLS4zLjI2LS41Ni41Ny0uNTZoM2MuMyAwIC41Ni4yNS41Ni41NnY0LjY5aC41NmMuMzEgMCAuNTYuMjUuNTYuNTZ6XCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGZpbGw9XCIjNWQ2NzZiXCIgZD1cIk01IDExcS0uNjEgMC0xLjA2LS40NEExLjQgMS40IDAgMCAxIDMuNSA5LjVWNXEwLS42MS40NC0xLjA2QTEuNCAxLjQgMCAwIDEgNSAzLjVoNC41cS42MSAwIDEuMDYuNDRRMTEgNC40IDExIDV2NC41cTAgLjYxLS40NCAxLjA2QTEuNCAxLjQgMCAwIDEgOS41IDExem0wIDkuNXEtLjYxIDAtMS4wNi0uNDRBMS40IDEuNCAwIDAgMSAzLjUgMTl2LTQuNXEwLS42MS40NC0xLjA2QTEuNCAxLjQgMCAwIDEgNSAxM2g0LjVxLjYxIDAgMS4wNi40NC40NC40NS40NCAxLjA2VjE5cTAgLjYxLS40NCAxLjA2YTEuNCAxLjQgMCAwIDEtMS4wNi40NHptOS41LTkuNXEtLjYxIDAtMS4wNi0uNDRBMS40IDEuNCAwIDAgMSAxMyA5LjVWNXEwLS42MS40NC0xLjA2YTEuNCAxLjQgMCAwIDEgMS4wNi0uNDRIMTlxLjYxIDAgMS4wNi40NC40NC40NS40NCAxLjA2djQuNXEwIC42MS0uNDQgMS4wNkExLjQgMS40IDAgMCAxIDE5IDExem0wIDkuNXEtLjYxIDAtMS4wNi0uNDRBMS40IDEuNCAwIDAgMSAxMyAxOXYtNC41cTAtLjYxLjQ0LTEuMDZBMS40IDEuNCAwIDAgMSAxNC41IDEzSDE5cS42MSAwIDEuMDYuNDQuNDQuNDUuNDQgMS4wNlYxOXEwIC42MS0uNDQgMS4wNmExLjQgMS40IDAgMCAxLTEuMDYuNDR6TTUgOS41aDQuNVY1SDV6bTkuNSAwSDE5VjVoLTQuNXptMCA5LjVIMTl2LTQuNWgtNC41ek01IDE5aDQuNXYtNC41SDV6XCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxtYXNrIGlkPVwiYVwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHg9XCIwXCIgeT1cIjBcIiBtYXNrVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIHN0eWxlPVwibWFzay10eXBlOmFscGhhXCI+PHBhdGggZmlsbD1cIiNkOWQ5ZDlcIiBkPVwiTTAgMGgyNHYyNEgwelwiLz48L21hc2s+PGcgbWFzaz1cInVybCgjYSlcIj48cGF0aCBmaWxsPVwiIzJjMzMzNlwiIGQ9XCJNMTIgMTQuNjhhMSAxIDAgMCAxLS4zNC0uMDcgMSAxIDAgMCAxLS4zLS4xOWwtNC40OS00LjVhLjcuNyAwIDAgMS0uMjEtLjUycTAtLjMxLjIxLS41M2EuNy43IDAgMCAxIC41My0uMjFxLjMxIDAgLjUzLjIxTDEyIDEyLjk1bDQuMDctNC4wOGEuNy43IDAgMCAxIC41My0uMjFxLjMxIDAgLjUzLjIxdC4yMS41M2EuNy43IDAgMCAxLS4yMS41M2wtNC41IDQuNWEuOC44IDAgMCAxLS42My4yNVwiLz48L2c+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PHBhdGggZmlsbD1cIiM1ZDY3NmJcIiBkPVwiTTQuMjUgN2EuNy43IDAgMCAxLS41My0uMjIuNy43IDAgMCAxLS4yMi0uNTNxMC0uMzIuMjItLjUzYS43LjcgMCAwIDEgLjUzLS4yMmgxNS41cS4zMiAwIC41My4yMmEuNy43IDAgMCAxIC4yMi41M3EwIC4zMi0uMjIuNTRhLjcuNyAwIDAgMS0uNTMuMjF6bTAgMTEuNWEuNy43IDAgMCAxLS41My0uMjIuNy43IDAgMCAxLS4yMi0uNTNxMC0uMzIuMjItLjUzYS43LjcgMCAwIDEgLjUzLS4yMmgxNS41cS4zMiAwIC41My4yMmEuNy43IDAgMCAxIC4yMi41M3EwIC4zMi0uMjIuNTRhLjcuNyAwIDAgMS0uNTMuMjF6bTAtNS43NWEuNy43IDAgMCAxLS41My0uMjIuNy43IDAgMCAxLS4yMi0uNTNxMC0uMzIuMjItLjUzYS43LjcgMCAwIDEgLjUzLS4yMmgxNS41cS4zMiAwIC41My4yMmEuNy43IDAgMCAxIC4yMi41M3EwIC4zMi0uMjIuNTRhLjcuNyAwIDAgMS0uNTMuMjF6XCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGZpbGw9XCIjMWMxYjFmXCIgZD1cIk0xMiAxOS4zNXEzLjA1LTIuOCA0LjUzLTUuMDlRMTggMTEuOTggMTggMTAuMnEwLTIuNzItMS43NC00LjQ2UTE0LjUzIDQgMTIgNFQ3Ljc0IDUuNzRRNiA3LjQ4IDYgMTAuMnEwIDEuNzggMS40OCA0LjA2IDEuNDcgMi4yOSA0LjUyIDUuMDltMCAxLjk4YTIgMiAwIDAgMS0uNy0uMTMgMiAyIDAgMCAxLS42Mi0uMzdBMzkgMzkgMCAwIDEgNy44IDE3LjlxLTEuMjUtMS40Mi0yLjA5LTIuNzZ0LTEuMjctMi41OFQ0IDEwLjJxMC0zLjc1IDIuNDEtNS45N1QxMiAydDUuNTkgMi4yM1QyMCAxMC4ycTAgMS4xMy0uNDQgMi4zNi0uNDMgMS4yNC0xLjI3IDIuNThhMjIgMjIgMCAwIDEtMi4wOSAyLjc2IDM5IDM5IDAgMCAxLTIuODcgMi45MyAyIDIgMCAwIDEtLjYzLjM3IDIgMiAwIDAgMS0uNy4xM00xMiAxMnEuODMgMCAxLjQxLS41OS41OS0uNTguNTktMS40MXQtLjU5LTEuNDFBMiAyIDAgMCAwIDEyIDhxLS44MiAwLTEuNDEuNTlBMiAyIDAgMCAwIDEwIDEwcTAgLjgzLjU5IDEuNDEuNTkuNTkgMS40MS41OVwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzJjMzMzNlwiIGQ9XCJNMTIgMTkuMzFBMS4zIDEuMyAwIDAgMSAxMC42OSAxOHYtM0ExLjMgMS4zIDAgMCAxIDEyIDEzLjY5IDEuMyAxLjMgMCAwIDEgMTMuMzEgMTV2M0ExLjMgMS4zIDAgMCAxIDEyIDE5LjMxbTEwLjUtOC4wNnYxMC41QTIuMjUgMi4yNSAwIDAgMSAyMC4yNSAyNEgzLjc1YTIuMjUgMi4yNSAwIDAgMS0yLjI1LTIuMjV2LTEwLjVBMi4yNSAyLjI1IDAgMCAxIDMuNzUgOWgxLjVWNi43NUE2Ljc2IDYuNzYgMCAwIDEgMTIuMDIgMGE2LjggNi44IDAgMCAxIDYuNzMgNi44MlY5aDEuNWEyLjI1IDIuMjUgMCAwIDEgMi4yNSAyLjI1TTcuNSA5aDlWNi43NWE0LjUgNC41IDAgMCAwLTkgMHptMTIuNzUgMi4yNUgzLjc1djEwLjVoMTYuNXpcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PHBhdGggZmlsbD1cIiMwMmJmNmZcIiBkPVwiTTIzLjM0IDMuNTggMjAuNDIuNjZhMi4yNCAyLjI0IDAgMCAwLTMuMTggMEwuNjYgMTcuMjRhMi4yNSAyLjI1IDAgMCAwIDAgMy4xOGwyLjkyIDIuOTJhMi4yNCAyLjI0IDAgMCAwIDMuMTggMEwyMy4zNCA2Ljc2Yy44OC0uODguODgtMi4zIDAtMy4xOE01LjE3IDIxLjc1bC0yLjkyLTIuOTIgMTAuNS0xMC41IDIuOTEgMi45MnpNMTcuMjUgOS42NmwtMi45MS0yLjkxIDQuNS00LjUgMi45MSAyLjkyem0zIDMuODRMMTkgMTZsLTIuNSAxLjI1TDE5IDE4LjVsMS4yNSAyLjUgMS4yNS0yLjUgMi41LTEuMjVMMjEuNSAxNnptLTkuNzUtOSAuNzUtMS41IDEuNS0uNzUtMS41LS43NUwxMC41IDBsLS43NSAxLjUtMS41Ljc1IDEuNS43NXptLTYuNzUgM0w1IDVsMi41LTEuMjVMNSAyLjUgMy43NSAwIDIuNSAyLjUgMCAzLjc1IDIuNSA1elwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzFjMWIxZlwiIGQ9XCJNNCAyMHEtLjgyIDAtMS40MS0uNTlBMiAyIDAgMCAxIDIgMThWNnEwLS44Mi41OS0xLjQxQTIgMiAwIDAgMSA0IDRoMTZxLjgyIDAgMS40MS41OVQyMiA2djEycTAgLjgyLS41OSAxLjQxQTIgMiAwIDAgMSAyMCAyMHpNMjAgOGwtNy40NyA0LjY4YTEgMSAwIDAgMS0uNTMuMTUgMSAxIDAgMCAxLS41Mi0uMTVMNCA4djEwaDE2em0tOCAzIDgtNUg0ek00IDguMjVWNi43OHYuMDItLjAxelwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48bWFzayBpZD1cImFcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB4PVwiMFwiIHk9XCIwXCIgbWFza1VuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBzdHlsZT1cIm1hc2stdHlwZTphbHBoYVwiPjxwYXRoIGZpbGw9XCIjZDlkOWQ5XCIgZD1cIk0wIDBoMjR2MjRIMHpcIi8+PC9tYXNrPjxnIG1hc2s9XCJ1cmwoI2EpXCI+PHBhdGggZmlsbD1cIiMwMmJmNmZcIiBkPVwibTEwLjgzIDE3LjQzLTIuNTYgMS42YS41LjUgMCAwIDEtLjUgMCAuNS41IDAgMCAxLS4yNy0uNDN2LTMuMnEwLS4zLjI2LS40NGEuNS41IDAgMCAxIC41MS4wMmwyLjU1IDEuNnEuMjUuMTUuMjUuNDJhLjUuNSAwIDAgMS0uMjUuNDNNMTMgMTBhMyAzIDAgMCAxLTIuMTItLjg3QTMgMyAwIDAgMSAxMCA3cTAtMS4yNS44OC0yLjEyQTMgMyAwIDAgMSAxMyA0aC41YS43My43MyAwIDAgMSAuNzUuNzUuNzMuNzMgMCAwIDEtLjc1Ljc1SDEzcS0uNjIgMC0xLjA2LjQ0QTEuNSAxLjUgMCAwIDAgMTEuNSA3cTAgLjYyLjQ0IDEuMDZUMTMgOC41aC41YS43My43MyAwIDAgMSAuNzUuNzUuNzMuNzMgMCAwIDEtLjc1Ljc1em00IDBoLS41YS43My43MyAwIDAgMS0uNzUtLjc1LjczLjczIDAgMCAxIC43NS0uNzVoLjVxLjYzIDAgMS4wNi0uNDRUMTguNSA3dC0uNDQtMS4wNkExLjUgMS41IDAgMCAwIDE3IDUuNWgtLjVhLjczLjczIDAgMCAxLS43NS0uNzUuNzMuNzMgMCAwIDEgLjc1LS43NWguNXExLjI1IDAgMi4xMy44OFQyMCA3dC0uODcgMi4xM0EzIDMgMCAwIDEgMTcgMTBtLS43NS0yLjI1aC0yLjVBLjczLjczIDAgMCAxIDEzIDdhLjczLjczIDAgMCAxIC43NS0uNzVoMi41QS43My43MyAwIDAgMSAxNyA3YS43My43MyAwIDAgMS0uNzUuNzVNMTYuMSAxNHYtMkgyMVYzSDl2OUg3VjNxMC0uODIuNTktMS40MUEyIDIgMCAwIDEgOSAxaDEycS44MiAwIDEuNDEuNTlUMjMgM3Y5cTAgLjgzLS41OSAxLjQxQTIgMiAwIDAgMSAyMSAxNHpNMyAyM3EtLjgyIDAtMS40MS0uNTlBMiAyIDAgMCAxIDEgMjF2LThxMC0uODIuNTktMS40MUEyIDIgMCAwIDEgMyAxMWgxMnEuODIgMCAxLjQxLjU5VDE3IDEzdjhxMCAuODItLjU5IDEuNDFBMiAyIDAgMCAxIDE1IDIzem0wLTJoMTJ2LThIM3pcIi8+PC9nPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxtYXNrIGlkPVwiYVwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHg9XCIwXCIgeT1cIjBcIiBtYXNrVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIHN0eWxlPVwibWFzay10eXBlOmFscGhhXCI+PHBhdGggZmlsbD1cIiNkOWQ5ZDlcIiBkPVwiTTAgMGgyNHYyNEgwelwiLz48L21hc2s+PGcgbWFzaz1cInVybCgjYSlcIj48cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIm0xNy4yNCAxNC4xOC0xLjEtMS4xMnEuMTUtLjMuMjgtLjY0dC4xOC0uNzNhMSAxIDAgMCAxIC4yNi0uNDlxLjIxLS4yLjQ5LS4yYS44LjggMCAwIDEgLjU3LjI0LjYuNiAwIDAgMSAuMTguNTZxLS4wOS42OC0uMzEgMS4yN2E3IDcgMCAwIDEtLjU1IDEuMTFtLTMuMjItMy4yNS00Ljg4LTQuOVY1cTAtMS4wNS43My0xLjc3YTIuNCAyLjQgMCAwIDEgMS43Ny0uNzNxMS4wNSAwIDEuNzguNzNUMTQuMTQgNXY1LjM1cTAgLjE3LS4wMy4zem01LjMyIDEwLjI2TDIuMiA0LjA1YS43LjcgMCAwIDEtLjItLjUyLjcuNyAwIDAgMSAuMi0uNTMuNy43IDAgMCAxIC41My0uMjJxLjMxIDAgLjUzLjIybDE3LjEzIDE3LjE0cS4yMS4yLjIyLjUyYS43LjcgMCAwIDEtLjIyLjUzLjcuNyAwIDAgMS0uNTIuMjIuNy43IDAgMCAxLS41My0uMjJNMTAuODkgMjB2LTIuNTRxLTIuMjYtLjI2LTMuODUtMS44NWE2LjMgNi4zIDAgMCAxLTEuODUtMy44MS42LjYgMCAwIDEgLjE4LS41Ni44LjggMCAwIDEgLjU4LS4yNHEuMjcgMCAuNDcuMmExIDEgMCAwIDEgLjI3LjQ5cS4yNSAxLjgyIDEuNjUgMy4wN3QzLjMgMS4yNHEuOTcgMCAxLjgyLS4zNGE1IDUgMCAwIDAgMS41LS45NmwxLjA3IDEuMDdhNiA2IDAgMCAxLTEuNjUgMS4xMiA2IDYgMCAwIDEtMS45OS41N1YyMGEuNy43IDAgMCAxLS4yMS41NC43LjcgMCAwIDEtLjU0LjIxLjcuNyAwIDAgMS0uNTMtLjIxLjcuNyAwIDAgMS0uMjItLjU0XCIvPjwvZz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48bWFzayBpZD1cImFcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB4PVwiMFwiIHk9XCIwXCIgbWFza1VuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBzdHlsZT1cIm1hc2stdHlwZTphbHBoYVwiPjxwYXRoIGZpbGw9XCIjZDlkOWQ5XCIgZD1cIk0wIDBoMjR2MjRIMHpcIi8+PC9tYXNrPjxnIG1hc2s9XCJ1cmwoI2EpXCI+PHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJtMTcuMjQgMTQuMTgtMS4xLTEuMTJxLjE1LS4zLjI4LS42NHQuMTgtLjczYTEgMSAwIDAgMSAuMjYtLjQ5cS4yMS0uMi40OS0uMmEuOC44IDAgMCAxIC41Ny4yNC42LjYgMCAwIDEgLjE4LjU2cS0uMDkuNjgtLjMxIDEuMjdhNyA3IDAgMCAxLS41NSAxLjExbS0zLjIyLTMuMjUtMS4zOC0xLjM3VjVhMSAxIDAgMCAwLS4yOC0uNzEgMSAxIDAgMCAwLS43Mi0uMjkgMSAxIDAgMCAwLS43LjI5IDEgMSAwIDAgMC0uMy43MXYyLjU0bC0xLjUtMS41VjVxMC0xLjA1LjczLTEuNzdhMi40IDIuNCAwIDAgMSAxLjc3LS43M3ExLjA1IDAgMS43OC43M1QxNC4xNCA1djUuMzVxMCAuMTctLjAzLjN6bTUuMzIgMTAuMjZMMi4yIDQuMDVhLjcuNyAwIDAgMS0uMi0uNTIuNy43IDAgMCAxIC4yLS41My43LjcgMCAwIDEgLjUzLS4yMnEuMzEgMCAuNTMuMjJsMTcuMTMgMTcuMTRxLjIxLjIuMjIuNTJhLjcuNyAwIDAgMS0uMjIuNTMuNy43IDAgMCAxLS41Mi4yMi43LjcgMCAwIDEtLjUzLS4yMk0xMC44OSAyMHYtMi41NXEtMi4yNi0uMjYtMy44NS0xLjg1YTYuMyA2LjMgMCAwIDEtMS44NS0zLjguNi42IDAgMCAxIC4xOC0uNTYuOC44IDAgMCAxIC41OC0uMjRxLjI3IDAgLjQ3LjJhMSAxIDAgMCAxIC4yNy40OXEuMjUgMS44MyAxLjY1IDMuMDd0My4zIDEuMjRxLjk3IDAgMS44Mi0uMzRhNSA1IDAgMCAwIDEuNS0uOTZsMS4wNyAxLjA3YTcgNyAwIDAgMS0xLjY1IDEuMTMgNiA2IDAgMCAxLTEuOTkuNTVWMjBhLjcuNyAwIDAgMS0uMjEuNTQuNy43IDAgMCAxLS41NC4yMS43LjcgMCAwIDEtLjUzLS4yMS43LjcgMCAwIDEtLjIyLS41NFwiLz48L2c+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiBmaWxsPVwibm9uZVwiPjxwYXRoIGZpbGw9XCIjOThhMmIzXCIgZD1cIk0xNi4yNSA5YS43NS43NSAwIDAgMSAuNzQuNjVsLjAxLjF2LjVhNi43NSA2Ljc1IDAgMCAxLTYuMjUgNi43M3YyLjI3YS43NS43NSAwIDAgMS0xLjUuMXYtMi4zN0E2Ljc1IDYuNzUgMCAwIDEgMyAxMC40OHYtLjczYS43NS43NSAwIDAgMSAxLjUtLjF2LjZhNS4yNSA1LjI1IDAgMCAwIDUuMDMgNS4yNWguNzJhNS4yNSA1LjI1IDAgMCAwIDUuMjUtNS4wM3YtLjcyYS43NS43NSAwIDAgMSAuNzUtLjc1TTEwIDBhNCA0IDAgMCAxIDQgNHY2YTQgNCAwIDAgMS04IDBWNGE0IDQgMCAwIDEgNC00bTAgMS41QTIuNSAyLjUgMCAwIDAgNy41IDR2NmEyLjUgMi41IDAgMCAwIDUgMFY0QTIuNSAyLjUgMCAwIDAgMTAgMS41XCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxtYXNrIGlkPVwiYVwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHg9XCIwXCIgeT1cIjBcIiBtYXNrVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIHN0eWxlPVwibWFzay10eXBlOmFscGhhXCI+PHBhdGggZmlsbD1cIiNkOWQ5ZDlcIiBkPVwiTTAgMGgyNHYyNEgwelwiLz48L21hc2s+PGcgbWFzaz1cInVybCgjYSlcIj48cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0xMiAxMy41cS0xLjA1IDAtMS43Ny0uNzNBMi40IDIuNCAwIDAgMSA5LjUgMTFWNXEwLTEuMDUuNzMtMS43N0EyLjQgMi40IDAgMCAxIDEyIDIuNXExLjA1IDAgMS43Ny43My43My43Mi43MyAxLjc3djZxMCAxLjA1LS43MyAxLjc3YTIuNCAyLjQgMCAwIDEtMS43Ny43M20wIDcuMjVhLjcuNyAwIDAgMS0uNTMtLjIxLjcuNyAwIDAgMS0uMjItLjU0di0yLjU0UTguOTggMTcuMiA3LjQgMTUuNmE2LjMgNi4zIDAgMCAxLTEuODUtMy44MS42LjYgMCAwIDEgLjE3LS41Ni44LjggMCAwIDEgLjU5LS4yNHEuMjYgMCAuNDcuMmExIDEgMCAwIDEgLjI2LjQ5cS4yNSAxLjgyIDEuNjYgMy4wN1QxMiAxNnQzLjMtMS4yNCAxLjY1LTMuMDdhMSAxIDAgMCAxIC4yNy0uNDlxLjIxLS4yLjQ4LS4yYS44LjggMCAwIDEgLjU4LjI0LjYuNiAwIDAgMSAuMTcuNTYgNi4zIDYuMyAwIDAgMS0xLjg1IDMuODFxLTEuNTggMS41OS0zLjg1IDEuODVWMjBhLjcuNyAwIDAgMS0uMjIuNTQuNy43IDAgMCAxLS41My4yMVwiLz48L2c+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPjxwYXRoIGQ9XCJNNy4yMiAxOS45OWEyLjEgMi4xIDAgMCAxIDEuNDgtMi4wNVYxNS45YTYuNSA2LjUgMCAwIDEtMy40LTEuODQgNyA3IDAgMCAxLTEuNDItMi4xNCA3IDcgMCAwIDEtLjUyLTIuNjJ2LS45YTEuNzQgMS43NCAwIDAgMSAxLjczLTEuNzZWOS4zYTUgNSAwIDAgMCAxLjQ0IDMuNTIgNC44NSA0Ljg1IDAgMCAwIDUuMjggMS4xMiA1IDUgMCAwIDAgMS41OS0xLjAzbC4wNy0uMDlhNSA1IDAgMCAwIDEuNDQtMy41MlY2LjY0YTEuNzQgMS43NCAwIDAgMSAxLjczIDEuNzZ2LjlxMCAxLjM3LS41MiAyLjYzYTcgNyAwIDAgMS0xLjQzIDIuMTQgNi41IDYuNSAwIDAgMS0zLjQgMS44NHYyLjA0QTIuMSAyLjEgMCAwIDEgMTIuNzYgMjB6TTYuMzkgOS4zVjMuODlBMy42IDMuNiAwIDAgMSA4LjQ5LjMyYTMuNiAzLjYgMCAwIDEgNC44NyAxLjk5cS4yNi42OS4yNCAxLjQzVjkuM2EzLjYgMy42IDAgMCAxLTEuMDEgMi41NyAzLjYxIDMuNjEgMCAwIDEtNi4yMS0yLjQzelwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwiIzJjMzMzNlwiIGNsYXNzPVwiZGVtaW8taWNvblwiIHN0eWxlPVwiZm9udC1zaXplOjE2cHhcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+PHBhdGggZD1cIk0xMS41IDBoLTdBMS41IDEuNSAwIDAgMCAzIDEuNXYxM0ExLjUgMS41IDAgMCAwIDQuNSAxNmg3YTEuNSAxLjUgMCAwIDAgMS41LTEuNXYtMTNBMS41IDEuNSAwIDAgMCAxMS41IDBNOCAxNWExIDEgMCAxIDEgMC0yIDEgMSAwIDEgMSAwIDJtMy41LTMuMzdhLjQuNCAwIDAgMS0uMzcuMzdINC44N2EuNC40IDAgMCAxLS4zNy0uMzdWMS44N2MwLS4yLjE3LS4zNy4zOC0uMzdoNi4yNWMuMiAwIC4zNy4xNy4zNy4zOHpcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIiNiYmJcIiB2aWV3Qm94PVwiMCAwIDMzIDI0XCI+PHBhdGggZD1cIk02IDBoNS4yNWMuNDEgMCAuNzUuMzQuNzUuNzV2MS41YzAgLjQxLS4zNC43NS0uNzUuNzVINmEzIDMgMCAwIDAtMyAzdjEyYTMgMyAwIDAgMCAzIDNoNS4yNWMuNDEgMCAuNzUuMzQuNzUuNzV2MS41YzAgLjQxLS4zNC43NS0uNzUuNzVINmE2IDYgMCAwIDEtNi02VjZhNiA2IDAgMCAxIDYtNm0xNC40NCAxLjIyLTEuMjIgMS4yMmMtLjMuMy0uMy43OS4wMSAxLjA3bDcuMDcgNi44N0gxMC43NWEuNzUuNzUgMCAwIDAtLjc1Ljc0djEuNzZjMCAuNC4zNC43NC43NS43NEgyNi4zbC03LjA3IDYuODZhLjc1Ljc1IDAgMCAwLS4wMSAxLjA3bDEuMjIgMS4yM2EuNzUuNzUgMCAwIDAgMS4wNyAwbDEwLjI3LTEwLjI1YS43NS43NSAwIDAgMCAwLTEuMDdMMjEuNTEgMS4yMWEuNzYuNzYgMCAwIDAtMS4wNy4wMVwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjIgMTZcIj48cGF0aCBmaWxsPVwiIzgzOGI5N1wiIGQ9XCJNMTEgMi4zNGE5LjggOS44IDAgMCAxIDguODIgNS41IDkuOCA5LjggMCAwIDEtOC44MiA1LjUgOS44IDkuOCAwIDAgMS04LjgyLTUuNUE5LjggOS44IDAgMCAxIDExIDIuMzRtMC0yYy01IDAtOS4yNyAzLjEtMTEgNy41YTExLjgzIDExLjgzIDAgMCAwIDIyIDBjLTEuNzMtNC40LTYtNy41LTExLTcuNW0wIDVhMi41IDIuNSAwIDAgMSAwIDUgMi41IDIuNSAwIDAgMSAwLTVtMC0yYTQuNSA0LjUgMCAxIDAgLjAxIDkgNC41IDQuNSAwIDAgMC0uMDEtOVwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjBcIj48cGF0aCBmaWxsPVwiIzgzOGI5N1wiIGQ9XCJNMjMuNzggMTcuOSAxLjM0LjM3QS42LjYgMCAwIDAgLjUuNDZMLjEzLjkzYS42LjYgMCAwIDAgLjEuODRMMjIuNjUgMTkuM2EuNi42IDAgMCAwIC44NC0uMDlsLjM4LS40N2EuNi42IDAgMCAwLS4xLS44NHpNMTEuMTIgNS43M2w1LjA1IDMuOTVhNC4yIDQuMiAwIDAgMC01LjA1LTMuOTVtMS43NCA4LjIxTDcuODIgMTBhNC4yIDQuMiAwIDAgMCA1LjA1IDMuOTVNMTIgNC40NGMzLjcgMCA3LjA5IDIuMDYgOC45MiA1LjRhMTEgMTEgMCAwIDEtMS42NSAyLjI1bDEuNDIgMS4xYTEzIDEzIDAgMCAwIDEuOTgtMi44IDEuMiAxLjIgMCAwIDAgMC0xLjFBMTIgMTIgMCAwIDAgMTIgMi42NHEtMi4wNy4wMi0zLjkyLjdMOS44MiA0LjdBMTAgMTAgMCAwIDEgMTIgNC40M20wIDEwLjhhMTAuMiAxMC4yIDAgMCAxLTguOTItNS40cS42OC0xLjI0IDEuNjUtMi4yNUwzLjMgNi40OGExMyAxMyAwIDAgMC0xLjk4IDIuOCAxLjIgMS4yIDAgMCAwIDAgMS4xQTEyIDEyIDAgMCAwIDEyIDE3LjAzcTIuMDctLjAyIDMuOTItLjdsLTEuNzQtMS4zNmExMCAxMCAwIDAgMS0yLjE4LjI3XCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMThcIj48cGF0aCBmaWxsPVwiI2JiYlwiIGQ9XCJNNy4yIDlhNC4yIDQuMiAwIDEgMCAwLTguNEE0LjIgNC4yIDAgMCAwIDMgNC44IDQuMiA0LjIgMCAwIDAgNy4yIDltMi44OCAxLjJoLS4zMWE2IDYgMCAwIDEtMi41Ny42IDYgNiAwIDAgMS0yLjU3LS42aC0uMzFBNC4zIDQuMyAwIDAgMCAwIDE0LjUydjEuMDhhMS44IDEuOCAwIDAgMCAxLjggMS44aDEwLjhhMS44IDEuOCAwIDAgMCAxLjgtMS44di0xLjA4YTQuMyA0LjMgMCAwIDAtNC4zMi00LjMyTTE4IDlhMy42IDMuNiAwIDAgMCAwLTcuMkEzLjYgMy42IDAgMCAwIDE4IDltMS44IDEuMmgtLjE0cS0uNzkuMjktMS42Ni4zYy0uODcuMDEtMS4xNC0uMTItMS42Ni0uM2gtLjE0YTQgNCAwIDAgMC0yLjA5LjU4IDUuNSA1LjUgMCAwIDEgMS40OSAzLjc0djEuNDRsLS4wMi4yNGg2LjYyYTEuOCAxLjggMCAwIDAgMS44LTEuOCA0LjIgNC4yIDAgMCAwLTQuMi00LjJcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIiNmZmZcIiB2aWV3Qm94PVwiMCAwIDI0IDE4XCI+PHBhdGggZD1cIk0zLjYgNy44YTIuNCAyLjQgMCAxIDAgMC00LjggMi40IDIuNCAwIDAgMCAwIDQuOE0xMiA5YTMuNiAzLjYgMCAwIDAgMy42LTMuNnYtLjZIOC40di42QTMuNiAzLjYgMCAwIDAgMTIgOW05LjYgMGgtMi40Yy0uNjYgMC0xLjI2LjI3LTEuNjkuN2E1LjUgNS41IDAgMCAxIDIuODIgNC4xaDIuNDdhMS4yIDEuMiAwIDAgMCAxLjItMS4ydi0xLjJBMi40IDIuNCAwIDAgMCAyMS42IDltLTE1LjExLjdBMi40IDIuNCAwIDAgMCA0LjggOUgyLjRBMi40IDIuNCAwIDAgMCAwIDExLjR2MS4yYTEuMiAxLjIgMCAwIDAgMS4yIDEuMmgyLjQ3QTUuNSA1LjUgMCAwIDEgNi41IDkuN20xMy45LTEuOWEyLjQgMi40IDAgMSAwIDAtNC44IDIuNCAyLjQgMCAwIDAgMCA0LjhtLTUuNTIgMi40aC0uMzFhNiA2IDAgMCAxLTIuNTcuNiA2IDYgMCAwIDEtMi41Ny0uNmgtLjMxYTQuMyA0LjMgMCAwIDAtNC4zMiA0LjMydjEuMDhhMS44IDEuOCAwIDAgMCAxLjggMS44aDEwLjhhMS44IDEuOCAwIDAgMCAxLjgtMS44di0xLjA4YTQuMyA0LjMgMCAwIDAtNC4zMi00LjMyTTE1LjYuNmwtMS44LjlMMTIgLjZsLTEuOC45TDguNC42djNoNy4yelwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzJjMzMzNlwiIGQ9XCJNMTIgMTJxLTEuNjUgMC0yLjgyLTEuMTdUOCA4dDEuMTgtMi44MlQxMiA0dDIuODMgMS4xOFQxNiA4dC0xLjE3IDIuODNUMTIgMTJtNiA4SDZxLS44MiAwLTEuNDEtLjU5QTIgMiAwIDAgMSA0IDE4di0uOHEwLS44NS40NC0xLjU2LjQzLS43MiAxLjE2LTEuMDlhMTUgMTUgMCAwIDEgMy4xNS0xLjE2QTE0IDE0IDAgMCAxIDEyIDEzcTEuNjUgMCAzLjI1LjM5IDEuNi4zOCAzLjE1IDEuMTYuNzIuMzggMS4xNiAxLjA5VDIwIDE3LjJ2LjhxMCAuODItLjU5IDEuNDFBMiAyIDAgMCAxIDE4IDIwTTYgMThoMTJ2LS44YTEgMSAwIDAgMC0uNS0uODVxLTEuMzUtLjY4LTIuNzItMS4wMWExMS42IDExLjYgMCAwIDAtNS41NSAwcS0xLjM4LjM0LTIuNzMgMS4wMWExIDEgMCAwIDAtLjUuODV6bTYtOHEuODMgMCAxLjQxLS41OVExNCA4LjgzIDE0IDhxMC0uODItLjU5LTEuNDFBMiAyIDAgMCAwIDEyIDZxLS44MiAwLTEuNDEuNTlBMiAyIDAgMCAwIDEwIDhxMCAuODMuNTkgMS40MS41OS41OSAxLjQxLjU5XCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzIxMjEyMVwiIGQ9XCJNMTcuNSAxMmE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExbS01LjQ4IDJhNyA3IDAgMCAwLS43IDEuNUg0LjI0YS43NS43NSAwIDAgMC0uNzUuNzV2LjljMCAuNjYuMjkgMS4yOS43OSAxLjcxUTYuMTYgMjAuNSAxMCAyMC41cS45IDAgMS42OS0uMDkuMzcuNzUuOTMgMS4zOC0xLjIuMjEtMi42Mi4yMS00LjM0IDAtNi43LTJBMy44IDMuOCAwIDAgMSAyIDE3LjE2di0uOTFBMi4yNSAyLjI1IDAgMCAxIDQuMjUgMTR6bTMuMDcuOTctLjA3LjA1LS4wNS4wN2EuNS41IDAgMCAwIDAgLjU3bC4wNS4wNyAxLjc3IDEuNzctMS43NiAxLjc3LS4wNi4wN2EuNS41IDAgMCAwIDAgLjU2bC4wNi4wNy4wNy4wNmEuNS41IDAgMCAwIC41NiAwbC4wNy0uMDYgMS43Ny0xLjc2IDEuNzcgMS43Ny4wNy4wNWEuNS41IDAgMCAwIC41NyAwbC4wNy0uMDUuMDUtLjA3YS41LjUgMCAwIDAgMC0uNTdsLS4wNS0uMDctMS43Ny0xLjc3IDEuNzctMS43Ny4wNi0uMDdhLjUuNSAwIDAgMCAwLS41N2wtLjA2LS4wNy0uMDctLjA1YS41LjUgMCAwIDAtLjU3IDBsLS4wNy4wNS0xLjc3IDEuNzctMS43Ny0xLjc3LS4wNy0uMDVhLjUuNSAwIDAgMC0uNS0uMDV6TTEwIDJhNSA1IDAgMSAxIDAgMTAgNSA1IDAgMCAxIDAtMTBtMCAxLjVhMy41IDMuNSAwIDEgMCAwIDcgMy41IDMuNSAwIDAgMCAwLTdcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+PHBhdGggZmlsbD1cIiM0MjQ1NGJcIiBkPVwiTTE1LjI2IDYuNyA0LjI2LjJDMy4zNy0uMzEgMiAuMiAyIDEuNXYxM2ExLjUgMS41IDAgMCAwIDIuMjYgMS4yOWwxMS02LjVjLjk4LS41OC45OS0yIDAtMi41OFpcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PHBhdGggZmlsbD1cIiMyYzMzMzZcIiBkPVwiTTIwLjYzIDEwLjg4aC03LjV2LTcuNWEuNC40IDAgMCAwLS4zOC0uMzhoLTEuNWEuNC40IDAgMCAwLS4zNy4zOHY3LjVoLTcuNWEuNC40IDAgMCAwLS4zOC4zN3YxLjVjMCAuMi4xNy4zOC4zOC4zOGg3LjV2Ny41YzAgLjIuMTYuMzcuMzcuMzdoMS41YS40LjQgMCAwIDAgLjM4LS4zN3YtNy41aDcuNWEuNC40IDAgMCAwIC4zNy0uMzh2LTEuNWEuNC40IDAgMCAwLS4zNy0uMzdcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PHBhdGggZmlsbD1cIiMyYzMzMzZcIiBkPVwiTTEuNSAzLjc1djE2LjVhMi4yNSAyLjI1IDAgMCAwIDIuMjUgMi4yNWgxNi41YTIuMjUgMi4yNSAwIDAgMCAyLjI1LTIuMjVWMy43NWEyLjI1IDIuMjUgMCAwIDAtMi4yNS0yLjI1SDMuNzVBMi4yNSAyLjI1IDAgMCAwIDEuNSAzLjc1TTYuNzUgMThhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTZhLjc1Ljc1IDAgMCAxIC43NS0uNzVoMS41YS43NS43NSAwIDAgMSAuNzUuNzV2NmEuNzUuNzUgMCAwIDEtLjc1Ljc1em0xMC41LTQuNWEuNzUuNzUgMCAwIDEgLjc1Ljc1djNhLjc1Ljc1IDAgMCAxLS43NS43NWgtMS41YS43NS43NSAwIDAgMS0uNzUtLjc1di0zYS43NS43NSAwIDAgMSAuNzUtLjc1ek0xMi43NSA2YS43NS43NSAwIDAgMSAuNzUuNzV2MTAuNWEuNzUuNzUgMCAwIDEtLjc1Ljc1aC0xLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNi43NWEuNzUuNzUgMCAwIDEgLjc1LS43NXpcIi8+PHBhdGggZmlsbD1cIiMyYzMzMzZcIiBkPVwiTTkgMTcuMjV2LTZhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTEuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djZhLjc1Ljc1IDAgMCAwIC43NS43NWgxLjVhLjc1Ljc1IDAgMCAwIC43NS0uNzVtNi0zdjNhLjc1Ljc1IDAgMCAwIC43NS43NWgxLjVhLjc1Ljc1IDAgMCAwIC43NS0uNzV2LTNhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTEuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1bS00LjUtNy41djEwLjVhLjc1Ljc1IDAgMCAwIC43NS43NWgxLjVhLjc1Ljc1IDAgMCAwIC43NS0uNzVWNi43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMS41YS43NS43NSAwIDAgMC0uNzUuNzVcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiPjxwYXRoIGQ9XCJNMTEuNjcuNjdILjMzQS4zMy4zMyAwIDAgMCAwIDF2LjMzYzAgLjE5LjE1LjM0LjMzLjM0aC4zNHY1LjY2YzAgLjM3LjMuNjcuNjYuNjdINS41di45MWwtMS42MiAxLjYyYS4zMy4zMyAwIDAgMCAwIC40N2wuMjQuMjRjLjEzLjEzLjM0LjEzLjQ3IDBMNiA5LjgybDEuNDEgMS40MWMuMTMuMTMuMzQuMTMuNDcgMGwuMjQtLjIzYS4zMy4zMyAwIDAgMCAwLS40N0w2LjUgOC45VjhoNC4xN2EuNjcuNjcgMCAwIDAgLjY2LS42N1YxLjY3aC4zNGEuMzMuMzMgMCAwIDAgLjMzLS4zNFYxYS4zMy4zMyAwIDAgMC0uMzMtLjMzTTEwLjMzIDdIMS42N1YxLjY3aDguNjZ6XCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGZpbGw9XCIjZGVlNGU4XCIgZD1cIk0xMiAwQTEyIDEyIDAgMSAxIDAgMTJoMi42NEE5LjM2IDkuMzYgMCAxIDAgMTIgMi42NHpcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PHBhdGggZmlsbD1cIiNkZWU0ZThcIiBkPVwiTTEyIC4zOGExMS42MiAxMS42MiAwIDEgMCAwIDIzLjI0QTExLjYyIDExLjYyIDAgMCAwIDEyIC4zOG01LjQyIDEyLjc1LTguMjUgNC43M2ExLjEzIDEuMTMgMCAwIDEtMS42Ny0uOThWNy4xM2MwLS44Ny45My0xLjQgMS42Ny0uOTlsOC4yNSA1LjAyYy43Ny40My43NyAxLjU0IDAgMS45NlwiIG9wYWNpdHk9XCIuOFwiLz48cGF0aCBmaWxsPVwiI2ZmZlwiIGQ9XCJtMTcuNDIgMTMuMTMtOC4yNSA0LjczYTEuMTMgMS4xMyAwIDAgMS0xLjY3LS45OFY3LjEzYzAtLjg3LjkzLTEuNCAxLjY3LS45OWw4LjI1IDUuMDJjLjc3LjQzLjc3IDEuNTQgMCAxLjk3XCIgb3BhY2l0eT1cIi44XCIvPjxwYXRoIHN0cm9rZT1cIiNmZmZcIiBkPVwiTTMuMTYgMjAuMTMgMjAuMTMgMy4xNlwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzJjMzMzNlwiIGQ9XCJNMjMuNjMgMTEuOThhMTEuNiAxMS42IDAgMCAwLTMuMjItOC4wMWwxLjY3LTEuNjdjLjctLjcxLjItMS45My0uOC0xLjkzSDE1Yy0uNjIgMC0xLjEyLjUtMS4xMiAxLjEzdjYuMjhjMCAxIDEuMiAxLjUgMS45MS44bDEuOTYtMS45NmE3LjggNy44IDAgMCAxIDIuMTMgNS4zMSA3Ljg4IDcuODggMCAxIDEtMTMuOC01LjEyLjU2LjU2IDAgMCAwLS4wMy0uNzZMNC4xOSA0LjE5YS41Ni41NiAwIDAgMC0uODIuMDIgMTEuNiAxMS42IDAgMCAwLTMgNy43OSAxMS42MyAxMS42MyAwIDEgMCAyMy4yNi0uMDJcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PHBhdGggZD1cIk03LjEgMTEuMzVxLjM1LS43LjczLTEuMzV0LjgyLTEuM2wtMS40LS4yOC0yLjEgMi4xem0xMi4wNS02Ljg3cS0xLjc1LjA0LTMuNzQgMS4wMmExNCAxNCAwIDAgMC0zLjYxIDIuNnEtMS4wNSAxLjA1LTEuODcgMi4yNVQ4LjcgMTIuNmwyLjg1IDIuODNxMS4wNS0uNCAyLjI1LTEuMjN0Mi4yNS0xLjg3YTE0IDE0IDAgMCAwIDIuNi0zLjZxLjk4LTEuOTggMS4wMy0zLjczbC0uMDQtLjJhLjUuNSAwIDAgMC0uMjktLjI5em0tNS41IDZhMiAyIDAgMCAxLS41Ny0xLjRxMC0uODUuNTctMS40MnQxLjQzLS41OCAxLjQyLjU4LjU4IDEuNDFhMiAyIDAgMCAxLS41OCAxLjQxcS0uNTcuNTgtMS40Mi41OHQtMS40My0uNThtLS44NSA2LjU1LjgyIDEuOTggMi4xLTIuMS0uMjctMS40cS0uNjUuNDUtMS4zLjgxdC0xLjM1LjcybTguNzctMTMuMzZxLjIgMi43NS0uOSA1LjM3dC0zLjQ3IDQuOTlsLjUgMi40N3EuMS41LS4wNS45OHQtLjUuODJMMTQgMjEuNDVhMSAxIDAgMCAxLS45LjI5LjkuOSAwIDAgMS0uNzItLjU5bC0xLjUzLTMuNTctNC4yNy00LjI4TDMgMTEuNzdhLjkuOSAwIDAgMS0uNi0uNzIgMSAxIDAgMCAxIC4yOC0uOUw1LjgyIDdxLjM1LS4zNS44My0uNXQuOTktLjA1bDIuNDguNXEyLjM3LTIuMzcgNC45OC0zLjQ3dDUuMzctLjlxLjIuMDIuNC4xYTEgMSAwIDAgMSAuNTguNnEuMDkuMi4xMS40TTMuOTMgMTUuOThxLjg3LS44OCAyLjEzLS45IDEuMjcgMCAyLjE0Ljg3Ljg3Ljg4Ljg2IDIuMTR0LS44OCAyLjEzcS0uNjMuNjMtMi4xIDEuMDh0LTQuMDMuOHEuMzUtMi41Ny44LTQuMDQuNDUtMS40NiAxLjA4LTIuMDhtMS40MiAxLjRxLS4yNS4yNS0uNS45YTcgNyAwIDAgMC0uMzUgMS4zNHEuNjgtLjEgMS4zNC0uMzN0LjkxLS40OXEuMy0uMy4zMy0uNzJhMSAxIDAgMCAwLS4yOC0uNzMgMSAxIDAgMCAwLS43Mi0uMjkgMSAxIDAgMCAwLS43My4zMVwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCI+PHBhdGggZmlsbD1cIiNkMGQ1ZGRcIiBkPVwiTTE3Ljc1IDJBMi4yNSAyLjI1IDAgMCAxIDIwIDQuMjV2MTEuNWEyLjI1IDIuMjUgMCAwIDEtMi4yNSAyLjI2SDIuMjVBMi4yNSAyLjI1IDAgMCAxIDAgMTUuNzVWNC4yNkEyLjI1IDIuMjUgMCAwIDEgMi4yNSAyem0wIDEuNUgyLjI1YS43NS43NSAwIDAgMC0uNzUuNzV2MTEuNWMwIC40Mi4zNC43Ni43NS43Nkg1di0yLjc2YTEuNzUgMS43NSAwIDAgMSAxLjYtMS43NGwuMTUtLjAxaDYuNWExLjc1IDEuNzUgMCAwIDEgMS43NCAxLjZ2Mi45aDIuNzZhLjc1Ljc1IDAgMCAwIC43NS0uNzVWNC4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NW0tNC41IDEwaC02LjVhLjI1LjI1IDAgMCAwLS4yNC4ybC0uMDEuMDV2Mi43NWg3di0yLjc1YS4yNS4yNSAwIDAgMC0uMi0uMjR6TTEwIDVhMyAzIDAgMSAxIDAgNiAzIDMgMCAwIDEgMC02bTAgMS41YTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zXCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGZpbGw9XCIjMmMzMzM2XCIgZD1cIk0yMS43NSAwaC0xNUEyLjI1IDIuMjUgMCAwIDAgNC41IDIuMjVWNC41SDIuMjVBMi4yNSAyLjI1IDAgMCAwIDAgNi43NXYxNUEyLjI1IDIuMjUgMCAwIDAgMi4yNSAyNGgxNWEyLjI1IDIuMjUgMCAwIDAgMi4yNS0yLjI1VjE5LjVoMi4yNUEyLjI1IDIuMjUgMCAwIDAgMjQgMTcuMjV2LTE1QTIuMjUgMi4yNSAwIDAgMCAyMS43NSAwbS00LjUgMjEuNzVoLTE1VjEyaDE1em00LjUtNC41SDE5LjVWNi43NWEyLjI1IDIuMjUgMCAwIDAtMi4yNS0yLjI1SDYuNzVWMi4yNWgxNXpcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIiNiYmJcIiBjbGFzcz1cImRlbWlvLWljb25cIiBzdHlsZT1cImZvbnQtc2l6ZToyMHB4XCIgdmlld0JveD1cIjAgMCAyMCAxOFwiPjxwYXRoIGQ9XCJNMTguMzMgMEgxLjY3Qy43NSAwIDAgLjc2IDAgMS42OXYxMS4yNWMwIC45My43NSAxLjY5IDEuNjcgMS42OWg2LjY2bC0uNTUgMS42OGgtMi41YS44NC44NCAwIDAgMC0uODQuODVjMCAuNDYuMzguODQuODQuODRoOS40NGEuODQuODQgMCAwIDAgLjg0LS44NC44NC44NCAwIDAgMC0uODQtLjg1aC0yLjVsLS41NS0xLjY4aDYuNjZjLjkyIDAgMS42Ny0uNzYgMS42Ny0xLjdWMS43YzAtLjk0LS43NS0xLjctMS42Ny0xLjdtLS41NSAxMi4zOEgyLjIyVjIuMjRoMTUuNTZ6XCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PHBhdGggZmlsbD1cIiMyYzMzMzZcIiBkPVwibTIzLjg0IDIxLjk4LTUuNy01LjdhLjYuNiAwIDAgMC0uNC0uMTZoLS42MWE5LjcgOS43IDAgMCAwIDIuMzctNi4zN0E5Ljc1IDkuNzUgMCAwIDAgOS43NSAwIDkuNzUgOS43NSAwIDAgMCAwIDkuNzVhOS43NSA5Ljc1IDAgMCAwIDkuNzUgOS43NSA5LjcgOS43IDAgMCAwIDYuMzctMi4zN3YuNjJxMCAuMjMuMTcuNGw1LjY5IDUuNjhjLjIyLjIzLjU4LjIzLjggMGwxLjA2LTEuMDVhLjU2LjU2IDAgMCAwIDAtLjhNOS43NSAxNy4yNWE3LjUgNy41IDAgMSAxIDAtMTUgNy41IDcuNSAwIDAgMSAwIDE1XCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTguODYgM2g2LjI4cTEuNjItLjAyIDIuNjcuMDZjLjczLjA2IDEuMzcuMTggMS45Ni40OGE1IDUgMCAwIDEgMi4xOCAyLjE5Yy4zLjYuNDMgMS4yMy41IDEuOTZxLjA2IDEuMDQuMDUgMi42N3YzLjI4cS4wMSAxLjYyLS4wNiAyLjY3YTUgNSAwIDAgMS0uNDkgMS45NiA1IDUgMCAwIDEtMi4xOCAyLjE5Yy0uNi4zLTEuMjMuNDItMS45Ni40OHEtMS4wNS4wNy0yLjY3LjA2SDguODZxLTEuNjIuMDItMi42Ny0uMDZhNSA1IDAgMCAxLTEuOTYtLjQ5IDUgNSAwIDAgMS0yLjE5LTIuMTggNSA1IDAgMCAxLS40OC0xLjk2cS0uMDgtMS4wNS0uMDYtMi42N3YtMy4yOHEtLjAyLTEuNjIuMDYtMi42N2MuMDYtLjczLjE4LTEuMzcuNDktMS45NmE1IDUgMCAwIDEgMi4xOC0yLjE5Yy42LS4zIDEuMjMtLjQyIDEuOTYtLjQ4UTcuMjQgMi45OCA4Ljg2IDNtLTIuNSAyLjA1Yy0uNjEuMDUtLjk2LjE0LTEuMjIuMjhhMyAzIDAgMCAwLTEuMzEgMS4zIDMgMyAwIDAgMC0uMjggMS4yMmMtLjA1LjYyLS4wNSAxLjQxLS4wNSAyLjU1djMuMmMwIDEuMTQgMCAxLjkzLjA1IDIuNTUuMDUuNi4xNC45NS4yOCAxLjIxYTMgMyAwIDAgMCAxLjMgMS4zMWMuMjcuMTQuNjIuMjMgMS4yMi4yOC42Mi4wNSAxLjQxLjA1IDIuNTUuMDVoLjZWNWgtLjZjLTEuMTQgMC0xLjkzIDAtMi41NS4wNU0xMS41IDV2MTRoMy42YzEuMTQgMCAxLjkzIDAgMi41NS0uMDUuNi0uMDUuOTUtLjE0IDEuMjEtLjI4YTMgMyAwIDAgMCAxLjMxLTEuM2MuMTQtLjI3LjIzLS42Mi4yOC0xLjIyLjA1LS42Mi4wNS0xLjQxLjA1LTIuNTV2LTMuMmMwLTEuMTQgMC0xLjkzLS4wNS0yLjU1YTMgMyAwIDAgMC0uMjgtMS4yMSAzIDMgMCAwIDAtMS4zLTEuMzEgMyAzIDAgMCAwLTEuMjItLjI4QzE3LjAzIDUgMTYuMjQgNSAxNS4xIDV6TTUgOC41YTEgMSAwIDAgMSAxLTFoMWExIDEgMCAxIDEgMCAySDZhMSAxIDAgMCAxLTEtMU01IDEyYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAxIDEgMCAySDZhMSAxIDAgMCAxLTEtMVwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj48cGF0aCBmaWxsPVwiIzlmYTZhZFwiIGQ9XCJNMTAgLjMxQTkuNyA5LjcgMCAwIDAgLjMxIDEwIDkuNyA5LjcgMCAwIDAgMTAgMTkuNjkgOS43IDkuNyAwIDAgMCAxOS42OSAxMCA5LjcgOS43IDAgMCAwIDEwIC4zMW0wIDE3LjVhNy44MiA3LjgyIDAgMSAxIC4wMi0xNS42NEE3LjgyIDcuODIgMCAwIDEgMTAgMTcuODFNNi44OCA5LjM4YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVtNi4yNSAwYTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVtLjE1IDIuODNBNC4zIDQuMyAwIDAgMSAxMCAxMy43NWE0LjMgNC4zIDAgMCAxLTMuMjgtMS41NC45NC45NCAwIDAgMC0xLjMyLS4xMi45NC45NCAwIDAgMC0uMTIgMS4zMiA2LjE0IDYuMTQgMCAwIDAgOS40NSAwIC45NC45NCAwIDEgMC0xLjQ1LTEuMlwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMTcgMTZcIj48cGF0aCBmaWxsPVwiIzVkNjc2YlwiIGQ9XCJNMiAwQTIgMiAwIDAgMCAuOS4zMUwuODguMzNILjg2Qy4wMi45OC0uMyAyLjIuMzIgMy4xdi4wM2wuOCAxLjEyLjM4LjU0LjU1LS4zNyAyLjItMS41NC41NS0uMzgtLjM4LS41NEwzLjY5LjkgMy42Ny44OFYuODVhMi4zIDIuMyAwIDAgMC0xLjMtLjh6bTMuNzMgMy40LTEuMTIuNzMtMS42NyAxLjE0TDEuOCA2bDIuMjMgNy43OWMuMDQuNDYuMzMuODIuNjYgMS4wNnEuNTQuMzkgMS4zMy42M2MxLjA2LjMzIDIuNDYuNTIgMy45OC41MnMyLjkzLS4yIDMuOTgtLjUycS43OS0uMjQgMS4zNC0uNjNjLjM2LS4yNi42OC0uNjcuNjgtMS4xOCAwLS41Mi0uMzItLjkyLS42OC0xLjJsLS4zLS4xOHpNMTAgMTIuNjdjMS40MiAwIDIuNy4xOCAzLjU3LjQ2LjQzLjEzLjc4LjMuOTUuNDNsLjEzLjEtLjEzLjExYy0uMTcuMTMtLjUyLjMtLjk1LjQ0LS44OC4yNy0yLjE1LjQ2LTMuNTcuNDZzLTIuNjktLjE5LTMuNTYtLjQ2cS0uNjctLjIyLS45Ni0uNDRsLS4xMi0uMS4xMi0uMWMuMTgtLjE0LjUzLS4zLjk2LS40NC44Ny0uMjggMi4xNS0uNDYgMy41Ni0uNDZcIi8+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PG1hc2sgaWQ9XCJhXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgeD1cIjBcIiB5PVwiMFwiIG1hc2tVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgc3R5bGU9XCJtYXNrLXR5cGU6YWxwaGFcIj48cGF0aCBmaWxsPVwiI2Q5ZDlkOVwiIGQ9XCJNMCAwaDI0djI0SDB6XCIvPjwvbWFzaz48ZyBtYXNrPVwidXJsKCNhKVwiPjxwYXRoIGZpbGw9XCIjMDJiZjZmXCIgZD1cIk03IDE3cS0uODIgMC0xLjQxLS41OUEyIDIgMCAwIDEgNSAxNVY1cTAtLjgyLjU5LTEuNDFBMiAyIDAgMCAxIDcgM2gxNHEuODIgMCAxLjQxLjU5VDIzIDV2MTBxMCAuODItLjU5IDEuNDFBMiAyIDAgMCAxIDIxIDE3em02LjQzLTUuMUw3IDcuNDJWMTVoMTRWNy40M2wtNi40MyA0LjQ3YTEgMSAwIDAgMS0uNTcuMiAxIDEgMCAwIDEtLjU3LS4yTTE0IDkuODUgMjEgNUg3ek0zIDIxcS0uODIgMC0xLjQxLS41OUEyIDIgMCAwIDEgMSAxOVY3LjVxMC0uNDIuMjktLjcxQTEgMSAwIDAgMSAyIDYuNXEuNDIgMCAuNzEuMjlUMyA3LjVWMTloMTUuNXEuNDIgMCAuNzEuMjl0LjI5LjcxLS4yOS43MWExIDEgMCAwIDEtLjcxLjI5elwiLz48L2c+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCI+PHBhdGggZmlsbD1cIiM5OGEyYjNcIiBkPVwiTTE4LjI1IDExYy43IDAgMS4wMi44OS40NiAxLjMzTDE0IDE2LjExdjEuNjRBMi4yNSAyLjI1IDAgMCAxIDExLjc1IDIwaC0zLjVBMi4yNSAyLjI1IDAgMCAxIDYgMTcuNzV2LTEuNjRsLTQuNzItMy43OEEuNzUuNzUgMCAwIDEgMS43NSAxMXptLTIuMTQgMS41SDMuODlsMy4zMyAyLjY2YS44LjggMCAwIDEgLjI4LjU5djJjMCAuNDIuMzQuNzUuNzUuNzVoMy41YS43NS43NSAwIDAgMCAuNzUtLjc1di0yYS44LjggMCAwIDEgLjI4LS41OHpNNi43NSA3aDYuNWExLjc1IDEuNzUgMCAwIDEgMS43NCAxLjZWMTBoLTEuNVY4Ljc1YS4yNS4yNSAwIDAgMC0uMTktLjI0bC0uMDUtLjAxaC02LjVhLjI1LjI1IDAgMCAwLS4yNC4ybC0uMDEuMDVWMTBINVY4Ljc1YTEuNzUgMS43NSAwIDAgMSAxLjYtMS43NHpoNi41ek0xMCAwYTMgMyAwIDEgMSAwIDYgMyAzIDAgMCAxIDAtNm0wIDEuNWExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1wiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzJjMzMzNlwiIGQ9XCJNMjMuNDQuMzhoLTEuM2EuNTYuNTYgMCAwIDAtLjU2LjU3bC4xIDQuNjJBMTEuNjMgMTEuNjMgMCAwIDAgLjU4IDkuODNhLjU2LjU2IDAgMCAwIC41Ni42N2gxLjM0YS41Ni41NiAwIDAgMCAuNTUtLjQ1QTkuMiA5LjIgMCAwIDEgMTIgMi44MWE5LjIgOS4yIDAgMCAxIDguMzggNS40bC01LjkzLS4xM2EuNTYuNTYgMCAwIDAtLjU3LjU2djEuM2MwIC4zLjI1LjU2LjU2LjU2aDljLjMgMCAuNTYtLjI1LjU2LS41NnYtOWEuNTYuNTYgMCAwIDAtLjU2LS41N20tLjU3IDEzLjEzaC0xLjM0YS41Ni41NiAwIDAgMC0uNTUuNDVBOS4yIDkuMiAwIDAgMSAxMiAyMS4xOWE5LjIgOS4yIDAgMCAxLTguMzctNS40bDUuOTIuMTNhLjU2LjU2IDAgMCAwIC41Ny0uNTZ2LTEuM2EuNTYuNTYgMCAwIDAtLjU2LS41NmgtOWEuNTYuNTYgMCAwIDAtLjU2LjU2djljMCAuMzEuMjUuNTcuNTYuNTdoMS4zYy4zMiAwIC41Ny0uMjYuNTYtLjU4bC0uMS00LjYyYTExLjYzIDExLjYzIDAgMCAwIDIxLjExLTQuMjcuNTYuNTYgMCAwIDAtLjU2LS42NlwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzJjMzMzNlwiIGQ9XCJNMTIuMzEuMzhhMTEuNjIgMTEuNjIgMCAxIDAgMCAyMy4yNCAxMS42MiAxMS42MiAwIDAgMCAwLTIzLjI0bTUuNyAxNC42N2MuMjIuMjIuMjIuNTggMCAuOGwtMS44NSAxLjg1YS41Ni41NiAwIDAgMS0uOCAwbC0zLjA1LTMuMDctMy4wNSAzLjA3YS41Ni41NiAwIDAgMS0uOCAwbC0xLjg1LTEuODZhLjU2LjU2IDAgMCAxIDAtLjhMOS43IDEyIDYuNiA4Ljk1YS41Ni41NiAwIDAgMSAwLS44TDguNDcgNi4zYS41Ni41NiAwIDAgMSAuOCAwbDMuMDQgMy4wOSAzLjA1LTMuMDhhLjU2LjU2IDAgMCAxIC44IDBsMS44NiAxLjg2Yy4yMi4yMi4yMi41NyAwIC44TDE0Ljk0IDEyelwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48bWFzayBpZD1cImFcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB4PVwiMFwiIHk9XCIwXCIgbWFza1VuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBzdHlsZT1cIm1hc2stdHlwZTphbHBoYVwiPjxwYXRoIGZpbGw9XCIjZDlkOWQ5XCIgZD1cIk0wIDBoMjR2MjRIMHpcIi8+PC9tYXNrPjxnIG1hc2s9XCJ1cmwoI2EpXCI+PHBhdGggZmlsbD1cIiMwMmJmNmZcIiBkPVwiTTkgMTYuNXEtMS4wNSAwLTEuNzctLjcyVDYuNSAxNHQuNzMtMS43N1Q5IDExLjV0MS43OC43My43MiAxLjc3LS43MiAxLjc4VDkgMTYuNU01IDIycS0uODIgMC0xLjQxLS41OUEyIDIgMCAwIDEgMyAyMFY2cTAtLjgyLjU5LTEuNDFBMiAyIDAgMCAxIDUgNGgxVjNxMC0uNDIuMjktLjcxQTEgMSAwIDAgMSA3IDJxLjQyIDAgLjcxLjI5VDggM3YxaDhWM3EwLS40Mi4yOS0uNzFBMSAxIDAgMCAxIDE3IDJxLjQyIDAgLjcxLjI5VDE4IDN2MWgxcS44MiAwIDEuNDEuNTlUMjEgNnYxNHEwIC44Mi0uNTkgMS40MUEyIDIgMCAwIDEgMTkgMjJ6bTAtMmgxNFYxMEg1ek01IDhoMTRWNkg1elwiLz48L2c+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PHBhdGggZmlsbD1cIiMyYzMzMzZcIiBkPVwiTTIxLjc1IDMuNzVoLTMuODZsLTEuNi0yLjY2QTIuMyAyLjMgMCAwIDAgMTQuMzYgMEg5LjY0QTIuMyAyLjMgMCAwIDAgNy43IDEuMUw2LjEgMy43NEgyLjI1YS43NS43NSAwIDAgMC0uNzUuNzV2Ljc1YS43NS43NSAwIDAgMCAuNzUuNzVIM2wxIDE1Ljg5QTIuMjUgMi4yNSAwIDAgMCA2LjIzIDI0aDExLjUyQTIuMjUgMi4yNSAwIDAgMCAyMCAyMS44OUwyMSA2aC43NWEuNzUuNzUgMCAwIDAgLjc1LS43NVY0LjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVNOS42NCAyLjI1aDQuNzJsLjkgMS41SDguNzR6bTguMTIgMTkuNUg2LjI0TDUuMjUgNmgxMy41elwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzFjMWIxZlwiIGQ9XCJtMTguNiAxNi01LjItNS4xNS0yLjU3IDIuNThxLS41OC41Ny0xLjQzLjU3dC0xLjQyLS41N0wyLjcgOC4xYTEgMSAwIDAgMS0uMjktLjY5IDEgMSAwIDAgMSAuMjktLjcxIDEgMSAwIDAgMSAuNy0uMjhxLjQzIDAgLjcuMjhMOS40IDEybDIuNTgtMi41N3EuNTctLjU4IDEuNDItLjU4dDEuNDMuNThMMjAgMTQuNlYxM3EwLS40Mi4yOS0uNzFBMSAxIDAgMCAxIDIxIDEycS40MiAwIC43MS4yOVQyMiAxM3Y0cTAgLjQyLS4yOS43MUExIDEgMCAwIDEgMjEgMThoLTRhMSAxIDAgMCAxLS43MS0uMjlBMSAxIDAgMCAxIDE2IDE3cTAtLjQyLjI5LS43MUExIDEgMCAwIDEgMTcgMTZ6XCIvPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGZpbGw9XCIjMWMxYjFmXCIgZD1cIk0yLjcgMTcuNjNhMSAxIDAgMCAxLS4yOS0uNzIgMSAxIDAgMCAxIC4yOS0uNjhsNS4yOC01LjM1cS41Ny0uNTggMS40Mi0uNTh0MS40My41N2wyLjU3IDIuNiA1LjItNS4xNUgxN2ExIDEgMCAwIDEtLjcxLS4yOCAxIDEgMCAwIDEtLjI5LS43MnEwLS40Mi4yOS0uN2ExIDEgMCAwIDEgLjcxLS4zaDRxLjQyIDAgLjcxLjMuMjkuMjguMjkuN3Y0cTAgLjQzLS4yOS43MmExIDEgMCAwIDEtLjcxLjI4IDEgMSAwIDAgMS0uNzEtLjI4IDEgMSAwIDAgMS0uMjktLjcydi0xLjZsLTUuMTggNS4xOHEtLjU3LjU3LTEuNDIuNTd0LTEuNDMtLjU3TDkuNCAxMi4zMmwtNS4zIDUuM2ExIDEgMCAwIDEtLjcuMjggMSAxIDAgMCAxLS43LS4yOFwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBmaWxsPVwiIzJjMzMzNlwiIGQ9XCJNLjc1LjM4aDEuM2MuMzIgMCAuNTcuMjYuNTYuNTdsLS4xIDQuNjJhMTEuNiAxMS42IDAgMCAxIDkuNzItNS4yIDExLjYzIDExLjYzIDAgMCAxLS4wNCAyMy4yNSAxMS42IDExLjYgMCAwIDEtNy44LTMgLjU2LjU2IDAgMCAxLS4wMi0uOGwuOTMtLjkzYS42LjYgMCAwIDEgLjc3LS4wMyA5LjIgOS4yIDAgMCAwIDYuMTIgMi4zM0E5LjIgOS4yIDAgMCAwIDIxLjM3IDEyYTkuMiA5LjIgMCAwIDAtOS4xOC05LjE5IDkuMiA5LjIgMCAwIDAtOC4zOCA1LjRsNS45My0uMTNhLjU2LjU2IDAgMCAxIC41Ny41NnYxLjNjMCAuMy0uMjUuNTYtLjU2LjU2aC05YS41Ni41NiAwIDAgMS0uNTYtLjU2di05Qy4xOS42My40NC4zOC43NS4zOFwiLz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48bWFzayBpZD1cImFcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB4PVwiMFwiIHk9XCIwXCIgbWFza1VuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBzdHlsZT1cIm1hc2stdHlwZTphbHBoYVwiPjxwYXRoIGZpbGw9XCIjZDlkOWQ5XCIgZD1cIk0wIDBoMjR2MjRIMHpcIi8+PC9tYXNrPjxnIG1hc2s9XCJ1cmwoI2EpXCI+PHBhdGggZmlsbD1cIiMyYzMzMzZcIiBkPVwiTTQuNTUgMTkuNXEtLjc2IDAtMS4yOC0uNTJhMS44IDEuOCAwIDAgMS0uNTMtMS4yOVY2LjMxcTAtLjc2LjUzLTEuMjh0MS4yOC0uNTNoMTEuMzhxLjc2IDAgMS4yOS41M3QuNTIgMS4yOHY0LjU4bDIuNzQtMi43NHEuMjMtLjIzLjUtLjExdC4yOC40NHY3LjA0cTAgLjMyLS4yOC40NHQtLjUtLjFsLTIuNzQtMi43NHY0LjU3cTAgLjc2LS41MyAxLjI4LS41Mi41My0xLjI4LjUzem0wLTEuNWgxMS4zOGEuMy4zIDAgMCAwIC4yMi0uMDkuMy4zIDAgMCAwIC4wOS0uMjJWNi4zMWEuMy4zIDAgMCAwLS4wOS0uMjIuMy4zIDAgMCAwLS4yMi0uMUg0LjU1YS4zLjMgMCAwIDAtLjIyLjEuMy4zIDAgMCAwLS4wOS4yMnYxMS4zOGEuMy4zIDAgMCAwIC4wOS4yMi4zLjMgMCAwIDAgLjIyLjA5XCIvPjwvZz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48bWFzayBpZD1cImFcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB4PVwiMFwiIHk9XCIwXCIgbWFza1VuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBzdHlsZT1cIm1hc2stdHlwZTphbHBoYVwiPjxwYXRoIGZpbGw9XCIjZDlkOWQ5XCIgZD1cIk0wIDBoMjR2MjRIMHpcIi8+PC9tYXNrPjxnIG1hc2s9XCJ1cmwoI2EpXCI+PHBhdGggZmlsbD1cIiMyYzMzMzZcIiBkPVwiTTQuNTUgMTkuNXEtLjc2IDAtMS4yOC0uNTJhMS44IDEuOCAwIDAgMS0uNTMtMS4yOVY2LjMxcTAtLjc2LjUzLTEuMjh0MS4yOC0uNTNoMTEuMzhxLjc2IDAgMS4yOS41M3QuNTIgMS4yOHY0LjU4bDIuNzQtMi43NGEuNC40IDAgMCAxIC41LS4xcS4yOC4xLjI4LjQzdjcuMDRxMCAuMzItLjI4LjQzYS40LjQgMCAwIDEtLjUtLjFsLTIuNzQtMi43NHY0LjU4cTAgLjc2LS41MyAxLjI4LS41Mi41My0xLjI4LjUzelwiLz48L2c+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PG1hc2sgaWQ9XCJhXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgeD1cIjBcIiB5PVwiMFwiIG1hc2tVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgc3R5bGU9XCJtYXNrLXR5cGU6YWxwaGFcIj48cGF0aCBmaWxsPVwiI2Q5ZDlkOVwiIGQ9XCJNMCAwaDI0djI0SDB6XCIvPjwvbWFzaz48ZyBtYXNrPVwidXJsKCNhKVwiPjxwYXRoIGZpbGw9XCIjMmMzMzM2XCIgZD1cIm0xOC45NSAyMS42MS0yLjUtMi40OS0uNjEuMzUtLjY0LjNhLjcuNyAwIDAgMS0uNy0uMDkuOC44IDAgMCAxLS4zMy0uNjdxMC0uMjEuMTMtLjM3YTEgMSAwIDAgMSAuMy0uMjMgNSA1IDAgMCAwIC43Ny0uMzdsLTMuNTgtMy41OXYyLjE1cTAgLjYxLS41Ni44NHQtLjk4LS4xOUw3LjUgMTQuNUg0LjdhMSAxIDAgMCAxLS42NS0uMjYgMSAxIDAgMCAxLS4yNi0uNjR2LTMuMnEwLS4zOC4yNi0uNjRhMSAxIDAgMCAxIC42NC0uMjZoMi4xNGwtNC4zLTQuMzFhLjcuNyAwIDAgMS0uMjItLjUyLjcuNyAwIDAgMSAuMjEtLjU0LjcuNyAwIDAgMSAuNTMtLjIxcS4zMSAwIC41My4yMUwyMCAyMC41N3EuMi4yLjIxLjUyYS43LjcgMCAwIDEtLjIxLjUzLjcuNyAwIDAgMS0uNTMuMjIuNy43IDAgMCAxLS41Mi0uMjJNMTUuMiA0LjE4YTguNSA4LjUgMCAwIDEgMy44MyAzLjA4cTEuNDUgMi4xIDEuNDUgNC43MSAwIDEuMzItLjQgMi41My0uMzggMS4yMS0xLjEgMi4yM2wtMS4wNy0xLjA3YTcgNyAwIDAgMCAxLjA3LTMuNjlxMC0yLjE2LTEuMi0zLjlhNyA3IDAgMCAwLTMuMTgtMi41My43LjcgMCAwIDEtLjQzLS42MnEwLS40Mi4zMy0uNjZhLjcuNyAwIDAgMSAuNy0uMDhtLjcyIDkuNDktMS43NS0xLjc1VjguM2E0IDQgMCAwIDEgMS41NyAxLjU1IDQuNCA0LjQgMCAwIDEgLjQ2IDMuMDFxLS4xLjQyLS4yOC44MU0xMS44IDkuNTQgOS42MyA3LjM3bC42Mi0uNjJxLjQzLS40My45OC0uMnQuNTYuODV6bS0xLjUgNS42MXYtMi4yTDguMzQgMTFINS4yOXYyaDIuODV6XCIvPjwvZz48L3N2Zz4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48bWFzayBpZD1cImFcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB4PVwiMFwiIHk9XCIwXCIgbWFza1VuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBzdHlsZT1cIm1hc2stdHlwZTphbHBoYVwiPjxwYXRoIGZpbGw9XCIjZDlkOWQ5XCIgZD1cIk0wIDBoMjR2MjRIMHpcIi8+PC9tYXNrPjxnIG1hc2s9XCJ1cmwoI2EpXCI+PHBhdGggZmlsbD1cIiMyYzMzMzZcIiBkPVwiTTE1LjA2IDE5Ljc3YS43LjcgMCAwIDEtLjctLjA5LjguOCAwIDAgMS0uMzItLjY3cTAtLjIxLjEyLS4zN2ExIDEgMCAwIDEgLjMtLjIzIDcgNyAwIDAgMCAzLjE5LTIuNTRxMS4yLTEuNzMgMS4yLTMuOXQtMS4yLTMuOWE3IDcgMCAwIDAtMy4xOC0yLjUzIDEgMSAwIDAgMS0uMzItLjI1IDEgMSAwIDAgMS0uMTEtLjM3cTAtLjQyLjMyLS42NWEuNy43IDAgMCAxIC43LS4xIDguNiA4LjYgMCAwIDEgMy44MyAzLjFxMS40NiAyLjEgMS40NiA0Ljd0LTEuNDYgNC43MWE4LjYgOC42IDAgMCAxLTMuODMgMy4xTTQuNTYgMTQuNWExIDEgMCAwIDEtLjY1LS4yNiAxIDEgMCAwIDEtLjI2LS42NHYtMy4ycTAtLjM4LjI2LS42NGExIDEgMCAwIDEgLjY1LS4yNmgyLjhsMi43Ni0yLjc1cS40Mi0uNDMuOTgtLjIuNTUuMjQuNTUuODV2OS4ycTAgLjYxLS41NS44NHQtLjk4LS4xOUw3LjM3IDE0LjV6bTkuNDggMS4xNVY4LjNxLjk3LjUyIDEuNTQgMS41MmE0LjMgNC4zIDAgMCAxIC41NyAyLjE4cTAgMS4xOC0uNTcgMi4xNWE0IDQgMCAwIDEtMS41NCAxLjVcIi8+PC9nPjwvc3ZnPiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxtYXNrIGlkPVwiYVwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHg9XCIwXCIgeT1cIjBcIiBtYXNrVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIHN0eWxlPVwibWFzay10eXBlOmFscGhhXCI+PHBhdGggZmlsbD1cIiNkOWQ5ZDlcIiBkPVwiTTAgMGgyNHYyNEgwelwiLz48L21hc2s+PGcgbWFzaz1cInVybCgjYSlcIj48cGF0aCBmaWxsPVwiIzJjMzMzNlwiIGQ9XCJNMi43MyAyMWExIDEgMCAwIDEtLjg1LS41IDEgMSAwIDAgMS0uMTQtLjQ5IDEgMSAwIDAgMSAuMTQtLjUxbDkuMjUtMTZhMSAxIDAgMCAxIC4zOC0uMzdRMTEuNzUgMyAxMiAzdC40OS4xM2ExIDEgMCAwIDEgLjM4LjM3bDkuMjYgMTZxLjE1LjI1LjEzLjUxYTEgMSAwIDAgMS0uMTQuNDkgMSAxIDAgMCAxLS44NS41ek0xMiAxOHEuNDIgMCAuNzEtLjI5QTEgMSAwIDAgMCAxMyAxN2ExIDEgMCAwIDAtLjI5LS43MUExIDEgMCAwIDAgMTIgMTZhMSAxIDAgMCAwLS43MS4yOUExIDEgMCAwIDAgMTEgMTdxMCAuNDIuMjkuNzFUMTIgMThtMC0zYTEgMSAwIDAgMCAuNzEtLjI5QTEgMSAwIDAgMCAxMyAxNHYtM2ExIDEgMCAwIDAtLjI5LS43MUExIDEgMCAwIDAgMTIgMTBhMSAxIDAgMCAwLS43MS4yOUExIDEgMCAwIDAgMTEgMTF2M3EwIC40Mi4yOS43MVQxMiAxNVwiLz48L2c+PC9zdmc+IiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PG1hc2sgaWQ9XCJhXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgeD1cIjBcIiB5PVwiMFwiIG1hc2tVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgc3R5bGU9XCJtYXNrLXR5cGU6YWxwaGFcIj48cGF0aCBmaWxsPVwiI2Q5ZDlkOVwiIGQ9XCJNMCAwaDI0djI0SDB6XCIvPjwvbWFzaz48ZyBtYXNrPVwidXJsKCNhKVwiPjxwYXRoIGZpbGw9XCIjMmMzMzM2XCIgZD1cIk0zLjQzIDIwLjVhLjkuOSAwIDAgMS0uNzgtLjQ1IDEgMSAwIDAgMS0uMTItLjQ0IDEgMSAwIDAgMSAuMTItLjQ3bDguNTYtMTQuNzhBLjkuOSAwIDAgMSAxMiAzLjlxLjIzIDAgLjQ0LjExdC4zNS4zNWw4LjU2IDE0Ljc4cS4xNC4yMy4xMi40N2ExIDEgMCAwIDEtLjEyLjQ0LjkuOSAwIDAgMS0uNzguNDV6TTQuNDUgMTloMTUuMUwxMiA2ek0xMiAxNy44cS4zNCAwIC41OC0uMjJhLjguOCAwIDAgMCAuMjMtLjU4LjguOCAwIDAgMC0uMjMtLjU3LjguOCAwIDAgMC0uNTgtLjI0LjguOCAwIDAgMC0uNTcuMjMuOC44IDAgMCAwLS4yNC41OHEwIC4zNC4yNC41OGEuOC44IDAgMCAwIC41Ny4yM20wLTIuNjJxLjMyIDAgLjU0LS4yMWEuNy43IDAgMCAwIC4yMS0uNTR2LTMuNWEuNy43IDAgMCAwLS4yMi0uNTMuNy43IDAgMCAwLS41My0uMjIuNy43IDAgMCAwLS41My4yMi43LjcgMCAwIDAtLjIyLjUzdjMuNXEwIC4zMi4yMi41NGEuNy43IDAgMCAwIC41My4yMVwiLz48L2c+PC9zdmc+IixudWxsLG51bGwsbnVsbCwiLy8gcGFja2FnZXMvcmVhY3QvdXNlLXByZXZpb3VzL3NyYy91c2VQcmV2aW91cy50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gdXNlUHJldmlvdXModmFsdWUpIHtcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmKHsgdmFsdWUsIHByZXZpb3VzOiB2YWx1ZSB9KTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChyZWYuY3VycmVudC52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHJlZi5jdXJyZW50LnByZXZpb3VzID0gcmVmLmN1cnJlbnQudmFsdWU7XG4gICAgICByZWYuY3VycmVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gcmVmLmN1cnJlbnQucHJldmlvdXM7XG4gIH0sIFt2YWx1ZV0pO1xufVxuZXhwb3J0IHtcbiAgdXNlUHJldmlvdXNcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCIvLyBwYWNrYWdlcy9yZWFjdC91c2Utc2l6ZS9zcmMvdXNlU2l6ZS50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdFwiO1xuZnVuY3Rpb24gdXNlU2l6ZShlbGVtZW50KSB7XG4gIGNvbnN0IFtzaXplLCBzZXRTaXplXSA9IFJlYWN0LnVzZVN0YXRlKHZvaWQgMCk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHNldFNpemUoeyB3aWR0aDogZWxlbWVudC5vZmZzZXRXaWR0aCwgaGVpZ2h0OiBlbGVtZW50Lm9mZnNldEhlaWdodCB9KTtcbiAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShlbnRyaWVzKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWVudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcbiAgICAgICAgbGV0IHdpZHRoO1xuICAgICAgICBsZXQgaGVpZ2h0O1xuICAgICAgICBpZiAoXCJib3JkZXJCb3hTaXplXCIgaW4gZW50cnkpIHtcbiAgICAgICAgICBjb25zdCBib3JkZXJTaXplRW50cnkgPSBlbnRyeVtcImJvcmRlckJveFNpemVcIl07XG4gICAgICAgICAgY29uc3QgYm9yZGVyU2l6ZSA9IEFycmF5LmlzQXJyYXkoYm9yZGVyU2l6ZUVudHJ5KSA/IGJvcmRlclNpemVFbnRyeVswXSA6IGJvcmRlclNpemVFbnRyeTtcbiAgICAgICAgICB3aWR0aCA9IGJvcmRlclNpemVbXCJpbmxpbmVTaXplXCJdO1xuICAgICAgICAgIGhlaWdodCA9IGJvcmRlclNpemVbXCJibG9ja1NpemVcIl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgIGhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIHNldFNpemUoeyB3aWR0aCwgaGVpZ2h0IH0pO1xuICAgICAgfSk7XG4gICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQsIHsgYm94OiBcImJvcmRlci1ib3hcIiB9KTtcbiAgICAgIHJldHVybiAoKSA9PiByZXNpemVPYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFNpemUodm9pZCAwKTtcbiAgICB9XG4gIH0sIFtlbGVtZW50XSk7XG4gIHJldHVybiBzaXplO1xufVxuZXhwb3J0IHtcbiAgdXNlU2l6ZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsIlwidXNlIGNsaWVudFwiO1xuXG4vLyBwYWNrYWdlcy9yZWFjdC9jaGVja2JveC9zcmMvY2hlY2tib3gudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbnRleHRcIjtcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSBcIkByYWRpeC11aS9wcmltaXRpdmVcIjtcbmltcG9ydCB7IHVzZUNvbnRyb2xsYWJsZVN0YXRlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlXCI7XG5pbXBvcnQgeyB1c2VQcmV2aW91cyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLXByZXZpb3VzXCI7XG5pbXBvcnQgeyB1c2VTaXplIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2Utc2l6ZVwiO1xuaW1wb3J0IHsgUHJlc2VuY2UgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByZXNlbmNlXCI7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZVwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgQ0hFQ0tCT1hfTkFNRSA9IFwiQ2hlY2tib3hcIjtcbnZhciBbY3JlYXRlQ2hlY2tib3hDb250ZXh0LCBjcmVhdGVDaGVja2JveFNjb3BlXSA9IGNyZWF0ZUNvbnRleHRTY29wZShDSEVDS0JPWF9OQU1FKTtcbnZhciBbQ2hlY2tib3hQcm92aWRlciwgdXNlQ2hlY2tib3hDb250ZXh0XSA9IGNyZWF0ZUNoZWNrYm94Q29udGV4dChDSEVDS0JPWF9OQU1FKTtcbnZhciBDaGVja2JveCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgX19zY29wZUNoZWNrYm94LFxuICAgICAgbmFtZSxcbiAgICAgIGNoZWNrZWQ6IGNoZWNrZWRQcm9wLFxuICAgICAgZGVmYXVsdENoZWNrZWQsXG4gICAgICByZXF1aXJlZCxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgdmFsdWUgPSBcIm9uXCIsXG4gICAgICBvbkNoZWNrZWRDaGFuZ2UsXG4gICAgICBmb3JtLFxuICAgICAgLi4uY2hlY2tib3hQcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBbYnV0dG9uLCBzZXRCdXR0b25dID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldEJ1dHRvbihub2RlKSk7XG4gICAgY29uc3QgaGFzQ29uc3VtZXJTdG9wcGVkUHJvcGFnYXRpb25SZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGlzRm9ybUNvbnRyb2wgPSBidXR0b24gPyBmb3JtIHx8ICEhYnV0dG9uLmNsb3Nlc3QoXCJmb3JtXCIpIDogdHJ1ZTtcbiAgICBjb25zdCBbY2hlY2tlZCA9IGZhbHNlLCBzZXRDaGVja2VkXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICAgIHByb3A6IGNoZWNrZWRQcm9wLFxuICAgICAgZGVmYXVsdFByb3A6IGRlZmF1bHRDaGVja2VkLFxuICAgICAgb25DaGFuZ2U6IG9uQ2hlY2tlZENoYW5nZVxuICAgIH0pO1xuICAgIGNvbnN0IGluaXRpYWxDaGVja2VkU3RhdGVSZWYgPSBSZWFjdC51c2VSZWYoY2hlY2tlZCk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGZvcm0yID0gYnV0dG9uPy5mb3JtO1xuICAgICAgaWYgKGZvcm0yKSB7XG4gICAgICAgIGNvbnN0IHJlc2V0ID0gKCkgPT4gc2V0Q2hlY2tlZChpbml0aWFsQ2hlY2tlZFN0YXRlUmVmLmN1cnJlbnQpO1xuICAgICAgICBmb3JtMi5hZGRFdmVudExpc3RlbmVyKFwicmVzZXRcIiwgcmVzZXQpO1xuICAgICAgICByZXR1cm4gKCkgPT4gZm9ybTIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2V0XCIsIHJlc2V0KTtcbiAgICAgIH1cbiAgICB9LCBbYnV0dG9uLCBzZXRDaGVja2VkXSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKENoZWNrYm94UHJvdmlkZXIsIHsgc2NvcGU6IF9fc2NvcGVDaGVja2JveCwgc3RhdGU6IGNoZWNrZWQsIGRpc2FibGVkLCBjaGlsZHJlbjogW1xuICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgUHJpbWl0aXZlLmJ1dHRvbixcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgcm9sZTogXCJjaGVja2JveFwiLFxuICAgICAgICAgIFwiYXJpYS1jaGVja2VkXCI6IGlzSW5kZXRlcm1pbmF0ZShjaGVja2VkKSA/IFwibWl4ZWRcIiA6IGNoZWNrZWQsXG4gICAgICAgICAgXCJhcmlhLXJlcXVpcmVkXCI6IHJlcXVpcmVkLFxuICAgICAgICAgIFwiZGF0YS1zdGF0ZVwiOiBnZXRTdGF0ZShjaGVja2VkKSxcbiAgICAgICAgICBcImRhdGEtZGlzYWJsZWRcIjogZGlzYWJsZWQgPyBcIlwiIDogdm9pZCAwLFxuICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIC4uLmNoZWNrYm94UHJvcHMsXG4gICAgICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXG4gICAgICAgICAgb25LZXlEb3duOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIG9uQ2xpY2s6IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQ2xpY2ssIChldmVudCkgPT4ge1xuICAgICAgICAgICAgc2V0Q2hlY2tlZCgocHJldkNoZWNrZWQpID0+IGlzSW5kZXRlcm1pbmF0ZShwcmV2Q2hlY2tlZCkgPyB0cnVlIDogIXByZXZDaGVja2VkKTtcbiAgICAgICAgICAgIGlmIChpc0Zvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgIGhhc0NvbnN1bWVyU3RvcHBlZFByb3BhZ2F0aW9uUmVmLmN1cnJlbnQgPSBldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpO1xuICAgICAgICAgICAgICBpZiAoIWhhc0NvbnN1bWVyU3RvcHBlZFByb3BhZ2F0aW9uUmVmLmN1cnJlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBpc0Zvcm1Db250cm9sICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgIEJ1YmJsZUlucHV0LFxuICAgICAgICB7XG4gICAgICAgICAgY29udHJvbDogYnV0dG9uLFxuICAgICAgICAgIGJ1YmJsZXM6ICFoYXNDb25zdW1lclN0b3BwZWRQcm9wYWdhdGlvblJlZi5jdXJyZW50LFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgY2hlY2tlZCxcbiAgICAgICAgICByZXF1aXJlZCxcbiAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICBmb3JtLFxuICAgICAgICAgIHN0eWxlOiB7IHRyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKC0xMDAlKVwiIH0sXG4gICAgICAgICAgZGVmYXVsdENoZWNrZWQ6IGlzSW5kZXRlcm1pbmF0ZShkZWZhdWx0Q2hlY2tlZCkgPyBmYWxzZSA6IGRlZmF1bHRDaGVja2VkXG4gICAgICAgIH1cbiAgICAgIClcbiAgICBdIH0pO1xuICB9XG4pO1xuQ2hlY2tib3guZGlzcGxheU5hbWUgPSBDSEVDS0JPWF9OQU1FO1xudmFyIElORElDQVRPUl9OQU1FID0gXCJDaGVja2JveEluZGljYXRvclwiO1xudmFyIENoZWNrYm94SW5kaWNhdG9yID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVDaGVja2JveCwgZm9yY2VNb3VudCwgLi4uaW5kaWNhdG9yUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDaGVja2JveENvbnRleHQoSU5ESUNBVE9SX05BTUUsIF9fc2NvcGVDaGVja2JveCk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUHJlc2VuY2UsIHsgcHJlc2VudDogZm9yY2VNb3VudCB8fCBpc0luZGV0ZXJtaW5hdGUoY29udGV4dC5zdGF0ZSkgfHwgY29udGV4dC5zdGF0ZSA9PT0gdHJ1ZSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBQcmltaXRpdmUuc3BhbixcbiAgICAgIHtcbiAgICAgICAgXCJkYXRhLXN0YXRlXCI6IGdldFN0YXRlKGNvbnRleHQuc3RhdGUpLFxuICAgICAgICBcImRhdGEtZGlzYWJsZWRcIjogY29udGV4dC5kaXNhYmxlZCA/IFwiXCIgOiB2b2lkIDAsXG4gICAgICAgIC4uLmluZGljYXRvclByb3BzLFxuICAgICAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICAgICAgc3R5bGU6IHsgcG9pbnRlckV2ZW50czogXCJub25lXCIsIC4uLnByb3BzLnN0eWxlIH1cbiAgICAgIH1cbiAgICApIH0pO1xuICB9XG4pO1xuQ2hlY2tib3hJbmRpY2F0b3IuZGlzcGxheU5hbWUgPSBJTkRJQ0FUT1JfTkFNRTtcbnZhciBCdWJibGVJbnB1dCA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGNvbnRyb2wsIGNoZWNrZWQsIGJ1YmJsZXMgPSB0cnVlLCBkZWZhdWx0Q2hlY2tlZCwgLi4uaW5wdXRQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgY29uc3QgcHJldkNoZWNrZWQgPSB1c2VQcmV2aW91cyhjaGVja2VkKTtcbiAgY29uc3QgY29udHJvbFNpemUgPSB1c2VTaXplKGNvbnRyb2wpO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0ID0gcmVmLmN1cnJlbnQ7XG4gICAgY29uc3QgaW5wdXRQcm90byA9IHdpbmRvdy5IVE1MSW5wdXRFbGVtZW50LnByb3RvdHlwZTtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpbnB1dFByb3RvLCBcImNoZWNrZWRcIik7XG4gICAgY29uc3Qgc2V0Q2hlY2tlZCA9IGRlc2NyaXB0b3Iuc2V0O1xuICAgIGlmIChwcmV2Q2hlY2tlZCAhPT0gY2hlY2tlZCAmJiBzZXRDaGVja2VkKSB7XG4gICAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudChcImNsaWNrXCIsIHsgYnViYmxlcyB9KTtcbiAgICAgIGlucHV0LmluZGV0ZXJtaW5hdGUgPSBpc0luZGV0ZXJtaW5hdGUoY2hlY2tlZCk7XG4gICAgICBzZXRDaGVja2VkLmNhbGwoaW5wdXQsIGlzSW5kZXRlcm1pbmF0ZShjaGVja2VkKSA/IGZhbHNlIDogY2hlY2tlZCk7XG4gICAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH0sIFtwcmV2Q2hlY2tlZCwgY2hlY2tlZCwgYnViYmxlc10pO1xuICBjb25zdCBkZWZhdWx0Q2hlY2tlZFJlZiA9IFJlYWN0LnVzZVJlZihpc0luZGV0ZXJtaW5hdGUoY2hlY2tlZCkgPyBmYWxzZSA6IGNoZWNrZWQpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcImlucHV0XCIsXG4gICAge1xuICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgXCJhcmlhLWhpZGRlblwiOiB0cnVlLFxuICAgICAgZGVmYXVsdENoZWNrZWQ6IGRlZmF1bHRDaGVja2VkID8/IGRlZmF1bHRDaGVja2VkUmVmLmN1cnJlbnQsXG4gICAgICAuLi5pbnB1dFByb3BzLFxuICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgcmVmLFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgLi4ucHJvcHMuc3R5bGUsXG4gICAgICAgIC4uLmNvbnRyb2xTaXplLFxuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgbWFyZ2luOiAwXG4gICAgICB9XG4gICAgfVxuICApO1xufTtcbmZ1bmN0aW9uIGlzSW5kZXRlcm1pbmF0ZShjaGVja2VkKSB7XG4gIHJldHVybiBjaGVja2VkID09PSBcImluZGV0ZXJtaW5hdGVcIjtcbn1cbmZ1bmN0aW9uIGdldFN0YXRlKGNoZWNrZWQpIHtcbiAgcmV0dXJuIGlzSW5kZXRlcm1pbmF0ZShjaGVja2VkKSA/IFwiaW5kZXRlcm1pbmF0ZVwiIDogY2hlY2tlZCA/IFwiY2hlY2tlZFwiIDogXCJ1bmNoZWNrZWRcIjtcbn1cbnZhciBSb290ID0gQ2hlY2tib3g7XG52YXIgSW5kaWNhdG9yID0gQ2hlY2tib3hJbmRpY2F0b3I7XG5leHBvcnQge1xuICBDaGVja2JveCxcbiAgQ2hlY2tib3hJbmRpY2F0b3IsXG4gIEluZGljYXRvcixcbiAgUm9vdCxcbiAgY3JlYXRlQ2hlY2tib3hTY29wZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsIlwidXNlIGNsaWVudFwiO1xuXG4vLyBwYWNrYWdlcy9yZWFjdC9sYWJlbC9zcmMvbGFiZWwudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBOQU1FID0gXCJMYWJlbFwiO1xudmFyIExhYmVsID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBQcmltaXRpdmUubGFiZWwsXG4gICAge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICAgIG9uTW91c2VEb3duOiAoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICBpZiAodGFyZ2V0LmNsb3Nlc3QoXCJidXR0b24sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhXCIpKSByZXR1cm47XG4gICAgICAgIHByb3BzLm9uTW91c2VEb3duPy4oZXZlbnQpO1xuICAgICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgJiYgZXZlbnQuZGV0YWlsID4gMSkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG59KTtcbkxhYmVsLmRpc3BsYXlOYW1lID0gTkFNRTtcbnZhciBSb290ID0gTGFiZWw7XG5leHBvcnQge1xuICBMYWJlbCxcbiAgUm9vdFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCIvLyBwYWNrYWdlcy9jb3JlL251bWJlci9zcmMvbnVtYmVyLnRzXG5mdW5jdGlvbiBjbGFtcCh2YWx1ZSwgW21pbiwgbWF4XSkge1xuICByZXR1cm4gTWF0aC5taW4obWF4LCBNYXRoLm1heChtaW4sIHZhbHVlKSk7XG59XG5leHBvcnQge1xuICBjbGFtcFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsIi8vIHBhY2thZ2VzL3JlYWN0L2RpcmVjdGlvbi9zcmMvRGlyZWN0aW9uLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBEaXJlY3Rpb25Db250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh2b2lkIDApO1xudmFyIERpcmVjdGlvblByb3ZpZGVyID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgZGlyLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KERpcmVjdGlvbkNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGRpciwgY2hpbGRyZW4gfSk7XG59O1xuZnVuY3Rpb24gdXNlRGlyZWN0aW9uKGxvY2FsRGlyKSB7XG4gIGNvbnN0IGdsb2JhbERpciA9IFJlYWN0LnVzZUNvbnRleHQoRGlyZWN0aW9uQ29udGV4dCk7XG4gIHJldHVybiBsb2NhbERpciB8fCBnbG9iYWxEaXIgfHwgXCJsdHJcIjtcbn1cbnZhciBQcm92aWRlciA9IERpcmVjdGlvblByb3ZpZGVyO1xuZXhwb3J0IHtcbiAgRGlyZWN0aW9uUHJvdmlkZXIsXG4gIFByb3ZpZGVyLFxuICB1c2VEaXJlY3Rpb25cbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCJcInVzZSBjbGllbnRcIjtcblxuLy8gcGFja2FnZXMvcmVhY3QvY29sbGVjdGlvbi9zcmMvY29sbGVjdGlvbi50c3hcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29udGV4dFwiO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnNcIjtcbmltcG9ydCB7IFNsb3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXNsb3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuZnVuY3Rpb24gY3JlYXRlQ29sbGVjdGlvbihuYW1lKSB7XG4gIGNvbnN0IFBST1ZJREVSX05BTUUgPSBuYW1lICsgXCJDb2xsZWN0aW9uUHJvdmlkZXJcIjtcbiAgY29uc3QgW2NyZWF0ZUNvbGxlY3Rpb25Db250ZXh0LCBjcmVhdGVDb2xsZWN0aW9uU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFBST1ZJREVSX05BTUUpO1xuICBjb25zdCBbQ29sbGVjdGlvblByb3ZpZGVySW1wbCwgdXNlQ29sbGVjdGlvbkNvbnRleHRdID0gY3JlYXRlQ29sbGVjdGlvbkNvbnRleHQoXG4gICAgUFJPVklERVJfTkFNRSxcbiAgICB7IGNvbGxlY3Rpb25SZWY6IHsgY3VycmVudDogbnVsbCB9LCBpdGVtTWFwOiAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpIH1cbiAgKTtcbiAgY29uc3QgQ29sbGVjdGlvblByb3ZpZGVyID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBzY29wZSwgY2hpbGRyZW4gfSA9IHByb3BzO1xuICAgIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBpdGVtTWFwID0gUmVhY3QudXNlUmVmKC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCkpLmN1cnJlbnQ7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goQ29sbGVjdGlvblByb3ZpZGVySW1wbCwgeyBzY29wZSwgaXRlbU1hcCwgY29sbGVjdGlvblJlZjogcmVmLCBjaGlsZHJlbiB9KTtcbiAgfTtcbiAgQ29sbGVjdGlvblByb3ZpZGVyLmRpc3BsYXlOYW1lID0gUFJPVklERVJfTkFNRTtcbiAgY29uc3QgQ09MTEVDVElPTl9TTE9UX05BTUUgPSBuYW1lICsgXCJDb2xsZWN0aW9uU2xvdFwiO1xuICBjb25zdCBDb2xsZWN0aW9uU2xvdCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gICAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICAgIGNvbnN0IHsgc2NvcGUsIGNoaWxkcmVuIH0gPSBwcm9wcztcbiAgICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDb2xsZWN0aW9uQ29udGV4dChDT0xMRUNUSU9OX1NMT1RfTkFNRSwgc2NvcGUpO1xuICAgICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgY29udGV4dC5jb2xsZWN0aW9uUmVmKTtcbiAgICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFNsb3QsIHsgcmVmOiBjb21wb3NlZFJlZnMsIGNoaWxkcmVuIH0pO1xuICAgIH1cbiAgKTtcbiAgQ29sbGVjdGlvblNsb3QuZGlzcGxheU5hbWUgPSBDT0xMRUNUSU9OX1NMT1RfTkFNRTtcbiAgY29uc3QgSVRFTV9TTE9UX05BTUUgPSBuYW1lICsgXCJDb2xsZWN0aW9uSXRlbVNsb3RcIjtcbiAgY29uc3QgSVRFTV9EQVRBX0FUVFIgPSBcImRhdGEtcmFkaXgtY29sbGVjdGlvbi1pdGVtXCI7XG4gIGNvbnN0IENvbGxlY3Rpb25JdGVtU2xvdCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gICAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICAgIGNvbnN0IHsgc2NvcGUsIGNoaWxkcmVuLCAuLi5pdGVtRGF0YSB9ID0gcHJvcHM7XG4gICAgICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuICAgICAgY29uc3QgY29udGV4dCA9IHVzZUNvbGxlY3Rpb25Db250ZXh0KElURU1fU0xPVF9OQU1FLCBzY29wZSk7XG4gICAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb250ZXh0Lml0ZW1NYXAuc2V0KHJlZiwgeyByZWYsIC4uLml0ZW1EYXRhIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4gdm9pZCBjb250ZXh0Lml0ZW1NYXAuZGVsZXRlKHJlZik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFNsb3QsIHsgLi4ueyBbSVRFTV9EQVRBX0FUVFJdOiBcIlwiIH0sIHJlZjogY29tcG9zZWRSZWZzLCBjaGlsZHJlbiB9KTtcbiAgICB9XG4gICk7XG4gIENvbGxlY3Rpb25JdGVtU2xvdC5kaXNwbGF5TmFtZSA9IElURU1fU0xPVF9OQU1FO1xuICBmdW5jdGlvbiB1c2VDb2xsZWN0aW9uKHNjb3BlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZUNvbGxlY3Rpb25Db250ZXh0KG5hbWUgKyBcIkNvbGxlY3Rpb25Db25zdW1lclwiLCBzY29wZSk7XG4gICAgY29uc3QgZ2V0SXRlbXMgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBjb2xsZWN0aW9uTm9kZSA9IGNvbnRleHQuY29sbGVjdGlvblJlZi5jdXJyZW50O1xuICAgICAgaWYgKCFjb2xsZWN0aW9uTm9kZSkgcmV0dXJuIFtdO1xuICAgICAgY29uc3Qgb3JkZXJlZE5vZGVzID0gQXJyYXkuZnJvbShjb2xsZWN0aW9uTm9kZS5xdWVyeVNlbGVjdG9yQWxsKGBbJHtJVEVNX0RBVEFfQVRUUn1dYCkpO1xuICAgICAgY29uc3QgaXRlbXMgPSBBcnJheS5mcm9tKGNvbnRleHQuaXRlbU1hcC52YWx1ZXMoKSk7XG4gICAgICBjb25zdCBvcmRlcmVkSXRlbXMgPSBpdGVtcy5zb3J0KFxuICAgICAgICAoYSwgYikgPT4gb3JkZXJlZE5vZGVzLmluZGV4T2YoYS5yZWYuY3VycmVudCkgLSBvcmRlcmVkTm9kZXMuaW5kZXhPZihiLnJlZi5jdXJyZW50KVxuICAgICAgKTtcbiAgICAgIHJldHVybiBvcmRlcmVkSXRlbXM7XG4gICAgfSwgW2NvbnRleHQuY29sbGVjdGlvblJlZiwgY29udGV4dC5pdGVtTWFwXSk7XG4gICAgcmV0dXJuIGdldEl0ZW1zO1xuICB9XG4gIHJldHVybiBbXG4gICAgeyBQcm92aWRlcjogQ29sbGVjdGlvblByb3ZpZGVyLCBTbG90OiBDb2xsZWN0aW9uU2xvdCwgSXRlbVNsb3Q6IENvbGxlY3Rpb25JdGVtU2xvdCB9LFxuICAgIHVzZUNvbGxlY3Rpb24sXG4gICAgY3JlYXRlQ29sbGVjdGlvblNjb3BlXG4gIF07XG59XG5leHBvcnQge1xuICBjcmVhdGVDb2xsZWN0aW9uXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIiwiXCJ1c2UgY2xpZW50XCI7XG5cbi8vIHBhY2thZ2VzL3JlYWN0L3NsaWRlci9zcmMvc2xpZGVyLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjbGFtcCB9IGZyb20gXCJAcmFkaXgtdWkvbnVtYmVyXCI7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gXCJAcmFkaXgtdWkvcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dFNjb3BlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb250ZXh0XCI7XG5pbXBvcnQgeyB1c2VDb250cm9sbGFibGVTdGF0ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZVwiO1xuaW1wb3J0IHsgdXNlRGlyZWN0aW9uIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1kaXJlY3Rpb25cIjtcbmltcG9ydCB7IHVzZVByZXZpb3VzIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtcHJldmlvdXNcIjtcbmltcG9ydCB7IHVzZVNpemUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1zaXplXCI7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZVwiO1xuaW1wb3J0IHsgY3JlYXRlQ29sbGVjdGlvbiB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29sbGVjdGlvblwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgUEFHRV9LRVlTID0gW1wiUGFnZVVwXCIsIFwiUGFnZURvd25cIl07XG52YXIgQVJST1dfS0VZUyA9IFtcIkFycm93VXBcIiwgXCJBcnJvd0Rvd25cIiwgXCJBcnJvd0xlZnRcIiwgXCJBcnJvd1JpZ2h0XCJdO1xudmFyIEJBQ0tfS0VZUyA9IHtcbiAgXCJmcm9tLWxlZnRcIjogW1wiSG9tZVwiLCBcIlBhZ2VEb3duXCIsIFwiQXJyb3dEb3duXCIsIFwiQXJyb3dMZWZ0XCJdLFxuICBcImZyb20tcmlnaHRcIjogW1wiSG9tZVwiLCBcIlBhZ2VEb3duXCIsIFwiQXJyb3dEb3duXCIsIFwiQXJyb3dSaWdodFwiXSxcbiAgXCJmcm9tLWJvdHRvbVwiOiBbXCJIb21lXCIsIFwiUGFnZURvd25cIiwgXCJBcnJvd0Rvd25cIiwgXCJBcnJvd0xlZnRcIl0sXG4gIFwiZnJvbS10b3BcIjogW1wiSG9tZVwiLCBcIlBhZ2VEb3duXCIsIFwiQXJyb3dVcFwiLCBcIkFycm93TGVmdFwiXVxufTtcbnZhciBTTElERVJfTkFNRSA9IFwiU2xpZGVyXCI7XG52YXIgW0NvbGxlY3Rpb24sIHVzZUNvbGxlY3Rpb24sIGNyZWF0ZUNvbGxlY3Rpb25TY29wZV0gPSBjcmVhdGVDb2xsZWN0aW9uKFNMSURFUl9OQU1FKTtcbnZhciBbY3JlYXRlU2xpZGVyQ29udGV4dCwgY3JlYXRlU2xpZGVyU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFNMSURFUl9OQU1FLCBbXG4gIGNyZWF0ZUNvbGxlY3Rpb25TY29wZVxuXSk7XG52YXIgW1NsaWRlclByb3ZpZGVyLCB1c2VTbGlkZXJDb250ZXh0XSA9IGNyZWF0ZVNsaWRlckNvbnRleHQoU0xJREVSX05BTUUpO1xudmFyIFNsaWRlciA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgbmFtZSxcbiAgICAgIG1pbiA9IDAsXG4gICAgICBtYXggPSAxMDAsXG4gICAgICBzdGVwID0gMSxcbiAgICAgIG9yaWVudGF0aW9uID0gXCJob3Jpem9udGFsXCIsXG4gICAgICBkaXNhYmxlZCA9IGZhbHNlLFxuICAgICAgbWluU3RlcHNCZXR3ZWVuVGh1bWJzID0gMCxcbiAgICAgIGRlZmF1bHRWYWx1ZSA9IFttaW5dLFxuICAgICAgdmFsdWUsXG4gICAgICBvblZhbHVlQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgfSxcbiAgICAgIG9uVmFsdWVDb21taXQgPSAoKSA9PiB7XG4gICAgICB9LFxuICAgICAgaW52ZXJ0ZWQgPSBmYWxzZSxcbiAgICAgIGZvcm0sXG4gICAgICAuLi5zbGlkZXJQcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCB0aHVtYlJlZnMgPSBSZWFjdC51c2VSZWYoLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSk7XG4gICAgY29uc3QgdmFsdWVJbmRleFRvQ2hhbmdlUmVmID0gUmVhY3QudXNlUmVmKDApO1xuICAgIGNvbnN0IGlzSG9yaXpvbnRhbCA9IG9yaWVudGF0aW9uID09PSBcImhvcml6b250YWxcIjtcbiAgICBjb25zdCBTbGlkZXJPcmllbnRhdGlvbiA9IGlzSG9yaXpvbnRhbCA/IFNsaWRlckhvcml6b250YWwgOiBTbGlkZXJWZXJ0aWNhbDtcbiAgICBjb25zdCBbdmFsdWVzID0gW10sIHNldFZhbHVlc10gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgICBwcm9wOiB2YWx1ZSxcbiAgICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0VmFsdWUsXG4gICAgICBvbkNoYW5nZTogKHZhbHVlMikgPT4ge1xuICAgICAgICBjb25zdCB0aHVtYnMgPSBbLi4udGh1bWJSZWZzLmN1cnJlbnRdO1xuICAgICAgICB0aHVtYnNbdmFsdWVJbmRleFRvQ2hhbmdlUmVmLmN1cnJlbnRdPy5mb2N1cygpO1xuICAgICAgICBvblZhbHVlQ2hhbmdlKHZhbHVlMik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgdmFsdWVzQmVmb3JlU2xpZGVTdGFydFJlZiA9IFJlYWN0LnVzZVJlZih2YWx1ZXMpO1xuICAgIGZ1bmN0aW9uIGhhbmRsZVNsaWRlU3RhcnQodmFsdWUyKSB7XG4gICAgICBjb25zdCBjbG9zZXN0SW5kZXggPSBnZXRDbG9zZXN0VmFsdWVJbmRleCh2YWx1ZXMsIHZhbHVlMik7XG4gICAgICB1cGRhdGVWYWx1ZXModmFsdWUyLCBjbG9zZXN0SW5kZXgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYW5kbGVTbGlkZU1vdmUodmFsdWUyKSB7XG4gICAgICB1cGRhdGVWYWx1ZXModmFsdWUyLCB2YWx1ZUluZGV4VG9DaGFuZ2VSZWYuY3VycmVudCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhbmRsZVNsaWRlRW5kKCkge1xuICAgICAgY29uc3QgcHJldlZhbHVlID0gdmFsdWVzQmVmb3JlU2xpZGVTdGFydFJlZi5jdXJyZW50W3ZhbHVlSW5kZXhUb0NoYW5nZVJlZi5jdXJyZW50XTtcbiAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHZhbHVlc1t2YWx1ZUluZGV4VG9DaGFuZ2VSZWYuY3VycmVudF07XG4gICAgICBjb25zdCBoYXNDaGFuZ2VkID0gbmV4dFZhbHVlICE9PSBwcmV2VmFsdWU7XG4gICAgICBpZiAoaGFzQ2hhbmdlZCkgb25WYWx1ZUNvbW1pdCh2YWx1ZXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVWYWx1ZXModmFsdWUyLCBhdEluZGV4LCB7IGNvbW1pdCB9ID0geyBjb21taXQ6IGZhbHNlIH0pIHtcbiAgICAgIGNvbnN0IGRlY2ltYWxDb3VudCA9IGdldERlY2ltYWxDb3VudChzdGVwKTtcbiAgICAgIGNvbnN0IHNuYXBUb1N0ZXAgPSByb3VuZFZhbHVlKE1hdGgucm91bmQoKHZhbHVlMiAtIG1pbikgLyBzdGVwKSAqIHN0ZXAgKyBtaW4sIGRlY2ltYWxDb3VudCk7XG4gICAgICBjb25zdCBuZXh0VmFsdWUgPSBjbGFtcChzbmFwVG9TdGVwLCBbbWluLCBtYXhdKTtcbiAgICAgIHNldFZhbHVlcygocHJldlZhbHVlcyA9IFtdKSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZXMgPSBnZXROZXh0U29ydGVkVmFsdWVzKHByZXZWYWx1ZXMsIG5leHRWYWx1ZSwgYXRJbmRleCk7XG4gICAgICAgIGlmIChoYXNNaW5TdGVwc0JldHdlZW5WYWx1ZXMobmV4dFZhbHVlcywgbWluU3RlcHNCZXR3ZWVuVGh1bWJzICogc3RlcCkpIHtcbiAgICAgICAgICB2YWx1ZUluZGV4VG9DaGFuZ2VSZWYuY3VycmVudCA9IG5leHRWYWx1ZXMuaW5kZXhPZihuZXh0VmFsdWUpO1xuICAgICAgICAgIGNvbnN0IGhhc0NoYW5nZWQgPSBTdHJpbmcobmV4dFZhbHVlcykgIT09IFN0cmluZyhwcmV2VmFsdWVzKTtcbiAgICAgICAgICBpZiAoaGFzQ2hhbmdlZCAmJiBjb21taXQpIG9uVmFsdWVDb21taXQobmV4dFZhbHVlcyk7XG4gICAgICAgICAgcmV0dXJuIGhhc0NoYW5nZWQgPyBuZXh0VmFsdWVzIDogcHJldlZhbHVlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gcHJldlZhbHVlcztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgU2xpZGVyUHJvdmlkZXIsXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiBwcm9wcy5fX3Njb3BlU2xpZGVyLFxuICAgICAgICBuYW1lLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgbWluLFxuICAgICAgICBtYXgsXG4gICAgICAgIHZhbHVlSW5kZXhUb0NoYW5nZVJlZixcbiAgICAgICAgdGh1bWJzOiB0aHVtYlJlZnMuY3VycmVudCxcbiAgICAgICAgdmFsdWVzLFxuICAgICAgICBvcmllbnRhdGlvbixcbiAgICAgICAgZm9ybSxcbiAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQ29sbGVjdGlvbi5Qcm92aWRlciwgeyBzY29wZTogcHJvcHMuX19zY29wZVNsaWRlciwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQ29sbGVjdGlvbi5TbG90LCB7IHNjb3BlOiBwcm9wcy5fX3Njb3BlU2xpZGVyLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICBTbGlkZXJPcmllbnRhdGlvbixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcImFyaWEtZGlzYWJsZWRcIjogZGlzYWJsZWQsXG4gICAgICAgICAgICBcImRhdGEtZGlzYWJsZWRcIjogZGlzYWJsZWQgPyBcIlwiIDogdm9pZCAwLFxuICAgICAgICAgICAgLi4uc2xpZGVyUHJvcHMsXG4gICAgICAgICAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICAgICAgICAgIG9uUG9pbnRlckRvd246IGNvbXBvc2VFdmVudEhhbmRsZXJzKHNsaWRlclByb3BzLm9uUG9pbnRlckRvd24sICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFkaXNhYmxlZCkgdmFsdWVzQmVmb3JlU2xpZGVTdGFydFJlZi5jdXJyZW50ID0gdmFsdWVzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtaW4sXG4gICAgICAgICAgICBtYXgsXG4gICAgICAgICAgICBpbnZlcnRlZCxcbiAgICAgICAgICAgIG9uU2xpZGVTdGFydDogZGlzYWJsZWQgPyB2b2lkIDAgOiBoYW5kbGVTbGlkZVN0YXJ0LFxuICAgICAgICAgICAgb25TbGlkZU1vdmU6IGRpc2FibGVkID8gdm9pZCAwIDogaGFuZGxlU2xpZGVNb3ZlLFxuICAgICAgICAgICAgb25TbGlkZUVuZDogZGlzYWJsZWQgPyB2b2lkIDAgOiBoYW5kbGVTbGlkZUVuZCxcbiAgICAgICAgICAgIG9uSG9tZUtleURvd246ICgpID0+ICFkaXNhYmxlZCAmJiB1cGRhdGVWYWx1ZXMobWluLCAwLCB7IGNvbW1pdDogdHJ1ZSB9KSxcbiAgICAgICAgICAgIG9uRW5kS2V5RG93bjogKCkgPT4gIWRpc2FibGVkICYmIHVwZGF0ZVZhbHVlcyhtYXgsIHZhbHVlcy5sZW5ndGggLSAxLCB7IGNvbW1pdDogdHJ1ZSB9KSxcbiAgICAgICAgICAgIG9uU3RlcEtleURvd246ICh7IGV2ZW50LCBkaXJlY3Rpb246IHN0ZXBEaXJlY3Rpb24gfSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNQYWdlS2V5ID0gUEFHRV9LRVlTLmluY2x1ZGVzKGV2ZW50LmtleSk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNTa2lwS2V5ID0gaXNQYWdlS2V5IHx8IGV2ZW50LnNoaWZ0S2V5ICYmIEFSUk9XX0tFWVMuaW5jbHVkZXMoZXZlbnQua2V5KTtcbiAgICAgICAgICAgICAgICBjb25zdCBtdWx0aXBsaWVyID0gaXNTa2lwS2V5ID8gMTAgOiAxO1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0SW5kZXggPSB2YWx1ZUluZGV4VG9DaGFuZ2VSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZTIgPSB2YWx1ZXNbYXRJbmRleF07XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RlcEluRGlyZWN0aW9uID0gc3RlcCAqIG11bHRpcGxpZXIgKiBzdGVwRGlyZWN0aW9uO1xuICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlcyh2YWx1ZTIgKyBzdGVwSW5EaXJlY3Rpb24sIGF0SW5kZXgsIHsgY29tbWl0OiB0cnVlIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICApIH0pIH0pXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcblNsaWRlci5kaXNwbGF5TmFtZSA9IFNMSURFUl9OQU1FO1xudmFyIFtTbGlkZXJPcmllbnRhdGlvblByb3ZpZGVyLCB1c2VTbGlkZXJPcmllbnRhdGlvbkNvbnRleHRdID0gY3JlYXRlU2xpZGVyQ29udGV4dChTTElERVJfTkFNRSwge1xuICBzdGFydEVkZ2U6IFwibGVmdFwiLFxuICBlbmRFZGdlOiBcInJpZ2h0XCIsXG4gIHNpemU6IFwid2lkdGhcIixcbiAgZGlyZWN0aW9uOiAxXG59KTtcbnZhciBTbGlkZXJIb3Jpem9udGFsID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBtaW4sXG4gICAgICBtYXgsXG4gICAgICBkaXIsXG4gICAgICBpbnZlcnRlZCxcbiAgICAgIG9uU2xpZGVTdGFydCxcbiAgICAgIG9uU2xpZGVNb3ZlLFxuICAgICAgb25TbGlkZUVuZCxcbiAgICAgIG9uU3RlcEtleURvd24sXG4gICAgICAuLi5zbGlkZXJQcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBbc2xpZGVyLCBzZXRTbGlkZXJdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldFNsaWRlcihub2RlKSk7XG4gICAgY29uc3QgcmVjdFJlZiA9IFJlYWN0LnVzZVJlZih2b2lkIDApO1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHVzZURpcmVjdGlvbihkaXIpO1xuICAgIGNvbnN0IGlzRGlyZWN0aW9uTFRSID0gZGlyZWN0aW9uID09PSBcImx0clwiO1xuICAgIGNvbnN0IGlzU2xpZGluZ0Zyb21MZWZ0ID0gaXNEaXJlY3Rpb25MVFIgJiYgIWludmVydGVkIHx8ICFpc0RpcmVjdGlvbkxUUiAmJiBpbnZlcnRlZDtcbiAgICBmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qb2ludGVyKHBvaW50ZXJQb3NpdGlvbikge1xuICAgICAgY29uc3QgcmVjdCA9IHJlY3RSZWYuY3VycmVudCB8fCBzbGlkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBpbnB1dCA9IFswLCByZWN0LndpZHRoXTtcbiAgICAgIGNvbnN0IG91dHB1dCA9IGlzU2xpZGluZ0Zyb21MZWZ0ID8gW21pbiwgbWF4XSA6IFttYXgsIG1pbl07XG4gICAgICBjb25zdCB2YWx1ZSA9IGxpbmVhclNjYWxlKGlucHV0LCBvdXRwdXQpO1xuICAgICAgcmVjdFJlZi5jdXJyZW50ID0gcmVjdDtcbiAgICAgIHJldHVybiB2YWx1ZShwb2ludGVyUG9zaXRpb24gLSByZWN0LmxlZnQpO1xuICAgIH1cbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFNsaWRlck9yaWVudGF0aW9uUHJvdmlkZXIsXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiBwcm9wcy5fX3Njb3BlU2xpZGVyLFxuICAgICAgICBzdGFydEVkZ2U6IGlzU2xpZGluZ0Zyb21MZWZ0ID8gXCJsZWZ0XCIgOiBcInJpZ2h0XCIsXG4gICAgICAgIGVuZEVkZ2U6IGlzU2xpZGluZ0Zyb21MZWZ0ID8gXCJyaWdodFwiIDogXCJsZWZ0XCIsXG4gICAgICAgIGRpcmVjdGlvbjogaXNTbGlkaW5nRnJvbUxlZnQgPyAxIDogLTEsXG4gICAgICAgIHNpemU6IFwid2lkdGhcIixcbiAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgU2xpZGVySW1wbCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkaXI6IGRpcmVjdGlvbixcbiAgICAgICAgICAgIFwiZGF0YS1vcmllbnRhdGlvblwiOiBcImhvcml6b250YWxcIixcbiAgICAgICAgICAgIC4uLnNsaWRlclByb3BzLFxuICAgICAgICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXG4gICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAuLi5zbGlkZXJQcm9wcy5zdHlsZSxcbiAgICAgICAgICAgICAgW1wiLS1yYWRpeC1zbGlkZXItdGh1bWItdHJhbnNmb3JtXCJdOiBcInRyYW5zbGF0ZVgoLTUwJSlcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uU2xpZGVTdGFydDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZ2V0VmFsdWVGcm9tUG9pbnRlcihldmVudC5jbGllbnRYKTtcbiAgICAgICAgICAgICAgb25TbGlkZVN0YXJ0Py4odmFsdWUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uU2xpZGVNb3ZlOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRWYWx1ZUZyb21Qb2ludGVyKGV2ZW50LmNsaWVudFgpO1xuICAgICAgICAgICAgICBvblNsaWRlTW92ZT8uKHZhbHVlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvblNsaWRlRW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgIHJlY3RSZWYuY3VycmVudCA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgb25TbGlkZUVuZD8uKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25TdGVwS2V5RG93bjogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHNsaWRlRGlyZWN0aW9uID0gaXNTbGlkaW5nRnJvbUxlZnQgPyBcImZyb20tbGVmdFwiIDogXCJmcm9tLXJpZ2h0XCI7XG4gICAgICAgICAgICAgIGNvbnN0IGlzQmFja0tleSA9IEJBQ0tfS0VZU1tzbGlkZURpcmVjdGlvbl0uaW5jbHVkZXMoZXZlbnQua2V5KTtcbiAgICAgICAgICAgICAgb25TdGVwS2V5RG93bj8uKHsgZXZlbnQsIGRpcmVjdGlvbjogaXNCYWNrS2V5ID8gLTEgOiAxIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG52YXIgU2xpZGVyVmVydGljYWwgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIG1pbixcbiAgICAgIG1heCxcbiAgICAgIGludmVydGVkLFxuICAgICAgb25TbGlkZVN0YXJ0LFxuICAgICAgb25TbGlkZU1vdmUsXG4gICAgICBvblNsaWRlRW5kLFxuICAgICAgb25TdGVwS2V5RG93bixcbiAgICAgIC4uLnNsaWRlclByb3BzXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IHNsaWRlclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCByZWYgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBzbGlkZXJSZWYpO1xuICAgIGNvbnN0IHJlY3RSZWYgPSBSZWFjdC51c2VSZWYodm9pZCAwKTtcbiAgICBjb25zdCBpc1NsaWRpbmdGcm9tQm90dG9tID0gIWludmVydGVkO1xuICAgIGZ1bmN0aW9uIGdldFZhbHVlRnJvbVBvaW50ZXIocG9pbnRlclBvc2l0aW9uKSB7XG4gICAgICBjb25zdCByZWN0ID0gcmVjdFJlZi5jdXJyZW50IHx8IHNsaWRlclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgaW5wdXQgPSBbMCwgcmVjdC5oZWlnaHRdO1xuICAgICAgY29uc3Qgb3V0cHV0ID0gaXNTbGlkaW5nRnJvbUJvdHRvbSA/IFttYXgsIG1pbl0gOiBbbWluLCBtYXhdO1xuICAgICAgY29uc3QgdmFsdWUgPSBsaW5lYXJTY2FsZShpbnB1dCwgb3V0cHV0KTtcbiAgICAgIHJlY3RSZWYuY3VycmVudCA9IHJlY3Q7XG4gICAgICByZXR1cm4gdmFsdWUocG9pbnRlclBvc2l0aW9uIC0gcmVjdC50b3ApO1xuICAgIH1cbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFNsaWRlck9yaWVudGF0aW9uUHJvdmlkZXIsXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiBwcm9wcy5fX3Njb3BlU2xpZGVyLFxuICAgICAgICBzdGFydEVkZ2U6IGlzU2xpZGluZ0Zyb21Cb3R0b20gPyBcImJvdHRvbVwiIDogXCJ0b3BcIixcbiAgICAgICAgZW5kRWRnZTogaXNTbGlkaW5nRnJvbUJvdHRvbSA/IFwidG9wXCIgOiBcImJvdHRvbVwiLFxuICAgICAgICBzaXplOiBcImhlaWdodFwiLFxuICAgICAgICBkaXJlY3Rpb246IGlzU2xpZGluZ0Zyb21Cb3R0b20gPyAxIDogLTEsXG4gICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgIFNsaWRlckltcGwsXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJkYXRhLW9yaWVudGF0aW9uXCI6IFwidmVydGljYWxcIixcbiAgICAgICAgICAgIC4uLnNsaWRlclByb3BzLFxuICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgLi4uc2xpZGVyUHJvcHMuc3R5bGUsXG4gICAgICAgICAgICAgIFtcIi0tcmFkaXgtc2xpZGVyLXRodW1iLXRyYW5zZm9ybVwiXTogXCJ0cmFuc2xhdGVZKDUwJSlcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uU2xpZGVTdGFydDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZ2V0VmFsdWVGcm9tUG9pbnRlcihldmVudC5jbGllbnRZKTtcbiAgICAgICAgICAgICAgb25TbGlkZVN0YXJ0Py4odmFsdWUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uU2xpZGVNb3ZlOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRWYWx1ZUZyb21Qb2ludGVyKGV2ZW50LmNsaWVudFkpO1xuICAgICAgICAgICAgICBvblNsaWRlTW92ZT8uKHZhbHVlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvblNsaWRlRW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgIHJlY3RSZWYuY3VycmVudCA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgb25TbGlkZUVuZD8uKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25TdGVwS2V5RG93bjogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHNsaWRlRGlyZWN0aW9uID0gaXNTbGlkaW5nRnJvbUJvdHRvbSA/IFwiZnJvbS1ib3R0b21cIiA6IFwiZnJvbS10b3BcIjtcbiAgICAgICAgICAgICAgY29uc3QgaXNCYWNrS2V5ID0gQkFDS19LRVlTW3NsaWRlRGlyZWN0aW9uXS5pbmNsdWRlcyhldmVudC5rZXkpO1xuICAgICAgICAgICAgICBvblN0ZXBLZXlEb3duPy4oeyBldmVudCwgZGlyZWN0aW9uOiBpc0JhY2tLZXkgPyAtMSA6IDEgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcbnZhciBTbGlkZXJJbXBsID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlU2xpZGVyLFxuICAgICAgb25TbGlkZVN0YXJ0LFxuICAgICAgb25TbGlkZU1vdmUsXG4gICAgICBvblNsaWRlRW5kLFxuICAgICAgb25Ib21lS2V5RG93bixcbiAgICAgIG9uRW5kS2V5RG93bixcbiAgICAgIG9uU3RlcEtleURvd24sXG4gICAgICAuLi5zbGlkZXJQcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlU2xpZGVyQ29udGV4dChTTElERVJfTkFNRSwgX19zY29wZVNsaWRlcik7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBQcmltaXRpdmUuc3BhbixcbiAgICAgIHtcbiAgICAgICAgLi4uc2xpZGVyUHJvcHMsXG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgICAgICBvbktleURvd246IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJIb21lXCIpIHtcbiAgICAgICAgICAgIG9uSG9tZUtleURvd24oZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gXCJFbmRcIikge1xuICAgICAgICAgICAgb25FbmRLZXlEb3duKGV2ZW50KTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChQQUdFX0tFWVMuY29uY2F0KEFSUk9XX0tFWVMpLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgIG9uU3RlcEtleURvd24oZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBvblBvaW50ZXJEb3duOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJEb3duLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgICAgdGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKGV2ZW50LnBvaW50ZXJJZCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBpZiAoY29udGV4dC50aHVtYnMuaGFzKHRhcmdldCkpIHtcbiAgICAgICAgICAgIHRhcmdldC5mb2N1cygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvblNsaWRlU3RhcnQoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIG9uUG9pbnRlck1vdmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlck1vdmUsIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgICBpZiAodGFyZ2V0Lmhhc1BvaW50ZXJDYXB0dXJlKGV2ZW50LnBvaW50ZXJJZCkpIG9uU2xpZGVNb3ZlKGV2ZW50KTtcbiAgICAgICAgfSksXG4gICAgICAgIG9uUG9pbnRlclVwOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJVcCwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICAgIGlmICh0YXJnZXQuaGFzUG9pbnRlckNhcHR1cmUoZXZlbnQucG9pbnRlcklkKSkge1xuICAgICAgICAgICAgdGFyZ2V0LnJlbGVhc2VQb2ludGVyQ2FwdHVyZShldmVudC5wb2ludGVySWQpO1xuICAgICAgICAgICAgb25TbGlkZUVuZChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG52YXIgVFJBQ0tfTkFNRSA9IFwiU2xpZGVyVHJhY2tcIjtcbnZhciBTbGlkZXJUcmFjayA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlU2xpZGVyLCAuLi50cmFja1Byb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlU2xpZGVyQ29udGV4dChUUkFDS19OQU1FLCBfX3Njb3BlU2xpZGVyKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFByaW1pdGl2ZS5zcGFuLFxuICAgICAge1xuICAgICAgICBcImRhdGEtZGlzYWJsZWRcIjogY29udGV4dC5kaXNhYmxlZCA/IFwiXCIgOiB2b2lkIDAsXG4gICAgICAgIFwiZGF0YS1vcmllbnRhdGlvblwiOiBjb250ZXh0Lm9yaWVudGF0aW9uLFxuICAgICAgICAuLi50cmFja1Byb3BzLFxuICAgICAgICByZWY6IGZvcndhcmRlZFJlZlxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5TbGlkZXJUcmFjay5kaXNwbGF5TmFtZSA9IFRSQUNLX05BTUU7XG52YXIgUkFOR0VfTkFNRSA9IFwiU2xpZGVyUmFuZ2VcIjtcbnZhciBTbGlkZXJSYW5nZSA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlU2xpZGVyLCAuLi5yYW5nZVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlU2xpZGVyQ29udGV4dChSQU5HRV9OQU1FLCBfX3Njb3BlU2xpZGVyKTtcbiAgICBjb25zdCBvcmllbnRhdGlvbiA9IHVzZVNsaWRlck9yaWVudGF0aW9uQ29udGV4dChSQU5HRV9OQU1FLCBfX3Njb3BlU2xpZGVyKTtcbiAgICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgcmVmKTtcbiAgICBjb25zdCB2YWx1ZXNDb3VudCA9IGNvbnRleHQudmFsdWVzLmxlbmd0aDtcbiAgICBjb25zdCBwZXJjZW50YWdlcyA9IGNvbnRleHQudmFsdWVzLm1hcChcbiAgICAgICh2YWx1ZSkgPT4gY29udmVydFZhbHVlVG9QZXJjZW50YWdlKHZhbHVlLCBjb250ZXh0Lm1pbiwgY29udGV4dC5tYXgpXG4gICAgKTtcbiAgICBjb25zdCBvZmZzZXRTdGFydCA9IHZhbHVlc0NvdW50ID4gMSA/IE1hdGgubWluKC4uLnBlcmNlbnRhZ2VzKSA6IDA7XG4gICAgY29uc3Qgb2Zmc2V0RW5kID0gMTAwIC0gTWF0aC5tYXgoLi4ucGVyY2VudGFnZXMpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgUHJpbWl0aXZlLnNwYW4sXG4gICAgICB7XG4gICAgICAgIFwiZGF0YS1vcmllbnRhdGlvblwiOiBjb250ZXh0Lm9yaWVudGF0aW9uLFxuICAgICAgICBcImRhdGEtZGlzYWJsZWRcIjogY29udGV4dC5kaXNhYmxlZCA/IFwiXCIgOiB2b2lkIDAsXG4gICAgICAgIC4uLnJhbmdlUHJvcHMsXG4gICAgICAgIHJlZjogY29tcG9zZWRSZWZzLFxuICAgICAgICBzdHlsZToge1xuICAgICAgICAgIC4uLnByb3BzLnN0eWxlLFxuICAgICAgICAgIFtvcmllbnRhdGlvbi5zdGFydEVkZ2VdOiBvZmZzZXRTdGFydCArIFwiJVwiLFxuICAgICAgICAgIFtvcmllbnRhdGlvbi5lbmRFZGdlXTogb2Zmc2V0RW5kICsgXCIlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5TbGlkZXJSYW5nZS5kaXNwbGF5TmFtZSA9IFJBTkdFX05BTUU7XG52YXIgVEhVTUJfTkFNRSA9IFwiU2xpZGVyVGh1bWJcIjtcbnZhciBTbGlkZXJUaHVtYiA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgZ2V0SXRlbXMgPSB1c2VDb2xsZWN0aW9uKHByb3BzLl9fc2NvcGVTbGlkZXIpO1xuICAgIGNvbnN0IFt0aHVtYiwgc2V0VGh1bWJdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldFRodW1iKG5vZGUpKTtcbiAgICBjb25zdCBpbmRleCA9IFJlYWN0LnVzZU1lbW8oXG4gICAgICAoKSA9PiB0aHVtYiA/IGdldEl0ZW1zKCkuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLnJlZi5jdXJyZW50ID09PSB0aHVtYikgOiAtMSxcbiAgICAgIFtnZXRJdGVtcywgdGh1bWJdXG4gICAgKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTbGlkZXJUaHVtYkltcGwsIHsgLi4ucHJvcHMsIHJlZjogY29tcG9zZWRSZWZzLCBpbmRleCB9KTtcbiAgfVxuKTtcbnZhciBTbGlkZXJUaHVtYkltcGwgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVNsaWRlciwgaW5kZXgsIG5hbWUsIC4uLnRodW1iUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VTbGlkZXJDb250ZXh0KFRIVU1CX05BTUUsIF9fc2NvcGVTbGlkZXIpO1xuICAgIGNvbnN0IG9yaWVudGF0aW9uID0gdXNlU2xpZGVyT3JpZW50YXRpb25Db250ZXh0KFRIVU1CX05BTUUsIF9fc2NvcGVTbGlkZXIpO1xuICAgIGNvbnN0IFt0aHVtYiwgc2V0VGh1bWJdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldFRodW1iKG5vZGUpKTtcbiAgICBjb25zdCBpc0Zvcm1Db250cm9sID0gdGh1bWIgPyBjb250ZXh0LmZvcm0gfHwgISF0aHVtYi5jbG9zZXN0KFwiZm9ybVwiKSA6IHRydWU7XG4gICAgY29uc3Qgc2l6ZSA9IHVzZVNpemUodGh1bWIpO1xuICAgIGNvbnN0IHZhbHVlID0gY29udGV4dC52YWx1ZXNbaW5kZXhdO1xuICAgIGNvbnN0IHBlcmNlbnQgPSB2YWx1ZSA9PT0gdm9pZCAwID8gMCA6IGNvbnZlcnRWYWx1ZVRvUGVyY2VudGFnZSh2YWx1ZSwgY29udGV4dC5taW4sIGNvbnRleHQubWF4KTtcbiAgICBjb25zdCBsYWJlbCA9IGdldExhYmVsKGluZGV4LCBjb250ZXh0LnZhbHVlcy5sZW5ndGgpO1xuICAgIGNvbnN0IG9yaWVudGF0aW9uU2l6ZSA9IHNpemU/LltvcmllbnRhdGlvbi5zaXplXTtcbiAgICBjb25zdCB0aHVtYkluQm91bmRzT2Zmc2V0ID0gb3JpZW50YXRpb25TaXplID8gZ2V0VGh1bWJJbkJvdW5kc09mZnNldChvcmllbnRhdGlvblNpemUsIHBlcmNlbnQsIG9yaWVudGF0aW9uLmRpcmVjdGlvbikgOiAwO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGh1bWIpIHtcbiAgICAgICAgY29udGV4dC50aHVtYnMuYWRkKHRodW1iKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICBjb250ZXh0LnRodW1icy5kZWxldGUodGh1bWIpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0sIFt0aHVtYiwgY29udGV4dC50aHVtYnNdKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXG4gICAgICBcInNwYW5cIixcbiAgICAgIHtcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IFwidmFyKC0tcmFkaXgtc2xpZGVyLXRodW1iLXRyYW5zZm9ybSlcIixcbiAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgIFtvcmllbnRhdGlvbi5zdGFydEVkZ2VdOiBgY2FsYygke3BlcmNlbnR9JSArICR7dGh1bWJJbkJvdW5kc09mZnNldH1weClgXG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChDb2xsZWN0aW9uLkl0ZW1TbG90LCB7IHNjb3BlOiBwcm9wcy5fX3Njb3BlU2xpZGVyLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICAgIFByaW1pdGl2ZS5zcGFuLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICByb2xlOiBcInNsaWRlclwiLFxuICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogcHJvcHNbXCJhcmlhLWxhYmVsXCJdIHx8IGxhYmVsLFxuICAgICAgICAgICAgICBcImFyaWEtdmFsdWVtaW5cIjogY29udGV4dC5taW4sXG4gICAgICAgICAgICAgIFwiYXJpYS12YWx1ZW5vd1wiOiB2YWx1ZSxcbiAgICAgICAgICAgICAgXCJhcmlhLXZhbHVlbWF4XCI6IGNvbnRleHQubWF4LFxuICAgICAgICAgICAgICBcImFyaWEtb3JpZW50YXRpb25cIjogY29udGV4dC5vcmllbnRhdGlvbixcbiAgICAgICAgICAgICAgXCJkYXRhLW9yaWVudGF0aW9uXCI6IGNvbnRleHQub3JpZW50YXRpb24sXG4gICAgICAgICAgICAgIFwiZGF0YS1kaXNhYmxlZFwiOiBjb250ZXh0LmRpc2FibGVkID8gXCJcIiA6IHZvaWQgMCxcbiAgICAgICAgICAgICAgdGFiSW5kZXg6IGNvbnRleHQuZGlzYWJsZWQgPyB2b2lkIDAgOiAwLFxuICAgICAgICAgICAgICAuLi50aHVtYlByb3BzLFxuICAgICAgICAgICAgICByZWY6IGNvbXBvc2VkUmVmcyxcbiAgICAgICAgICAgICAgc3R5bGU6IHZhbHVlID09PSB2b2lkIDAgPyB7IGRpc3BsYXk6IFwibm9uZVwiIH0gOiBwcm9wcy5zdHlsZSxcbiAgICAgICAgICAgICAgb25Gb2N1czogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Gb2N1cywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnRleHQudmFsdWVJbmRleFRvQ2hhbmdlUmVmLmN1cnJlbnQgPSBpbmRleDtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApIH0pLFxuICAgICAgICAgIGlzRm9ybUNvbnRyb2wgJiYgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICAgIEJ1YmJsZUlucHV0LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiBuYW1lID8/IChjb250ZXh0Lm5hbWUgPyBjb250ZXh0Lm5hbWUgKyAoY29udGV4dC52YWx1ZXMubGVuZ3RoID4gMSA/IFwiW11cIiA6IFwiXCIpIDogdm9pZCAwKSxcbiAgICAgICAgICAgICAgZm9ybTogY29udGV4dC5mb3JtLFxuICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGluZGV4XG4gICAgICAgICAgKVxuICAgICAgICBdXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcblNsaWRlclRodW1iLmRpc3BsYXlOYW1lID0gVEhVTUJfTkFNRTtcbnZhciBCdWJibGVJbnB1dCA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IHZhbHVlLCAuLi5pbnB1dFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBwcmV2VmFsdWUgPSB1c2VQcmV2aW91cyh2YWx1ZSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaW5wdXQgPSByZWYuY3VycmVudDtcbiAgICBjb25zdCBpbnB1dFByb3RvID0gd2luZG93LkhUTUxJbnB1dEVsZW1lbnQucHJvdG90eXBlO1xuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGlucHV0UHJvdG8sIFwidmFsdWVcIik7XG4gICAgY29uc3Qgc2V0VmFsdWUgPSBkZXNjcmlwdG9yLnNldDtcbiAgICBpZiAocHJldlZhbHVlICE9PSB2YWx1ZSAmJiBzZXRWYWx1ZSkge1xuICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRXZlbnQoXCJpbnB1dFwiLCB7IGJ1YmJsZXM6IHRydWUgfSk7XG4gICAgICBzZXRWYWx1ZS5jYWxsKGlucHV0LCB2YWx1ZSk7XG4gICAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH0sIFtwcmV2VmFsdWUsIHZhbHVlXSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiaW5wdXRcIiwgeyBzdHlsZTogeyBkaXNwbGF5OiBcIm5vbmVcIiB9LCAuLi5pbnB1dFByb3BzLCByZWYsIGRlZmF1bHRWYWx1ZTogdmFsdWUgfSk7XG59O1xuZnVuY3Rpb24gZ2V0TmV4dFNvcnRlZFZhbHVlcyhwcmV2VmFsdWVzID0gW10sIG5leHRWYWx1ZSwgYXRJbmRleCkge1xuICBjb25zdCBuZXh0VmFsdWVzID0gWy4uLnByZXZWYWx1ZXNdO1xuICBuZXh0VmFsdWVzW2F0SW5kZXhdID0gbmV4dFZhbHVlO1xuICByZXR1cm4gbmV4dFZhbHVlcy5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG59XG5mdW5jdGlvbiBjb252ZXJ0VmFsdWVUb1BlcmNlbnRhZ2UodmFsdWUsIG1pbiwgbWF4KSB7XG4gIGNvbnN0IG1heFN0ZXBzID0gbWF4IC0gbWluO1xuICBjb25zdCBwZXJjZW50UGVyU3RlcCA9IDEwMCAvIG1heFN0ZXBzO1xuICBjb25zdCBwZXJjZW50YWdlID0gcGVyY2VudFBlclN0ZXAgKiAodmFsdWUgLSBtaW4pO1xuICByZXR1cm4gY2xhbXAocGVyY2VudGFnZSwgWzAsIDEwMF0pO1xufVxuZnVuY3Rpb24gZ2V0TGFiZWwoaW5kZXgsIHRvdGFsVmFsdWVzKSB7XG4gIGlmICh0b3RhbFZhbHVlcyA+IDIpIHtcbiAgICByZXR1cm4gYFZhbHVlICR7aW5kZXggKyAxfSBvZiAke3RvdGFsVmFsdWVzfWA7XG4gIH0gZWxzZSBpZiAodG90YWxWYWx1ZXMgPT09IDIpIHtcbiAgICByZXR1cm4gW1wiTWluaW11bVwiLCBcIk1heGltdW1cIl1baW5kZXhdO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbn1cbmZ1bmN0aW9uIGdldENsb3Nlc3RWYWx1ZUluZGV4KHZhbHVlcywgbmV4dFZhbHVlKSB7XG4gIGlmICh2YWx1ZXMubGVuZ3RoID09PSAxKSByZXR1cm4gMDtcbiAgY29uc3QgZGlzdGFuY2VzID0gdmFsdWVzLm1hcCgodmFsdWUpID0+IE1hdGguYWJzKHZhbHVlIC0gbmV4dFZhbHVlKSk7XG4gIGNvbnN0IGNsb3Nlc3REaXN0YW5jZSA9IE1hdGgubWluKC4uLmRpc3RhbmNlcyk7XG4gIHJldHVybiBkaXN0YW5jZXMuaW5kZXhPZihjbG9zZXN0RGlzdGFuY2UpO1xufVxuZnVuY3Rpb24gZ2V0VGh1bWJJbkJvdW5kc09mZnNldCh3aWR0aCwgbGVmdCwgZGlyZWN0aW9uKSB7XG4gIGNvbnN0IGhhbGZXaWR0aCA9IHdpZHRoIC8gMjtcbiAgY29uc3QgaGFsZlBlcmNlbnQgPSA1MDtcbiAgY29uc3Qgb2Zmc2V0ID0gbGluZWFyU2NhbGUoWzAsIGhhbGZQZXJjZW50XSwgWzAsIGhhbGZXaWR0aF0pO1xuICByZXR1cm4gKGhhbGZXaWR0aCAtIG9mZnNldChsZWZ0KSAqIGRpcmVjdGlvbikgKiBkaXJlY3Rpb247XG59XG5mdW5jdGlvbiBnZXRTdGVwc0JldHdlZW5WYWx1ZXModmFsdWVzKSB7XG4gIHJldHVybiB2YWx1ZXMuc2xpY2UoMCwgLTEpLm1hcCgodmFsdWUsIGluZGV4KSA9PiB2YWx1ZXNbaW5kZXggKyAxXSAtIHZhbHVlKTtcbn1cbmZ1bmN0aW9uIGhhc01pblN0ZXBzQmV0d2VlblZhbHVlcyh2YWx1ZXMsIG1pblN0ZXBzQmV0d2VlblZhbHVlcykge1xuICBpZiAobWluU3RlcHNCZXR3ZWVuVmFsdWVzID4gMCkge1xuICAgIGNvbnN0IHN0ZXBzQmV0d2VlblZhbHVlcyA9IGdldFN0ZXBzQmV0d2VlblZhbHVlcyh2YWx1ZXMpO1xuICAgIGNvbnN0IGFjdHVhbE1pblN0ZXBzQmV0d2VlblZhbHVlcyA9IE1hdGgubWluKC4uLnN0ZXBzQmV0d2VlblZhbHVlcyk7XG4gICAgcmV0dXJuIGFjdHVhbE1pblN0ZXBzQmV0d2VlblZhbHVlcyA+PSBtaW5TdGVwc0JldHdlZW5WYWx1ZXM7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBsaW5lYXJTY2FsZShpbnB1dCwgb3V0cHV0KSB7XG4gIHJldHVybiAodmFsdWUpID0+IHtcbiAgICBpZiAoaW5wdXRbMF0gPT09IGlucHV0WzFdIHx8IG91dHB1dFswXSA9PT0gb3V0cHV0WzFdKSByZXR1cm4gb3V0cHV0WzBdO1xuICAgIGNvbnN0IHJhdGlvID0gKG91dHB1dFsxXSAtIG91dHB1dFswXSkgLyAoaW5wdXRbMV0gLSBpbnB1dFswXSk7XG4gICAgcmV0dXJuIG91dHB1dFswXSArIHJhdGlvICogKHZhbHVlIC0gaW5wdXRbMF0pO1xuICB9O1xufVxuZnVuY3Rpb24gZ2V0RGVjaW1hbENvdW50KHZhbHVlKSB7XG4gIHJldHVybiAoU3RyaW5nKHZhbHVlKS5zcGxpdChcIi5cIilbMV0gfHwgXCJcIikubGVuZ3RoO1xufVxuZnVuY3Rpb24gcm91bmRWYWx1ZSh2YWx1ZSwgZGVjaW1hbENvdW50KSB7XG4gIGNvbnN0IHJvdW5kZXIgPSBNYXRoLnBvdygxMCwgZGVjaW1hbENvdW50KTtcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiByb3VuZGVyKSAvIHJvdW5kZXI7XG59XG52YXIgUm9vdCA9IFNsaWRlcjtcbnZhciBUcmFjayA9IFNsaWRlclRyYWNrO1xudmFyIFJhbmdlID0gU2xpZGVyUmFuZ2U7XG52YXIgVGh1bWIgPSBTbGlkZXJUaHVtYjtcbmV4cG9ydCB7XG4gIFJhbmdlLFxuICBSb290LFxuICBTbGlkZXIsXG4gIFNsaWRlclJhbmdlLFxuICBTbGlkZXJUaHVtYixcbiAgU2xpZGVyVHJhY2ssXG4gIFRodW1iLFxuICBUcmFjayxcbiAgY3JlYXRlU2xpZGVyU2NvcGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsIi8qKlxuICogQ3VzdG9tIHBvc2l0aW9uaW5nIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3ZpcnR1YWwtZWxlbWVudHNcbiAqL1xuXG5jb25zdCBzaWRlcyA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J107XG5jb25zdCBhbGlnbm1lbnRzID0gWydzdGFydCcsICdlbmQnXTtcbmNvbnN0IHBsYWNlbWVudHMgPSAvKiNfX1BVUkVfXyovc2lkZXMucmVkdWNlKChhY2MsIHNpZGUpID0+IGFjYy5jb25jYXQoc2lkZSwgc2lkZSArIFwiLVwiICsgYWxpZ25tZW50c1swXSwgc2lkZSArIFwiLVwiICsgYWxpZ25tZW50c1sxXSksIFtdKTtcbmNvbnN0IG1pbiA9IE1hdGgubWluO1xuY29uc3QgbWF4ID0gTWF0aC5tYXg7XG5jb25zdCByb3VuZCA9IE1hdGgucm91bmQ7XG5jb25zdCBmbG9vciA9IE1hdGguZmxvb3I7XG5jb25zdCBjcmVhdGVDb29yZHMgPSB2ID0+ICh7XG4gIHg6IHYsXG4gIHk6IHZcbn0pO1xuY29uc3Qgb3Bwb3NpdGVTaWRlTWFwID0ge1xuICBsZWZ0OiAncmlnaHQnLFxuICByaWdodDogJ2xlZnQnLFxuICBib3R0b206ICd0b3AnLFxuICB0b3A6ICdib3R0b20nXG59O1xuY29uc3Qgb3Bwb3NpdGVBbGlnbm1lbnRNYXAgPSB7XG4gIHN0YXJ0OiAnZW5kJyxcbiAgZW5kOiAnc3RhcnQnXG59O1xuZnVuY3Rpb24gY2xhbXAoc3RhcnQsIHZhbHVlLCBlbmQpIHtcbiAgcmV0dXJuIG1heChzdGFydCwgbWluKHZhbHVlLCBlbmQpKTtcbn1cbmZ1bmN0aW9uIGV2YWx1YXRlKHZhbHVlLCBwYXJhbSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nID8gdmFsdWUocGFyYW0pIDogdmFsdWU7XG59XG5mdW5jdGlvbiBnZXRTaWRlKHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnNwbGl0KCctJylbMF07XG59XG5mdW5jdGlvbiBnZXRBbGlnbm1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQuc3BsaXQoJy0nKVsxXTtcbn1cbmZ1bmN0aW9uIGdldE9wcG9zaXRlQXhpcyhheGlzKSB7XG4gIHJldHVybiBheGlzID09PSAneCcgPyAneScgOiAneCc7XG59XG5mdW5jdGlvbiBnZXRBeGlzTGVuZ3RoKGF4aXMpIHtcbiAgcmV0dXJuIGF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcbn1cbmZ1bmN0aW9uIGdldFNpZGVBeGlzKHBsYWNlbWVudCkge1xuICByZXR1cm4gWyd0b3AnLCAnYm90dG9tJ10uaW5jbHVkZXMoZ2V0U2lkZShwbGFjZW1lbnQpKSA/ICd5JyA6ICd4Jztcbn1cbmZ1bmN0aW9uIGdldEFsaWdubWVudEF4aXMocGxhY2VtZW50KSB7XG4gIHJldHVybiBnZXRPcHBvc2l0ZUF4aXMoZ2V0U2lkZUF4aXMocGxhY2VtZW50KSk7XG59XG5mdW5jdGlvbiBnZXRBbGlnbm1lbnRTaWRlcyhwbGFjZW1lbnQsIHJlY3RzLCBydGwpIHtcbiAgaWYgKHJ0bCA9PT0gdm9pZCAwKSB7XG4gICAgcnRsID0gZmFsc2U7XG4gIH1cbiAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XG4gIGNvbnN0IGFsaWdubWVudEF4aXMgPSBnZXRBbGlnbm1lbnRBeGlzKHBsYWNlbWVudCk7XG4gIGNvbnN0IGxlbmd0aCA9IGdldEF4aXNMZW5ndGgoYWxpZ25tZW50QXhpcyk7XG4gIGxldCBtYWluQWxpZ25tZW50U2lkZSA9IGFsaWdubWVudEF4aXMgPT09ICd4JyA/IGFsaWdubWVudCA9PT0gKHJ0bCA/ICdlbmQnIDogJ3N0YXJ0JykgPyAncmlnaHQnIDogJ2xlZnQnIDogYWxpZ25tZW50ID09PSAnc3RhcnQnID8gJ2JvdHRvbScgOiAndG9wJztcbiAgaWYgKHJlY3RzLnJlZmVyZW5jZVtsZW5ndGhdID4gcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXSkge1xuICAgIG1haW5BbGlnbm1lbnRTaWRlID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQobWFpbkFsaWdubWVudFNpZGUpO1xuICB9XG4gIHJldHVybiBbbWFpbkFsaWdubWVudFNpZGUsIGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5BbGlnbm1lbnRTaWRlKV07XG59XG5mdW5jdGlvbiBnZXRFeHBhbmRlZFBsYWNlbWVudHMocGxhY2VtZW50KSB7XG4gIGNvbnN0IG9wcG9zaXRlUGxhY2VtZW50ID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgcmV0dXJuIFtnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudChwbGFjZW1lbnQpLCBvcHBvc2l0ZVBsYWNlbWVudCwgZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQob3Bwb3NpdGVQbGFjZW1lbnQpXTtcbn1cbmZ1bmN0aW9uIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnJlcGxhY2UoL3N0YXJ0fGVuZC9nLCBhbGlnbm1lbnQgPT4gb3Bwb3NpdGVBbGlnbm1lbnRNYXBbYWxpZ25tZW50XSk7XG59XG5mdW5jdGlvbiBnZXRTaWRlTGlzdChzaWRlLCBpc1N0YXJ0LCBydGwpIHtcbiAgY29uc3QgbHIgPSBbJ2xlZnQnLCAncmlnaHQnXTtcbiAgY29uc3QgcmwgPSBbJ3JpZ2h0JywgJ2xlZnQnXTtcbiAgY29uc3QgdGIgPSBbJ3RvcCcsICdib3R0b20nXTtcbiAgY29uc3QgYnQgPSBbJ2JvdHRvbScsICd0b3AnXTtcbiAgc3dpdGNoIChzaWRlKSB7XG4gICAgY2FzZSAndG9wJzpcbiAgICBjYXNlICdib3R0b20nOlxuICAgICAgaWYgKHJ0bCkgcmV0dXJuIGlzU3RhcnQgPyBybCA6IGxyO1xuICAgICAgcmV0dXJuIGlzU3RhcnQgPyBsciA6IHJsO1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIHJldHVybiBpc1N0YXJ0ID8gdGIgOiBidDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFtdO1xuICB9XG59XG5mdW5jdGlvbiBnZXRPcHBvc2l0ZUF4aXNQbGFjZW1lbnRzKHBsYWNlbWVudCwgZmxpcEFsaWdubWVudCwgZGlyZWN0aW9uLCBydGwpIHtcbiAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XG4gIGxldCBsaXN0ID0gZ2V0U2lkZUxpc3QoZ2V0U2lkZShwbGFjZW1lbnQpLCBkaXJlY3Rpb24gPT09ICdzdGFydCcsIHJ0bCk7XG4gIGlmIChhbGlnbm1lbnQpIHtcbiAgICBsaXN0ID0gbGlzdC5tYXAoc2lkZSA9PiBzaWRlICsgXCItXCIgKyBhbGlnbm1lbnQpO1xuICAgIGlmIChmbGlwQWxpZ25tZW50KSB7XG4gICAgICBsaXN0ID0gbGlzdC5jb25jYXQobGlzdC5tYXAoZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGxpc3Q7XG59XG5mdW5jdGlvbiBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZywgc2lkZSA9PiBvcHBvc2l0ZVNpZGVNYXBbc2lkZV0pO1xufVxuZnVuY3Rpb24gZXhwYW5kUGFkZGluZ09iamVjdChwYWRkaW5nKSB7XG4gIHJldHVybiB7XG4gICAgdG9wOiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIGJvdHRvbTogMCxcbiAgICBsZWZ0OiAwLFxuICAgIC4uLnBhZGRpbmdcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldFBhZGRpbmdPYmplY3QocGFkZGluZykge1xuICByZXR1cm4gdHlwZW9mIHBhZGRpbmcgIT09ICdudW1iZXInID8gZXhwYW5kUGFkZGluZ09iamVjdChwYWRkaW5nKSA6IHtcbiAgICB0b3A6IHBhZGRpbmcsXG4gICAgcmlnaHQ6IHBhZGRpbmcsXG4gICAgYm90dG9tOiBwYWRkaW5nLFxuICAgIGxlZnQ6IHBhZGRpbmdcbiAgfTtcbn1cbmZ1bmN0aW9uIHJlY3RUb0NsaWVudFJlY3QocmVjdCkge1xuICBjb25zdCB7XG4gICAgeCxcbiAgICB5LFxuICAgIHdpZHRoLFxuICAgIGhlaWdodFxuICB9ID0gcmVjdDtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgdG9wOiB5LFxuICAgIGxlZnQ6IHgsXG4gICAgcmlnaHQ6IHggKyB3aWR0aCxcbiAgICBib3R0b206IHkgKyBoZWlnaHQsXG4gICAgeCxcbiAgICB5XG4gIH07XG59XG5cbmV4cG9ydCB7IGFsaWdubWVudHMsIGNsYW1wLCBjcmVhdGVDb29yZHMsIGV2YWx1YXRlLCBleHBhbmRQYWRkaW5nT2JqZWN0LCBmbG9vciwgZ2V0QWxpZ25tZW50LCBnZXRBbGlnbm1lbnRBeGlzLCBnZXRBbGlnbm1lbnRTaWRlcywgZ2V0QXhpc0xlbmd0aCwgZ2V0RXhwYW5kZWRQbGFjZW1lbnRzLCBnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudCwgZ2V0T3Bwb3NpdGVBeGlzLCBnZXRPcHBvc2l0ZUF4aXNQbGFjZW1lbnRzLCBnZXRPcHBvc2l0ZVBsYWNlbWVudCwgZ2V0UGFkZGluZ09iamVjdCwgZ2V0U2lkZSwgZ2V0U2lkZUF4aXMsIG1heCwgbWluLCBwbGFjZW1lbnRzLCByZWN0VG9DbGllbnRSZWN0LCByb3VuZCwgc2lkZXMgfTtcbiIsImltcG9ydCB7IGdldFNpZGVBeGlzLCBnZXRBbGlnbm1lbnRBeGlzLCBnZXRBeGlzTGVuZ3RoLCBnZXRTaWRlLCBnZXRBbGlnbm1lbnQsIGV2YWx1YXRlLCBnZXRQYWRkaW5nT2JqZWN0LCByZWN0VG9DbGllbnRSZWN0LCBtaW4sIGNsYW1wLCBwbGFjZW1lbnRzLCBnZXRBbGlnbm1lbnRTaWRlcywgZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQsIGdldE9wcG9zaXRlUGxhY2VtZW50LCBnZXRFeHBhbmRlZFBsYWNlbWVudHMsIGdldE9wcG9zaXRlQXhpc1BsYWNlbWVudHMsIHNpZGVzLCBtYXgsIGdldE9wcG9zaXRlQXhpcyB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscyc7XG5leHBvcnQgeyByZWN0VG9DbGllbnRSZWN0IH0gZnJvbSAnQGZsb2F0aW5nLXVpL3V0aWxzJztcblxuZnVuY3Rpb24gY29tcHV0ZUNvb3Jkc0Zyb21QbGFjZW1lbnQoX3JlZiwgcGxhY2VtZW50LCBydGwpIHtcbiAgbGV0IHtcbiAgICByZWZlcmVuY2UsXG4gICAgZmxvYXRpbmdcbiAgfSA9IF9yZWY7XG4gIGNvbnN0IHNpZGVBeGlzID0gZ2V0U2lkZUF4aXMocGxhY2VtZW50KTtcbiAgY29uc3QgYWxpZ25tZW50QXhpcyA9IGdldEFsaWdubWVudEF4aXMocGxhY2VtZW50KTtcbiAgY29uc3QgYWxpZ25MZW5ndGggPSBnZXRBeGlzTGVuZ3RoKGFsaWdubWVudEF4aXMpO1xuICBjb25zdCBzaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpO1xuICBjb25zdCBpc1ZlcnRpY2FsID0gc2lkZUF4aXMgPT09ICd5JztcbiAgY29uc3QgY29tbW9uWCA9IHJlZmVyZW5jZS54ICsgcmVmZXJlbmNlLndpZHRoIC8gMiAtIGZsb2F0aW5nLndpZHRoIC8gMjtcbiAgY29uc3QgY29tbW9uWSA9IHJlZmVyZW5jZS55ICsgcmVmZXJlbmNlLmhlaWdodCAvIDIgLSBmbG9hdGluZy5oZWlnaHQgLyAyO1xuICBjb25zdCBjb21tb25BbGlnbiA9IHJlZmVyZW5jZVthbGlnbkxlbmd0aF0gLyAyIC0gZmxvYXRpbmdbYWxpZ25MZW5ndGhdIC8gMjtcbiAgbGV0IGNvb3JkcztcbiAgc3dpdGNoIChzaWRlKSB7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIGNvb3JkcyA9IHtcbiAgICAgICAgeDogY29tbW9uWCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgLSBmbG9hdGluZy5oZWlnaHRcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlICdib3R0b20nOlxuICAgICAgY29vcmRzID0ge1xuICAgICAgICB4OiBjb21tb25YLFxuICAgICAgICB5OiByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHRcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlICdyaWdodCc6XG4gICAgICBjb29yZHMgPSB7XG4gICAgICAgIHg6IHJlZmVyZW5jZS54ICsgcmVmZXJlbmNlLndpZHRoLFxuICAgICAgICB5OiBjb21tb25ZXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbGVmdCc6XG4gICAgICBjb29yZHMgPSB7XG4gICAgICAgIHg6IHJlZmVyZW5jZS54IC0gZmxvYXRpbmcud2lkdGgsXG4gICAgICAgIHk6IGNvbW1vbllcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgY29vcmRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnlcbiAgICAgIH07XG4gIH1cbiAgc3dpdGNoIChnZXRBbGlnbm1lbnQocGxhY2VtZW50KSkge1xuICAgIGNhc2UgJ3N0YXJ0JzpcbiAgICAgIGNvb3Jkc1thbGlnbm1lbnRBeGlzXSAtPSBjb21tb25BbGlnbiAqIChydGwgJiYgaXNWZXJ0aWNhbCA/IC0xIDogMSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdlbmQnOlxuICAgICAgY29vcmRzW2FsaWdubWVudEF4aXNdICs9IGNvbW1vbkFsaWduICogKHJ0bCAmJiBpc1ZlcnRpY2FsID8gLTEgOiAxKTtcbiAgICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiBjb29yZHM7XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIGB4YCBhbmQgYHlgIGNvb3JkaW5hdGVzIHRoYXQgd2lsbCBwbGFjZSB0aGUgZmxvYXRpbmcgZWxlbWVudFxuICogbmV4dCB0byBhIGdpdmVuIHJlZmVyZW5jZSBlbGVtZW50LlxuICpcbiAqIFRoaXMgZXhwb3J0IGRvZXMgbm90IGhhdmUgYW55IGBwbGF0Zm9ybWAgaW50ZXJmYWNlIGxvZ2ljLiBZb3Ugd2lsbCBuZWVkIHRvXG4gKiB3cml0ZSBvbmUgZm9yIHRoZSBwbGF0Zm9ybSB5b3UgYXJlIHVzaW5nIEZsb2F0aW5nIFVJIHdpdGguXG4gKi9cbmNvbnN0IGNvbXB1dGVQb3NpdGlvbiA9IGFzeW5jIChyZWZlcmVuY2UsIGZsb2F0aW5nLCBjb25maWcpID0+IHtcbiAgY29uc3Qge1xuICAgIHBsYWNlbWVudCA9ICdib3R0b20nLFxuICAgIHN0cmF0ZWd5ID0gJ2Fic29sdXRlJyxcbiAgICBtaWRkbGV3YXJlID0gW10sXG4gICAgcGxhdGZvcm1cbiAgfSA9IGNvbmZpZztcbiAgY29uc3QgdmFsaWRNaWRkbGV3YXJlID0gbWlkZGxld2FyZS5maWx0ZXIoQm9vbGVhbik7XG4gIGNvbnN0IHJ0bCA9IGF3YWl0IChwbGF0Zm9ybS5pc1JUTCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNSVEwoZmxvYXRpbmcpKTtcbiAgbGV0IHJlY3RzID0gYXdhaXQgcGxhdGZvcm0uZ2V0RWxlbWVudFJlY3RzKHtcbiAgICByZWZlcmVuY2UsXG4gICAgZmxvYXRpbmcsXG4gICAgc3RyYXRlZ3lcbiAgfSk7XG4gIGxldCB7XG4gICAgeCxcbiAgICB5XG4gIH0gPSBjb21wdXRlQ29vcmRzRnJvbVBsYWNlbWVudChyZWN0cywgcGxhY2VtZW50LCBydGwpO1xuICBsZXQgc3RhdGVmdWxQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7XG4gIGxldCBtaWRkbGV3YXJlRGF0YSA9IHt9O1xuICBsZXQgcmVzZXRDb3VudCA9IDA7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsaWRNaWRkbGV3YXJlLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3Qge1xuICAgICAgbmFtZSxcbiAgICAgIGZuXG4gICAgfSA9IHZhbGlkTWlkZGxld2FyZVtpXTtcbiAgICBjb25zdCB7XG4gICAgICB4OiBuZXh0WCxcbiAgICAgIHk6IG5leHRZLFxuICAgICAgZGF0YSxcbiAgICAgIHJlc2V0XG4gICAgfSA9IGF3YWl0IGZuKHtcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgaW5pdGlhbFBsYWNlbWVudDogcGxhY2VtZW50LFxuICAgICAgcGxhY2VtZW50OiBzdGF0ZWZ1bFBsYWNlbWVudCxcbiAgICAgIHN0cmF0ZWd5LFxuICAgICAgbWlkZGxld2FyZURhdGEsXG4gICAgICByZWN0cyxcbiAgICAgIHBsYXRmb3JtLFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgcmVmZXJlbmNlLFxuICAgICAgICBmbG9hdGluZ1xuICAgICAgfVxuICAgIH0pO1xuICAgIHggPSBuZXh0WCAhPSBudWxsID8gbmV4dFggOiB4O1xuICAgIHkgPSBuZXh0WSAhPSBudWxsID8gbmV4dFkgOiB5O1xuICAgIG1pZGRsZXdhcmVEYXRhID0ge1xuICAgICAgLi4ubWlkZGxld2FyZURhdGEsXG4gICAgICBbbmFtZV06IHtcbiAgICAgICAgLi4ubWlkZGxld2FyZURhdGFbbmFtZV0sXG4gICAgICAgIC4uLmRhdGFcbiAgICAgIH1cbiAgICB9O1xuICAgIGlmIChyZXNldCAmJiByZXNldENvdW50IDw9IDUwKSB7XG4gICAgICByZXNldENvdW50Kys7XG4gICAgICBpZiAodHlwZW9mIHJlc2V0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICBpZiAocmVzZXQucGxhY2VtZW50KSB7XG4gICAgICAgICAgc3RhdGVmdWxQbGFjZW1lbnQgPSByZXNldC5wbGFjZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlc2V0LnJlY3RzKSB7XG4gICAgICAgICAgcmVjdHMgPSByZXNldC5yZWN0cyA9PT0gdHJ1ZSA/IGF3YWl0IHBsYXRmb3JtLmdldEVsZW1lbnRSZWN0cyh7XG4gICAgICAgICAgICByZWZlcmVuY2UsXG4gICAgICAgICAgICBmbG9hdGluZyxcbiAgICAgICAgICAgIHN0cmF0ZWd5XG4gICAgICAgICAgfSkgOiByZXNldC5yZWN0cztcbiAgICAgICAgfVxuICAgICAgICAoe1xuICAgICAgICAgIHgsXG4gICAgICAgICAgeVxuICAgICAgICB9ID0gY29tcHV0ZUNvb3Jkc0Zyb21QbGFjZW1lbnQocmVjdHMsIHN0YXRlZnVsUGxhY2VtZW50LCBydGwpKTtcbiAgICAgIH1cbiAgICAgIGkgPSAtMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB4LFxuICAgIHksXG4gICAgcGxhY2VtZW50OiBzdGF0ZWZ1bFBsYWNlbWVudCxcbiAgICBzdHJhdGVneSxcbiAgICBtaWRkbGV3YXJlRGF0YVxuICB9O1xufTtcblxuLyoqXG4gKiBSZXNvbHZlcyB3aXRoIGFuIG9iamVjdCBvZiBvdmVyZmxvdyBzaWRlIG9mZnNldHMgdGhhdCBkZXRlcm1pbmUgaG93IG11Y2ggdGhlXG4gKiBlbGVtZW50IGlzIG92ZXJmbG93aW5nIGEgZ2l2ZW4gY2xpcHBpbmcgYm91bmRhcnkgb24gZWFjaCBzaWRlLlxuICogLSBwb3NpdGl2ZSA9IG92ZXJmbG93aW5nIHRoZSBib3VuZGFyeSBieSB0aGF0IG51bWJlciBvZiBwaXhlbHNcbiAqIC0gbmVnYXRpdmUgPSBob3cgbWFueSBwaXhlbHMgbGVmdCBiZWZvcmUgaXQgd2lsbCBvdmVyZmxvd1xuICogLSAwID0gbGllcyBmbHVzaCB3aXRoIHRoZSBib3VuZGFyeVxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2RldGVjdE92ZXJmbG93XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGRldGVjdE92ZXJmbG93KHN0YXRlLCBvcHRpb25zKSB7XG4gIHZhciBfYXdhaXQkcGxhdGZvcm0kaXNFbGU7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIHgsXG4gICAgeSxcbiAgICBwbGF0Zm9ybSxcbiAgICByZWN0cyxcbiAgICBlbGVtZW50cyxcbiAgICBzdHJhdGVneVxuICB9ID0gc3RhdGU7XG4gIGNvbnN0IHtcbiAgICBib3VuZGFyeSA9ICdjbGlwcGluZ0FuY2VzdG9ycycsXG4gICAgcm9vdEJvdW5kYXJ5ID0gJ3ZpZXdwb3J0JyxcbiAgICBlbGVtZW50Q29udGV4dCA9ICdmbG9hdGluZycsXG4gICAgYWx0Qm91bmRhcnkgPSBmYWxzZSxcbiAgICBwYWRkaW5nID0gMFxuICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xuICBjb25zdCBwYWRkaW5nT2JqZWN0ID0gZ2V0UGFkZGluZ09iamVjdChwYWRkaW5nKTtcbiAgY29uc3QgYWx0Q29udGV4dCA9IGVsZW1lbnRDb250ZXh0ID09PSAnZmxvYXRpbmcnID8gJ3JlZmVyZW5jZScgOiAnZmxvYXRpbmcnO1xuICBjb25zdCBlbGVtZW50ID0gZWxlbWVudHNbYWx0Qm91bmRhcnkgPyBhbHRDb250ZXh0IDogZWxlbWVudENvbnRleHRdO1xuICBjb25zdCBjbGlwcGluZ0NsaWVudFJlY3QgPSByZWN0VG9DbGllbnRSZWN0KGF3YWl0IHBsYXRmb3JtLmdldENsaXBwaW5nUmVjdCh7XG4gICAgZWxlbWVudDogKChfYXdhaXQkcGxhdGZvcm0kaXNFbGUgPSBhd2FpdCAocGxhdGZvcm0uaXNFbGVtZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc0VsZW1lbnQoZWxlbWVudCkpKSAhPSBudWxsID8gX2F3YWl0JHBsYXRmb3JtJGlzRWxlIDogdHJ1ZSkgPyBlbGVtZW50IDogZWxlbWVudC5jb250ZXh0RWxlbWVudCB8fCAoYXdhaXQgKHBsYXRmb3JtLmdldERvY3VtZW50RWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnRzLmZsb2F0aW5nKSkpLFxuICAgIGJvdW5kYXJ5LFxuICAgIHJvb3RCb3VuZGFyeSxcbiAgICBzdHJhdGVneVxuICB9KSk7XG4gIGNvbnN0IHJlY3QgPSBlbGVtZW50Q29udGV4dCA9PT0gJ2Zsb2F0aW5nJyA/IHtcbiAgICB4LFxuICAgIHksXG4gICAgd2lkdGg6IHJlY3RzLmZsb2F0aW5nLndpZHRoLFxuICAgIGhlaWdodDogcmVjdHMuZmxvYXRpbmcuaGVpZ2h0XG4gIH0gOiByZWN0cy5yZWZlcmVuY2U7XG4gIGNvbnN0IG9mZnNldFBhcmVudCA9IGF3YWl0IChwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldE9mZnNldFBhcmVudChlbGVtZW50cy5mbG9hdGluZykpO1xuICBjb25zdCBvZmZzZXRTY2FsZSA9IChhd2FpdCAocGxhdGZvcm0uaXNFbGVtZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc0VsZW1lbnQob2Zmc2V0UGFyZW50KSkpID8gKGF3YWl0IChwbGF0Zm9ybS5nZXRTY2FsZSA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uZ2V0U2NhbGUob2Zmc2V0UGFyZW50KSkpIHx8IHtcbiAgICB4OiAxLFxuICAgIHk6IDFcbiAgfSA6IHtcbiAgICB4OiAxLFxuICAgIHk6IDFcbiAgfTtcbiAgY29uc3QgZWxlbWVudENsaWVudFJlY3QgPSByZWN0VG9DbGllbnRSZWN0KHBsYXRmb3JtLmNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0ID8gYXdhaXQgcGxhdGZvcm0uY29udmVydE9mZnNldFBhcmVudFJlbGF0aXZlUmVjdFRvVmlld3BvcnRSZWxhdGl2ZVJlY3Qoe1xuICAgIGVsZW1lbnRzLFxuICAgIHJlY3QsXG4gICAgb2Zmc2V0UGFyZW50LFxuICAgIHN0cmF0ZWd5XG4gIH0pIDogcmVjdCk7XG4gIHJldHVybiB7XG4gICAgdG9wOiAoY2xpcHBpbmdDbGllbnRSZWN0LnRvcCAtIGVsZW1lbnRDbGllbnRSZWN0LnRvcCArIHBhZGRpbmdPYmplY3QudG9wKSAvIG9mZnNldFNjYWxlLnksXG4gICAgYm90dG9tOiAoZWxlbWVudENsaWVudFJlY3QuYm90dG9tIC0gY2xpcHBpbmdDbGllbnRSZWN0LmJvdHRvbSArIHBhZGRpbmdPYmplY3QuYm90dG9tKSAvIG9mZnNldFNjYWxlLnksXG4gICAgbGVmdDogKGNsaXBwaW5nQ2xpZW50UmVjdC5sZWZ0IC0gZWxlbWVudENsaWVudFJlY3QubGVmdCArIHBhZGRpbmdPYmplY3QubGVmdCkgLyBvZmZzZXRTY2FsZS54LFxuICAgIHJpZ2h0OiAoZWxlbWVudENsaWVudFJlY3QucmlnaHQgLSBjbGlwcGluZ0NsaWVudFJlY3QucmlnaHQgKyBwYWRkaW5nT2JqZWN0LnJpZ2h0KSAvIG9mZnNldFNjYWxlLnhcbiAgfTtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGFuIGlubmVyIGVsZW1lbnQgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgc28gdGhhdCBpdFxuICogYXBwZWFycyBjZW50ZXJlZCB0byB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXJyb3dcbiAqL1xuY29uc3QgYXJyb3cgPSBvcHRpb25zID0+ICh7XG4gIG5hbWU6ICdhcnJvdycsXG4gIG9wdGlvbnMsXG4gIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgY29uc3Qge1xuICAgICAgeCxcbiAgICAgIHksXG4gICAgICBwbGFjZW1lbnQsXG4gICAgICByZWN0cyxcbiAgICAgIHBsYXRmb3JtLFxuICAgICAgZWxlbWVudHMsXG4gICAgICBtaWRkbGV3YXJlRGF0YVxuICAgIH0gPSBzdGF0ZTtcbiAgICAvLyBTaW5jZSBgZWxlbWVudGAgaXMgcmVxdWlyZWQsIHdlIGRvbid0IFBhcnRpYWw8PiB0aGUgdHlwZS5cbiAgICBjb25zdCB7XG4gICAgICBlbGVtZW50LFxuICAgICAgcGFkZGluZyA9IDBcbiAgICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpIHx8IHt9O1xuICAgIGlmIChlbGVtZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3QgcGFkZGluZ09iamVjdCA9IGdldFBhZGRpbmdPYmplY3QocGFkZGluZyk7XG4gICAgY29uc3QgY29vcmRzID0ge1xuICAgICAgeCxcbiAgICAgIHlcbiAgICB9O1xuICAgIGNvbnN0IGF4aXMgPSBnZXRBbGlnbm1lbnRBeGlzKHBsYWNlbWVudCk7XG4gICAgY29uc3QgbGVuZ3RoID0gZ2V0QXhpc0xlbmd0aChheGlzKTtcbiAgICBjb25zdCBhcnJvd0RpbWVuc2lvbnMgPSBhd2FpdCBwbGF0Zm9ybS5nZXREaW1lbnNpb25zKGVsZW1lbnQpO1xuICAgIGNvbnN0IGlzWUF4aXMgPSBheGlzID09PSAneSc7XG4gICAgY29uc3QgbWluUHJvcCA9IGlzWUF4aXMgPyAndG9wJyA6ICdsZWZ0JztcbiAgICBjb25zdCBtYXhQcm9wID0gaXNZQXhpcyA/ICdib3R0b20nIDogJ3JpZ2h0JztcbiAgICBjb25zdCBjbGllbnRQcm9wID0gaXNZQXhpcyA/ICdjbGllbnRIZWlnaHQnIDogJ2NsaWVudFdpZHRoJztcbiAgICBjb25zdCBlbmREaWZmID0gcmVjdHMucmVmZXJlbmNlW2xlbmd0aF0gKyByZWN0cy5yZWZlcmVuY2VbYXhpc10gLSBjb29yZHNbYXhpc10gLSByZWN0cy5mbG9hdGluZ1tsZW5ndGhdO1xuICAgIGNvbnN0IHN0YXJ0RGlmZiA9IGNvb3Jkc1theGlzXSAtIHJlY3RzLnJlZmVyZW5jZVtheGlzXTtcbiAgICBjb25zdCBhcnJvd09mZnNldFBhcmVudCA9IGF3YWl0IChwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldE9mZnNldFBhcmVudChlbGVtZW50KSk7XG4gICAgbGV0IGNsaWVudFNpemUgPSBhcnJvd09mZnNldFBhcmVudCA/IGFycm93T2Zmc2V0UGFyZW50W2NsaWVudFByb3BdIDogMDtcblxuICAgIC8vIERPTSBwbGF0Zm9ybSBjYW4gcmV0dXJuIGB3aW5kb3dgIGFzIHRoZSBgb2Zmc2V0UGFyZW50YC5cbiAgICBpZiAoIWNsaWVudFNpemUgfHwgIShhd2FpdCAocGxhdGZvcm0uaXNFbGVtZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc0VsZW1lbnQoYXJyb3dPZmZzZXRQYXJlbnQpKSkpIHtcbiAgICAgIGNsaWVudFNpemUgPSBlbGVtZW50cy5mbG9hdGluZ1tjbGllbnRQcm9wXSB8fCByZWN0cy5mbG9hdGluZ1tsZW5ndGhdO1xuICAgIH1cbiAgICBjb25zdCBjZW50ZXJUb1JlZmVyZW5jZSA9IGVuZERpZmYgLyAyIC0gc3RhcnREaWZmIC8gMjtcblxuICAgIC8vIElmIHRoZSBwYWRkaW5nIGlzIGxhcmdlIGVub3VnaCB0aGF0IGl0IGNhdXNlcyB0aGUgYXJyb3cgdG8gbm8gbG9uZ2VyIGJlXG4gICAgLy8gY2VudGVyZWQsIG1vZGlmeSB0aGUgcGFkZGluZyBzbyB0aGF0IGl0IGlzIGNlbnRlcmVkLlxuICAgIGNvbnN0IGxhcmdlc3RQb3NzaWJsZVBhZGRpbmcgPSBjbGllbnRTaXplIC8gMiAtIGFycm93RGltZW5zaW9uc1tsZW5ndGhdIC8gMiAtIDE7XG4gICAgY29uc3QgbWluUGFkZGluZyA9IG1pbihwYWRkaW5nT2JqZWN0W21pblByb3BdLCBsYXJnZXN0UG9zc2libGVQYWRkaW5nKTtcbiAgICBjb25zdCBtYXhQYWRkaW5nID0gbWluKHBhZGRpbmdPYmplY3RbbWF4UHJvcF0sIGxhcmdlc3RQb3NzaWJsZVBhZGRpbmcpO1xuXG4gICAgLy8gTWFrZSBzdXJlIHRoZSBhcnJvdyBkb2Vzbid0IG92ZXJmbG93IHRoZSBmbG9hdGluZyBlbGVtZW50IGlmIHRoZSBjZW50ZXJcbiAgICAvLyBwb2ludCBpcyBvdXRzaWRlIHRoZSBmbG9hdGluZyBlbGVtZW50J3MgYm91bmRzLlxuICAgIGNvbnN0IG1pbiQxID0gbWluUGFkZGluZztcbiAgICBjb25zdCBtYXggPSBjbGllbnRTaXplIC0gYXJyb3dEaW1lbnNpb25zW2xlbmd0aF0gLSBtYXhQYWRkaW5nO1xuICAgIGNvbnN0IGNlbnRlciA9IGNsaWVudFNpemUgLyAyIC0gYXJyb3dEaW1lbnNpb25zW2xlbmd0aF0gLyAyICsgY2VudGVyVG9SZWZlcmVuY2U7XG4gICAgY29uc3Qgb2Zmc2V0ID0gY2xhbXAobWluJDEsIGNlbnRlciwgbWF4KTtcblxuICAgIC8vIElmIHRoZSByZWZlcmVuY2UgaXMgc21hbGwgZW5vdWdoIHRoYXQgdGhlIGFycm93J3MgcGFkZGluZyBjYXVzZXMgaXQgdG9cbiAgICAvLyB0byBwb2ludCB0byBub3RoaW5nIGZvciBhbiBhbGlnbmVkIHBsYWNlbWVudCwgYWRqdXN0IHRoZSBvZmZzZXQgb2YgdGhlXG4gICAgLy8gZmxvYXRpbmcgZWxlbWVudCBpdHNlbGYuIFRvIGVuc3VyZSBgc2hpZnQoKWAgY29udGludWVzIHRvIHRha2UgYWN0aW9uLFxuICAgIC8vIGEgc2luZ2xlIHJlc2V0IGlzIHBlcmZvcm1lZCB3aGVuIHRoaXMgaXMgdHJ1ZS5cbiAgICBjb25zdCBzaG91bGRBZGRPZmZzZXQgPSAhbWlkZGxld2FyZURhdGEuYXJyb3cgJiYgZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkgIT0gbnVsbCAmJiBjZW50ZXIgIT09IG9mZnNldCAmJiByZWN0cy5yZWZlcmVuY2VbbGVuZ3RoXSAvIDIgLSAoY2VudGVyIDwgbWluJDEgPyBtaW5QYWRkaW5nIDogbWF4UGFkZGluZykgLSBhcnJvd0RpbWVuc2lvbnNbbGVuZ3RoXSAvIDIgPCAwO1xuICAgIGNvbnN0IGFsaWdubWVudE9mZnNldCA9IHNob3VsZEFkZE9mZnNldCA/IGNlbnRlciA8IG1pbiQxID8gY2VudGVyIC0gbWluJDEgOiBjZW50ZXIgLSBtYXggOiAwO1xuICAgIHJldHVybiB7XG4gICAgICBbYXhpc106IGNvb3Jkc1theGlzXSArIGFsaWdubWVudE9mZnNldCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgW2F4aXNdOiBvZmZzZXQsXG4gICAgICAgIGNlbnRlck9mZnNldDogY2VudGVyIC0gb2Zmc2V0IC0gYWxpZ25tZW50T2Zmc2V0LFxuICAgICAgICAuLi4oc2hvdWxkQWRkT2Zmc2V0ICYmIHtcbiAgICAgICAgICBhbGlnbm1lbnRPZmZzZXRcbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgICByZXNldDogc2hvdWxkQWRkT2Zmc2V0XG4gICAgfTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGdldFBsYWNlbWVudExpc3QoYWxpZ25tZW50LCBhdXRvQWxpZ25tZW50LCBhbGxvd2VkUGxhY2VtZW50cykge1xuICBjb25zdCBhbGxvd2VkUGxhY2VtZW50c1NvcnRlZEJ5QWxpZ25tZW50ID0gYWxpZ25tZW50ID8gWy4uLmFsbG93ZWRQbGFjZW1lbnRzLmZpbHRlcihwbGFjZW1lbnQgPT4gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkgPT09IGFsaWdubWVudCksIC4uLmFsbG93ZWRQbGFjZW1lbnRzLmZpbHRlcihwbGFjZW1lbnQgPT4gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkgIT09IGFsaWdubWVudCldIDogYWxsb3dlZFBsYWNlbWVudHMuZmlsdGVyKHBsYWNlbWVudCA9PiBnZXRTaWRlKHBsYWNlbWVudCkgPT09IHBsYWNlbWVudCk7XG4gIHJldHVybiBhbGxvd2VkUGxhY2VtZW50c1NvcnRlZEJ5QWxpZ25tZW50LmZpbHRlcihwbGFjZW1lbnQgPT4ge1xuICAgIGlmIChhbGlnbm1lbnQpIHtcbiAgICAgIHJldHVybiBnZXRBbGlnbm1lbnQocGxhY2VtZW50KSA9PT0gYWxpZ25tZW50IHx8IChhdXRvQWxpZ25tZW50ID8gZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQocGxhY2VtZW50KSAhPT0gcGxhY2VtZW50IDogZmFsc2UpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG59XG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBjaG9vc2luZyB0aGUgcGxhY2VtZW50XG4gKiB0aGF0IGhhcyB0aGUgbW9zdCBzcGFjZSBhdmFpbGFibGUgYXV0b21hdGljYWxseSwgd2l0aG91dCBuZWVkaW5nIHRvIHNwZWNpZnkgYVxuICogcHJlZmVycmVkIHBsYWNlbWVudC4gQWx0ZXJuYXRpdmUgdG8gYGZsaXBgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2F1dG9QbGFjZW1lbnRcbiAqL1xuY29uc3QgYXV0b1BsYWNlbWVudCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnYXV0b1BsYWNlbWVudCcsXG4gICAgb3B0aW9ucyxcbiAgICBhc3luYyBmbihzdGF0ZSkge1xuICAgICAgdmFyIF9taWRkbGV3YXJlRGF0YSRhdXRvUCwgX21pZGRsZXdhcmVEYXRhJGF1dG9QMiwgX3BsYWNlbWVudHNUaGF0Rml0T25FO1xuICAgICAgY29uc3Qge1xuICAgICAgICByZWN0cyxcbiAgICAgICAgbWlkZGxld2FyZURhdGEsXG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgcGxhdGZvcm0sXG4gICAgICAgIGVsZW1lbnRzXG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGNyb3NzQXhpcyA9IGZhbHNlLFxuICAgICAgICBhbGlnbm1lbnQsXG4gICAgICAgIGFsbG93ZWRQbGFjZW1lbnRzID0gcGxhY2VtZW50cyxcbiAgICAgICAgYXV0b0FsaWdubWVudCA9IHRydWUsXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIGNvbnN0IHBsYWNlbWVudHMkMSA9IGFsaWdubWVudCAhPT0gdW5kZWZpbmVkIHx8IGFsbG93ZWRQbGFjZW1lbnRzID09PSBwbGFjZW1lbnRzID8gZ2V0UGxhY2VtZW50TGlzdChhbGlnbm1lbnQgfHwgbnVsbCwgYXV0b0FsaWdubWVudCwgYWxsb3dlZFBsYWNlbWVudHMpIDogYWxsb3dlZFBsYWNlbWVudHM7XG4gICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCBkZXRlY3RPdmVyZmxvd09wdGlvbnMpO1xuICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gKChfbWlkZGxld2FyZURhdGEkYXV0b1AgPSBtaWRkbGV3YXJlRGF0YS5hdXRvUGxhY2VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGF1dG9QLmluZGV4KSB8fCAwO1xuICAgICAgY29uc3QgY3VycmVudFBsYWNlbWVudCA9IHBsYWNlbWVudHMkMVtjdXJyZW50SW5kZXhdO1xuICAgICAgaWYgKGN1cnJlbnRQbGFjZW1lbnQgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICBjb25zdCBhbGlnbm1lbnRTaWRlcyA9IGdldEFsaWdubWVudFNpZGVzKGN1cnJlbnRQbGFjZW1lbnQsIHJlY3RzLCBhd2FpdCAocGxhdGZvcm0uaXNSVEwgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzUlRMKGVsZW1lbnRzLmZsb2F0aW5nKSkpO1xuXG4gICAgICAvLyBNYWtlIGBjb21wdXRlQ29vcmRzYCBzdGFydCBmcm9tIHRoZSByaWdodCBwbGFjZS5cbiAgICAgIGlmIChwbGFjZW1lbnQgIT09IGN1cnJlbnRQbGFjZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZXNldDoge1xuICAgICAgICAgICAgcGxhY2VtZW50OiBwbGFjZW1lbnRzJDFbMF1cbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBjb25zdCBjdXJyZW50T3ZlcmZsb3dzID0gW292ZXJmbG93W2dldFNpZGUoY3VycmVudFBsYWNlbWVudCldLCBvdmVyZmxvd1thbGlnbm1lbnRTaWRlc1swXV0sIG92ZXJmbG93W2FsaWdubWVudFNpZGVzWzFdXV07XG4gICAgICBjb25zdCBhbGxPdmVyZmxvd3MgPSBbLi4uKCgoX21pZGRsZXdhcmVEYXRhJGF1dG9QMiA9IG1pZGRsZXdhcmVEYXRhLmF1dG9QbGFjZW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGEkYXV0b1AyLm92ZXJmbG93cykgfHwgW10pLCB7XG4gICAgICAgIHBsYWNlbWVudDogY3VycmVudFBsYWNlbWVudCxcbiAgICAgICAgb3ZlcmZsb3dzOiBjdXJyZW50T3ZlcmZsb3dzXG4gICAgICB9XTtcbiAgICAgIGNvbnN0IG5leHRQbGFjZW1lbnQgPSBwbGFjZW1lbnRzJDFbY3VycmVudEluZGV4ICsgMV07XG5cbiAgICAgIC8vIFRoZXJlIGFyZSBtb3JlIHBsYWNlbWVudHMgdG8gY2hlY2suXG4gICAgICBpZiAobmV4dFBsYWNlbWVudCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGluZGV4OiBjdXJyZW50SW5kZXggKyAxLFxuICAgICAgICAgICAgb3ZlcmZsb3dzOiBhbGxPdmVyZmxvd3NcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc2V0OiB7XG4gICAgICAgICAgICBwbGFjZW1lbnQ6IG5leHRQbGFjZW1lbnRcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBjb25zdCBwbGFjZW1lbnRzU29ydGVkQnlNb3N0U3BhY2UgPSBhbGxPdmVyZmxvd3MubWFwKGQgPT4ge1xuICAgICAgICBjb25zdCBhbGlnbm1lbnQgPSBnZXRBbGlnbm1lbnQoZC5wbGFjZW1lbnQpO1xuICAgICAgICByZXR1cm4gW2QucGxhY2VtZW50LCBhbGlnbm1lbnQgJiYgY3Jvc3NBeGlzID9cbiAgICAgICAgLy8gQ2hlY2sgYWxvbmcgdGhlIG1haW5BeGlzIGFuZCBtYWluIGNyb3NzQXhpcyBzaWRlLlxuICAgICAgICBkLm92ZXJmbG93cy5zbGljZSgwLCAyKS5yZWR1Y2UoKGFjYywgdikgPT4gYWNjICsgdiwgMCkgOlxuICAgICAgICAvLyBDaGVjayBvbmx5IHRoZSBtYWluQXhpcy5cbiAgICAgICAgZC5vdmVyZmxvd3NbMF0sIGQub3ZlcmZsb3dzXTtcbiAgICAgIH0pLnNvcnQoKGEsIGIpID0+IGFbMV0gLSBiWzFdKTtcbiAgICAgIGNvbnN0IHBsYWNlbWVudHNUaGF0Rml0T25FYWNoU2lkZSA9IHBsYWNlbWVudHNTb3J0ZWRCeU1vc3RTcGFjZS5maWx0ZXIoZCA9PiBkWzJdLnNsaWNlKDAsXG4gICAgICAvLyBBbGlnbmVkIHBsYWNlbWVudHMgc2hvdWxkIG5vdCBjaGVjayB0aGVpciBvcHBvc2l0ZSBjcm9zc0F4aXNcbiAgICAgIC8vIHNpZGUuXG4gICAgICBnZXRBbGlnbm1lbnQoZFswXSkgPyAyIDogMykuZXZlcnkodiA9PiB2IDw9IDApKTtcbiAgICAgIGNvbnN0IHJlc2V0UGxhY2VtZW50ID0gKChfcGxhY2VtZW50c1RoYXRGaXRPbkUgPSBwbGFjZW1lbnRzVGhhdEZpdE9uRWFjaFNpZGVbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfcGxhY2VtZW50c1RoYXRGaXRPbkVbMF0pIHx8IHBsYWNlbWVudHNTb3J0ZWRCeU1vc3RTcGFjZVswXVswXTtcbiAgICAgIGlmIChyZXNldFBsYWNlbWVudCAhPT0gcGxhY2VtZW50KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgaW5kZXg6IGN1cnJlbnRJbmRleCArIDEsXG4gICAgICAgICAgICBvdmVyZmxvd3M6IGFsbE92ZXJmbG93c1xuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgIHBsYWNlbWVudDogcmVzZXRQbGFjZW1lbnRcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICB9O1xufTtcblxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgZmxpcHBpbmcgdGhlIGBwbGFjZW1lbnRgXG4gKiBpbiBvcmRlciB0byBrZWVwIGl0IGluIHZpZXcgd2hlbiB0aGUgcHJlZmVycmVkIHBsYWNlbWVudChzKSB3aWxsIG92ZXJmbG93IHRoZVxuICogY2xpcHBpbmcgYm91bmRhcnkuIEFsdGVybmF0aXZlIHRvIGBhdXRvUGxhY2VtZW50YC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9mbGlwXG4gKi9cbmNvbnN0IGZsaXAgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2ZsaXAnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkYXJyb3csIF9taWRkbGV3YXJlRGF0YSRmbGlwO1xuICAgICAgY29uc3Qge1xuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIG1pZGRsZXdhcmVEYXRhLFxuICAgICAgICByZWN0cyxcbiAgICAgICAgaW5pdGlhbFBsYWNlbWVudCxcbiAgICAgICAgcGxhdGZvcm0sXG4gICAgICAgIGVsZW1lbnRzXG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1haW5BeGlzOiBjaGVja01haW5BeGlzID0gdHJ1ZSxcbiAgICAgICAgY3Jvc3NBeGlzOiBjaGVja0Nyb3NzQXhpcyA9IHRydWUsXG4gICAgICAgIGZhbGxiYWNrUGxhY2VtZW50czogc3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzLFxuICAgICAgICBmYWxsYmFja1N0cmF0ZWd5ID0gJ2Jlc3RGaXQnLFxuICAgICAgICBmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uID0gJ25vbmUnLFxuICAgICAgICBmbGlwQWxpZ25tZW50ID0gdHJ1ZSxcbiAgICAgICAgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zXG4gICAgICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xuXG4gICAgICAvLyBJZiBhIHJlc2V0IGJ5IHRoZSBhcnJvdyB3YXMgY2F1c2VkIGR1ZSB0byBhbiBhbGlnbm1lbnQgb2Zmc2V0IGJlaW5nXG4gICAgICAvLyBhZGRlZCwgd2Ugc2hvdWxkIHNraXAgYW55IGxvZ2ljIG5vdyBzaW5jZSBgZmxpcCgpYCBoYXMgYWxyZWFkeSBkb25lIGl0c1xuICAgICAgLy8gd29yay5cbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMjU0OSNpc3N1ZWNvbW1lbnQtMTcxOTYwMTY0M1xuICAgICAgaWYgKChfbWlkZGxld2FyZURhdGEkYXJyb3cgPSBtaWRkbGV3YXJlRGF0YS5hcnJvdykgIT0gbnVsbCAmJiBfbWlkZGxld2FyZURhdGEkYXJyb3cuYWxpZ25tZW50T2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNpZGUgPSBnZXRTaWRlKHBsYWNlbWVudCk7XG4gICAgICBjb25zdCBpbml0aWFsU2lkZUF4aXMgPSBnZXRTaWRlQXhpcyhpbml0aWFsUGxhY2VtZW50KTtcbiAgICAgIGNvbnN0IGlzQmFzZVBsYWNlbWVudCA9IGdldFNpZGUoaW5pdGlhbFBsYWNlbWVudCkgPT09IGluaXRpYWxQbGFjZW1lbnQ7XG4gICAgICBjb25zdCBydGwgPSBhd2FpdCAocGxhdGZvcm0uaXNSVEwgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzUlRMKGVsZW1lbnRzLmZsb2F0aW5nKSk7XG4gICAgICBjb25zdCBmYWxsYmFja1BsYWNlbWVudHMgPSBzcGVjaWZpZWRGYWxsYmFja1BsYWNlbWVudHMgfHwgKGlzQmFzZVBsYWNlbWVudCB8fCAhZmxpcEFsaWdubWVudCA/IFtnZXRPcHBvc2l0ZVBsYWNlbWVudChpbml0aWFsUGxhY2VtZW50KV0gOiBnZXRFeHBhbmRlZFBsYWNlbWVudHMoaW5pdGlhbFBsYWNlbWVudCkpO1xuICAgICAgY29uc3QgaGFzRmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbiA9IGZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb24gIT09ICdub25lJztcbiAgICAgIGlmICghc3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzICYmIGhhc0ZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb24pIHtcbiAgICAgICAgZmFsbGJhY2tQbGFjZW1lbnRzLnB1c2goLi4uZ2V0T3Bwb3NpdGVBeGlzUGxhY2VtZW50cyhpbml0aWFsUGxhY2VtZW50LCBmbGlwQWxpZ25tZW50LCBmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uLCBydGwpKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBsYWNlbWVudHMgPSBbaW5pdGlhbFBsYWNlbWVudCwgLi4uZmFsbGJhY2tQbGFjZW1lbnRzXTtcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIGRldGVjdE92ZXJmbG93T3B0aW9ucyk7XG4gICAgICBjb25zdCBvdmVyZmxvd3MgPSBbXTtcbiAgICAgIGxldCBvdmVyZmxvd3NEYXRhID0gKChfbWlkZGxld2FyZURhdGEkZmxpcCA9IG1pZGRsZXdhcmVEYXRhLmZsaXApID09IG51bGwgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGEkZmxpcC5vdmVyZmxvd3MpIHx8IFtdO1xuICAgICAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcbiAgICAgICAgb3ZlcmZsb3dzLnB1c2gob3ZlcmZsb3dbc2lkZV0pO1xuICAgICAgfVxuICAgICAgaWYgKGNoZWNrQ3Jvc3NBeGlzKSB7XG4gICAgICAgIGNvbnN0IHNpZGVzID0gZ2V0QWxpZ25tZW50U2lkZXMocGxhY2VtZW50LCByZWN0cywgcnRsKTtcbiAgICAgICAgb3ZlcmZsb3dzLnB1c2gob3ZlcmZsb3dbc2lkZXNbMF1dLCBvdmVyZmxvd1tzaWRlc1sxXV0pO1xuICAgICAgfVxuICAgICAgb3ZlcmZsb3dzRGF0YSA9IFsuLi5vdmVyZmxvd3NEYXRhLCB7XG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgb3ZlcmZsb3dzXG4gICAgICB9XTtcblxuICAgICAgLy8gT25lIG9yIG1vcmUgc2lkZXMgaXMgb3ZlcmZsb3dpbmcuXG4gICAgICBpZiAoIW92ZXJmbG93cy5ldmVyeShzaWRlID0+IHNpZGUgPD0gMCkpIHtcbiAgICAgICAgdmFyIF9taWRkbGV3YXJlRGF0YSRmbGlwMiwgX292ZXJmbG93c0RhdGEkZmlsdGVyO1xuICAgICAgICBjb25zdCBuZXh0SW5kZXggPSAoKChfbWlkZGxld2FyZURhdGEkZmxpcDIgPSBtaWRkbGV3YXJlRGF0YS5mbGlwKSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGZsaXAyLmluZGV4KSB8fCAwKSArIDE7XG4gICAgICAgIGNvbnN0IG5leHRQbGFjZW1lbnQgPSBwbGFjZW1lbnRzW25leHRJbmRleF07XG4gICAgICAgIGlmIChuZXh0UGxhY2VtZW50KSB7XG4gICAgICAgICAgLy8gVHJ5IG5leHQgcGxhY2VtZW50IGFuZCByZS1ydW4gdGhlIGxpZmVjeWNsZS5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBpbmRleDogbmV4dEluZGV4LFxuICAgICAgICAgICAgICBvdmVyZmxvd3M6IG92ZXJmbG93c0RhdGFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldDoge1xuICAgICAgICAgICAgICBwbGFjZW1lbnQ6IG5leHRQbGFjZW1lbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlyc3QsIGZpbmQgdGhlIGNhbmRpZGF0ZXMgdGhhdCBmaXQgb24gdGhlIG1haW5BeGlzIHNpZGUgb2Ygb3ZlcmZsb3csXG4gICAgICAgIC8vIHRoZW4gZmluZCB0aGUgcGxhY2VtZW50IHRoYXQgZml0cyB0aGUgYmVzdCBvbiB0aGUgbWFpbiBjcm9zc0F4aXMgc2lkZS5cbiAgICAgICAgbGV0IHJlc2V0UGxhY2VtZW50ID0gKF9vdmVyZmxvd3NEYXRhJGZpbHRlciA9IG92ZXJmbG93c0RhdGEuZmlsdGVyKGQgPT4gZC5vdmVyZmxvd3NbMF0gPD0gMCkuc29ydCgoYSwgYikgPT4gYS5vdmVyZmxvd3NbMV0gLSBiLm92ZXJmbG93c1sxXSlbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfb3ZlcmZsb3dzRGF0YSRmaWx0ZXIucGxhY2VtZW50O1xuXG4gICAgICAgIC8vIE90aGVyd2lzZSBmYWxsYmFjay5cbiAgICAgICAgaWYgKCFyZXNldFBsYWNlbWVudCkge1xuICAgICAgICAgIHN3aXRjaCAoZmFsbGJhY2tTdHJhdGVneSkge1xuICAgICAgICAgICAgY2FzZSAnYmVzdEZpdCc6XG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YXIgX292ZXJmbG93c0RhdGEkZmlsdGVyMjtcbiAgICAgICAgICAgICAgICBjb25zdCBwbGFjZW1lbnQgPSAoX292ZXJmbG93c0RhdGEkZmlsdGVyMiA9IG92ZXJmbG93c0RhdGEuZmlsdGVyKGQgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKGhhc0ZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNpZGVBeGlzID0gZ2V0U2lkZUF4aXMoZC5wbGFjZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFNpZGVBeGlzID09PSBpbml0aWFsU2lkZUF4aXMgfHxcbiAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgYmlhcyB0byB0aGUgYHlgIHNpZGUgYXhpcyBkdWUgdG8gaG9yaXpvbnRhbFxuICAgICAgICAgICAgICAgICAgICAvLyByZWFkaW5nIGRpcmVjdGlvbnMgZmF2b3JpbmcgZ3JlYXRlciB3aWR0aC5cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFNpZGVBeGlzID09PSAneSc7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9KS5tYXAoZCA9PiBbZC5wbGFjZW1lbnQsIGQub3ZlcmZsb3dzLmZpbHRlcihvdmVyZmxvdyA9PiBvdmVyZmxvdyA+IDApLnJlZHVjZSgoYWNjLCBvdmVyZmxvdykgPT4gYWNjICsgb3ZlcmZsb3csIDApXSkuc29ydCgoYSwgYikgPT4gYVsxXSAtIGJbMV0pWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX292ZXJmbG93c0RhdGEkZmlsdGVyMlswXTtcbiAgICAgICAgICAgICAgICBpZiAocGxhY2VtZW50KSB7XG4gICAgICAgICAgICAgICAgICByZXNldFBsYWNlbWVudCA9IHBsYWNlbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2luaXRpYWxQbGFjZW1lbnQnOlxuICAgICAgICAgICAgICByZXNldFBsYWNlbWVudCA9IGluaXRpYWxQbGFjZW1lbnQ7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocGxhY2VtZW50ICE9PSByZXNldFBsYWNlbWVudCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZXNldDoge1xuICAgICAgICAgICAgICBwbGFjZW1lbnQ6IHJlc2V0UGxhY2VtZW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfTtcbn07XG5cbmZ1bmN0aW9uIGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0KSB7XG4gIHJldHVybiB7XG4gICAgdG9wOiBvdmVyZmxvdy50b3AgLSByZWN0LmhlaWdodCxcbiAgICByaWdodDogb3ZlcmZsb3cucmlnaHQgLSByZWN0LndpZHRoLFxuICAgIGJvdHRvbTogb3ZlcmZsb3cuYm90dG9tIC0gcmVjdC5oZWlnaHQsXG4gICAgbGVmdDogb3ZlcmZsb3cubGVmdCAtIHJlY3Qud2lkdGhcbiAgfTtcbn1cbmZ1bmN0aW9uIGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChvdmVyZmxvdykge1xuICByZXR1cm4gc2lkZXMuc29tZShzaWRlID0+IG92ZXJmbG93W3NpZGVdID49IDApO1xufVxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIGhpZGUgdGhlIGZsb2F0aW5nIGVsZW1lbnQgaW4gYXBwbGljYWJsZSBzaXR1YXRpb25zLCBzdWNoIGFzXG4gKiB3aGVuIGl0IGlzIG5vdCBpbiB0aGUgc2FtZSBjbGlwcGluZyBjb250ZXh0IGFzIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9oaWRlXG4gKi9cbmNvbnN0IGhpZGUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2hpZGUnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcmVjdHNcbiAgICAgIH0gPSBzdGF0ZTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgc3RyYXRlZ3kgPSAncmVmZXJlbmNlSGlkZGVuJyxcbiAgICAgICAgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zXG4gICAgICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xuICAgICAgc3dpdGNoIChzdHJhdGVneSkge1xuICAgICAgICBjYXNlICdyZWZlcmVuY2VIaWRkZW4nOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICAgICAgICAgICAgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zLFxuICAgICAgICAgICAgICBlbGVtZW50Q29udGV4dDogJ3JlZmVyZW5jZSdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0cy5yZWZlcmVuY2UpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZUhpZGRlbk9mZnNldHM6IG9mZnNldHMsXG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlSGlkZGVuOiBpc0FueVNpZGVGdWxseUNsaXBwZWQob2Zmc2V0cylcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2VzY2FwZWQnOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICAgICAgICAgICAgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zLFxuICAgICAgICAgICAgICBhbHRCb3VuZGFyeTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBvZmZzZXRzID0gZ2V0U2lkZU9mZnNldHMob3ZlcmZsb3csIHJlY3RzLmZsb2F0aW5nKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBlc2NhcGVkT2Zmc2V0czogb2Zmc2V0cyxcbiAgICAgICAgICAgICAgICBlc2NhcGVkOiBpc0FueVNpZGVGdWxseUNsaXBwZWQob2Zmc2V0cylcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG59O1xuXG5mdW5jdGlvbiBnZXRCb3VuZGluZ1JlY3QocmVjdHMpIHtcbiAgY29uc3QgbWluWCA9IG1pbiguLi5yZWN0cy5tYXAocmVjdCA9PiByZWN0LmxlZnQpKTtcbiAgY29uc3QgbWluWSA9IG1pbiguLi5yZWN0cy5tYXAocmVjdCA9PiByZWN0LnRvcCkpO1xuICBjb25zdCBtYXhYID0gbWF4KC4uLnJlY3RzLm1hcChyZWN0ID0+IHJlY3QucmlnaHQpKTtcbiAgY29uc3QgbWF4WSA9IG1heCguLi5yZWN0cy5tYXAocmVjdCA9PiByZWN0LmJvdHRvbSkpO1xuICByZXR1cm4ge1xuICAgIHg6IG1pblgsXG4gICAgeTogbWluWSxcbiAgICB3aWR0aDogbWF4WCAtIG1pblgsXG4gICAgaGVpZ2h0OiBtYXhZIC0gbWluWVxuICB9O1xufVxuZnVuY3Rpb24gZ2V0UmVjdHNCeUxpbmUocmVjdHMpIHtcbiAgY29uc3Qgc29ydGVkUmVjdHMgPSByZWN0cy5zbGljZSgpLnNvcnQoKGEsIGIpID0+IGEueSAtIGIueSk7XG4gIGNvbnN0IGdyb3VwcyA9IFtdO1xuICBsZXQgcHJldlJlY3QgPSBudWxsO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHNvcnRlZFJlY3RzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgcmVjdCA9IHNvcnRlZFJlY3RzW2ldO1xuICAgIGlmICghcHJldlJlY3QgfHwgcmVjdC55IC0gcHJldlJlY3QueSA+IHByZXZSZWN0LmhlaWdodCAvIDIpIHtcbiAgICAgIGdyb3Vwcy5wdXNoKFtyZWN0XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdyb3Vwc1tncm91cHMubGVuZ3RoIC0gMV0ucHVzaChyZWN0KTtcbiAgICB9XG4gICAgcHJldlJlY3QgPSByZWN0O1xuICB9XG4gIHJldHVybiBncm91cHMubWFwKHJlY3QgPT4gcmVjdFRvQ2xpZW50UmVjdChnZXRCb3VuZGluZ1JlY3QocmVjdCkpKTtcbn1cbi8qKlxuICogUHJvdmlkZXMgaW1wcm92ZWQgcG9zaXRpb25pbmcgZm9yIGlubGluZSByZWZlcmVuY2UgZWxlbWVudHMgdGhhdCBjYW4gc3BhblxuICogb3ZlciBtdWx0aXBsZSBsaW5lcywgc3VjaCBhcyBoeXBlcmxpbmtzIG9yIHJhbmdlIHNlbGVjdGlvbnMuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvaW5saW5lXG4gKi9cbmNvbnN0IGlubGluZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnaW5saW5lJyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgZWxlbWVudHMsXG4gICAgICAgIHJlY3RzLFxuICAgICAgICBwbGF0Zm9ybSxcbiAgICAgICAgc3RyYXRlZ3lcbiAgICAgIH0gPSBzdGF0ZTtcbiAgICAgIC8vIEEgTW91c2VFdmVudCdzIGNsaWVudHtYLFl9IGNvb3JkcyBjYW4gYmUgdXAgdG8gMiBwaXhlbHMgb2ZmIGFcbiAgICAgIC8vIENsaWVudFJlY3QncyBib3VuZHMsIGRlc3BpdGUgdGhlIGV2ZW50IGxpc3RlbmVyIGJlaW5nIHRyaWdnZXJlZC4gQVxuICAgICAgLy8gcGFkZGluZyBvZiAyIHNlZW1zIHRvIGhhbmRsZSB0aGlzIGlzc3VlLlxuICAgICAgY29uc3Qge1xuICAgICAgICBwYWRkaW5nID0gMixcbiAgICAgICAgeCxcbiAgICAgICAgeVxuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIGNvbnN0IG5hdGl2ZUNsaWVudFJlY3RzID0gQXJyYXkuZnJvbSgoYXdhaXQgKHBsYXRmb3JtLmdldENsaWVudFJlY3RzID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5nZXRDbGllbnRSZWN0cyhlbGVtZW50cy5yZWZlcmVuY2UpKSkgfHwgW10pO1xuICAgICAgY29uc3QgY2xpZW50UmVjdHMgPSBnZXRSZWN0c0J5TGluZShuYXRpdmVDbGllbnRSZWN0cyk7XG4gICAgICBjb25zdCBmYWxsYmFjayA9IHJlY3RUb0NsaWVudFJlY3QoZ2V0Qm91bmRpbmdSZWN0KG5hdGl2ZUNsaWVudFJlY3RzKSk7XG4gICAgICBjb25zdCBwYWRkaW5nT2JqZWN0ID0gZ2V0UGFkZGluZ09iamVjdChwYWRkaW5nKTtcbiAgICAgIGZ1bmN0aW9uIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHtcbiAgICAgICAgLy8gVGhlcmUgYXJlIHR3byByZWN0cyBhbmQgdGhleSBhcmUgZGlzam9pbmVkLlxuICAgICAgICBpZiAoY2xpZW50UmVjdHMubGVuZ3RoID09PSAyICYmIGNsaWVudFJlY3RzWzBdLmxlZnQgPiBjbGllbnRSZWN0c1sxXS5yaWdodCAmJiB4ICE9IG51bGwgJiYgeSAhPSBudWxsKSB7XG4gICAgICAgICAgLy8gRmluZCB0aGUgZmlyc3QgcmVjdCBpbiB3aGljaCB0aGUgcG9pbnQgaXMgZnVsbHkgaW5zaWRlLlxuICAgICAgICAgIHJldHVybiBjbGllbnRSZWN0cy5maW5kKHJlY3QgPT4geCA+IHJlY3QubGVmdCAtIHBhZGRpbmdPYmplY3QubGVmdCAmJiB4IDwgcmVjdC5yaWdodCArIHBhZGRpbmdPYmplY3QucmlnaHQgJiYgeSA+IHJlY3QudG9wIC0gcGFkZGluZ09iamVjdC50b3AgJiYgeSA8IHJlY3QuYm90dG9tICsgcGFkZGluZ09iamVjdC5ib3R0b20pIHx8IGZhbGxiYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlcmUgYXJlIDIgb3IgbW9yZSBjb25uZWN0ZWQgcmVjdHMuXG4gICAgICAgIGlmIChjbGllbnRSZWN0cy5sZW5ndGggPj0gMikge1xuICAgICAgICAgIGlmIChnZXRTaWRlQXhpcyhwbGFjZW1lbnQpID09PSAneScpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0UmVjdCA9IGNsaWVudFJlY3RzWzBdO1xuICAgICAgICAgICAgY29uc3QgbGFzdFJlY3QgPSBjbGllbnRSZWN0c1tjbGllbnRSZWN0cy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGNvbnN0IGlzVG9wID0gZ2V0U2lkZShwbGFjZW1lbnQpID09PSAndG9wJztcbiAgICAgICAgICAgIGNvbnN0IHRvcCA9IGZpcnN0UmVjdC50b3A7XG4gICAgICAgICAgICBjb25zdCBib3R0b20gPSBsYXN0UmVjdC5ib3R0b207XG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gaXNUb3AgPyBmaXJzdFJlY3QubGVmdCA6IGxhc3RSZWN0LmxlZnQ7XG4gICAgICAgICAgICBjb25zdCByaWdodCA9IGlzVG9wID8gZmlyc3RSZWN0LnJpZ2h0IDogbGFzdFJlY3QucmlnaHQ7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IHJpZ2h0IC0gbGVmdDtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IGJvdHRvbSAtIHRvcDtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHRvcCxcbiAgICAgICAgICAgICAgYm90dG9tLFxuICAgICAgICAgICAgICBsZWZ0LFxuICAgICAgICAgICAgICByaWdodCxcbiAgICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgICAgeDogbGVmdCxcbiAgICAgICAgICAgICAgeTogdG9wXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBpc0xlZnRTaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpID09PSAnbGVmdCc7XG4gICAgICAgICAgY29uc3QgbWF4UmlnaHQgPSBtYXgoLi4uY2xpZW50UmVjdHMubWFwKHJlY3QgPT4gcmVjdC5yaWdodCkpO1xuICAgICAgICAgIGNvbnN0IG1pbkxlZnQgPSBtaW4oLi4uY2xpZW50UmVjdHMubWFwKHJlY3QgPT4gcmVjdC5sZWZ0KSk7XG4gICAgICAgICAgY29uc3QgbWVhc3VyZVJlY3RzID0gY2xpZW50UmVjdHMuZmlsdGVyKHJlY3QgPT4gaXNMZWZ0U2lkZSA/IHJlY3QubGVmdCA9PT0gbWluTGVmdCA6IHJlY3QucmlnaHQgPT09IG1heFJpZ2h0KTtcbiAgICAgICAgICBjb25zdCB0b3AgPSBtZWFzdXJlUmVjdHNbMF0udG9wO1xuICAgICAgICAgIGNvbnN0IGJvdHRvbSA9IG1lYXN1cmVSZWN0c1ttZWFzdXJlUmVjdHMubGVuZ3RoIC0gMV0uYm90dG9tO1xuICAgICAgICAgIGNvbnN0IGxlZnQgPSBtaW5MZWZ0O1xuICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gbWF4UmlnaHQ7XG4gICAgICAgICAgY29uc3Qgd2lkdGggPSByaWdodCAtIGxlZnQ7XG4gICAgICAgICAgY29uc3QgaGVpZ2h0ID0gYm90dG9tIC0gdG9wO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICBib3R0b20sXG4gICAgICAgICAgICBsZWZ0LFxuICAgICAgICAgICAgcmlnaHQsXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIHg6IGxlZnQsXG4gICAgICAgICAgICB5OiB0b3BcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxsYmFjaztcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc2V0UmVjdHMgPSBhd2FpdCBwbGF0Zm9ybS5nZXRFbGVtZW50UmVjdHMoe1xuICAgICAgICByZWZlcmVuY2U6IHtcbiAgICAgICAgICBnZXRCb3VuZGluZ0NsaWVudFJlY3RcbiAgICAgICAgfSxcbiAgICAgICAgZmxvYXRpbmc6IGVsZW1lbnRzLmZsb2F0aW5nLFxuICAgICAgICBzdHJhdGVneVxuICAgICAgfSk7XG4gICAgICBpZiAocmVjdHMucmVmZXJlbmNlLnggIT09IHJlc2V0UmVjdHMucmVmZXJlbmNlLnggfHwgcmVjdHMucmVmZXJlbmNlLnkgIT09IHJlc2V0UmVjdHMucmVmZXJlbmNlLnkgfHwgcmVjdHMucmVmZXJlbmNlLndpZHRoICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS53aWR0aCB8fCByZWN0cy5yZWZlcmVuY2UuaGVpZ2h0ICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS5oZWlnaHQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZXNldDoge1xuICAgICAgICAgICAgcmVjdHM6IHJlc2V0UmVjdHNcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICB9O1xufTtcblxuLy8gRm9yIHR5cGUgYmFja3dhcmRzLWNvbXBhdGliaWxpdHksIHRoZSBgT2Zmc2V0T3B0aW9uc2AgdHlwZSB3YXMgYWxzb1xuLy8gRGVyaXZhYmxlLlxuXG5hc3luYyBmdW5jdGlvbiBjb252ZXJ0VmFsdWVUb0Nvb3JkcyhzdGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCB7XG4gICAgcGxhY2VtZW50LFxuICAgIHBsYXRmb3JtLFxuICAgIGVsZW1lbnRzXG4gIH0gPSBzdGF0ZTtcbiAgY29uc3QgcnRsID0gYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpO1xuICBjb25zdCBzaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpO1xuICBjb25zdCBhbGlnbm1lbnQgPSBnZXRBbGlnbm1lbnQocGxhY2VtZW50KTtcbiAgY29uc3QgaXNWZXJ0aWNhbCA9IGdldFNpZGVBeGlzKHBsYWNlbWVudCkgPT09ICd5JztcbiAgY29uc3QgbWFpbkF4aXNNdWx0aSA9IFsnbGVmdCcsICd0b3AnXS5pbmNsdWRlcyhzaWRlKSA/IC0xIDogMTtcbiAgY29uc3QgY3Jvc3NBeGlzTXVsdGkgPSBydGwgJiYgaXNWZXJ0aWNhbCA/IC0xIDogMTtcbiAgY29uc3QgcmF3VmFsdWUgPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICBsZXQge1xuICAgIG1haW5BeGlzLFxuICAgIGNyb3NzQXhpcyxcbiAgICBhbGlnbm1lbnRBeGlzXG4gIH0gPSB0eXBlb2YgcmF3VmFsdWUgPT09ICdudW1iZXInID8ge1xuICAgIG1haW5BeGlzOiByYXdWYWx1ZSxcbiAgICBjcm9zc0F4aXM6IDAsXG4gICAgYWxpZ25tZW50QXhpczogbnVsbFxuICB9IDoge1xuICAgIG1haW5BeGlzOiByYXdWYWx1ZS5tYWluQXhpcyB8fCAwLFxuICAgIGNyb3NzQXhpczogcmF3VmFsdWUuY3Jvc3NBeGlzIHx8IDAsXG4gICAgYWxpZ25tZW50QXhpczogcmF3VmFsdWUuYWxpZ25tZW50QXhpc1xuICB9O1xuICBpZiAoYWxpZ25tZW50ICYmIHR5cGVvZiBhbGlnbm1lbnRBeGlzID09PSAnbnVtYmVyJykge1xuICAgIGNyb3NzQXhpcyA9IGFsaWdubWVudCA9PT0gJ2VuZCcgPyBhbGlnbm1lbnRBeGlzICogLTEgOiBhbGlnbm1lbnRBeGlzO1xuICB9XG4gIHJldHVybiBpc1ZlcnRpY2FsID8ge1xuICAgIHg6IGNyb3NzQXhpcyAqIGNyb3NzQXhpc011bHRpLFxuICAgIHk6IG1haW5BeGlzICogbWFpbkF4aXNNdWx0aVxuICB9IDoge1xuICAgIHg6IG1haW5BeGlzICogbWFpbkF4aXNNdWx0aSxcbiAgICB5OiBjcm9zc0F4aXMgKiBjcm9zc0F4aXNNdWx0aVxuICB9O1xufVxuXG4vKipcbiAqIE1vZGlmaWVzIHRoZSBwbGFjZW1lbnQgYnkgdHJhbnNsYXRpbmcgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYWxvbmcgdGhlXG4gKiBzcGVjaWZpZWQgYXhlcy5cbiAqIEEgbnVtYmVyIChzaG9ydGhhbmQgZm9yIGBtYWluQXhpc2Agb3IgZGlzdGFuY2UpLCBvciBhbiBheGVzIGNvbmZpZ3VyYXRpb25cbiAqIG9iamVjdCBtYXkgYmUgcGFzc2VkLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL29mZnNldFxuICovXG5jb25zdCBvZmZzZXQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IDA7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnb2Zmc2V0JyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICB2YXIgX21pZGRsZXdhcmVEYXRhJG9mZnNlLCBfbWlkZGxld2FyZURhdGEkYXJyb3c7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHgsXG4gICAgICAgIHksXG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgbWlkZGxld2FyZURhdGFcbiAgICAgIH0gPSBzdGF0ZTtcbiAgICAgIGNvbnN0IGRpZmZDb29yZHMgPSBhd2FpdCBjb252ZXJ0VmFsdWVUb0Nvb3JkcyhzdGF0ZSwgb3B0aW9ucyk7XG5cbiAgICAgIC8vIElmIHRoZSBwbGFjZW1lbnQgaXMgdGhlIHNhbWUgYW5kIHRoZSBhcnJvdyBjYXVzZWQgYW4gYWxpZ25tZW50IG9mZnNldFxuICAgICAgLy8gdGhlbiB3ZSBkb24ndCBuZWVkIHRvIGNoYW5nZSB0aGUgcG9zaXRpb25pbmcgY29vcmRpbmF0ZXMuXG4gICAgICBpZiAocGxhY2VtZW50ID09PSAoKF9taWRkbGV3YXJlRGF0YSRvZmZzZSA9IG1pZGRsZXdhcmVEYXRhLm9mZnNldCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRvZmZzZS5wbGFjZW1lbnQpICYmIChfbWlkZGxld2FyZURhdGEkYXJyb3cgPSBtaWRkbGV3YXJlRGF0YS5hcnJvdykgIT0gbnVsbCAmJiBfbWlkZGxld2FyZURhdGEkYXJyb3cuYWxpZ25tZW50T2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IHggKyBkaWZmQ29vcmRzLngsXG4gICAgICAgIHk6IHkgKyBkaWZmQ29vcmRzLnksXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi5kaWZmQ29vcmRzLFxuICAgICAgICAgIHBsYWNlbWVudFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IHNoaWZ0aW5nIGl0IGluIG9yZGVyIHRvXG4gKiBrZWVwIGl0IGluIHZpZXcgd2hlbiBpdCB3aWxsIG92ZXJmbG93IHRoZSBjbGlwcGluZyBib3VuZGFyeS5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaGlmdFxuICovXG5jb25zdCBzaGlmdCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnc2hpZnQnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgcGxhY2VtZW50XG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1haW5BeGlzOiBjaGVja01haW5BeGlzID0gdHJ1ZSxcbiAgICAgICAgY3Jvc3NBeGlzOiBjaGVja0Nyb3NzQXhpcyA9IGZhbHNlLFxuICAgICAgICBsaW1pdGVyID0ge1xuICAgICAgICAgIGZuOiBfcmVmID0+IHtcbiAgICAgICAgICAgIGxldCB7XG4gICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgIHlcbiAgICAgICAgICAgIH0gPSBfcmVmO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgeVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIGNvbnN0IGNvb3JkcyA9IHtcbiAgICAgICAgeCxcbiAgICAgICAgeVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIGRldGVjdE92ZXJmbG93T3B0aW9ucyk7XG4gICAgICBjb25zdCBjcm9zc0F4aXMgPSBnZXRTaWRlQXhpcyhnZXRTaWRlKHBsYWNlbWVudCkpO1xuICAgICAgY29uc3QgbWFpbkF4aXMgPSBnZXRPcHBvc2l0ZUF4aXMoY3Jvc3NBeGlzKTtcbiAgICAgIGxldCBtYWluQXhpc0Nvb3JkID0gY29vcmRzW21haW5BeGlzXTtcbiAgICAgIGxldCBjcm9zc0F4aXNDb29yZCA9IGNvb3Jkc1tjcm9zc0F4aXNdO1xuICAgICAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcbiAgICAgICAgY29uc3QgbWluU2lkZSA9IG1haW5BeGlzID09PSAneScgPyAndG9wJyA6ICdsZWZ0JztcbiAgICAgICAgY29uc3QgbWF4U2lkZSA9IG1haW5BeGlzID09PSAneScgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgICAgIGNvbnN0IG1pbiA9IG1haW5BeGlzQ29vcmQgKyBvdmVyZmxvd1ttaW5TaWRlXTtcbiAgICAgICAgY29uc3QgbWF4ID0gbWFpbkF4aXNDb29yZCAtIG92ZXJmbG93W21heFNpZGVdO1xuICAgICAgICBtYWluQXhpc0Nvb3JkID0gY2xhbXAobWluLCBtYWluQXhpc0Nvb3JkLCBtYXgpO1xuICAgICAgfVxuICAgICAgaWYgKGNoZWNrQ3Jvc3NBeGlzKSB7XG4gICAgICAgIGNvbnN0IG1pblNpZGUgPSBjcm9zc0F4aXMgPT09ICd5JyA/ICd0b3AnIDogJ2xlZnQnO1xuICAgICAgICBjb25zdCBtYXhTaWRlID0gY3Jvc3NBeGlzID09PSAneScgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgICAgIGNvbnN0IG1pbiA9IGNyb3NzQXhpc0Nvb3JkICsgb3ZlcmZsb3dbbWluU2lkZV07XG4gICAgICAgIGNvbnN0IG1heCA9IGNyb3NzQXhpc0Nvb3JkIC0gb3ZlcmZsb3dbbWF4U2lkZV07XG4gICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gY2xhbXAobWluLCBjcm9zc0F4aXNDb29yZCwgbWF4KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxpbWl0ZWRDb29yZHMgPSBsaW1pdGVyLmZuKHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIFttYWluQXhpc106IG1haW5BeGlzQ29vcmQsXG4gICAgICAgIFtjcm9zc0F4aXNdOiBjcm9zc0F4aXNDb29yZFxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5saW1pdGVkQ29vcmRzLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgeDogbGltaXRlZENvb3Jkcy54IC0geCxcbiAgICAgICAgICB5OiBsaW1pdGVkQ29vcmRzLnkgLSB5LFxuICAgICAgICAgIGVuYWJsZWQ6IHtcbiAgICAgICAgICAgIFttYWluQXhpc106IGNoZWNrTWFpbkF4aXMsXG4gICAgICAgICAgICBbY3Jvc3NBeGlzXTogY2hlY2tDcm9zc0F4aXNcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9O1xufTtcbi8qKlxuICogQnVpbHQtaW4gYGxpbWl0ZXJgIHRoYXQgd2lsbCBzdG9wIGBzaGlmdCgpYCBhdCBhIGNlcnRhaW4gcG9pbnQuXG4gKi9cbmNvbnN0IGxpbWl0U2hpZnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgb3B0aW9ucyxcbiAgICBmbihzdGF0ZSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHJlY3RzLFxuICAgICAgICBtaWRkbGV3YXJlRGF0YVxuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBvZmZzZXQgPSAwLFxuICAgICAgICBtYWluQXhpczogY2hlY2tNYWluQXhpcyA9IHRydWUsXG4gICAgICAgIGNyb3NzQXhpczogY2hlY2tDcm9zc0F4aXMgPSB0cnVlXG4gICAgICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xuICAgICAgY29uc3QgY29vcmRzID0ge1xuICAgICAgICB4LFxuICAgICAgICB5XG4gICAgICB9O1xuICAgICAgY29uc3QgY3Jvc3NBeGlzID0gZ2V0U2lkZUF4aXMocGxhY2VtZW50KTtcbiAgICAgIGNvbnN0IG1haW5BeGlzID0gZ2V0T3Bwb3NpdGVBeGlzKGNyb3NzQXhpcyk7XG4gICAgICBsZXQgbWFpbkF4aXNDb29yZCA9IGNvb3Jkc1ttYWluQXhpc107XG4gICAgICBsZXQgY3Jvc3NBeGlzQ29vcmQgPSBjb29yZHNbY3Jvc3NBeGlzXTtcbiAgICAgIGNvbnN0IHJhd09mZnNldCA9IGV2YWx1YXRlKG9mZnNldCwgc3RhdGUpO1xuICAgICAgY29uc3QgY29tcHV0ZWRPZmZzZXQgPSB0eXBlb2YgcmF3T2Zmc2V0ID09PSAnbnVtYmVyJyA/IHtcbiAgICAgICAgbWFpbkF4aXM6IHJhd09mZnNldCxcbiAgICAgICAgY3Jvc3NBeGlzOiAwXG4gICAgICB9IDoge1xuICAgICAgICBtYWluQXhpczogMCxcbiAgICAgICAgY3Jvc3NBeGlzOiAwLFxuICAgICAgICAuLi5yYXdPZmZzZXRcbiAgICAgIH07XG4gICAgICBpZiAoY2hlY2tNYWluQXhpcykge1xuICAgICAgICBjb25zdCBsZW4gPSBtYWluQXhpcyA9PT0gJ3knID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xuICAgICAgICBjb25zdCBsaW1pdE1pbiA9IHJlY3RzLnJlZmVyZW5jZVttYWluQXhpc10gLSByZWN0cy5mbG9hdGluZ1tsZW5dICsgY29tcHV0ZWRPZmZzZXQubWFpbkF4aXM7XG4gICAgICAgIGNvbnN0IGxpbWl0TWF4ID0gcmVjdHMucmVmZXJlbmNlW21haW5BeGlzXSArIHJlY3RzLnJlZmVyZW5jZVtsZW5dIC0gY29tcHV0ZWRPZmZzZXQubWFpbkF4aXM7XG4gICAgICAgIGlmIChtYWluQXhpc0Nvb3JkIDwgbGltaXRNaW4pIHtcbiAgICAgICAgICBtYWluQXhpc0Nvb3JkID0gbGltaXRNaW47XG4gICAgICAgIH0gZWxzZSBpZiAobWFpbkF4aXNDb29yZCA+IGxpbWl0TWF4KSB7XG4gICAgICAgICAgbWFpbkF4aXNDb29yZCA9IGxpbWl0TWF4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY2hlY2tDcm9zc0F4aXMpIHtcbiAgICAgICAgdmFyIF9taWRkbGV3YXJlRGF0YSRvZmZzZSwgX21pZGRsZXdhcmVEYXRhJG9mZnNlMjtcbiAgICAgICAgY29uc3QgbGVuID0gbWFpbkF4aXMgPT09ICd5JyA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcbiAgICAgICAgY29uc3QgaXNPcmlnaW5TaWRlID0gWyd0b3AnLCAnbGVmdCddLmluY2x1ZGVzKGdldFNpZGUocGxhY2VtZW50KSk7XG4gICAgICAgIGNvbnN0IGxpbWl0TWluID0gcmVjdHMucmVmZXJlbmNlW2Nyb3NzQXhpc10gLSByZWN0cy5mbG9hdGluZ1tsZW5dICsgKGlzT3JpZ2luU2lkZSA/ICgoX21pZGRsZXdhcmVEYXRhJG9mZnNlID0gbWlkZGxld2FyZURhdGEub2Zmc2V0KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJG9mZnNlW2Nyb3NzQXhpc10pIHx8IDAgOiAwKSArIChpc09yaWdpblNpZGUgPyAwIDogY29tcHV0ZWRPZmZzZXQuY3Jvc3NBeGlzKTtcbiAgICAgICAgY29uc3QgbGltaXRNYXggPSByZWN0cy5yZWZlcmVuY2VbY3Jvc3NBeGlzXSArIHJlY3RzLnJlZmVyZW5jZVtsZW5dICsgKGlzT3JpZ2luU2lkZSA/IDAgOiAoKF9taWRkbGV3YXJlRGF0YSRvZmZzZTIgPSBtaWRkbGV3YXJlRGF0YS5vZmZzZXQpID09IG51bGwgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGEkb2Zmc2UyW2Nyb3NzQXhpc10pIHx8IDApIC0gKGlzT3JpZ2luU2lkZSA/IGNvbXB1dGVkT2Zmc2V0LmNyb3NzQXhpcyA6IDApO1xuICAgICAgICBpZiAoY3Jvc3NBeGlzQ29vcmQgPCBsaW1pdE1pbikge1xuICAgICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gbGltaXRNaW47XG4gICAgICAgIH0gZWxzZSBpZiAoY3Jvc3NBeGlzQ29vcmQgPiBsaW1pdE1heCkge1xuICAgICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gbGltaXRNYXg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIFttYWluQXhpc106IG1haW5BeGlzQ29vcmQsXG4gICAgICAgIFtjcm9zc0F4aXNdOiBjcm9zc0F4aXNDb29yZFxuICAgICAgfTtcbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdGhhdCBhbGxvd3MgeW91IHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCDigJRcbiAqIGZvciBpbnN0YW5jZSwgcHJldmVudCBpdCBmcm9tIG92ZXJmbG93aW5nIHRoZSBjbGlwcGluZyBib3VuZGFyeSBvciBtYXRjaCB0aGVcbiAqIHdpZHRoIG9mIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaXplXG4gKi9cbmNvbnN0IHNpemUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3NpemUnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIHZhciBfc3RhdGUkbWlkZGxld2FyZURhdGEsIF9zdGF0ZSRtaWRkbGV3YXJlRGF0YTI7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgcmVjdHMsXG4gICAgICAgIHBsYXRmb3JtLFxuICAgICAgICBlbGVtZW50c1xuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBhcHBseSA9ICgpID0+IHt9LFxuICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnNcbiAgICAgIH0gPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XG4gICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCBkZXRlY3RPdmVyZmxvd09wdGlvbnMpO1xuICAgICAgY29uc3Qgc2lkZSA9IGdldFNpZGUocGxhY2VtZW50KTtcbiAgICAgIGNvbnN0IGFsaWdubWVudCA9IGdldEFsaWdubWVudChwbGFjZW1lbnQpO1xuICAgICAgY29uc3QgaXNZQXhpcyA9IGdldFNpZGVBeGlzKHBsYWNlbWVudCkgPT09ICd5JztcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgICAgfSA9IHJlY3RzLmZsb2F0aW5nO1xuICAgICAgbGV0IGhlaWdodFNpZGU7XG4gICAgICBsZXQgd2lkdGhTaWRlO1xuICAgICAgaWYgKHNpZGUgPT09ICd0b3AnIHx8IHNpZGUgPT09ICdib3R0b20nKSB7XG4gICAgICAgIGhlaWdodFNpZGUgPSBzaWRlO1xuICAgICAgICB3aWR0aFNpZGUgPSBhbGlnbm1lbnQgPT09ICgoYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpKSA/ICdzdGFydCcgOiAnZW5kJykgPyAnbGVmdCcgOiAncmlnaHQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2lkdGhTaWRlID0gc2lkZTtcbiAgICAgICAgaGVpZ2h0U2lkZSA9IGFsaWdubWVudCA9PT0gJ2VuZCcgPyAndG9wJyA6ICdib3R0b20nO1xuICAgICAgfVxuICAgICAgY29uc3QgbWF4aW11bUNsaXBwaW5nSGVpZ2h0ID0gaGVpZ2h0IC0gb3ZlcmZsb3cudG9wIC0gb3ZlcmZsb3cuYm90dG9tO1xuICAgICAgY29uc3QgbWF4aW11bUNsaXBwaW5nV2lkdGggPSB3aWR0aCAtIG92ZXJmbG93LmxlZnQgLSBvdmVyZmxvdy5yaWdodDtcbiAgICAgIGNvbnN0IG92ZXJmbG93QXZhaWxhYmxlSGVpZ2h0ID0gbWluKGhlaWdodCAtIG92ZXJmbG93W2hlaWdodFNpZGVdLCBtYXhpbXVtQ2xpcHBpbmdIZWlnaHQpO1xuICAgICAgY29uc3Qgb3ZlcmZsb3dBdmFpbGFibGVXaWR0aCA9IG1pbih3aWR0aCAtIG92ZXJmbG93W3dpZHRoU2lkZV0sIG1heGltdW1DbGlwcGluZ1dpZHRoKTtcbiAgICAgIGNvbnN0IG5vU2hpZnQgPSAhc3RhdGUubWlkZGxld2FyZURhdGEuc2hpZnQ7XG4gICAgICBsZXQgYXZhaWxhYmxlSGVpZ2h0ID0gb3ZlcmZsb3dBdmFpbGFibGVIZWlnaHQ7XG4gICAgICBsZXQgYXZhaWxhYmxlV2lkdGggPSBvdmVyZmxvd0F2YWlsYWJsZVdpZHRoO1xuICAgICAgaWYgKChfc3RhdGUkbWlkZGxld2FyZURhdGEgPSBzdGF0ZS5taWRkbGV3YXJlRGF0YS5zaGlmdCkgIT0gbnVsbCAmJiBfc3RhdGUkbWlkZGxld2FyZURhdGEuZW5hYmxlZC54KSB7XG4gICAgICAgIGF2YWlsYWJsZVdpZHRoID0gbWF4aW11bUNsaXBwaW5nV2lkdGg7XG4gICAgICB9XG4gICAgICBpZiAoKF9zdGF0ZSRtaWRkbGV3YXJlRGF0YTIgPSBzdGF0ZS5taWRkbGV3YXJlRGF0YS5zaGlmdCkgIT0gbnVsbCAmJiBfc3RhdGUkbWlkZGxld2FyZURhdGEyLmVuYWJsZWQueSkge1xuICAgICAgICBhdmFpbGFibGVIZWlnaHQgPSBtYXhpbXVtQ2xpcHBpbmdIZWlnaHQ7XG4gICAgICB9XG4gICAgICBpZiAobm9TaGlmdCAmJiAhYWxpZ25tZW50KSB7XG4gICAgICAgIGNvbnN0IHhNaW4gPSBtYXgob3ZlcmZsb3cubGVmdCwgMCk7XG4gICAgICAgIGNvbnN0IHhNYXggPSBtYXgob3ZlcmZsb3cucmlnaHQsIDApO1xuICAgICAgICBjb25zdCB5TWluID0gbWF4KG92ZXJmbG93LnRvcCwgMCk7XG4gICAgICAgIGNvbnN0IHlNYXggPSBtYXgob3ZlcmZsb3cuYm90dG9tLCAwKTtcbiAgICAgICAgaWYgKGlzWUF4aXMpIHtcbiAgICAgICAgICBhdmFpbGFibGVXaWR0aCA9IHdpZHRoIC0gMiAqICh4TWluICE9PSAwIHx8IHhNYXggIT09IDAgPyB4TWluICsgeE1heCA6IG1heChvdmVyZmxvdy5sZWZ0LCBvdmVyZmxvdy5yaWdodCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF2YWlsYWJsZUhlaWdodCA9IGhlaWdodCAtIDIgKiAoeU1pbiAhPT0gMCB8fCB5TWF4ICE9PSAwID8geU1pbiArIHlNYXggOiBtYXgob3ZlcmZsb3cudG9wLCBvdmVyZmxvdy5ib3R0b20pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXdhaXQgYXBwbHkoe1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgYXZhaWxhYmxlV2lkdGgsXG4gICAgICAgIGF2YWlsYWJsZUhlaWdodFxuICAgICAgfSk7XG4gICAgICBjb25zdCBuZXh0RGltZW5zaW9ucyA9IGF3YWl0IHBsYXRmb3JtLmdldERpbWVuc2lvbnMoZWxlbWVudHMuZmxvYXRpbmcpO1xuICAgICAgaWYgKHdpZHRoICE9PSBuZXh0RGltZW5zaW9ucy53aWR0aCB8fCBoZWlnaHQgIT09IG5leHREaW1lbnNpb25zLmhlaWdodCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlc2V0OiB7XG4gICAgICAgICAgICByZWN0czogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgeyBhcnJvdywgYXV0b1BsYWNlbWVudCwgY29tcHV0ZVBvc2l0aW9uLCBkZXRlY3RPdmVyZmxvdywgZmxpcCwgaGlkZSwgaW5saW5lLCBsaW1pdFNoaWZ0LCBvZmZzZXQsIHNoaWZ0LCBzaXplIH07XG4iLCJmdW5jdGlvbiBoYXNXaW5kb3coKSB7XG4gIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcbn1cbmZ1bmN0aW9uIGdldE5vZGVOYW1lKG5vZGUpIHtcbiAgaWYgKGlzTm9kZShub2RlKSkge1xuICAgIHJldHVybiAobm9kZS5ub2RlTmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcbiAgfVxuICAvLyBNb2NrZWQgbm9kZXMgaW4gdGVzdGluZyBlbnZpcm9ubWVudHMgbWF5IG5vdCBiZSBpbnN0YW5jZXMgb2YgTm9kZS4gQnlcbiAgLy8gcmV0dXJuaW5nIGAjZG9jdW1lbnRgIGFuIGluZmluaXRlIGxvb3Agd29uJ3Qgb2NjdXIuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMjMxN1xuICByZXR1cm4gJyNkb2N1bWVudCc7XG59XG5mdW5jdGlvbiBnZXRXaW5kb3cobm9kZSkge1xuICB2YXIgX25vZGUkb3duZXJEb2N1bWVudDtcbiAgcmV0dXJuIChub2RlID09IG51bGwgfHwgKF9ub2RlJG93bmVyRG9jdW1lbnQgPSBub2RlLm93bmVyRG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZSRvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSB8fCB3aW5kb3c7XG59XG5mdW5jdGlvbiBnZXREb2N1bWVudEVsZW1lbnQobm9kZSkge1xuICB2YXIgX3JlZjtcbiAgcmV0dXJuIChfcmVmID0gKGlzTm9kZShub2RlKSA/IG5vZGUub3duZXJEb2N1bWVudCA6IG5vZGUuZG9jdW1lbnQpIHx8IHdpbmRvdy5kb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZWYuZG9jdW1lbnRFbGVtZW50O1xufVxuZnVuY3Rpb24gaXNOb2RlKHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgTm9kZSB8fCB2YWx1ZSBpbnN0YW5jZW9mIGdldFdpbmRvdyh2YWx1ZSkuTm9kZTtcbn1cbmZ1bmN0aW9uIGlzRWxlbWVudCh2YWx1ZSkge1xuICBpZiAoIWhhc1dpbmRvdygpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLkVsZW1lbnQ7XG59XG5mdW5jdGlvbiBpc0hUTUxFbGVtZW50KHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLkhUTUxFbGVtZW50O1xufVxuZnVuY3Rpb24gaXNTaGFkb3dSb290KHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkgfHwgdHlwZW9mIFNoYWRvd1Jvb3QgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLlNoYWRvd1Jvb3Q7XG59XG5mdW5jdGlvbiBpc092ZXJmbG93RWxlbWVudChlbGVtZW50KSB7XG4gIGNvbnN0IHtcbiAgICBvdmVyZmxvdyxcbiAgICBvdmVyZmxvd1gsXG4gICAgb3ZlcmZsb3dZLFxuICAgIGRpc3BsYXlcbiAgfSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gIHJldHVybiAvYXV0b3xzY3JvbGx8b3ZlcmxheXxoaWRkZW58Y2xpcC8udGVzdChvdmVyZmxvdyArIG92ZXJmbG93WSArIG92ZXJmbG93WCkgJiYgIVsnaW5saW5lJywgJ2NvbnRlbnRzJ10uaW5jbHVkZXMoZGlzcGxheSk7XG59XG5mdW5jdGlvbiBpc1RhYmxlRWxlbWVudChlbGVtZW50KSB7XG4gIHJldHVybiBbJ3RhYmxlJywgJ3RkJywgJ3RoJ10uaW5jbHVkZXMoZ2V0Tm9kZU5hbWUoZWxlbWVudCkpO1xufVxuZnVuY3Rpb24gaXNUb3BMYXllcihlbGVtZW50KSB7XG4gIHJldHVybiBbJzpwb3BvdmVyLW9wZW4nLCAnOm1vZGFsJ10uc29tZShzZWxlY3RvciA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBlbGVtZW50Lm1hdGNoZXMoc2VsZWN0b3IpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0pO1xufVxuZnVuY3Rpb24gaXNDb250YWluaW5nQmxvY2soZWxlbWVudE9yQ3NzKSB7XG4gIGNvbnN0IHdlYmtpdCA9IGlzV2ViS2l0KCk7XG4gIGNvbnN0IGNzcyA9IGlzRWxlbWVudChlbGVtZW50T3JDc3MpID8gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50T3JDc3MpIDogZWxlbWVudE9yQ3NzO1xuXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Db250YWluaW5nX2Jsb2NrI2lkZW50aWZ5aW5nX3RoZV9jb250YWluaW5nX2Jsb2NrXG4gIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdHJhbnNmb3Jtcy0yLyNpbmRpdmlkdWFsLXRyYW5zZm9ybXNcbiAgcmV0dXJuIFsndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZScsICdzY2FsZScsICdyb3RhdGUnLCAncGVyc3BlY3RpdmUnXS5zb21lKHZhbHVlID0+IGNzc1t2YWx1ZV0gPyBjc3NbdmFsdWVdICE9PSAnbm9uZScgOiBmYWxzZSkgfHwgKGNzcy5jb250YWluZXJUeXBlID8gY3NzLmNvbnRhaW5lclR5cGUgIT09ICdub3JtYWwnIDogZmFsc2UpIHx8ICF3ZWJraXQgJiYgKGNzcy5iYWNrZHJvcEZpbHRlciA/IGNzcy5iYWNrZHJvcEZpbHRlciAhPT0gJ25vbmUnIDogZmFsc2UpIHx8ICF3ZWJraXQgJiYgKGNzcy5maWx0ZXIgPyBjc3MuZmlsdGVyICE9PSAnbm9uZScgOiBmYWxzZSkgfHwgWyd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlJywgJ3NjYWxlJywgJ3JvdGF0ZScsICdwZXJzcGVjdGl2ZScsICdmaWx0ZXInXS5zb21lKHZhbHVlID0+IChjc3Mud2lsbENoYW5nZSB8fCAnJykuaW5jbHVkZXModmFsdWUpKSB8fCBbJ3BhaW50JywgJ2xheW91dCcsICdzdHJpY3QnLCAnY29udGVudCddLnNvbWUodmFsdWUgPT4gKGNzcy5jb250YWluIHx8ICcnKS5pbmNsdWRlcyh2YWx1ZSkpO1xufVxuZnVuY3Rpb24gZ2V0Q29udGFpbmluZ0Jsb2NrKGVsZW1lbnQpIHtcbiAgbGV0IGN1cnJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcbiAgd2hpbGUgKGlzSFRNTEVsZW1lbnQoY3VycmVudE5vZGUpICYmICFpc0xhc3RUcmF2ZXJzYWJsZU5vZGUoY3VycmVudE5vZGUpKSB7XG4gICAgaWYgKGlzQ29udGFpbmluZ0Jsb2NrKGN1cnJlbnROb2RlKSkge1xuICAgICAgcmV0dXJuIGN1cnJlbnROb2RlO1xuICAgIH0gZWxzZSBpZiAoaXNUb3BMYXllcihjdXJyZW50Tm9kZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjdXJyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoY3VycmVudE5vZGUpO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gaXNXZWJLaXQoKSB7XG4gIGlmICh0eXBlb2YgQ1NTID09PSAndW5kZWZpbmVkJyB8fCAhQ1NTLnN1cHBvcnRzKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBDU1Muc3VwcG9ydHMoJy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyJywgJ25vbmUnKTtcbn1cbmZ1bmN0aW9uIGlzTGFzdFRyYXZlcnNhYmxlTm9kZShub2RlKSB7XG4gIHJldHVybiBbJ2h0bWwnLCAnYm9keScsICcjZG9jdW1lbnQnXS5pbmNsdWRlcyhnZXROb2RlTmFtZShub2RlKSk7XG59XG5mdW5jdGlvbiBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGdldFdpbmRvdyhlbGVtZW50KS5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xufVxuZnVuY3Rpb24gZ2V0Tm9kZVNjcm9sbChlbGVtZW50KSB7XG4gIGlmIChpc0VsZW1lbnQoZWxlbWVudCkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2Nyb2xsTGVmdDogZWxlbWVudC5zY3JvbGxMZWZ0LFxuICAgICAgc2Nyb2xsVG9wOiBlbGVtZW50LnNjcm9sbFRvcFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBzY3JvbGxMZWZ0OiBlbGVtZW50LnNjcm9sbFgsXG4gICAgc2Nyb2xsVG9wOiBlbGVtZW50LnNjcm9sbFlcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldFBhcmVudE5vZGUobm9kZSkge1xuICBpZiAoZ2V0Tm9kZU5hbWUobm9kZSkgPT09ICdodG1sJykge1xuICAgIHJldHVybiBub2RlO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9XG4gIC8vIFN0ZXAgaW50byB0aGUgc2hhZG93IERPTSBvZiB0aGUgcGFyZW50IG9mIGEgc2xvdHRlZCBub2RlLlxuICBub2RlLmFzc2lnbmVkU2xvdCB8fFxuICAvLyBET00gRWxlbWVudCBkZXRlY3RlZC5cbiAgbm9kZS5wYXJlbnROb2RlIHx8XG4gIC8vIFNoYWRvd1Jvb3QgZGV0ZWN0ZWQuXG4gIGlzU2hhZG93Um9vdChub2RlKSAmJiBub2RlLmhvc3QgfHxcbiAgLy8gRmFsbGJhY2suXG4gIGdldERvY3VtZW50RWxlbWVudChub2RlKTtcbiAgcmV0dXJuIGlzU2hhZG93Um9vdChyZXN1bHQpID8gcmVzdWx0Lmhvc3QgOiByZXN1bHQ7XG59XG5mdW5jdGlvbiBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3Rvcihub2RlKSB7XG4gIGNvbnN0IHBhcmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKG5vZGUpO1xuICBpZiAoaXNMYXN0VHJhdmVyc2FibGVOb2RlKHBhcmVudE5vZGUpKSB7XG4gICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVudCA/IG5vZGUub3duZXJEb2N1bWVudC5ib2R5IDogbm9kZS5ib2R5O1xuICB9XG4gIGlmIChpc0hUTUxFbGVtZW50KHBhcmVudE5vZGUpICYmIGlzT3ZlcmZsb3dFbGVtZW50KHBhcmVudE5vZGUpKSB7XG4gICAgcmV0dXJuIHBhcmVudE5vZGU7XG4gIH1cbiAgcmV0dXJuIGdldE5lYXJlc3RPdmVyZmxvd0FuY2VzdG9yKHBhcmVudE5vZGUpO1xufVxuZnVuY3Rpb24gZ2V0T3ZlcmZsb3dBbmNlc3RvcnMobm9kZSwgbGlzdCwgdHJhdmVyc2VJZnJhbWVzKSB7XG4gIHZhciBfbm9kZSRvd25lckRvY3VtZW50MjtcbiAgaWYgKGxpc3QgPT09IHZvaWQgMCkge1xuICAgIGxpc3QgPSBbXTtcbiAgfVxuICBpZiAodHJhdmVyc2VJZnJhbWVzID09PSB2b2lkIDApIHtcbiAgICB0cmF2ZXJzZUlmcmFtZXMgPSB0cnVlO1xuICB9XG4gIGNvbnN0IHNjcm9sbGFibGVBbmNlc3RvciA9IGdldE5lYXJlc3RPdmVyZmxvd0FuY2VzdG9yKG5vZGUpO1xuICBjb25zdCBpc0JvZHkgPSBzY3JvbGxhYmxlQW5jZXN0b3IgPT09ICgoX25vZGUkb3duZXJEb2N1bWVudDIgPSBub2RlLm93bmVyRG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZSRvd25lckRvY3VtZW50Mi5ib2R5KTtcbiAgY29uc3Qgd2luID0gZ2V0V2luZG93KHNjcm9sbGFibGVBbmNlc3Rvcik7XG4gIGlmIChpc0JvZHkpIHtcbiAgICBjb25zdCBmcmFtZUVsZW1lbnQgPSBnZXRGcmFtZUVsZW1lbnQod2luKTtcbiAgICByZXR1cm4gbGlzdC5jb25jYXQod2luLCB3aW4udmlzdWFsVmlld3BvcnQgfHwgW10sIGlzT3ZlcmZsb3dFbGVtZW50KHNjcm9sbGFibGVBbmNlc3RvcikgPyBzY3JvbGxhYmxlQW5jZXN0b3IgOiBbXSwgZnJhbWVFbGVtZW50ICYmIHRyYXZlcnNlSWZyYW1lcyA/IGdldE92ZXJmbG93QW5jZXN0b3JzKGZyYW1lRWxlbWVudCkgOiBbXSk7XG4gIH1cbiAgcmV0dXJuIGxpc3QuY29uY2F0KHNjcm9sbGFibGVBbmNlc3RvciwgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoc2Nyb2xsYWJsZUFuY2VzdG9yLCBbXSwgdHJhdmVyc2VJZnJhbWVzKSk7XG59XG5mdW5jdGlvbiBnZXRGcmFtZUVsZW1lbnQod2luKSB7XG4gIHJldHVybiB3aW4ucGFyZW50ICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZih3aW4ucGFyZW50KSA/IHdpbi5mcmFtZUVsZW1lbnQgOiBudWxsO1xufVxuXG5leHBvcnQgeyBnZXRDb21wdXRlZFN0eWxlLCBnZXRDb250YWluaW5nQmxvY2ssIGdldERvY3VtZW50RWxlbWVudCwgZ2V0RnJhbWVFbGVtZW50LCBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3RvciwgZ2V0Tm9kZU5hbWUsIGdldE5vZGVTY3JvbGwsIGdldE92ZXJmbG93QW5jZXN0b3JzLCBnZXRQYXJlbnROb2RlLCBnZXRXaW5kb3csIGlzQ29udGFpbmluZ0Jsb2NrLCBpc0VsZW1lbnQsIGlzSFRNTEVsZW1lbnQsIGlzTGFzdFRyYXZlcnNhYmxlTm9kZSwgaXNOb2RlLCBpc092ZXJmbG93RWxlbWVudCwgaXNTaGFkb3dSb290LCBpc1RhYmxlRWxlbWVudCwgaXNUb3BMYXllciwgaXNXZWJLaXQgfTtcbiIsImltcG9ydCB7IHJlY3RUb0NsaWVudFJlY3QsIGRldGVjdE92ZXJmbG93IGFzIGRldGVjdE92ZXJmbG93JDEsIG9mZnNldCBhcyBvZmZzZXQkMSwgYXV0b1BsYWNlbWVudCBhcyBhdXRvUGxhY2VtZW50JDEsIHNoaWZ0IGFzIHNoaWZ0JDEsIGZsaXAgYXMgZmxpcCQxLCBzaXplIGFzIHNpemUkMSwgaGlkZSBhcyBoaWRlJDEsIGFycm93IGFzIGFycm93JDEsIGlubGluZSBhcyBpbmxpbmUkMSwgbGltaXRTaGlmdCBhcyBsaW1pdFNoaWZ0JDEsIGNvbXB1dGVQb3NpdGlvbiBhcyBjb21wdXRlUG9zaXRpb24kMSB9IGZyb20gJ0BmbG9hdGluZy11aS9jb3JlJztcbmltcG9ydCB7IHJvdW5kLCBjcmVhdGVDb29yZHMsIG1heCwgbWluLCBmbG9vciB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscyc7XG5pbXBvcnQgeyBnZXRDb21wdXRlZFN0eWxlLCBpc0hUTUxFbGVtZW50LCBpc0VsZW1lbnQsIGdldFdpbmRvdywgaXNXZWJLaXQsIGdldEZyYW1lRWxlbWVudCwgZ2V0Tm9kZVNjcm9sbCwgZ2V0RG9jdW1lbnRFbGVtZW50LCBpc1RvcExheWVyLCBnZXROb2RlTmFtZSwgaXNPdmVyZmxvd0VsZW1lbnQsIGdldE92ZXJmbG93QW5jZXN0b3JzLCBnZXRQYXJlbnROb2RlLCBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUsIGlzQ29udGFpbmluZ0Jsb2NrLCBpc1RhYmxlRWxlbWVudCwgZ2V0Q29udGFpbmluZ0Jsb2NrIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3V0aWxzL2RvbSc7XG5leHBvcnQgeyBnZXRPdmVyZmxvd0FuY2VzdG9ycyB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscy9kb20nO1xuXG5mdW5jdGlvbiBnZXRDc3NEaW1lbnNpb25zKGVsZW1lbnQpIHtcbiAgY29uc3QgY3NzID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgLy8gSW4gdGVzdGluZyBlbnZpcm9ubWVudHMsIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBwcm9wZXJ0aWVzIGFyZSBlbXB0eVxuICAvLyBzdHJpbmdzIGZvciBTVkcgZWxlbWVudHMsIHJldHVybmluZyBOYU4uIEZhbGxiYWNrIHRvIGAwYCBpbiB0aGlzIGNhc2UuXG4gIGxldCB3aWR0aCA9IHBhcnNlRmxvYXQoY3NzLndpZHRoKSB8fCAwO1xuICBsZXQgaGVpZ2h0ID0gcGFyc2VGbG9hdChjc3MuaGVpZ2h0KSB8fCAwO1xuICBjb25zdCBoYXNPZmZzZXQgPSBpc0hUTUxFbGVtZW50KGVsZW1lbnQpO1xuICBjb25zdCBvZmZzZXRXaWR0aCA9IGhhc09mZnNldCA/IGVsZW1lbnQub2Zmc2V0V2lkdGggOiB3aWR0aDtcbiAgY29uc3Qgb2Zmc2V0SGVpZ2h0ID0gaGFzT2Zmc2V0ID8gZWxlbWVudC5vZmZzZXRIZWlnaHQgOiBoZWlnaHQ7XG4gIGNvbnN0IHNob3VsZEZhbGxiYWNrID0gcm91bmQod2lkdGgpICE9PSBvZmZzZXRXaWR0aCB8fCByb3VuZChoZWlnaHQpICE9PSBvZmZzZXRIZWlnaHQ7XG4gIGlmIChzaG91bGRGYWxsYmFjaykge1xuICAgIHdpZHRoID0gb2Zmc2V0V2lkdGg7XG4gICAgaGVpZ2h0ID0gb2Zmc2V0SGVpZ2h0O1xuICB9XG4gIHJldHVybiB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgICQ6IHNob3VsZEZhbGxiYWNrXG4gIH07XG59XG5cbmZ1bmN0aW9uIHVud3JhcEVsZW1lbnQoZWxlbWVudCkge1xuICByZXR1cm4gIWlzRWxlbWVudChlbGVtZW50KSA/IGVsZW1lbnQuY29udGV4dEVsZW1lbnQgOiBlbGVtZW50O1xufVxuXG5mdW5jdGlvbiBnZXRTY2FsZShlbGVtZW50KSB7XG4gIGNvbnN0IGRvbUVsZW1lbnQgPSB1bndyYXBFbGVtZW50KGVsZW1lbnQpO1xuICBpZiAoIWlzSFRNTEVsZW1lbnQoZG9tRWxlbWVudCkpIHtcbiAgICByZXR1cm4gY3JlYXRlQ29vcmRzKDEpO1xuICB9XG4gIGNvbnN0IHJlY3QgPSBkb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgICRcbiAgfSA9IGdldENzc0RpbWVuc2lvbnMoZG9tRWxlbWVudCk7XG4gIGxldCB4ID0gKCQgPyByb3VuZChyZWN0LndpZHRoKSA6IHJlY3Qud2lkdGgpIC8gd2lkdGg7XG4gIGxldCB5ID0gKCQgPyByb3VuZChyZWN0LmhlaWdodCkgOiByZWN0LmhlaWdodCkgLyBoZWlnaHQ7XG5cbiAgLy8gMCwgTmFOLCBvciBJbmZpbml0eSBzaG91bGQgYWx3YXlzIGZhbGxiYWNrIHRvIDEuXG5cbiAgaWYgKCF4IHx8ICFOdW1iZXIuaXNGaW5pdGUoeCkpIHtcbiAgICB4ID0gMTtcbiAgfVxuICBpZiAoIXkgfHwgIU51bWJlci5pc0Zpbml0ZSh5KSkge1xuICAgIHkgPSAxO1xuICB9XG4gIHJldHVybiB7XG4gICAgeCxcbiAgICB5XG4gIH07XG59XG5cbmNvbnN0IG5vT2Zmc2V0cyA9IC8qI19fUFVSRV9fKi9jcmVhdGVDb29yZHMoMCk7XG5mdW5jdGlvbiBnZXRWaXN1YWxPZmZzZXRzKGVsZW1lbnQpIHtcbiAgY29uc3Qgd2luID0gZ2V0V2luZG93KGVsZW1lbnQpO1xuICBpZiAoIWlzV2ViS2l0KCkgfHwgIXdpbi52aXN1YWxWaWV3cG9ydCkge1xuICAgIHJldHVybiBub09mZnNldHM7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB4OiB3aW4udmlzdWFsVmlld3BvcnQub2Zmc2V0TGVmdCxcbiAgICB5OiB3aW4udmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wXG4gIH07XG59XG5mdW5jdGlvbiBzaG91bGRBZGRWaXN1YWxPZmZzZXRzKGVsZW1lbnQsIGlzRml4ZWQsIGZsb2F0aW5nT2Zmc2V0UGFyZW50KSB7XG4gIGlmIChpc0ZpeGVkID09PSB2b2lkIDApIHtcbiAgICBpc0ZpeGVkID0gZmFsc2U7XG4gIH1cbiAgaWYgKCFmbG9hdGluZ09mZnNldFBhcmVudCB8fCBpc0ZpeGVkICYmIGZsb2F0aW5nT2Zmc2V0UGFyZW50ICE9PSBnZXRXaW5kb3coZWxlbWVudCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIGlzRml4ZWQ7XG59XG5cbmZ1bmN0aW9uIGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50LCBpbmNsdWRlU2NhbGUsIGlzRml4ZWRTdHJhdGVneSwgb2Zmc2V0UGFyZW50KSB7XG4gIGlmIChpbmNsdWRlU2NhbGUgPT09IHZvaWQgMCkge1xuICAgIGluY2x1ZGVTY2FsZSA9IGZhbHNlO1xuICB9XG4gIGlmIChpc0ZpeGVkU3RyYXRlZ3kgPT09IHZvaWQgMCkge1xuICAgIGlzRml4ZWRTdHJhdGVneSA9IGZhbHNlO1xuICB9XG4gIGNvbnN0IGNsaWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCBkb21FbGVtZW50ID0gdW53cmFwRWxlbWVudChlbGVtZW50KTtcbiAgbGV0IHNjYWxlID0gY3JlYXRlQ29vcmRzKDEpO1xuICBpZiAoaW5jbHVkZVNjYWxlKSB7XG4gICAgaWYgKG9mZnNldFBhcmVudCkge1xuICAgICAgaWYgKGlzRWxlbWVudChvZmZzZXRQYXJlbnQpKSB7XG4gICAgICAgIHNjYWxlID0gZ2V0U2NhbGUob2Zmc2V0UGFyZW50KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2NhbGUgPSBnZXRTY2FsZShlbGVtZW50KTtcbiAgICB9XG4gIH1cbiAgY29uc3QgdmlzdWFsT2Zmc2V0cyA9IHNob3VsZEFkZFZpc3VhbE9mZnNldHMoZG9tRWxlbWVudCwgaXNGaXhlZFN0cmF0ZWd5LCBvZmZzZXRQYXJlbnQpID8gZ2V0VmlzdWFsT2Zmc2V0cyhkb21FbGVtZW50KSA6IGNyZWF0ZUNvb3JkcygwKTtcbiAgbGV0IHggPSAoY2xpZW50UmVjdC5sZWZ0ICsgdmlzdWFsT2Zmc2V0cy54KSAvIHNjYWxlLng7XG4gIGxldCB5ID0gKGNsaWVudFJlY3QudG9wICsgdmlzdWFsT2Zmc2V0cy55KSAvIHNjYWxlLnk7XG4gIGxldCB3aWR0aCA9IGNsaWVudFJlY3Qud2lkdGggLyBzY2FsZS54O1xuICBsZXQgaGVpZ2h0ID0gY2xpZW50UmVjdC5oZWlnaHQgLyBzY2FsZS55O1xuICBpZiAoZG9tRWxlbWVudCkge1xuICAgIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhkb21FbGVtZW50KTtcbiAgICBjb25zdCBvZmZzZXRXaW4gPSBvZmZzZXRQYXJlbnQgJiYgaXNFbGVtZW50KG9mZnNldFBhcmVudCkgPyBnZXRXaW5kb3cob2Zmc2V0UGFyZW50KSA6IG9mZnNldFBhcmVudDtcbiAgICBsZXQgY3VycmVudFdpbiA9IHdpbjtcbiAgICBsZXQgY3VycmVudElGcmFtZSA9IGdldEZyYW1lRWxlbWVudChjdXJyZW50V2luKTtcbiAgICB3aGlsZSAoY3VycmVudElGcmFtZSAmJiBvZmZzZXRQYXJlbnQgJiYgb2Zmc2V0V2luICE9PSBjdXJyZW50V2luKSB7XG4gICAgICBjb25zdCBpZnJhbWVTY2FsZSA9IGdldFNjYWxlKGN1cnJlbnRJRnJhbWUpO1xuICAgICAgY29uc3QgaWZyYW1lUmVjdCA9IGN1cnJlbnRJRnJhbWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBjc3MgPSBnZXRDb21wdXRlZFN0eWxlKGN1cnJlbnRJRnJhbWUpO1xuICAgICAgY29uc3QgbGVmdCA9IGlmcmFtZVJlY3QubGVmdCArIChjdXJyZW50SUZyYW1lLmNsaWVudExlZnQgKyBwYXJzZUZsb2F0KGNzcy5wYWRkaW5nTGVmdCkpICogaWZyYW1lU2NhbGUueDtcbiAgICAgIGNvbnN0IHRvcCA9IGlmcmFtZVJlY3QudG9wICsgKGN1cnJlbnRJRnJhbWUuY2xpZW50VG9wICsgcGFyc2VGbG9hdChjc3MucGFkZGluZ1RvcCkpICogaWZyYW1lU2NhbGUueTtcbiAgICAgIHggKj0gaWZyYW1lU2NhbGUueDtcbiAgICAgIHkgKj0gaWZyYW1lU2NhbGUueTtcbiAgICAgIHdpZHRoICo9IGlmcmFtZVNjYWxlLng7XG4gICAgICBoZWlnaHQgKj0gaWZyYW1lU2NhbGUueTtcbiAgICAgIHggKz0gbGVmdDtcbiAgICAgIHkgKz0gdG9wO1xuICAgICAgY3VycmVudFdpbiA9IGdldFdpbmRvdyhjdXJyZW50SUZyYW1lKTtcbiAgICAgIGN1cnJlbnRJRnJhbWUgPSBnZXRGcmFtZUVsZW1lbnQoY3VycmVudFdpbik7XG4gICAgfVxuICB9XG4gIHJldHVybiByZWN0VG9DbGllbnRSZWN0KHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgeCxcbiAgICB5XG4gIH0pO1xufVxuXG4vLyBJZiA8aHRtbD4gaGFzIGEgQ1NTIHdpZHRoIGdyZWF0ZXIgdGhhbiB0aGUgdmlld3BvcnQsIHRoZW4gdGhpcyB3aWxsIGJlXG4vLyBpbmNvcnJlY3QgZm9yIFJUTC5cbmZ1bmN0aW9uIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCwgcmVjdCkge1xuICBjb25zdCBsZWZ0U2Nyb2xsID0gZ2V0Tm9kZVNjcm9sbChlbGVtZW50KS5zY3JvbGxMZWZ0O1xuICBpZiAoIXJlY3QpIHtcbiAgICByZXR1cm4gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSkubGVmdCArIGxlZnRTY3JvbGw7XG4gIH1cbiAgcmV0dXJuIHJlY3QubGVmdCArIGxlZnRTY3JvbGw7XG59XG5cbmZ1bmN0aW9uIGdldEhUTUxPZmZzZXQoZG9jdW1lbnRFbGVtZW50LCBzY3JvbGwsIGlnbm9yZVNjcm9sbGJhclgpIHtcbiAgaWYgKGlnbm9yZVNjcm9sbGJhclggPT09IHZvaWQgMCkge1xuICAgIGlnbm9yZVNjcm9sbGJhclggPSBmYWxzZTtcbiAgfVxuICBjb25zdCBodG1sUmVjdCA9IGRvY3VtZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3QgeCA9IGh0bWxSZWN0LmxlZnQgKyBzY3JvbGwuc2Nyb2xsTGVmdCAtIChpZ25vcmVTY3JvbGxiYXJYID8gMCA6XG4gIC8vIFJUTCA8Ym9keT4gc2Nyb2xsYmFyLlxuICBnZXRXaW5kb3dTY3JvbGxCYXJYKGRvY3VtZW50RWxlbWVudCwgaHRtbFJlY3QpKTtcbiAgY29uc3QgeSA9IGh0bWxSZWN0LnRvcCArIHNjcm9sbC5zY3JvbGxUb3A7XG4gIHJldHVybiB7XG4gICAgeCxcbiAgICB5XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0KF9yZWYpIHtcbiAgbGV0IHtcbiAgICBlbGVtZW50cyxcbiAgICByZWN0LFxuICAgIG9mZnNldFBhcmVudCxcbiAgICBzdHJhdGVneVxuICB9ID0gX3JlZjtcbiAgY29uc3QgaXNGaXhlZCA9IHN0cmF0ZWd5ID09PSAnZml4ZWQnO1xuICBjb25zdCBkb2N1bWVudEVsZW1lbnQgPSBnZXREb2N1bWVudEVsZW1lbnQob2Zmc2V0UGFyZW50KTtcbiAgY29uc3QgdG9wTGF5ZXIgPSBlbGVtZW50cyA/IGlzVG9wTGF5ZXIoZWxlbWVudHMuZmxvYXRpbmcpIDogZmFsc2U7XG4gIGlmIChvZmZzZXRQYXJlbnQgPT09IGRvY3VtZW50RWxlbWVudCB8fCB0b3BMYXllciAmJiBpc0ZpeGVkKSB7XG4gICAgcmV0dXJuIHJlY3Q7XG4gIH1cbiAgbGV0IHNjcm9sbCA9IHtcbiAgICBzY3JvbGxMZWZ0OiAwLFxuICAgIHNjcm9sbFRvcDogMFxuICB9O1xuICBsZXQgc2NhbGUgPSBjcmVhdGVDb29yZHMoMSk7XG4gIGNvbnN0IG9mZnNldHMgPSBjcmVhdGVDb29yZHMoMCk7XG4gIGNvbnN0IGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ID0gaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICBpZiAoaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgfHwgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkKSB7XG4gICAgaWYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgIT09ICdib2R5JyB8fCBpc092ZXJmbG93RWxlbWVudChkb2N1bWVudEVsZW1lbnQpKSB7XG4gICAgICBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKG9mZnNldFBhcmVudCk7XG4gICAgfVxuICAgIGlmIChpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCkpIHtcbiAgICAgIGNvbnN0IG9mZnNldFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3Qob2Zmc2V0UGFyZW50KTtcbiAgICAgIHNjYWxlID0gZ2V0U2NhbGUob2Zmc2V0UGFyZW50KTtcbiAgICAgIG9mZnNldHMueCA9IG9mZnNldFJlY3QueCArIG9mZnNldFBhcmVudC5jbGllbnRMZWZ0O1xuICAgICAgb2Zmc2V0cy55ID0gb2Zmc2V0UmVjdC55ICsgb2Zmc2V0UGFyZW50LmNsaWVudFRvcDtcbiAgICB9XG4gIH1cbiAgY29uc3QgaHRtbE9mZnNldCA9IGRvY3VtZW50RWxlbWVudCAmJiAhaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgJiYgIWlzRml4ZWQgPyBnZXRIVE1MT2Zmc2V0KGRvY3VtZW50RWxlbWVudCwgc2Nyb2xsLCB0cnVlKSA6IGNyZWF0ZUNvb3JkcygwKTtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogcmVjdC53aWR0aCAqIHNjYWxlLngsXG4gICAgaGVpZ2h0OiByZWN0LmhlaWdodCAqIHNjYWxlLnksXG4gICAgeDogcmVjdC54ICogc2NhbGUueCAtIHNjcm9sbC5zY3JvbGxMZWZ0ICogc2NhbGUueCArIG9mZnNldHMueCArIGh0bWxPZmZzZXQueCxcbiAgICB5OiByZWN0LnkgKiBzY2FsZS55IC0gc2Nyb2xsLnNjcm9sbFRvcCAqIHNjYWxlLnkgKyBvZmZzZXRzLnkgKyBodG1sT2Zmc2V0LnlcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2xpZW50UmVjdHMoZWxlbWVudCkge1xuICByZXR1cm4gQXJyYXkuZnJvbShlbGVtZW50LmdldENsaWVudFJlY3RzKCkpO1xufVxuXG4vLyBHZXRzIHRoZSBlbnRpcmUgc2l6ZSBvZiB0aGUgc2Nyb2xsYWJsZSBkb2N1bWVudCBhcmVhLCBldmVuIGV4dGVuZGluZyBvdXRzaWRlXG4vLyBvZiB0aGUgYDxodG1sPmAgYW5kIGA8Ym9keT5gIHJlY3QgYm91bmRzIGlmIGhvcml6b250YWxseSBzY3JvbGxhYmxlLlxuZnVuY3Rpb24gZ2V0RG9jdW1lbnRSZWN0KGVsZW1lbnQpIHtcbiAgY29uc3QgaHRtbCA9IGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KTtcbiAgY29uc3Qgc2Nyb2xsID0gZ2V0Tm9kZVNjcm9sbChlbGVtZW50KTtcbiAgY29uc3QgYm9keSA9IGVsZW1lbnQub3duZXJEb2N1bWVudC5ib2R5O1xuICBjb25zdCB3aWR0aCA9IG1heChodG1sLnNjcm9sbFdpZHRoLCBodG1sLmNsaWVudFdpZHRoLCBib2R5LnNjcm9sbFdpZHRoLCBib2R5LmNsaWVudFdpZHRoKTtcbiAgY29uc3QgaGVpZ2h0ID0gbWF4KGh0bWwuc2Nyb2xsSGVpZ2h0LCBodG1sLmNsaWVudEhlaWdodCwgYm9keS5zY3JvbGxIZWlnaHQsIGJvZHkuY2xpZW50SGVpZ2h0KTtcbiAgbGV0IHggPSAtc2Nyb2xsLnNjcm9sbExlZnQgKyBnZXRXaW5kb3dTY3JvbGxCYXJYKGVsZW1lbnQpO1xuICBjb25zdCB5ID0gLXNjcm9sbC5zY3JvbGxUb3A7XG4gIGlmIChnZXRDb21wdXRlZFN0eWxlKGJvZHkpLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICB4ICs9IG1heChodG1sLmNsaWVudFdpZHRoLCBib2R5LmNsaWVudFdpZHRoKSAtIHdpZHRoO1xuICB9XG4gIHJldHVybiB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIHgsXG4gICAgeVxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRWaWV3cG9ydFJlY3QoZWxlbWVudCwgc3RyYXRlZ3kpIHtcbiAgY29uc3Qgd2luID0gZ2V0V2luZG93KGVsZW1lbnQpO1xuICBjb25zdCBodG1sID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICBjb25zdCB2aXN1YWxWaWV3cG9ydCA9IHdpbi52aXN1YWxWaWV3cG9ydDtcbiAgbGV0IHdpZHRoID0gaHRtbC5jbGllbnRXaWR0aDtcbiAgbGV0IGhlaWdodCA9IGh0bWwuY2xpZW50SGVpZ2h0O1xuICBsZXQgeCA9IDA7XG4gIGxldCB5ID0gMDtcbiAgaWYgKHZpc3VhbFZpZXdwb3J0KSB7XG4gICAgd2lkdGggPSB2aXN1YWxWaWV3cG9ydC53aWR0aDtcbiAgICBoZWlnaHQgPSB2aXN1YWxWaWV3cG9ydC5oZWlnaHQ7XG4gICAgY29uc3QgdmlzdWFsVmlld3BvcnRCYXNlZCA9IGlzV2ViS2l0KCk7XG4gICAgaWYgKCF2aXN1YWxWaWV3cG9ydEJhc2VkIHx8IHZpc3VhbFZpZXdwb3J0QmFzZWQgJiYgc3RyYXRlZ3kgPT09ICdmaXhlZCcpIHtcbiAgICAgIHggPSB2aXN1YWxWaWV3cG9ydC5vZmZzZXRMZWZ0O1xuICAgICAgeSA9IHZpc3VhbFZpZXdwb3J0Lm9mZnNldFRvcDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgeCxcbiAgICB5XG4gIH07XG59XG5cbi8vIFJldHVybnMgdGhlIGlubmVyIGNsaWVudCByZWN0LCBzdWJ0cmFjdGluZyBzY3JvbGxiYXJzIGlmIHByZXNlbnQuXG5mdW5jdGlvbiBnZXRJbm5lckJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50LCBzdHJhdGVneSkge1xuICBjb25zdCBjbGllbnRSZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIHRydWUsIHN0cmF0ZWd5ID09PSAnZml4ZWQnKTtcbiAgY29uc3QgdG9wID0gY2xpZW50UmVjdC50b3AgKyBlbGVtZW50LmNsaWVudFRvcDtcbiAgY29uc3QgbGVmdCA9IGNsaWVudFJlY3QubGVmdCArIGVsZW1lbnQuY2xpZW50TGVmdDtcbiAgY29uc3Qgc2NhbGUgPSBpc0hUTUxFbGVtZW50KGVsZW1lbnQpID8gZ2V0U2NhbGUoZWxlbWVudCkgOiBjcmVhdGVDb29yZHMoMSk7XG4gIGNvbnN0IHdpZHRoID0gZWxlbWVudC5jbGllbnRXaWR0aCAqIHNjYWxlLng7XG4gIGNvbnN0IGhlaWdodCA9IGVsZW1lbnQuY2xpZW50SGVpZ2h0ICogc2NhbGUueTtcbiAgY29uc3QgeCA9IGxlZnQgKiBzY2FsZS54O1xuICBjb25zdCB5ID0gdG9wICogc2NhbGUueTtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgeCxcbiAgICB5XG4gIH07XG59XG5mdW5jdGlvbiBnZXRDbGllbnRSZWN0RnJvbUNsaXBwaW5nQW5jZXN0b3IoZWxlbWVudCwgY2xpcHBpbmdBbmNlc3Rvciwgc3RyYXRlZ3kpIHtcbiAgbGV0IHJlY3Q7XG4gIGlmIChjbGlwcGluZ0FuY2VzdG9yID09PSAndmlld3BvcnQnKSB7XG4gICAgcmVjdCA9IGdldFZpZXdwb3J0UmVjdChlbGVtZW50LCBzdHJhdGVneSk7XG4gIH0gZWxzZSBpZiAoY2xpcHBpbmdBbmNlc3RvciA9PT0gJ2RvY3VtZW50Jykge1xuICAgIHJlY3QgPSBnZXREb2N1bWVudFJlY3QoZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpKTtcbiAgfSBlbHNlIGlmIChpc0VsZW1lbnQoY2xpcHBpbmdBbmNlc3RvcikpIHtcbiAgICByZWN0ID0gZ2V0SW5uZXJCb3VuZGluZ0NsaWVudFJlY3QoY2xpcHBpbmdBbmNlc3Rvciwgc3RyYXRlZ3kpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHZpc3VhbE9mZnNldHMgPSBnZXRWaXN1YWxPZmZzZXRzKGVsZW1lbnQpO1xuICAgIHJlY3QgPSB7XG4gICAgICB4OiBjbGlwcGluZ0FuY2VzdG9yLnggLSB2aXN1YWxPZmZzZXRzLngsXG4gICAgICB5OiBjbGlwcGluZ0FuY2VzdG9yLnkgLSB2aXN1YWxPZmZzZXRzLnksXG4gICAgICB3aWR0aDogY2xpcHBpbmdBbmNlc3Rvci53aWR0aCxcbiAgICAgIGhlaWdodDogY2xpcHBpbmdBbmNlc3Rvci5oZWlnaHRcbiAgICB9O1xuICB9XG4gIHJldHVybiByZWN0VG9DbGllbnRSZWN0KHJlY3QpO1xufVxuZnVuY3Rpb24gaGFzRml4ZWRQb3NpdGlvbkFuY2VzdG9yKGVsZW1lbnQsIHN0b3BOb2RlKSB7XG4gIGNvbnN0IHBhcmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGVsZW1lbnQpO1xuICBpZiAocGFyZW50Tm9kZSA9PT0gc3RvcE5vZGUgfHwgIWlzRWxlbWVudChwYXJlbnROb2RlKSB8fCBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUocGFyZW50Tm9kZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUocGFyZW50Tm9kZSkucG9zaXRpb24gPT09ICdmaXhlZCcgfHwgaGFzRml4ZWRQb3NpdGlvbkFuY2VzdG9yKHBhcmVudE5vZGUsIHN0b3BOb2RlKTtcbn1cblxuLy8gQSBcImNsaXBwaW5nIGFuY2VzdG9yXCIgaXMgYW4gYG92ZXJmbG93YCBlbGVtZW50IHdpdGggdGhlIGNoYXJhY3RlcmlzdGljIG9mXG4vLyBjbGlwcGluZyAob3IgaGlkaW5nKSBjaGlsZCBlbGVtZW50cy4gVGhpcyByZXR1cm5zIGFsbCBjbGlwcGluZyBhbmNlc3RvcnNcbi8vIG9mIHRoZSBnaXZlbiBlbGVtZW50IHVwIHRoZSB0cmVlLlxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdFbGVtZW50QW5jZXN0b3JzKGVsZW1lbnQsIGNhY2hlKSB7XG4gIGNvbnN0IGNhY2hlZFJlc3VsdCA9IGNhY2hlLmdldChlbGVtZW50KTtcbiAgaWYgKGNhY2hlZFJlc3VsdCkge1xuICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gIH1cbiAgbGV0IHJlc3VsdCA9IGdldE92ZXJmbG93QW5jZXN0b3JzKGVsZW1lbnQsIFtdLCBmYWxzZSkuZmlsdGVyKGVsID0+IGlzRWxlbWVudChlbCkgJiYgZ2V0Tm9kZU5hbWUoZWwpICE9PSAnYm9keScpO1xuICBsZXQgY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUgPSBudWxsO1xuICBjb25zdCBlbGVtZW50SXNGaXhlZCA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdmaXhlZCc7XG4gIGxldCBjdXJyZW50Tm9kZSA9IGVsZW1lbnRJc0ZpeGVkID8gZ2V0UGFyZW50Tm9kZShlbGVtZW50KSA6IGVsZW1lbnQ7XG5cbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0NvbnRhaW5pbmdfYmxvY2sjaWRlbnRpZnlpbmdfdGhlX2NvbnRhaW5pbmdfYmxvY2tcbiAgd2hpbGUgKGlzRWxlbWVudChjdXJyZW50Tm9kZSkgJiYgIWlzTGFzdFRyYXZlcnNhYmxlTm9kZShjdXJyZW50Tm9kZSkpIHtcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShjdXJyZW50Tm9kZSk7XG4gICAgY29uc3QgY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgPSBpc0NvbnRhaW5pbmdCbG9jayhjdXJyZW50Tm9kZSk7XG4gICAgaWYgKCFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiBjb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAnZml4ZWQnKSB7XG4gICAgICBjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSA9IG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHNob3VsZERyb3BDdXJyZW50Tm9kZSA9IGVsZW1lbnRJc0ZpeGVkID8gIWN1cnJlbnROb2RlSXNDb250YWluaW5nICYmICFjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSA6ICFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiBjb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAnc3RhdGljJyAmJiAhIWN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlICYmIFsnYWJzb2x1dGUnLCAnZml4ZWQnXS5pbmNsdWRlcyhjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZS5wb3NpdGlvbikgfHwgaXNPdmVyZmxvd0VsZW1lbnQoY3VycmVudE5vZGUpICYmICFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiBoYXNGaXhlZFBvc2l0aW9uQW5jZXN0b3IoZWxlbWVudCwgY3VycmVudE5vZGUpO1xuICAgIGlmIChzaG91bGREcm9wQ3VycmVudE5vZGUpIHtcbiAgICAgIC8vIERyb3Agbm9uLWNvbnRhaW5pbmcgYmxvY2tzLlxuICAgICAgcmVzdWx0ID0gcmVzdWx0LmZpbHRlcihhbmNlc3RvciA9PiBhbmNlc3RvciAhPT0gY3VycmVudE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZWNvcmQgbGFzdCBjb250YWluaW5nIGJsb2NrIGZvciBuZXh0IGl0ZXJhdGlvbi5cbiAgICAgIGN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlID0gY29tcHV0ZWRTdHlsZTtcbiAgICB9XG4gICAgY3VycmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGN1cnJlbnROb2RlKTtcbiAgfVxuICBjYWNoZS5zZXQoZWxlbWVudCwgcmVzdWx0KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gR2V0cyB0aGUgbWF4aW11bSBhcmVhIHRoYXQgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSBpbiBkdWUgdG8gYW55IG51bWJlciBvZlxuLy8gY2xpcHBpbmcgYW5jZXN0b3JzLlxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdSZWN0KF9yZWYpIHtcbiAgbGV0IHtcbiAgICBlbGVtZW50LFxuICAgIGJvdW5kYXJ5LFxuICAgIHJvb3RCb3VuZGFyeSxcbiAgICBzdHJhdGVneVxuICB9ID0gX3JlZjtcbiAgY29uc3QgZWxlbWVudENsaXBwaW5nQW5jZXN0b3JzID0gYm91bmRhcnkgPT09ICdjbGlwcGluZ0FuY2VzdG9ycycgPyBpc1RvcExheWVyKGVsZW1lbnQpID8gW10gOiBnZXRDbGlwcGluZ0VsZW1lbnRBbmNlc3RvcnMoZWxlbWVudCwgdGhpcy5fYykgOiBbXS5jb25jYXQoYm91bmRhcnkpO1xuICBjb25zdCBjbGlwcGluZ0FuY2VzdG9ycyA9IFsuLi5lbGVtZW50Q2xpcHBpbmdBbmNlc3RvcnMsIHJvb3RCb3VuZGFyeV07XG4gIGNvbnN0IGZpcnN0Q2xpcHBpbmdBbmNlc3RvciA9IGNsaXBwaW5nQW5jZXN0b3JzWzBdO1xuICBjb25zdCBjbGlwcGluZ1JlY3QgPSBjbGlwcGluZ0FuY2VzdG9ycy5yZWR1Y2UoKGFjY1JlY3QsIGNsaXBwaW5nQW5jZXN0b3IpID0+IHtcbiAgICBjb25zdCByZWN0ID0gZ2V0Q2xpZW50UmVjdEZyb21DbGlwcGluZ0FuY2VzdG9yKGVsZW1lbnQsIGNsaXBwaW5nQW5jZXN0b3IsIHN0cmF0ZWd5KTtcbiAgICBhY2NSZWN0LnRvcCA9IG1heChyZWN0LnRvcCwgYWNjUmVjdC50b3ApO1xuICAgIGFjY1JlY3QucmlnaHQgPSBtaW4ocmVjdC5yaWdodCwgYWNjUmVjdC5yaWdodCk7XG4gICAgYWNjUmVjdC5ib3R0b20gPSBtaW4ocmVjdC5ib3R0b20sIGFjY1JlY3QuYm90dG9tKTtcbiAgICBhY2NSZWN0LmxlZnQgPSBtYXgocmVjdC5sZWZ0LCBhY2NSZWN0LmxlZnQpO1xuICAgIHJldHVybiBhY2NSZWN0O1xuICB9LCBnZXRDbGllbnRSZWN0RnJvbUNsaXBwaW5nQW5jZXN0b3IoZWxlbWVudCwgZmlyc3RDbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSkpO1xuICByZXR1cm4ge1xuICAgIHdpZHRoOiBjbGlwcGluZ1JlY3QucmlnaHQgLSBjbGlwcGluZ1JlY3QubGVmdCxcbiAgICBoZWlnaHQ6IGNsaXBwaW5nUmVjdC5ib3R0b20gLSBjbGlwcGluZ1JlY3QudG9wLFxuICAgIHg6IGNsaXBwaW5nUmVjdC5sZWZ0LFxuICAgIHk6IGNsaXBwaW5nUmVjdC50b3BcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RGltZW5zaW9ucyhlbGVtZW50KSB7XG4gIGNvbnN0IHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHRcbiAgfSA9IGdldENzc0RpbWVuc2lvbnMoZWxlbWVudCk7XG4gIHJldHVybiB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFJlY3RSZWxhdGl2ZVRvT2Zmc2V0UGFyZW50KGVsZW1lbnQsIG9mZnNldFBhcmVudCwgc3RyYXRlZ3kpIHtcbiAgY29uc3QgaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgPSBpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIGNvbnN0IGRvY3VtZW50RWxlbWVudCA9IGdldERvY3VtZW50RWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICBjb25zdCBpc0ZpeGVkID0gc3RyYXRlZ3kgPT09ICdmaXhlZCc7XG4gIGNvbnN0IHJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgdHJ1ZSwgaXNGaXhlZCwgb2Zmc2V0UGFyZW50KTtcbiAgbGV0IHNjcm9sbCA9IHtcbiAgICBzY3JvbGxMZWZ0OiAwLFxuICAgIHNjcm9sbFRvcDogMFxuICB9O1xuICBjb25zdCBvZmZzZXRzID0gY3JlYXRlQ29vcmRzKDApO1xuICBpZiAoaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgfHwgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkKSB7XG4gICAgaWYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgIT09ICdib2R5JyB8fCBpc092ZXJmbG93RWxlbWVudChkb2N1bWVudEVsZW1lbnQpKSB7XG4gICAgICBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKG9mZnNldFBhcmVudCk7XG4gICAgfVxuICAgIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCkge1xuICAgICAgY29uc3Qgb2Zmc2V0UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChvZmZzZXRQYXJlbnQsIHRydWUsIGlzRml4ZWQsIG9mZnNldFBhcmVudCk7XG4gICAgICBvZmZzZXRzLnggPSBvZmZzZXRSZWN0LnggKyBvZmZzZXRQYXJlbnQuY2xpZW50TGVmdDtcbiAgICAgIG9mZnNldHMueSA9IG9mZnNldFJlY3QueSArIG9mZnNldFBhcmVudC5jbGllbnRUb3A7XG4gICAgfSBlbHNlIGlmIChkb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgIC8vIElmIHRoZSA8Ym9keT4gc2Nyb2xsYmFyIGFwcGVhcnMgb24gdGhlIGxlZnQgKGUuZy4gUlRMIHN5c3RlbXMpLiBVc2VcbiAgICAgIC8vIEZpcmVmb3ggd2l0aCBsYXlvdXQuc2Nyb2xsYmFyLnNpZGUgPSAzIGluIGFib3V0OmNvbmZpZyB0byB0ZXN0IHRoaXMuXG4gICAgICBvZmZzZXRzLnggPSBnZXRXaW5kb3dTY3JvbGxCYXJYKGRvY3VtZW50RWxlbWVudCk7XG4gICAgfVxuICB9XG4gIGNvbnN0IGh0bWxPZmZzZXQgPSBkb2N1bWVudEVsZW1lbnQgJiYgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkID8gZ2V0SFRNTE9mZnNldChkb2N1bWVudEVsZW1lbnQsIHNjcm9sbCkgOiBjcmVhdGVDb29yZHMoMCk7XG4gIGNvbnN0IHggPSByZWN0LmxlZnQgKyBzY3JvbGwuc2Nyb2xsTGVmdCAtIG9mZnNldHMueCAtIGh0bWxPZmZzZXQueDtcbiAgY29uc3QgeSA9IHJlY3QudG9wICsgc2Nyb2xsLnNjcm9sbFRvcCAtIG9mZnNldHMueSAtIGh0bWxPZmZzZXQueTtcbiAgcmV0dXJuIHtcbiAgICB4LFxuICAgIHksXG4gICAgd2lkdGg6IHJlY3Qud2lkdGgsXG4gICAgaGVpZ2h0OiByZWN0LmhlaWdodFxuICB9O1xufVxuXG5mdW5jdGlvbiBpc1N0YXRpY1Bvc2l0aW9uZWQoZWxlbWVudCkge1xuICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbiA9PT0gJ3N0YXRpYyc7XG59XG5cbmZ1bmN0aW9uIGdldFRydWVPZmZzZXRQYXJlbnQoZWxlbWVudCwgcG9seWZpbGwpIHtcbiAgaWYgKCFpc0hUTUxFbGVtZW50KGVsZW1lbnQpIHx8IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBpZiAocG9seWZpbGwpIHtcbiAgICByZXR1cm4gcG9seWZpbGwoZWxlbWVudCk7XG4gIH1cbiAgbGV0IHJhd09mZnNldFBhcmVudCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50O1xuXG4gIC8vIEZpcmVmb3ggcmV0dXJucyB0aGUgPGh0bWw+IGVsZW1lbnQgYXMgdGhlIG9mZnNldFBhcmVudCBpZiBpdCdzIG5vbi1zdGF0aWMsXG4gIC8vIHdoaWxlIENocm9tZSBhbmQgU2FmYXJpIHJldHVybiB0aGUgPGJvZHk+IGVsZW1lbnQuIFRoZSA8Ym9keT4gZWxlbWVudCBtdXN0XG4gIC8vIGJlIHVzZWQgdG8gcGVyZm9ybSB0aGUgY29ycmVjdCBjYWxjdWxhdGlvbnMgZXZlbiBpZiB0aGUgPGh0bWw+IGVsZW1lbnQgaXNcbiAgLy8gbm9uLXN0YXRpYy5cbiAgaWYgKGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSA9PT0gcmF3T2Zmc2V0UGFyZW50KSB7XG4gICAgcmF3T2Zmc2V0UGFyZW50ID0gcmF3T2Zmc2V0UGFyZW50Lm93bmVyRG9jdW1lbnQuYm9keTtcbiAgfVxuICByZXR1cm4gcmF3T2Zmc2V0UGFyZW50O1xufVxuXG4vLyBHZXRzIHRoZSBjbG9zZXN0IGFuY2VzdG9yIHBvc2l0aW9uZWQgZWxlbWVudC4gSGFuZGxlcyBzb21lIGVkZ2UgY2FzZXMsXG4vLyBzdWNoIGFzIHRhYmxlIGFuY2VzdG9ycyBhbmQgY3Jvc3MgYnJvd3NlciBidWdzLlxuZnVuY3Rpb24gZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnQsIHBvbHlmaWxsKSB7XG4gIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhlbGVtZW50KTtcbiAgaWYgKGlzVG9wTGF5ZXIoZWxlbWVudCkpIHtcbiAgICByZXR1cm4gd2luO1xuICB9XG4gIGlmICghaXNIVE1MRWxlbWVudChlbGVtZW50KSkge1xuICAgIGxldCBzdmdPZmZzZXRQYXJlbnQgPSBnZXRQYXJlbnROb2RlKGVsZW1lbnQpO1xuICAgIHdoaWxlIChzdmdPZmZzZXRQYXJlbnQgJiYgIWlzTGFzdFRyYXZlcnNhYmxlTm9kZShzdmdPZmZzZXRQYXJlbnQpKSB7XG4gICAgICBpZiAoaXNFbGVtZW50KHN2Z09mZnNldFBhcmVudCkgJiYgIWlzU3RhdGljUG9zaXRpb25lZChzdmdPZmZzZXRQYXJlbnQpKSB7XG4gICAgICAgIHJldHVybiBzdmdPZmZzZXRQYXJlbnQ7XG4gICAgICB9XG4gICAgICBzdmdPZmZzZXRQYXJlbnQgPSBnZXRQYXJlbnROb2RlKHN2Z09mZnNldFBhcmVudCk7XG4gICAgfVxuICAgIHJldHVybiB3aW47XG4gIH1cbiAgbGV0IG9mZnNldFBhcmVudCA9IGdldFRydWVPZmZzZXRQYXJlbnQoZWxlbWVudCwgcG9seWZpbGwpO1xuICB3aGlsZSAob2Zmc2V0UGFyZW50ICYmIGlzVGFibGVFbGVtZW50KG9mZnNldFBhcmVudCkgJiYgaXNTdGF0aWNQb3NpdGlvbmVkKG9mZnNldFBhcmVudCkpIHtcbiAgICBvZmZzZXRQYXJlbnQgPSBnZXRUcnVlT2Zmc2V0UGFyZW50KG9mZnNldFBhcmVudCwgcG9seWZpbGwpO1xuICB9XG4gIGlmIChvZmZzZXRQYXJlbnQgJiYgaXNMYXN0VHJhdmVyc2FibGVOb2RlKG9mZnNldFBhcmVudCkgJiYgaXNTdGF0aWNQb3NpdGlvbmVkKG9mZnNldFBhcmVudCkgJiYgIWlzQ29udGFpbmluZ0Jsb2NrKG9mZnNldFBhcmVudCkpIHtcbiAgICByZXR1cm4gd2luO1xuICB9XG4gIHJldHVybiBvZmZzZXRQYXJlbnQgfHwgZ2V0Q29udGFpbmluZ0Jsb2NrKGVsZW1lbnQpIHx8IHdpbjtcbn1cblxuY29uc3QgZ2V0RWxlbWVudFJlY3RzID0gYXN5bmMgZnVuY3Rpb24gKGRhdGEpIHtcbiAgY29uc3QgZ2V0T2Zmc2V0UGFyZW50Rm4gPSB0aGlzLmdldE9mZnNldFBhcmVudCB8fCBnZXRPZmZzZXRQYXJlbnQ7XG4gIGNvbnN0IGdldERpbWVuc2lvbnNGbiA9IHRoaXMuZ2V0RGltZW5zaW9ucztcbiAgY29uc3QgZmxvYXRpbmdEaW1lbnNpb25zID0gYXdhaXQgZ2V0RGltZW5zaW9uc0ZuKGRhdGEuZmxvYXRpbmcpO1xuICByZXR1cm4ge1xuICAgIHJlZmVyZW5jZTogZ2V0UmVjdFJlbGF0aXZlVG9PZmZzZXRQYXJlbnQoZGF0YS5yZWZlcmVuY2UsIGF3YWl0IGdldE9mZnNldFBhcmVudEZuKGRhdGEuZmxvYXRpbmcpLCBkYXRhLnN0cmF0ZWd5KSxcbiAgICBmbG9hdGluZzoge1xuICAgICAgeDogMCxcbiAgICAgIHk6IDAsXG4gICAgICB3aWR0aDogZmxvYXRpbmdEaW1lbnNpb25zLndpZHRoLFxuICAgICAgaGVpZ2h0OiBmbG9hdGluZ0RpbWVuc2lvbnMuaGVpZ2h0XG4gICAgfVxuICB9O1xufTtcblxuZnVuY3Rpb24gaXNSVEwoZWxlbWVudCkge1xuICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5kaXJlY3Rpb24gPT09ICdydGwnO1xufVxuXG5jb25zdCBwbGF0Zm9ybSA9IHtcbiAgY29udmVydE9mZnNldFBhcmVudFJlbGF0aXZlUmVjdFRvVmlld3BvcnRSZWxhdGl2ZVJlY3QsXG4gIGdldERvY3VtZW50RWxlbWVudCxcbiAgZ2V0Q2xpcHBpbmdSZWN0LFxuICBnZXRPZmZzZXRQYXJlbnQsXG4gIGdldEVsZW1lbnRSZWN0cyxcbiAgZ2V0Q2xpZW50UmVjdHMsXG4gIGdldERpbWVuc2lvbnMsXG4gIGdldFNjYWxlLFxuICBpc0VsZW1lbnQsXG4gIGlzUlRMXG59O1xuXG5mdW5jdGlvbiByZWN0c0FyZUVxdWFsKGEsIGIpIHtcbiAgcmV0dXJuIGEueCA9PT0gYi54ICYmIGEueSA9PT0gYi55ICYmIGEud2lkdGggPT09IGIud2lkdGggJiYgYS5oZWlnaHQgPT09IGIuaGVpZ2h0O1xufVxuXG4vLyBodHRwczovL3NhbXRob3IuYXUvMjAyMS9vYnNlcnZpbmctZG9tL1xuZnVuY3Rpb24gb2JzZXJ2ZU1vdmUoZWxlbWVudCwgb25Nb3ZlKSB7XG4gIGxldCBpbyA9IG51bGw7XG4gIGxldCB0aW1lb3V0SWQ7XG4gIGNvbnN0IHJvb3QgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XG4gIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgdmFyIF9pbztcbiAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAoX2lvID0gaW8pID09IG51bGwgfHwgX2lvLmRpc2Nvbm5lY3QoKTtcbiAgICBpbyA9IG51bGw7XG4gIH1cbiAgZnVuY3Rpb24gcmVmcmVzaChza2lwLCB0aHJlc2hvbGQpIHtcbiAgICBpZiAoc2tpcCA9PT0gdm9pZCAwKSB7XG4gICAgICBza2lwID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aHJlc2hvbGQgPT09IHZvaWQgMCkge1xuICAgICAgdGhyZXNob2xkID0gMTtcbiAgICB9XG4gICAgY2xlYW51cCgpO1xuICAgIGNvbnN0IGVsZW1lbnRSZWN0Rm9yUm9vdE1hcmdpbiA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qge1xuICAgICAgbGVmdCxcbiAgICAgIHRvcCxcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0XG4gICAgfSA9IGVsZW1lbnRSZWN0Rm9yUm9vdE1hcmdpbjtcbiAgICBpZiAoIXNraXApIHtcbiAgICAgIG9uTW92ZSgpO1xuICAgIH1cbiAgICBpZiAoIXdpZHRoIHx8ICFoZWlnaHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaW5zZXRUb3AgPSBmbG9vcih0b3ApO1xuICAgIGNvbnN0IGluc2V0UmlnaHQgPSBmbG9vcihyb290LmNsaWVudFdpZHRoIC0gKGxlZnQgKyB3aWR0aCkpO1xuICAgIGNvbnN0IGluc2V0Qm90dG9tID0gZmxvb3Iocm9vdC5jbGllbnRIZWlnaHQgLSAodG9wICsgaGVpZ2h0KSk7XG4gICAgY29uc3QgaW5zZXRMZWZ0ID0gZmxvb3IobGVmdCk7XG4gICAgY29uc3Qgcm9vdE1hcmdpbiA9IC1pbnNldFRvcCArIFwicHggXCIgKyAtaW5zZXRSaWdodCArIFwicHggXCIgKyAtaW5zZXRCb3R0b20gKyBcInB4IFwiICsgLWluc2V0TGVmdCArIFwicHhcIjtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgcm9vdE1hcmdpbixcbiAgICAgIHRocmVzaG9sZDogbWF4KDAsIG1pbigxLCB0aHJlc2hvbGQpKSB8fCAxXG4gICAgfTtcbiAgICBsZXQgaXNGaXJzdFVwZGF0ZSA9IHRydWU7XG4gICAgZnVuY3Rpb24gaGFuZGxlT2JzZXJ2ZShlbnRyaWVzKSB7XG4gICAgICBjb25zdCByYXRpbyA9IGVudHJpZXNbMF0uaW50ZXJzZWN0aW9uUmF0aW87XG4gICAgICBpZiAocmF0aW8gIT09IHRocmVzaG9sZCkge1xuICAgICAgICBpZiAoIWlzRmlyc3RVcGRhdGUpIHtcbiAgICAgICAgICByZXR1cm4gcmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcmF0aW8pIHtcbiAgICAgICAgICAvLyBJZiB0aGUgcmVmZXJlbmNlIGlzIGNsaXBwZWQsIHRoZSByYXRpbyBpcyAwLiBUaHJvdHRsZSB0aGUgcmVmcmVzaFxuICAgICAgICAgIC8vIHRvIHByZXZlbnQgYW4gaW5maW5pdGUgbG9vcCBvZiB1cGRhdGVzLlxuICAgICAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgcmVmcmVzaChmYWxzZSwgMWUtNyk7XG4gICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVmcmVzaChmYWxzZSwgcmF0aW8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocmF0aW8gPT09IDEgJiYgIXJlY3RzQXJlRXF1YWwoZWxlbWVudFJlY3RGb3JSb290TWFyZ2luLCBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSkge1xuICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZXZlbiB0aG91Z2ggdGhlIHJhdGlvIGlzIHJlcG9ydGVkIGFzIDEsIHRoZVxuICAgICAgICAvLyBlbGVtZW50IGlzIG5vdCBhY3R1YWxseSBmdWxseSB3aXRoaW4gdGhlIEludGVyc2VjdGlvbk9ic2VydmVyJ3Mgcm9vdFxuICAgICAgICAvLyBhcmVhIGFueW1vcmUuIFRoaXMgY2FuIGhhcHBlbiB1bmRlciBwZXJmb3JtYW5jZSBjb25zdHJhaW50cy4gVGhpcyBtYXlcbiAgICAgICAgLy8gYmUgYSBidWcgaW4gdGhlIGJyb3dzZXIncyBJbnRlcnNlY3Rpb25PYnNlcnZlciBpbXBsZW1lbnRhdGlvbi4gVG9cbiAgICAgICAgLy8gd29yayBhcm91bmQgdGhpcywgd2UgY29tcGFyZSB0aGUgZWxlbWVudCdzIGJvdW5kaW5nIHJlY3Qgbm93IHdpdGhcbiAgICAgICAgLy8gd2hhdCBpdCB3YXMgYXQgdGhlIHRpbWUgd2UgY3JlYXRlZCB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuIElmIHRoZXlcbiAgICAgICAgLy8gYXJlIG5vdCBlcXVhbCB0aGVuIHRoZSBlbGVtZW50IG1vdmVkLCBzbyB3ZSByZWZyZXNoLlxuICAgICAgICByZWZyZXNoKCk7XG4gICAgICB9XG4gICAgICBpc0ZpcnN0VXBkYXRlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gT2xkZXIgYnJvd3NlcnMgZG9uJ3Qgc3VwcG9ydCBhIGBkb2N1bWVudGAgYXMgdGhlIHJvb3QgYW5kIHdpbGwgdGhyb3cgYW5cbiAgICAvLyBlcnJvci5cbiAgICB0cnkge1xuICAgICAgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlT2JzZXJ2ZSwge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAvLyBIYW5kbGUgPGlmcmFtZT5zXG4gICAgICAgIHJvb3Q6IHJvb3Qub3duZXJEb2N1bWVudFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlT2JzZXJ2ZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlvLm9ic2VydmUoZWxlbWVudCk7XG4gIH1cbiAgcmVmcmVzaCh0cnVlKTtcbiAgcmV0dXJuIGNsZWFudXA7XG59XG5cbi8qKlxuICogQXV0b21hdGljYWxseSB1cGRhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCB3aGVuIG5lY2Vzc2FyeS5cbiAqIFNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBmbG9hdGluZyBlbGVtZW50IGlzIG1vdW50ZWQgb24gdGhlIERPTSBvclxuICogdmlzaWJsZSBvbiB0aGUgc2NyZWVuLlxuICogQHJldHVybnMgY2xlYW51cCBmdW5jdGlvbiB0aGF0IHNob3VsZCBiZSBpbnZva2VkIHdoZW4gdGhlIGZsb2F0aW5nIGVsZW1lbnQgaXNcbiAqIHJlbW92ZWQgZnJvbSB0aGUgRE9NIG9yIGhpZGRlbiBmcm9tIHRoZSBzY3JlZW4uXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1VwZGF0ZVxuICovXG5mdW5jdGlvbiBhdXRvVXBkYXRlKHJlZmVyZW5jZSwgZmxvYXRpbmcsIHVwZGF0ZSwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBhbmNlc3RvclNjcm9sbCA9IHRydWUsXG4gICAgYW5jZXN0b3JSZXNpemUgPSB0cnVlLFxuICAgIGVsZW1lbnRSZXNpemUgPSB0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09ICdmdW5jdGlvbicsXG4gICAgbGF5b3V0U2hpZnQgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPT09ICdmdW5jdGlvbicsXG4gICAgYW5pbWF0aW9uRnJhbWUgPSBmYWxzZVxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgcmVmZXJlbmNlRWwgPSB1bndyYXBFbGVtZW50KHJlZmVyZW5jZSk7XG4gIGNvbnN0IGFuY2VzdG9ycyA9IGFuY2VzdG9yU2Nyb2xsIHx8IGFuY2VzdG9yUmVzaXplID8gWy4uLihyZWZlcmVuY2VFbCA/IGdldE92ZXJmbG93QW5jZXN0b3JzKHJlZmVyZW5jZUVsKSA6IFtdKSwgLi4uZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoZmxvYXRpbmcpXSA6IFtdO1xuICBhbmNlc3RvcnMuZm9yRWFjaChhbmNlc3RvciA9PiB7XG4gICAgYW5jZXN0b3JTY3JvbGwgJiYgYW5jZXN0b3IuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlXG4gICAgfSk7XG4gICAgYW5jZXN0b3JSZXNpemUgJiYgYW5jZXN0b3IuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKTtcbiAgfSk7XG4gIGNvbnN0IGNsZWFudXBJbyA9IHJlZmVyZW5jZUVsICYmIGxheW91dFNoaWZ0ID8gb2JzZXJ2ZU1vdmUocmVmZXJlbmNlRWwsIHVwZGF0ZSkgOiBudWxsO1xuICBsZXQgcmVvYnNlcnZlRnJhbWUgPSAtMTtcbiAgbGV0IHJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgaWYgKGVsZW1lbnRSZXNpemUpIHtcbiAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihfcmVmID0+IHtcbiAgICAgIGxldCBbZmlyc3RFbnRyeV0gPSBfcmVmO1xuICAgICAgaWYgKGZpcnN0RW50cnkgJiYgZmlyc3RFbnRyeS50YXJnZXQgPT09IHJlZmVyZW5jZUVsICYmIHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIC8vIFByZXZlbnQgdXBkYXRlIGxvb3BzIHdoZW4gdXNpbmcgdGhlIGBzaXplYCBtaWRkbGV3YXJlLlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzE3NDBcbiAgICAgICAgcmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKGZsb2F0aW5nKTtcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmVvYnNlcnZlRnJhbWUpO1xuICAgICAgICByZW9ic2VydmVGcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgdmFyIF9yZXNpemVPYnNlcnZlcjtcbiAgICAgICAgICAoX3Jlc2l6ZU9ic2VydmVyID0gcmVzaXplT2JzZXJ2ZXIpID09IG51bGwgfHwgX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoZmxvYXRpbmcpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHVwZGF0ZSgpO1xuICAgIH0pO1xuICAgIGlmIChyZWZlcmVuY2VFbCAmJiAhYW5pbWF0aW9uRnJhbWUpIHtcbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUocmVmZXJlbmNlRWwpO1xuICAgIH1cbiAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKGZsb2F0aW5nKTtcbiAgfVxuICBsZXQgZnJhbWVJZDtcbiAgbGV0IHByZXZSZWZSZWN0ID0gYW5pbWF0aW9uRnJhbWUgPyBnZXRCb3VuZGluZ0NsaWVudFJlY3QocmVmZXJlbmNlKSA6IG51bGw7XG4gIGlmIChhbmltYXRpb25GcmFtZSkge1xuICAgIGZyYW1lTG9vcCgpO1xuICB9XG4gIGZ1bmN0aW9uIGZyYW1lTG9vcCgpIHtcbiAgICBjb25zdCBuZXh0UmVmUmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChyZWZlcmVuY2UpO1xuICAgIGlmIChwcmV2UmVmUmVjdCAmJiAhcmVjdHNBcmVFcXVhbChwcmV2UmVmUmVjdCwgbmV4dFJlZlJlY3QpKSB7XG4gICAgICB1cGRhdGUoKTtcbiAgICB9XG4gICAgcHJldlJlZlJlY3QgPSBuZXh0UmVmUmVjdDtcbiAgICBmcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZyYW1lTG9vcCk7XG4gIH1cbiAgdXBkYXRlKCk7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgdmFyIF9yZXNpemVPYnNlcnZlcjI7XG4gICAgYW5jZXN0b3JzLmZvckVhY2goYW5jZXN0b3IgPT4ge1xuICAgICAgYW5jZXN0b3JTY3JvbGwgJiYgYW5jZXN0b3IucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKTtcbiAgICAgIGFuY2VzdG9yUmVzaXplICYmIGFuY2VzdG9yLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSk7XG4gICAgfSk7XG4gICAgY2xlYW51cElvID09IG51bGwgfHwgY2xlYW51cElvKCk7XG4gICAgKF9yZXNpemVPYnNlcnZlcjIgPSByZXNpemVPYnNlcnZlcikgPT0gbnVsbCB8fCBfcmVzaXplT2JzZXJ2ZXIyLmRpc2Nvbm5lY3QoKTtcbiAgICByZXNpemVPYnNlcnZlciA9IG51bGw7XG4gICAgaWYgKGFuaW1hdGlvbkZyYW1lKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShmcmFtZUlkKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgd2l0aCBhbiBvYmplY3Qgb2Ygb3ZlcmZsb3cgc2lkZSBvZmZzZXRzIHRoYXQgZGV0ZXJtaW5lIGhvdyBtdWNoIHRoZVxuICogZWxlbWVudCBpcyBvdmVyZmxvd2luZyBhIGdpdmVuIGNsaXBwaW5nIGJvdW5kYXJ5IG9uIGVhY2ggc2lkZS5cbiAqIC0gcG9zaXRpdmUgPSBvdmVyZmxvd2luZyB0aGUgYm91bmRhcnkgYnkgdGhhdCBudW1iZXIgb2YgcGl4ZWxzXG4gKiAtIG5lZ2F0aXZlID0gaG93IG1hbnkgcGl4ZWxzIGxlZnQgYmVmb3JlIGl0IHdpbGwgb3ZlcmZsb3dcbiAqIC0gMCA9IGxpZXMgZmx1c2ggd2l0aCB0aGUgYm91bmRhcnlcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9kZXRlY3RPdmVyZmxvd1xuICovXG5jb25zdCBkZXRlY3RPdmVyZmxvdyA9IGRldGVjdE92ZXJmbG93JDE7XG5cbi8qKlxuICogTW9kaWZpZXMgdGhlIHBsYWNlbWVudCBieSB0cmFuc2xhdGluZyB0aGUgZmxvYXRpbmcgZWxlbWVudCBhbG9uZyB0aGVcbiAqIHNwZWNpZmllZCBheGVzLlxuICogQSBudW1iZXIgKHNob3J0aGFuZCBmb3IgYG1haW5BeGlzYCBvciBkaXN0YW5jZSksIG9yIGFuIGF4ZXMgY29uZmlndXJhdGlvblxuICogb2JqZWN0IG1heSBiZSBwYXNzZWQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvb2Zmc2V0XG4gKi9cbmNvbnN0IG9mZnNldCA9IG9mZnNldCQxO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBjaG9vc2luZyB0aGUgcGxhY2VtZW50XG4gKiB0aGF0IGhhcyB0aGUgbW9zdCBzcGFjZSBhdmFpbGFibGUgYXV0b21hdGljYWxseSwgd2l0aG91dCBuZWVkaW5nIHRvIHNwZWNpZnkgYVxuICogcHJlZmVycmVkIHBsYWNlbWVudC4gQWx0ZXJuYXRpdmUgdG8gYGZsaXBgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2F1dG9QbGFjZW1lbnRcbiAqL1xuY29uc3QgYXV0b1BsYWNlbWVudCA9IGF1dG9QbGFjZW1lbnQkMTtcblxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgc2hpZnRpbmcgaXQgaW4gb3JkZXIgdG9cbiAqIGtlZXAgaXQgaW4gdmlldyB3aGVuIGl0IHdpbGwgb3ZlcmZsb3cgdGhlIGNsaXBwaW5nIGJvdW5kYXJ5LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3NoaWZ0XG4gKi9cbmNvbnN0IHNoaWZ0ID0gc2hpZnQkMTtcblxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgZmxpcHBpbmcgdGhlIGBwbGFjZW1lbnRgXG4gKiBpbiBvcmRlciB0byBrZWVwIGl0IGluIHZpZXcgd2hlbiB0aGUgcHJlZmVycmVkIHBsYWNlbWVudChzKSB3aWxsIG92ZXJmbG93IHRoZVxuICogY2xpcHBpbmcgYm91bmRhcnkuIEFsdGVybmF0aXZlIHRvIGBhdXRvUGxhY2VtZW50YC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9mbGlwXG4gKi9cbmNvbnN0IGZsaXAgPSBmbGlwJDE7XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0aGF0IGFsbG93cyB5b3UgdG8gY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IOKAlFxuICogZm9yIGluc3RhbmNlLCBwcmV2ZW50IGl0IGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNsaXBwaW5nIGJvdW5kYXJ5IG9yIG1hdGNoIHRoZVxuICogd2lkdGggb2YgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3NpemVcbiAqL1xuY29uc3Qgc2l6ZSA9IHNpemUkMTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIGhpZGUgdGhlIGZsb2F0aW5nIGVsZW1lbnQgaW4gYXBwbGljYWJsZSBzaXR1YXRpb25zLCBzdWNoIGFzXG4gKiB3aGVuIGl0IGlzIG5vdCBpbiB0aGUgc2FtZSBjbGlwcGluZyBjb250ZXh0IGFzIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9oaWRlXG4gKi9cbmNvbnN0IGhpZGUgPSBoaWRlJDE7XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBwb3NpdGlvbiBhbiBpbm5lciBlbGVtZW50IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IHNvIHRoYXQgaXRcbiAqIGFwcGVhcnMgY2VudGVyZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2Fycm93XG4gKi9cbmNvbnN0IGFycm93ID0gYXJyb3ckMTtcblxuLyoqXG4gKiBQcm92aWRlcyBpbXByb3ZlZCBwb3NpdGlvbmluZyBmb3IgaW5saW5lIHJlZmVyZW5jZSBlbGVtZW50cyB0aGF0IGNhbiBzcGFuXG4gKiBvdmVyIG11bHRpcGxlIGxpbmVzLCBzdWNoIGFzIGh5cGVybGlua3Mgb3IgcmFuZ2Ugc2VsZWN0aW9ucy5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9pbmxpbmVcbiAqL1xuY29uc3QgaW5saW5lID0gaW5saW5lJDE7XG5cbi8qKlxuICogQnVpbHQtaW4gYGxpbWl0ZXJgIHRoYXQgd2lsbCBzdG9wIGBzaGlmdCgpYCBhdCBhIGNlcnRhaW4gcG9pbnQuXG4gKi9cbmNvbnN0IGxpbWl0U2hpZnQgPSBsaW1pdFNoaWZ0JDE7XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIGB4YCBhbmQgYHlgIGNvb3JkaW5hdGVzIHRoYXQgd2lsbCBwbGFjZSB0aGUgZmxvYXRpbmcgZWxlbWVudFxuICogbmV4dCB0byBhIGdpdmVuIHJlZmVyZW5jZSBlbGVtZW50LlxuICovXG5jb25zdCBjb21wdXRlUG9zaXRpb24gPSAocmVmZXJlbmNlLCBmbG9hdGluZywgb3B0aW9ucykgPT4ge1xuICAvLyBUaGlzIGNhY2hlcyB0aGUgZXhwZW5zaXZlIGBnZXRDbGlwcGluZ0VsZW1lbnRBbmNlc3RvcnNgIGZ1bmN0aW9uIHNvIHRoYXRcbiAgLy8gbXVsdGlwbGUgbGlmZWN5Y2xlIHJlc2V0cyByZS11c2UgdGhlIHNhbWUgcmVzdWx0LiBJdCBvbmx5IGxpdmVzIGZvciBhXG4gIC8vIHNpbmdsZSBjYWxsLiBJZiBvdGhlciBmdW5jdGlvbnMgYmVjb21lIGV4cGVuc2l2ZSwgd2UgY2FuIGFkZCB0aGVtIGFzIHdlbGwuXG4gIGNvbnN0IGNhY2hlID0gbmV3IE1hcCgpO1xuICBjb25zdCBtZXJnZWRPcHRpb25zID0ge1xuICAgIHBsYXRmb3JtLFxuICAgIC4uLm9wdGlvbnNcbiAgfTtcbiAgY29uc3QgcGxhdGZvcm1XaXRoQ2FjaGUgPSB7XG4gICAgLi4ubWVyZ2VkT3B0aW9ucy5wbGF0Zm9ybSxcbiAgICBfYzogY2FjaGVcbiAgfTtcbiAgcmV0dXJuIGNvbXB1dGVQb3NpdGlvbiQxKHJlZmVyZW5jZSwgZmxvYXRpbmcsIHtcbiAgICAuLi5tZXJnZWRPcHRpb25zLFxuICAgIHBsYXRmb3JtOiBwbGF0Zm9ybVdpdGhDYWNoZVxuICB9KTtcbn07XG5cbmV4cG9ydCB7IGFycm93LCBhdXRvUGxhY2VtZW50LCBhdXRvVXBkYXRlLCBjb21wdXRlUG9zaXRpb24sIGRldGVjdE92ZXJmbG93LCBmbGlwLCBoaWRlLCBpbmxpbmUsIGxpbWl0U2hpZnQsIG9mZnNldCwgcGxhdGZvcm0sIHNoaWZ0LCBzaXplIH07XG4iLCJpbXBvcnQgeyBjb21wdXRlUG9zaXRpb24sIGFycm93IGFzIGFycm93JDIsIG9mZnNldCBhcyBvZmZzZXQkMSwgc2hpZnQgYXMgc2hpZnQkMSwgbGltaXRTaGlmdCBhcyBsaW1pdFNoaWZ0JDEsIGZsaXAgYXMgZmxpcCQxLCBzaXplIGFzIHNpemUkMSwgYXV0b1BsYWNlbWVudCBhcyBhdXRvUGxhY2VtZW50JDEsIGhpZGUgYXMgaGlkZSQxLCBpbmxpbmUgYXMgaW5saW5lJDEgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmV4cG9ydCB7IGF1dG9VcGRhdGUsIGNvbXB1dGVQb3NpdGlvbiwgZGV0ZWN0T3ZlcmZsb3csIGdldE92ZXJmbG93QW5jZXN0b3JzLCBwbGF0Zm9ybSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuXG52YXIgaW5kZXggPSB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnID8gdXNlTGF5b3V0RWZmZWN0IDogdXNlRWZmZWN0O1xuXG4vLyBGb3JrIG9mIGBmYXN0LWRlZXAtZXF1YWxgIHRoYXQgb25seSBkb2VzIHRoZSBjb21wYXJpc29ucyB3ZSBuZWVkIGFuZCBjb21wYXJlc1xuLy8gZnVuY3Rpb25zXG5mdW5jdGlvbiBkZWVwRXF1YWwoYSwgYikge1xuICBpZiAoYSA9PT0gYikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmICh0eXBlb2YgYSAhPT0gdHlwZW9mIGIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHR5cGVvZiBhID09PSAnZnVuY3Rpb24nICYmIGEudG9TdHJpbmcoKSA9PT0gYi50b1N0cmluZygpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgbGV0IGxlbmd0aDtcbiAgbGV0IGk7XG4gIGxldCBrZXlzO1xuICBpZiAoYSAmJiBiICYmIHR5cGVvZiBhID09PSAnb2JqZWN0Jykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGEpKSB7XG4gICAgICBsZW5ndGggPSBhLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggIT09IGIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspIHtcbiAgICAgICAgaWYgKCFkZWVwRXF1YWwoYVtpXSwgYltpXSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBrZXlzID0gT2JqZWN0LmtleXMoYSk7XG4gICAgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gICAgaWYgKGxlbmd0aCAhPT0gT2JqZWN0LmtleXMoYikubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOykge1xuICAgICAgaWYgKCF7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIGtleXNbaV0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7KSB7XG4gICAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuICAgICAgaWYgKGtleSA9PT0gJ19vd25lcicgJiYgYS4kJHR5cGVvZikge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICghZGVlcEVxdWFsKGFba2V5XSwgYltrZXldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBhICE9PSBhICYmIGIgIT09IGI7XG59XG5cbmZ1bmN0aW9uIGdldERQUihlbGVtZW50KSB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiAxO1xuICB9XG4gIGNvbnN0IHdpbiA9IGVsZW1lbnQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3c7XG4gIHJldHVybiB3aW4uZGV2aWNlUGl4ZWxSYXRpbyB8fCAxO1xufVxuXG5mdW5jdGlvbiByb3VuZEJ5RFBSKGVsZW1lbnQsIHZhbHVlKSB7XG4gIGNvbnN0IGRwciA9IGdldERQUihlbGVtZW50KTtcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiBkcHIpIC8gZHByO1xufVxuXG5mdW5jdGlvbiB1c2VMYXRlc3RSZWYodmFsdWUpIHtcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmKHZhbHVlKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIHJlZi5jdXJyZW50ID0gdmFsdWU7XG4gIH0pO1xuICByZXR1cm4gcmVmO1xufVxuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdG8gcG9zaXRpb24gYSBmbG9hdGluZyBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3VzZUZsb2F0aW5nXG4gKi9cbmZ1bmN0aW9uIHVzZUZsb2F0aW5nKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICBjb25zdCB7XG4gICAgcGxhY2VtZW50ID0gJ2JvdHRvbScsXG4gICAgc3RyYXRlZ3kgPSAnYWJzb2x1dGUnLFxuICAgIG1pZGRsZXdhcmUgPSBbXSxcbiAgICBwbGF0Zm9ybSxcbiAgICBlbGVtZW50czoge1xuICAgICAgcmVmZXJlbmNlOiBleHRlcm5hbFJlZmVyZW5jZSxcbiAgICAgIGZsb2F0aW5nOiBleHRlcm5hbEZsb2F0aW5nXG4gICAgfSA9IHt9LFxuICAgIHRyYW5zZm9ybSA9IHRydWUsXG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQsXG4gICAgb3BlblxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgW2RhdGEsIHNldERhdGFdID0gUmVhY3QudXNlU3RhdGUoe1xuICAgIHg6IDAsXG4gICAgeTogMCxcbiAgICBzdHJhdGVneSxcbiAgICBwbGFjZW1lbnQsXG4gICAgbWlkZGxld2FyZURhdGE6IHt9LFxuICAgIGlzUG9zaXRpb25lZDogZmFsc2VcbiAgfSk7XG4gIGNvbnN0IFtsYXRlc3RNaWRkbGV3YXJlLCBzZXRMYXRlc3RNaWRkbGV3YXJlXSA9IFJlYWN0LnVzZVN0YXRlKG1pZGRsZXdhcmUpO1xuICBpZiAoIWRlZXBFcXVhbChsYXRlc3RNaWRkbGV3YXJlLCBtaWRkbGV3YXJlKSkge1xuICAgIHNldExhdGVzdE1pZGRsZXdhcmUobWlkZGxld2FyZSk7XG4gIH1cbiAgY29uc3QgW19yZWZlcmVuY2UsIF9zZXRSZWZlcmVuY2VdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFtfZmxvYXRpbmcsIF9zZXRGbG9hdGluZ10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgY29uc3Qgc2V0UmVmZXJlbmNlID0gUmVhY3QudXNlQ2FsbGJhY2sobm9kZSA9PiB7XG4gICAgaWYgKG5vZGUgIT09IHJlZmVyZW5jZVJlZi5jdXJyZW50KSB7XG4gICAgICByZWZlcmVuY2VSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBfc2V0UmVmZXJlbmNlKG5vZGUpO1xuICAgIH1cbiAgfSwgW10pO1xuICBjb25zdCBzZXRGbG9hdGluZyA9IFJlYWN0LnVzZUNhbGxiYWNrKG5vZGUgPT4ge1xuICAgIGlmIChub2RlICE9PSBmbG9hdGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICBmbG9hdGluZ1JlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgIF9zZXRGbG9hdGluZyhub2RlKTtcbiAgICB9XG4gIH0sIFtdKTtcbiAgY29uc3QgcmVmZXJlbmNlRWwgPSBleHRlcm5hbFJlZmVyZW5jZSB8fCBfcmVmZXJlbmNlO1xuICBjb25zdCBmbG9hdGluZ0VsID0gZXh0ZXJuYWxGbG9hdGluZyB8fCBfZmxvYXRpbmc7XG4gIGNvbnN0IHJlZmVyZW5jZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgY29uc3QgZmxvYXRpbmdSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IGRhdGFSZWYgPSBSZWFjdC51c2VSZWYoZGF0YSk7XG4gIGNvbnN0IGhhc1doaWxlRWxlbWVudHNNb3VudGVkID0gd2hpbGVFbGVtZW50c01vdW50ZWQgIT0gbnVsbDtcbiAgY29uc3Qgd2hpbGVFbGVtZW50c01vdW50ZWRSZWYgPSB1c2VMYXRlc3RSZWYod2hpbGVFbGVtZW50c01vdW50ZWQpO1xuICBjb25zdCBwbGF0Zm9ybVJlZiA9IHVzZUxhdGVzdFJlZihwbGF0Zm9ybSk7XG4gIGNvbnN0IG9wZW5SZWYgPSB1c2VMYXRlc3RSZWYob3Blbik7XG4gIGNvbnN0IHVwZGF0ZSA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoIXJlZmVyZW5jZVJlZi5jdXJyZW50IHx8ICFmbG9hdGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIHBsYWNlbWVudCxcbiAgICAgIHN0cmF0ZWd5LFxuICAgICAgbWlkZGxld2FyZTogbGF0ZXN0TWlkZGxld2FyZVxuICAgIH07XG4gICAgaWYgKHBsYXRmb3JtUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNvbmZpZy5wbGF0Zm9ybSA9IHBsYXRmb3JtUmVmLmN1cnJlbnQ7XG4gICAgfVxuICAgIGNvbXB1dGVQb3NpdGlvbihyZWZlcmVuY2VSZWYuY3VycmVudCwgZmxvYXRpbmdSZWYuY3VycmVudCwgY29uZmlnKS50aGVuKGRhdGEgPT4ge1xuICAgICAgY29uc3QgZnVsbERhdGEgPSB7XG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIC8vIFRoZSBmbG9hdGluZyBlbGVtZW50J3MgcG9zaXRpb24gbWF5IGJlIHJlY29tcHV0ZWQgd2hpbGUgaXQncyBjbG9zZWRcbiAgICAgICAgLy8gYnV0IHN0aWxsIG1vdW50ZWQgKHN1Y2ggYXMgd2hlbiB0cmFuc2l0aW9uaW5nIG91dCkuIFRvIGVuc3VyZVxuICAgICAgICAvLyBgaXNQb3NpdGlvbmVkYCB3aWxsIGJlIGBmYWxzZWAgaW5pdGlhbGx5IG9uIHRoZSBuZXh0IG9wZW4sIGF2b2lkXG4gICAgICAgIC8vIHNldHRpbmcgaXQgdG8gYHRydWVgIHdoZW4gYG9wZW4gPT09IGZhbHNlYCAobXVzdCBiZSBzcGVjaWZpZWQpLlxuICAgICAgICBpc1Bvc2l0aW9uZWQ6IG9wZW5SZWYuY3VycmVudCAhPT0gZmFsc2VcbiAgICAgIH07XG4gICAgICBpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQgJiYgIWRlZXBFcXVhbChkYXRhUmVmLmN1cnJlbnQsIGZ1bGxEYXRhKSkge1xuICAgICAgICBkYXRhUmVmLmN1cnJlbnQgPSBmdWxsRGF0YTtcbiAgICAgICAgUmVhY3RET00uZmx1c2hTeW5jKCgpID0+IHtcbiAgICAgICAgICBzZXREYXRhKGZ1bGxEYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFtsYXRlc3RNaWRkbGV3YXJlLCBwbGFjZW1lbnQsIHN0cmF0ZWd5LCBwbGF0Zm9ybVJlZiwgb3BlblJlZl0pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKG9wZW4gPT09IGZhbHNlICYmIGRhdGFSZWYuY3VycmVudC5pc1Bvc2l0aW9uZWQpIHtcbiAgICAgIGRhdGFSZWYuY3VycmVudC5pc1Bvc2l0aW9uZWQgPSBmYWxzZTtcbiAgICAgIHNldERhdGEoZGF0YSA9PiAoe1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICBpc1Bvc2l0aW9uZWQ6IGZhbHNlXG4gICAgICB9KSk7XG4gICAgfVxuICB9LCBbb3Blbl0pO1xuICBjb25zdCBpc01vdW50ZWRSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBpbmRleCgoKSA9PiB7XG4gICAgaXNNb3VudGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpc01vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlmIChyZWZlcmVuY2VFbCkgcmVmZXJlbmNlUmVmLmN1cnJlbnQgPSByZWZlcmVuY2VFbDtcbiAgICBpZiAoZmxvYXRpbmdFbCkgZmxvYXRpbmdSZWYuY3VycmVudCA9IGZsb2F0aW5nRWw7XG4gICAgaWYgKHJlZmVyZW5jZUVsICYmIGZsb2F0aW5nRWwpIHtcbiAgICAgIGlmICh3aGlsZUVsZW1lbnRzTW91bnRlZFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHJldHVybiB3aGlsZUVsZW1lbnRzTW91bnRlZFJlZi5jdXJyZW50KHJlZmVyZW5jZUVsLCBmbG9hdGluZ0VsLCB1cGRhdGUpO1xuICAgICAgfVxuICAgICAgdXBkYXRlKCk7XG4gICAgfVxuICB9LCBbcmVmZXJlbmNlRWwsIGZsb2F0aW5nRWwsIHVwZGF0ZSwgd2hpbGVFbGVtZW50c01vdW50ZWRSZWYsIGhhc1doaWxlRWxlbWVudHNNb3VudGVkXSk7XG4gIGNvbnN0IHJlZnMgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgcmVmZXJlbmNlOiByZWZlcmVuY2VSZWYsXG4gICAgZmxvYXRpbmc6IGZsb2F0aW5nUmVmLFxuICAgIHNldFJlZmVyZW5jZSxcbiAgICBzZXRGbG9hdGluZ1xuICB9KSwgW3NldFJlZmVyZW5jZSwgc2V0RmxvYXRpbmddKTtcbiAgY29uc3QgZWxlbWVudHMgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgcmVmZXJlbmNlOiByZWZlcmVuY2VFbCxcbiAgICBmbG9hdGluZzogZmxvYXRpbmdFbFxuICB9KSwgW3JlZmVyZW5jZUVsLCBmbG9hdGluZ0VsXSk7XG4gIGNvbnN0IGZsb2F0aW5nU3R5bGVzID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgaW5pdGlhbFN0eWxlcyA9IHtcbiAgICAgIHBvc2l0aW9uOiBzdHJhdGVneSxcbiAgICAgIGxlZnQ6IDAsXG4gICAgICB0b3A6IDBcbiAgICB9O1xuICAgIGlmICghZWxlbWVudHMuZmxvYXRpbmcpIHtcbiAgICAgIHJldHVybiBpbml0aWFsU3R5bGVzO1xuICAgIH1cbiAgICBjb25zdCB4ID0gcm91bmRCeURQUihlbGVtZW50cy5mbG9hdGluZywgZGF0YS54KTtcbiAgICBjb25zdCB5ID0gcm91bmRCeURQUihlbGVtZW50cy5mbG9hdGluZywgZGF0YS55KTtcbiAgICBpZiAodHJhbnNmb3JtKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbml0aWFsU3R5bGVzLFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKFwiICsgeCArIFwicHgsIFwiICsgeSArIFwicHgpXCIsXG4gICAgICAgIC4uLihnZXREUFIoZWxlbWVudHMuZmxvYXRpbmcpID49IDEuNSAmJiB7XG4gICAgICAgICAgd2lsbENoYW5nZTogJ3RyYW5zZm9ybSdcbiAgICAgICAgfSlcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogc3RyYXRlZ3ksXG4gICAgICBsZWZ0OiB4LFxuICAgICAgdG9wOiB5XG4gICAgfTtcbiAgfSwgW3N0cmF0ZWd5LCB0cmFuc2Zvcm0sIGVsZW1lbnRzLmZsb2F0aW5nLCBkYXRhLngsIGRhdGEueV0pO1xuICByZXR1cm4gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIC4uLmRhdGEsXG4gICAgdXBkYXRlLFxuICAgIHJlZnMsXG4gICAgZWxlbWVudHMsXG4gICAgZmxvYXRpbmdTdHlsZXNcbiAgfSksIFtkYXRhLCB1cGRhdGUsIHJlZnMsIGVsZW1lbnRzLCBmbG9hdGluZ1N0eWxlc10pO1xufVxuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdG8gcG9zaXRpb24gYW4gaW5uZXIgZWxlbWVudCBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBzbyB0aGF0IGl0XG4gKiBhcHBlYXJzIGNlbnRlcmVkIHRvIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIFRoaXMgd3JhcHMgdGhlIGNvcmUgYGFycm93YCBtaWRkbGV3YXJlIHRvIGFsbG93IFJlYWN0IHJlZnMgYXMgdGhlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXJyb3dcbiAqL1xuY29uc3QgYXJyb3ckMSA9IG9wdGlvbnMgPT4ge1xuICBmdW5jdGlvbiBpc1JlZih2YWx1ZSkge1xuICAgIHJldHVybiB7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnY3VycmVudCcpO1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2Fycm93JyxcbiAgICBvcHRpb25zLFxuICAgIGZuKHN0YXRlKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIHBhZGRpbmdcbiAgICAgIH0gPSB0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJyA/IG9wdGlvbnMoc3RhdGUpIDogb3B0aW9ucztcbiAgICAgIGlmIChlbGVtZW50ICYmIGlzUmVmKGVsZW1lbnQpKSB7XG4gICAgICAgIGlmIChlbGVtZW50LmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBhcnJvdyQyKHtcbiAgICAgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnQuY3VycmVudCxcbiAgICAgICAgICAgIHBhZGRpbmdcbiAgICAgICAgICB9KS5mbihzdGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGFycm93JDIoe1xuICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgcGFkZGluZ1xuICAgICAgICB9KS5mbihzdGF0ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICB9O1xufTtcblxuLyoqXG4gKiBNb2RpZmllcyB0aGUgcGxhY2VtZW50IGJ5IHRyYW5zbGF0aW5nIHRoZSBmbG9hdGluZyBlbGVtZW50IGFsb25nIHRoZVxuICogc3BlY2lmaWVkIGF4ZXMuXG4gKiBBIG51bWJlciAoc2hvcnRoYW5kIGZvciBgbWFpbkF4aXNgIG9yIGRpc3RhbmNlKSwgb3IgYW4gYXhlcyBjb25maWd1cmF0aW9uXG4gKiBvYmplY3QgbWF5IGJlIHBhc3NlZC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9vZmZzZXRcbiAqL1xuY29uc3Qgb2Zmc2V0ID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XG4gIC4uLm9mZnNldCQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBzaGlmdGluZyBpdCBpbiBvcmRlciB0b1xuICoga2VlcCBpdCBpbiB2aWV3IHdoZW4gaXQgd2lsbCBvdmVyZmxvdyB0aGUgY2xpcHBpbmcgYm91bmRhcnkuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2hpZnRcbiAqL1xuY29uc3Qgc2hpZnQgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4uc2hpZnQkMShvcHRpb25zKSxcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXG59KTtcblxuLyoqXG4gKiBCdWlsdC1pbiBgbGltaXRlcmAgdGhhdCB3aWxsIHN0b3AgYHNoaWZ0KClgIGF0IGEgY2VydGFpbiBwb2ludC5cbiAqL1xuY29uc3QgbGltaXRTaGlmdCA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5saW1pdFNoaWZ0JDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGZsaXBwaW5nIHRoZSBgcGxhY2VtZW50YFxuICogaW4gb3JkZXIgdG8ga2VlcCBpdCBpbiB2aWV3IHdoZW4gdGhlIHByZWZlcnJlZCBwbGFjZW1lbnQocykgd2lsbCBvdmVyZmxvdyB0aGVcbiAqIGNsaXBwaW5nIGJvdW5kYXJ5LiBBbHRlcm5hdGl2ZSB0byBgYXV0b1BsYWNlbWVudGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvZmxpcFxuICovXG5jb25zdCBmbGlwID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XG4gIC4uLmZsaXAkMShvcHRpb25zKSxcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXG59KTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRoYXQgYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQg4oCUXG4gKiBmb3IgaW5zdGFuY2UsIHByZXZlbnQgaXQgZnJvbSBvdmVyZmxvd2luZyB0aGUgY2xpcHBpbmcgYm91bmRhcnkgb3IgbWF0Y2ggdGhlXG4gKiB3aWR0aCBvZiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2l6ZVxuICovXG5jb25zdCBzaXplID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XG4gIC4uLnNpemUkMShvcHRpb25zKSxcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXG59KTtcblxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgY2hvb3NpbmcgdGhlIHBsYWNlbWVudFxuICogdGhhdCBoYXMgdGhlIG1vc3Qgc3BhY2UgYXZhaWxhYmxlIGF1dG9tYXRpY2FsbHksIHdpdGhvdXQgbmVlZGluZyB0byBzcGVjaWZ5IGFcbiAqIHByZWZlcnJlZCBwbGFjZW1lbnQuIEFsdGVybmF0aXZlIHRvIGBmbGlwYC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hdXRvUGxhY2VtZW50XG4gKi9cbmNvbnN0IGF1dG9QbGFjZW1lbnQgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4uYXV0b1BsYWNlbWVudCQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdG8gaGlkZSB0aGUgZmxvYXRpbmcgZWxlbWVudCBpbiBhcHBsaWNhYmxlIHNpdHVhdGlvbnMsIHN1Y2ggYXNcbiAqIHdoZW4gaXQgaXMgbm90IGluIHRoZSBzYW1lIGNsaXBwaW5nIGNvbnRleHQgYXMgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2hpZGVcbiAqL1xuY29uc3QgaGlkZSA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5oaWRlJDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogUHJvdmlkZXMgaW1wcm92ZWQgcG9zaXRpb25pbmcgZm9yIGlubGluZSByZWZlcmVuY2UgZWxlbWVudHMgdGhhdCBjYW4gc3BhblxuICogb3ZlciBtdWx0aXBsZSBsaW5lcywgc3VjaCBhcyBoeXBlcmxpbmtzIG9yIHJhbmdlIHNlbGVjdGlvbnMuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvaW5saW5lXG4gKi9cbmNvbnN0IGlubGluZSA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5pbmxpbmUkMShvcHRpb25zKSxcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXG59KTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGFuIGlubmVyIGVsZW1lbnQgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgc28gdGhhdCBpdFxuICogYXBwZWFycyBjZW50ZXJlZCB0byB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBUaGlzIHdyYXBzIHRoZSBjb3JlIGBhcnJvd2AgbWlkZGxld2FyZSB0byBhbGxvdyBSZWFjdCByZWZzIGFzIHRoZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2Fycm93XG4gKi9cbmNvbnN0IGFycm93ID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XG4gIC4uLmFycm93JDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbmV4cG9ydCB7IGFycm93LCBhdXRvUGxhY2VtZW50LCBmbGlwLCBoaWRlLCBpbmxpbmUsIGxpbWl0U2hpZnQsIG9mZnNldCwgc2hpZnQsIHNpemUsIHVzZUZsb2F0aW5nIH07XG4iLCIvLyBwYWNrYWdlcy9yZWFjdC9hcnJvdy9zcmMvYXJyb3cudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBOQU1FID0gXCJBcnJvd1wiO1xudmFyIEFycm93ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCB3aWR0aCA9IDEwLCBoZWlnaHQgPSA1LCAuLi5hcnJvd1Byb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgUHJpbWl0aXZlLnN2ZyxcbiAgICB7XG4gICAgICAuLi5hcnJvd1Byb3BzLFxuICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIHZpZXdCb3g6IFwiMCAwIDMwIDEwXCIsXG4gICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBcIm5vbmVcIixcbiAgICAgIGNoaWxkcmVuOiBwcm9wcy5hc0NoaWxkID8gY2hpbGRyZW4gOiAvKiBAX19QVVJFX18gKi8ganN4KFwicG9seWdvblwiLCB7IHBvaW50czogXCIwLDAgMzAsMCAxNSwxMFwiIH0pXG4gICAgfVxuICApO1xufSk7XG5BcnJvdy5kaXNwbGF5TmFtZSA9IE5BTUU7XG52YXIgUm9vdCA9IEFycm93O1xuZXhwb3J0IHtcbiAgQXJyb3csXG4gIFJvb3Rcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCJcInVzZSBjbGllbnRcIjtcblxuLy8gcGFja2FnZXMvcmVhY3QvcG9wcGVyL3NyYy9wb3BwZXIudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7XG4gIHVzZUZsb2F0aW5nLFxuICBhdXRvVXBkYXRlLFxuICBvZmZzZXQsXG4gIHNoaWZ0LFxuICBsaW1pdFNoaWZ0LFxuICBoaWRlLFxuICBhcnJvdyBhcyBmbG9hdGluZ1VJYXJyb3csXG4gIGZsaXAsXG4gIHNpemVcbn0gZnJvbSBcIkBmbG9hdGluZy11aS9yZWFjdC1kb21cIjtcbmltcG9ydCAqIGFzIEFycm93UHJpbWl0aXZlIGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtYXJyb3dcIjtcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbnRleHRcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZlwiO1xuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdFwiO1xuaW1wb3J0IHsgdXNlU2l6ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLXNpemVcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIFNJREVfT1BUSU9OUyA9IFtcInRvcFwiLCBcInJpZ2h0XCIsIFwiYm90dG9tXCIsIFwibGVmdFwiXTtcbnZhciBBTElHTl9PUFRJT05TID0gW1wic3RhcnRcIiwgXCJjZW50ZXJcIiwgXCJlbmRcIl07XG52YXIgUE9QUEVSX05BTUUgPSBcIlBvcHBlclwiO1xudmFyIFtjcmVhdGVQb3BwZXJDb250ZXh0LCBjcmVhdGVQb3BwZXJTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoUE9QUEVSX05BTUUpO1xudmFyIFtQb3BwZXJQcm92aWRlciwgdXNlUG9wcGVyQ29udGV4dF0gPSBjcmVhdGVQb3BwZXJDb250ZXh0KFBPUFBFUl9OQU1FKTtcbnZhciBQb3BwZXIgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlUG9wcGVyLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gIGNvbnN0IFthbmNob3IsIHNldEFuY2hvcl0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUG9wcGVyUHJvdmlkZXIsIHsgc2NvcGU6IF9fc2NvcGVQb3BwZXIsIGFuY2hvciwgb25BbmNob3JDaGFuZ2U6IHNldEFuY2hvciwgY2hpbGRyZW4gfSk7XG59O1xuUG9wcGVyLmRpc3BsYXlOYW1lID0gUE9QUEVSX05BTUU7XG52YXIgQU5DSE9SX05BTUUgPSBcIlBvcHBlckFuY2hvclwiO1xudmFyIFBvcHBlckFuY2hvciA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlUG9wcGVyLCB2aXJ0dWFsUmVmLCAuLi5hbmNob3JQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVBvcHBlckNvbnRleHQoQU5DSE9SX05BTUUsIF9fc2NvcGVQb3BwZXIpO1xuICAgIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb250ZXh0Lm9uQW5jaG9yQ2hhbmdlKHZpcnR1YWxSZWY/LmN1cnJlbnQgfHwgcmVmLmN1cnJlbnQpO1xuICAgIH0pO1xuICAgIHJldHVybiB2aXJ0dWFsUmVmID8gbnVsbCA6IC8qIEBfX1BVUkVfXyAqLyBqc3goUHJpbWl0aXZlLmRpdiwgeyAuLi5hbmNob3JQcm9wcywgcmVmOiBjb21wb3NlZFJlZnMgfSk7XG4gIH1cbik7XG5Qb3BwZXJBbmNob3IuZGlzcGxheU5hbWUgPSBBTkNIT1JfTkFNRTtcbnZhciBDT05URU5UX05BTUUgPSBcIlBvcHBlckNvbnRlbnRcIjtcbnZhciBbUG9wcGVyQ29udGVudFByb3ZpZGVyLCB1c2VDb250ZW50Q29udGV4dF0gPSBjcmVhdGVQb3BwZXJDb250ZXh0KENPTlRFTlRfTkFNRSk7XG52YXIgUG9wcGVyQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgX19zY29wZVBvcHBlcixcbiAgICAgIHNpZGUgPSBcImJvdHRvbVwiLFxuICAgICAgc2lkZU9mZnNldCA9IDAsXG4gICAgICBhbGlnbiA9IFwiY2VudGVyXCIsXG4gICAgICBhbGlnbk9mZnNldCA9IDAsXG4gICAgICBhcnJvd1BhZGRpbmcgPSAwLFxuICAgICAgYXZvaWRDb2xsaXNpb25zID0gdHJ1ZSxcbiAgICAgIGNvbGxpc2lvbkJvdW5kYXJ5ID0gW10sXG4gICAgICBjb2xsaXNpb25QYWRkaW5nOiBjb2xsaXNpb25QYWRkaW5nUHJvcCA9IDAsXG4gICAgICBzdGlja3kgPSBcInBhcnRpYWxcIixcbiAgICAgIGhpZGVXaGVuRGV0YWNoZWQgPSBmYWxzZSxcbiAgICAgIHVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kgPSBcIm9wdGltaXplZFwiLFxuICAgICAgb25QbGFjZWQsXG4gICAgICAuLi5jb250ZW50UHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVBvcHBlckNvbnRleHQoQ09OVEVOVF9OQU1FLCBfX3Njb3BlUG9wcGVyKTtcbiAgICBjb25zdCBbY29udGVudCwgc2V0Q29udGVudF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCAobm9kZSkgPT4gc2V0Q29udGVudChub2RlKSk7XG4gICAgY29uc3QgW2Fycm93LCBzZXRBcnJvd10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBhcnJvd1NpemUgPSB1c2VTaXplKGFycm93KTtcbiAgICBjb25zdCBhcnJvd1dpZHRoID0gYXJyb3dTaXplPy53aWR0aCA/PyAwO1xuICAgIGNvbnN0IGFycm93SGVpZ2h0ID0gYXJyb3dTaXplPy5oZWlnaHQgPz8gMDtcbiAgICBjb25zdCBkZXNpcmVkUGxhY2VtZW50ID0gc2lkZSArIChhbGlnbiAhPT0gXCJjZW50ZXJcIiA/IFwiLVwiICsgYWxpZ24gOiBcIlwiKTtcbiAgICBjb25zdCBjb2xsaXNpb25QYWRkaW5nID0gdHlwZW9mIGNvbGxpc2lvblBhZGRpbmdQcm9wID09PSBcIm51bWJlclwiID8gY29sbGlzaW9uUGFkZGluZ1Byb3AgOiB7IHRvcDogMCwgcmlnaHQ6IDAsIGJvdHRvbTogMCwgbGVmdDogMCwgLi4uY29sbGlzaW9uUGFkZGluZ1Byb3AgfTtcbiAgICBjb25zdCBib3VuZGFyeSA9IEFycmF5LmlzQXJyYXkoY29sbGlzaW9uQm91bmRhcnkpID8gY29sbGlzaW9uQm91bmRhcnkgOiBbY29sbGlzaW9uQm91bmRhcnldO1xuICAgIGNvbnN0IGhhc0V4cGxpY2l0Qm91bmRhcmllcyA9IGJvdW5kYXJ5Lmxlbmd0aCA+IDA7XG4gICAgY29uc3QgZGV0ZWN0T3ZlcmZsb3dPcHRpb25zID0ge1xuICAgICAgcGFkZGluZzogY29sbGlzaW9uUGFkZGluZyxcbiAgICAgIGJvdW5kYXJ5OiBib3VuZGFyeS5maWx0ZXIoaXNOb3ROdWxsKSxcbiAgICAgIC8vIHdpdGggYHN0cmF0ZWd5OiAnZml4ZWQnYCwgdGhpcyBpcyB0aGUgb25seSB3YXkgdG8gZ2V0IGl0IHRvIHJlc3BlY3QgYm91bmRhcmllc1xuICAgICAgYWx0Qm91bmRhcnk6IGhhc0V4cGxpY2l0Qm91bmRhcmllc1xuICAgIH07XG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgcGxhY2VtZW50LCBpc1Bvc2l0aW9uZWQsIG1pZGRsZXdhcmVEYXRhIH0gPSB1c2VGbG9hdGluZyh7XG4gICAgICAvLyBkZWZhdWx0IHRvIGBmaXhlZGAgc3RyYXRlZ3kgc28gdXNlcnMgZG9uJ3QgaGF2ZSB0byBwaWNrIGFuZCB3ZSBhbHNvIGF2b2lkIGZvY3VzIHNjcm9sbCBpc3N1ZXNcbiAgICAgIHN0cmF0ZWd5OiBcImZpeGVkXCIsXG4gICAgICBwbGFjZW1lbnQ6IGRlc2lyZWRQbGFjZW1lbnQsXG4gICAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgY2xlYW51cCA9IGF1dG9VcGRhdGUoLi4uYXJncywge1xuICAgICAgICAgIGFuaW1hdGlvbkZyYW1lOiB1cGRhdGVQb3NpdGlvblN0cmF0ZWd5ID09PSBcImFsd2F5c1wiXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY2xlYW51cDtcbiAgICAgIH0sXG4gICAgICBlbGVtZW50czoge1xuICAgICAgICByZWZlcmVuY2U6IGNvbnRleHQuYW5jaG9yXG4gICAgICB9LFxuICAgICAgbWlkZGxld2FyZTogW1xuICAgICAgICBvZmZzZXQoeyBtYWluQXhpczogc2lkZU9mZnNldCArIGFycm93SGVpZ2h0LCBhbGlnbm1lbnRBeGlzOiBhbGlnbk9mZnNldCB9KSxcbiAgICAgICAgYXZvaWRDb2xsaXNpb25zICYmIHNoaWZ0KHtcbiAgICAgICAgICBtYWluQXhpczogdHJ1ZSxcbiAgICAgICAgICBjcm9zc0F4aXM6IGZhbHNlLFxuICAgICAgICAgIGxpbWl0ZXI6IHN0aWNreSA9PT0gXCJwYXJ0aWFsXCIgPyBsaW1pdFNoaWZ0KCkgOiB2b2lkIDAsXG4gICAgICAgICAgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zXG4gICAgICAgIH0pLFxuICAgICAgICBhdm9pZENvbGxpc2lvbnMgJiYgZmxpcCh7IC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyB9KSxcbiAgICAgICAgc2l6ZSh7XG4gICAgICAgICAgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zLFxuICAgICAgICAgIGFwcGx5OiAoeyBlbGVtZW50cywgcmVjdHMsIGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyB3aWR0aDogYW5jaG9yV2lkdGgsIGhlaWdodDogYW5jaG9ySGVpZ2h0IH0gPSByZWN0cy5yZWZlcmVuY2U7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50U3R5bGUgPSBlbGVtZW50cy5mbG9hdGluZy5zdHlsZTtcbiAgICAgICAgICAgIGNvbnRlbnRTdHlsZS5zZXRQcm9wZXJ0eShcIi0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS13aWR0aFwiLCBgJHthdmFpbGFibGVXaWR0aH1weGApO1xuICAgICAgICAgICAgY29udGVudFN0eWxlLnNldFByb3BlcnR5KFwiLS1yYWRpeC1wb3BwZXItYXZhaWxhYmxlLWhlaWdodFwiLCBgJHthdmFpbGFibGVIZWlnaHR9cHhgKTtcbiAgICAgICAgICAgIGNvbnRlbnRTdHlsZS5zZXRQcm9wZXJ0eShcIi0tcmFkaXgtcG9wcGVyLWFuY2hvci13aWR0aFwiLCBgJHthbmNob3JXaWR0aH1weGApO1xuICAgICAgICAgICAgY29udGVudFN0eWxlLnNldFByb3BlcnR5KFwiLS1yYWRpeC1wb3BwZXItYW5jaG9yLWhlaWdodFwiLCBgJHthbmNob3JIZWlnaHR9cHhgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBhcnJvdyAmJiBmbG9hdGluZ1VJYXJyb3coeyBlbGVtZW50OiBhcnJvdywgcGFkZGluZzogYXJyb3dQYWRkaW5nIH0pLFxuICAgICAgICB0cmFuc2Zvcm1PcmlnaW4oeyBhcnJvd1dpZHRoLCBhcnJvd0hlaWdodCB9KSxcbiAgICAgICAgaGlkZVdoZW5EZXRhY2hlZCAmJiBoaWRlKHsgc3RyYXRlZ3k6IFwicmVmZXJlbmNlSGlkZGVuXCIsIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyB9KVxuICAgICAgXVxuICAgIH0pO1xuICAgIGNvbnN0IFtwbGFjZWRTaWRlLCBwbGFjZWRBbGlnbl0gPSBnZXRTaWRlQW5kQWxpZ25Gcm9tUGxhY2VtZW50KHBsYWNlbWVudCk7XG4gICAgY29uc3QgaGFuZGxlUGxhY2VkID0gdXNlQ2FsbGJhY2tSZWYob25QbGFjZWQpO1xuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNQb3NpdGlvbmVkKSB7XG4gICAgICAgIGhhbmRsZVBsYWNlZD8uKCk7XG4gICAgICB9XG4gICAgfSwgW2lzUG9zaXRpb25lZCwgaGFuZGxlUGxhY2VkXSk7XG4gICAgY29uc3QgYXJyb3dYID0gbWlkZGxld2FyZURhdGEuYXJyb3c/Lng7XG4gICAgY29uc3QgYXJyb3dZID0gbWlkZGxld2FyZURhdGEuYXJyb3c/Lnk7XG4gICAgY29uc3QgY2Fubm90Q2VudGVyQXJyb3cgPSBtaWRkbGV3YXJlRGF0YS5hcnJvdz8uY2VudGVyT2Zmc2V0ICE9PSAwO1xuICAgIGNvbnN0IFtjb250ZW50WkluZGV4LCBzZXRDb250ZW50WkluZGV4XSA9IFJlYWN0LnVzZVN0YXRlKCk7XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChjb250ZW50KSBzZXRDb250ZW50WkluZGV4KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGNvbnRlbnQpLnpJbmRleCk7XG4gICAgfSwgW2NvbnRlbnRdKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFwiZGl2XCIsXG4gICAgICB7XG4gICAgICAgIHJlZjogcmVmcy5zZXRGbG9hdGluZyxcbiAgICAgICAgXCJkYXRhLXJhZGl4LXBvcHBlci1jb250ZW50LXdyYXBwZXJcIjogXCJcIixcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAuLi5mbG9hdGluZ1N0eWxlcyxcbiAgICAgICAgICB0cmFuc2Zvcm06IGlzUG9zaXRpb25lZCA/IGZsb2F0aW5nU3R5bGVzLnRyYW5zZm9ybSA6IFwidHJhbnNsYXRlKDAsIC0yMDAlKVwiLFxuICAgICAgICAgIC8vIGtlZXAgb2ZmIHRoZSBwYWdlIHdoZW4gbWVhc3VyaW5nXG4gICAgICAgICAgbWluV2lkdGg6IFwibWF4LWNvbnRlbnRcIixcbiAgICAgICAgICB6SW5kZXg6IGNvbnRlbnRaSW5kZXgsXG4gICAgICAgICAgW1wiLS1yYWRpeC1wb3BwZXItdHJhbnNmb3JtLW9yaWdpblwiXTogW1xuICAgICAgICAgICAgbWlkZGxld2FyZURhdGEudHJhbnNmb3JtT3JpZ2luPy54LFxuICAgICAgICAgICAgbWlkZGxld2FyZURhdGEudHJhbnNmb3JtT3JpZ2luPy55XG4gICAgICAgICAgXS5qb2luKFwiIFwiKSxcbiAgICAgICAgICAvLyBoaWRlIHRoZSBjb250ZW50IGlmIHVzaW5nIHRoZSBoaWRlIG1pZGRsZXdhcmUgYW5kIHNob3VsZCBiZSBoaWRkZW5cbiAgICAgICAgICAvLyBzZXQgdmlzaWJpbGl0eSB0byBoaWRkZW4gYW5kIGRpc2FibGUgcG9pbnRlciBldmVudHMgc28gdGhlIFVJIGJlaGF2ZXNcbiAgICAgICAgICAvLyBhcyBpZiB0aGUgUG9wcGVyQ29udGVudCBpc24ndCB0aGVyZSBhdCBhbGxcbiAgICAgICAgICAuLi5taWRkbGV3YXJlRGF0YS5oaWRlPy5yZWZlcmVuY2VIaWRkZW4gJiYge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIixcbiAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkaXI6IHByb3BzLmRpcixcbiAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgUG9wcGVyQ29udGVudFByb3ZpZGVyLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNjb3BlOiBfX3Njb3BlUG9wcGVyLFxuICAgICAgICAgICAgcGxhY2VkU2lkZSxcbiAgICAgICAgICAgIG9uQXJyb3dDaGFuZ2U6IHNldEFycm93LFxuICAgICAgICAgICAgYXJyb3dYLFxuICAgICAgICAgICAgYXJyb3dZLFxuICAgICAgICAgICAgc2hvdWxkSGlkZUFycm93OiBjYW5ub3RDZW50ZXJBcnJvdyxcbiAgICAgICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgICAgICBQcmltaXRpdmUuZGl2LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJkYXRhLXNpZGVcIjogcGxhY2VkU2lkZSxcbiAgICAgICAgICAgICAgICBcImRhdGEtYWxpZ25cIjogcGxhY2VkQWxpZ24sXG4gICAgICAgICAgICAgICAgLi4uY29udGVudFByb3BzLFxuICAgICAgICAgICAgICAgIHJlZjogY29tcG9zZWRSZWZzLFxuICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAuLi5jb250ZW50UHJvcHMuc3R5bGUsXG4gICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgUG9wcGVyQ29udGVudCBoYXNuJ3QgYmVlbiBwbGFjZWQgeWV0IChub3QgYWxsIG1lYXN1cmVtZW50cyBkb25lKVxuICAgICAgICAgICAgICAgICAgLy8gd2UgcHJldmVudCBhbmltYXRpb25zIHNvIHRoYXQgdXNlcnMncyBhbmltYXRpb24gZG9uJ3Qga2ljayBpbiB0b28gZWFybHkgcmVmZXJyaW5nIHdyb25nIHNpZGVzXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb246ICFpc1Bvc2l0aW9uZWQgPyBcIm5vbmVcIiA6IHZvaWQgMFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5Qb3BwZXJDb250ZW50LmRpc3BsYXlOYW1lID0gQ09OVEVOVF9OQU1FO1xudmFyIEFSUk9XX05BTUUgPSBcIlBvcHBlckFycm93XCI7XG52YXIgT1BQT1NJVEVfU0lERSA9IHtcbiAgdG9wOiBcImJvdHRvbVwiLFxuICByaWdodDogXCJsZWZ0XCIsXG4gIGJvdHRvbTogXCJ0b3BcIixcbiAgbGVmdDogXCJyaWdodFwiXG59O1xudmFyIFBvcHBlckFycm93ID0gUmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbiBQb3BwZXJBcnJvdzIocHJvcHMsIGZvcndhcmRlZFJlZikge1xuICBjb25zdCB7IF9fc2NvcGVQb3BwZXIsIC4uLmFycm93UHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBjb250ZW50Q29udGV4dCA9IHVzZUNvbnRlbnRDb250ZXh0KEFSUk9XX05BTUUsIF9fc2NvcGVQb3BwZXIpO1xuICBjb25zdCBiYXNlU2lkZSA9IE9QUE9TSVRFX1NJREVbY29udGVudENvbnRleHQucGxhY2VkU2lkZV07XG4gIHJldHVybiAoXG4gICAgLy8gd2UgaGF2ZSB0byB1c2UgYW4gZXh0cmEgd3JhcHBlciBiZWNhdXNlIGBSZXNpemVPYnNlcnZlcmAgKHVzZWQgYnkgYHVzZVNpemVgKVxuICAgIC8vIGRvZXNuJ3QgcmVwb3J0IHNpemUgYXMgd2UnZCBleHBlY3Qgb24gU1ZHIGVsZW1lbnRzLlxuICAgIC8vIGl0IHJlcG9ydHMgdGhlaXIgYm91bmRpbmcgYm94IHdoaWNoIGlzIGVmZmVjdGl2ZWx5IHRoZSBsYXJnZXN0IHBhdGggaW5zaWRlIHRoZSBTVkcuXG4gICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFwic3BhblwiLFxuICAgICAge1xuICAgICAgICByZWY6IGNvbnRlbnRDb250ZXh0Lm9uQXJyb3dDaGFuZ2UsXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICBsZWZ0OiBjb250ZW50Q29udGV4dC5hcnJvd1gsXG4gICAgICAgICAgdG9wOiBjb250ZW50Q29udGV4dC5hcnJvd1ksXG4gICAgICAgICAgW2Jhc2VTaWRlXTogMCxcbiAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW46IHtcbiAgICAgICAgICAgIHRvcDogXCJcIixcbiAgICAgICAgICAgIHJpZ2h0OiBcIjAgMFwiLFxuICAgICAgICAgICAgYm90dG9tOiBcImNlbnRlciAwXCIsXG4gICAgICAgICAgICBsZWZ0OiBcIjEwMCUgMFwiXG4gICAgICAgICAgfVtjb250ZW50Q29udGV4dC5wbGFjZWRTaWRlXSxcbiAgICAgICAgICB0cmFuc2Zvcm06IHtcbiAgICAgICAgICAgIHRvcDogXCJ0cmFuc2xhdGVZKDEwMCUpXCIsXG4gICAgICAgICAgICByaWdodDogXCJ0cmFuc2xhdGVZKDUwJSkgcm90YXRlKDkwZGVnKSB0cmFuc2xhdGVYKC01MCUpXCIsXG4gICAgICAgICAgICBib3R0b206IGByb3RhdGUoMTgwZGVnKWAsXG4gICAgICAgICAgICBsZWZ0OiBcInRyYW5zbGF0ZVkoNTAlKSByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGVYKDUwJSlcIlxuICAgICAgICAgIH1bY29udGVudENvbnRleHQucGxhY2VkU2lkZV0sXG4gICAgICAgICAgdmlzaWJpbGl0eTogY29udGVudENvbnRleHQuc2hvdWxkSGlkZUFycm93ID8gXCJoaWRkZW5cIiA6IHZvaWQgMFxuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICBBcnJvd1ByaW1pdGl2ZS5Sb290LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLmFycm93UHJvcHMsXG4gICAgICAgICAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgIC4uLmFycm93UHJvcHMuc3R5bGUsXG4gICAgICAgICAgICAgIC8vIGVuc3VyZXMgdGhlIGVsZW1lbnQgY2FuIGJlIG1lYXN1cmVkIGNvcnJlY3RseSAobW9zdGx5IGZvciBpZiBTVkcpXG4gICAgICAgICAgICAgIGRpc3BsYXk6IFwiYmxvY2tcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgfVxuICAgIClcbiAgKTtcbn0pO1xuUG9wcGVyQXJyb3cuZGlzcGxheU5hbWUgPSBBUlJPV19OQU1FO1xuZnVuY3Rpb24gaXNOb3ROdWxsKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbDtcbn1cbnZhciB0cmFuc2Zvcm1PcmlnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgbmFtZTogXCJ0cmFuc2Zvcm1PcmlnaW5cIixcbiAgb3B0aW9ucyxcbiAgZm4oZGF0YSkge1xuICAgIGNvbnN0IHsgcGxhY2VtZW50LCByZWN0cywgbWlkZGxld2FyZURhdGEgfSA9IGRhdGE7XG4gICAgY29uc3QgY2Fubm90Q2VudGVyQXJyb3cgPSBtaWRkbGV3YXJlRGF0YS5hcnJvdz8uY2VudGVyT2Zmc2V0ICE9PSAwO1xuICAgIGNvbnN0IGlzQXJyb3dIaWRkZW4gPSBjYW5ub3RDZW50ZXJBcnJvdztcbiAgICBjb25zdCBhcnJvd1dpZHRoID0gaXNBcnJvd0hpZGRlbiA/IDAgOiBvcHRpb25zLmFycm93V2lkdGg7XG4gICAgY29uc3QgYXJyb3dIZWlnaHQgPSBpc0Fycm93SGlkZGVuID8gMCA6IG9wdGlvbnMuYXJyb3dIZWlnaHQ7XG4gICAgY29uc3QgW3BsYWNlZFNpZGUsIHBsYWNlZEFsaWduXSA9IGdldFNpZGVBbmRBbGlnbkZyb21QbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgICBjb25zdCBub0Fycm93QWxpZ24gPSB7IHN0YXJ0OiBcIjAlXCIsIGNlbnRlcjogXCI1MCVcIiwgZW5kOiBcIjEwMCVcIiB9W3BsYWNlZEFsaWduXTtcbiAgICBjb25zdCBhcnJvd1hDZW50ZXIgPSAobWlkZGxld2FyZURhdGEuYXJyb3c/LnggPz8gMCkgKyBhcnJvd1dpZHRoIC8gMjtcbiAgICBjb25zdCBhcnJvd1lDZW50ZXIgPSAobWlkZGxld2FyZURhdGEuYXJyb3c/LnkgPz8gMCkgKyBhcnJvd0hlaWdodCAvIDI7XG4gICAgbGV0IHggPSBcIlwiO1xuICAgIGxldCB5ID0gXCJcIjtcbiAgICBpZiAocGxhY2VkU2lkZSA9PT0gXCJib3R0b21cIikge1xuICAgICAgeCA9IGlzQXJyb3dIaWRkZW4gPyBub0Fycm93QWxpZ24gOiBgJHthcnJvd1hDZW50ZXJ9cHhgO1xuICAgICAgeSA9IGAkey1hcnJvd0hlaWdodH1weGA7XG4gICAgfSBlbHNlIGlmIChwbGFjZWRTaWRlID09PSBcInRvcFwiKSB7XG4gICAgICB4ID0gaXNBcnJvd0hpZGRlbiA/IG5vQXJyb3dBbGlnbiA6IGAke2Fycm93WENlbnRlcn1weGA7XG4gICAgICB5ID0gYCR7cmVjdHMuZmxvYXRpbmcuaGVpZ2h0ICsgYXJyb3dIZWlnaHR9cHhgO1xuICAgIH0gZWxzZSBpZiAocGxhY2VkU2lkZSA9PT0gXCJyaWdodFwiKSB7XG4gICAgICB4ID0gYCR7LWFycm93SGVpZ2h0fXB4YDtcbiAgICAgIHkgPSBpc0Fycm93SGlkZGVuID8gbm9BcnJvd0FsaWduIDogYCR7YXJyb3dZQ2VudGVyfXB4YDtcbiAgICB9IGVsc2UgaWYgKHBsYWNlZFNpZGUgPT09IFwibGVmdFwiKSB7XG4gICAgICB4ID0gYCR7cmVjdHMuZmxvYXRpbmcud2lkdGggKyBhcnJvd0hlaWdodH1weGA7XG4gICAgICB5ID0gaXNBcnJvd0hpZGRlbiA/IG5vQXJyb3dBbGlnbiA6IGAke2Fycm93WUNlbnRlcn1weGA7XG4gICAgfVxuICAgIHJldHVybiB7IGRhdGE6IHsgeCwgeSB9IH07XG4gIH1cbn0pO1xuZnVuY3Rpb24gZ2V0U2lkZUFuZEFsaWduRnJvbVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgY29uc3QgW3NpZGUsIGFsaWduID0gXCJjZW50ZXJcIl0gPSBwbGFjZW1lbnQuc3BsaXQoXCItXCIpO1xuICByZXR1cm4gW3NpZGUsIGFsaWduXTtcbn1cbnZhciBSb290MiA9IFBvcHBlcjtcbnZhciBBbmNob3IgPSBQb3BwZXJBbmNob3I7XG52YXIgQ29udGVudCA9IFBvcHBlckNvbnRlbnQ7XG52YXIgQXJyb3cgPSBQb3BwZXJBcnJvdztcbmV4cG9ydCB7XG4gIEFMSUdOX09QVElPTlMsXG4gIEFuY2hvcixcbiAgQXJyb3csXG4gIENvbnRlbnQsXG4gIFBvcHBlcixcbiAgUG9wcGVyQW5jaG9yLFxuICBQb3BwZXJBcnJvdyxcbiAgUG9wcGVyQ29udGVudCxcbiAgUm9vdDIgYXMgUm9vdCxcbiAgU0lERV9PUFRJT05TLFxuICBjcmVhdGVQb3BwZXJTY29wZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsIlwidXNlIGNsaWVudFwiO1xuXG4vLyBwYWNrYWdlcy9yZWFjdC9yb3ZpbmctZm9jdXMvc3JjL3JvdmluZy1mb2N1cy1ncm91cC50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tIFwiQHJhZGl4LXVpL3ByaW1pdGl2ZVwiO1xuaW1wb3J0IHsgY3JlYXRlQ29sbGVjdGlvbiB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29sbGVjdGlvblwiO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnNcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29udGV4dFwiO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWlkXCI7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZVwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2tSZWYgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1jYWxsYmFjay1yZWZcIjtcbmltcG9ydCB7IHVzZUNvbnRyb2xsYWJsZVN0YXRlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlXCI7XG5pbXBvcnQgeyB1c2VEaXJlY3Rpb24gfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRpcmVjdGlvblwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgRU5UUllfRk9DVVMgPSBcInJvdmluZ0ZvY3VzR3JvdXAub25FbnRyeUZvY3VzXCI7XG52YXIgRVZFTlRfT1BUSU9OUyA9IHsgYnViYmxlczogZmFsc2UsIGNhbmNlbGFibGU6IHRydWUgfTtcbnZhciBHUk9VUF9OQU1FID0gXCJSb3ZpbmdGb2N1c0dyb3VwXCI7XG52YXIgW0NvbGxlY3Rpb24sIHVzZUNvbGxlY3Rpb24sIGNyZWF0ZUNvbGxlY3Rpb25TY29wZV0gPSBjcmVhdGVDb2xsZWN0aW9uKEdST1VQX05BTUUpO1xudmFyIFtjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwQ29udGV4dCwgY3JlYXRlUm92aW5nRm9jdXNHcm91cFNjb3BlXSA9IGNyZWF0ZUNvbnRleHRTY29wZShcbiAgR1JPVVBfTkFNRSxcbiAgW2NyZWF0ZUNvbGxlY3Rpb25TY29wZV1cbik7XG52YXIgW1JvdmluZ0ZvY3VzUHJvdmlkZXIsIHVzZVJvdmluZ0ZvY3VzQ29udGV4dF0gPSBjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwQ29udGV4dChHUk9VUF9OQU1FKTtcbnZhciBSb3ZpbmdGb2N1c0dyb3VwID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChDb2xsZWN0aW9uLlByb3ZpZGVyLCB7IHNjb3BlOiBwcm9wcy5fX3Njb3BlUm92aW5nRm9jdXNHcm91cCwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQ29sbGVjdGlvbi5TbG90LCB7IHNjb3BlOiBwcm9wcy5fX3Njb3BlUm92aW5nRm9jdXNHcm91cCwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goUm92aW5nRm9jdXNHcm91cEltcGwsIHsgLi4ucHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pIH0pIH0pO1xuICB9XG4pO1xuUm92aW5nRm9jdXNHcm91cC5kaXNwbGF5TmFtZSA9IEdST1VQX05BTUU7XG52YXIgUm92aW5nRm9jdXNHcm91cEltcGwgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfX3Njb3BlUm92aW5nRm9jdXNHcm91cCxcbiAgICBvcmllbnRhdGlvbixcbiAgICBsb29wID0gZmFsc2UsXG4gICAgZGlyLFxuICAgIGN1cnJlbnRUYWJTdG9wSWQ6IGN1cnJlbnRUYWJTdG9wSWRQcm9wLFxuICAgIGRlZmF1bHRDdXJyZW50VGFiU3RvcElkLFxuICAgIG9uQ3VycmVudFRhYlN0b3BJZENoYW5nZSxcbiAgICBvbkVudHJ5Rm9jdXMsXG4gICAgcHJldmVudFNjcm9sbE9uRW50cnlGb2N1cyA9IGZhbHNlLFxuICAgIC4uLmdyb3VwUHJvcHNcbiAgfSA9IHByb3BzO1xuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG4gIGNvbnN0IGRpcmVjdGlvbiA9IHVzZURpcmVjdGlvbihkaXIpO1xuICBjb25zdCBbY3VycmVudFRhYlN0b3BJZCA9IG51bGwsIHNldEN1cnJlbnRUYWJTdG9wSWRdID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgIHByb3A6IGN1cnJlbnRUYWJTdG9wSWRQcm9wLFxuICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0Q3VycmVudFRhYlN0b3BJZCxcbiAgICBvbkNoYW5nZTogb25DdXJyZW50VGFiU3RvcElkQ2hhbmdlXG4gIH0pO1xuICBjb25zdCBbaXNUYWJiaW5nQmFja091dCwgc2V0SXNUYWJiaW5nQmFja091dF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGhhbmRsZUVudHJ5Rm9jdXMgPSB1c2VDYWxsYmFja1JlZihvbkVudHJ5Rm9jdXMpO1xuICBjb25zdCBnZXRJdGVtcyA9IHVzZUNvbGxlY3Rpb24oX19zY29wZVJvdmluZ0ZvY3VzR3JvdXApO1xuICBjb25zdCBpc0NsaWNrRm9jdXNSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCBbZm9jdXNhYmxlSXRlbXNDb3VudCwgc2V0Rm9jdXNhYmxlSXRlbXNDb3VudF0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBub2RlID0gcmVmLmN1cnJlbnQ7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihFTlRSWV9GT0NVUywgaGFuZGxlRW50cnlGb2N1cyk7XG4gICAgICByZXR1cm4gKCkgPT4gbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKEVOVFJZX0ZPQ1VTLCBoYW5kbGVFbnRyeUZvY3VzKTtcbiAgICB9XG4gIH0sIFtoYW5kbGVFbnRyeUZvY3VzXSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFJvdmluZ0ZvY3VzUHJvdmlkZXIsXG4gICAge1xuICAgICAgc2NvcGU6IF9fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwLFxuICAgICAgb3JpZW50YXRpb24sXG4gICAgICBkaXI6IGRpcmVjdGlvbixcbiAgICAgIGxvb3AsXG4gICAgICBjdXJyZW50VGFiU3RvcElkLFxuICAgICAgb25JdGVtRm9jdXM6IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgICAodGFiU3RvcElkKSA9PiBzZXRDdXJyZW50VGFiU3RvcElkKHRhYlN0b3BJZCksXG4gICAgICAgIFtzZXRDdXJyZW50VGFiU3RvcElkXVxuICAgICAgKSxcbiAgICAgIG9uSXRlbVNoaWZ0VGFiOiBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiBzZXRJc1RhYmJpbmdCYWNrT3V0KHRydWUpLCBbXSksXG4gICAgICBvbkZvY3VzYWJsZUl0ZW1BZGQ6IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgICAoKSA9PiBzZXRGb2N1c2FibGVJdGVtc0NvdW50KChwcmV2Q291bnQpID0+IHByZXZDb3VudCArIDEpLFxuICAgICAgICBbXVxuICAgICAgKSxcbiAgICAgIG9uRm9jdXNhYmxlSXRlbVJlbW92ZTogUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgICAgICgpID0+IHNldEZvY3VzYWJsZUl0ZW1zQ291bnQoKHByZXZDb3VudCkgPT4gcHJldkNvdW50IC0gMSksXG4gICAgICAgIFtdXG4gICAgICApLFxuICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgIFByaW1pdGl2ZS5kaXYsXG4gICAgICAgIHtcbiAgICAgICAgICB0YWJJbmRleDogaXNUYWJiaW5nQmFja091dCB8fCBmb2N1c2FibGVJdGVtc0NvdW50ID09PSAwID8gLTEgOiAwLFxuICAgICAgICAgIFwiZGF0YS1vcmllbnRhdGlvblwiOiBvcmllbnRhdGlvbixcbiAgICAgICAgICAuLi5ncm91cFByb3BzLFxuICAgICAgICAgIHJlZjogY29tcG9zZWRSZWZzLFxuICAgICAgICAgIHN0eWxlOiB7IG91dGxpbmU6IFwibm9uZVwiLCAuLi5wcm9wcy5zdHlsZSB9LFxuICAgICAgICAgIG9uTW91c2VEb3duOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbk1vdXNlRG93biwgKCkgPT4ge1xuICAgICAgICAgICAgaXNDbGlja0ZvY3VzUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIG9uRm9jdXM6IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRm9jdXMsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNLZXlib2FyZEZvY3VzID0gIWlzQ2xpY2tGb2N1c1JlZi5jdXJyZW50O1xuICAgICAgICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gZXZlbnQuY3VycmVudFRhcmdldCAmJiBpc0tleWJvYXJkRm9jdXMgJiYgIWlzVGFiYmluZ0JhY2tPdXQpIHtcbiAgICAgICAgICAgICAgY29uc3QgZW50cnlGb2N1c0V2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KEVOVFJZX0ZPQ1VTLCBFVkVOVF9PUFRJT05TKTtcbiAgICAgICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5kaXNwYXRjaEV2ZW50KGVudHJ5Rm9jdXNFdmVudCk7XG4gICAgICAgICAgICAgIGlmICghZW50cnlGb2N1c0V2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IGdldEl0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmZvY3VzYWJsZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlSXRlbSA9IGl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uYWN0aXZlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IGl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGN1cnJlbnRUYWJTdG9wSWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZUl0ZW1zID0gW2FjdGl2ZUl0ZW0sIGN1cnJlbnRJdGVtLCAuLi5pdGVtc10uZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgQm9vbGVhblxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlTm9kZXMgPSBjYW5kaWRhdGVJdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ucmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIGZvY3VzRmlyc3QoY2FuZGlkYXRlTm9kZXMsIHByZXZlbnRTY3JvbGxPbkVudHJ5Rm9jdXMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpc0NsaWNrRm9jdXNSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIG9uQmx1cjogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25CbHVyLCAoKSA9PiBzZXRJc1RhYmJpbmdCYWNrT3V0KGZhbHNlKSlcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cbiAgKTtcbn0pO1xudmFyIElURU1fTkFNRSA9IFwiUm92aW5nRm9jdXNHcm91cEl0ZW1cIjtcbnZhciBSb3ZpbmdGb2N1c0dyb3VwSXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgX19zY29wZVJvdmluZ0ZvY3VzR3JvdXAsXG4gICAgICBmb2N1c2FibGUgPSB0cnVlLFxuICAgICAgYWN0aXZlID0gZmFsc2UsXG4gICAgICB0YWJTdG9wSWQsXG4gICAgICAuLi5pdGVtUHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgYXV0b0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBpZCA9IHRhYlN0b3BJZCB8fCBhdXRvSWQ7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVJvdmluZ0ZvY3VzQ29udGV4dChJVEVNX05BTUUsIF9fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwKTtcbiAgICBjb25zdCBpc0N1cnJlbnRUYWJTdG9wID0gY29udGV4dC5jdXJyZW50VGFiU3RvcElkID09PSBpZDtcbiAgICBjb25zdCBnZXRJdGVtcyA9IHVzZUNvbGxlY3Rpb24oX19zY29wZVJvdmluZ0ZvY3VzR3JvdXApO1xuICAgIGNvbnN0IHsgb25Gb2N1c2FibGVJdGVtQWRkLCBvbkZvY3VzYWJsZUl0ZW1SZW1vdmUgfSA9IGNvbnRleHQ7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChmb2N1c2FibGUpIHtcbiAgICAgICAgb25Gb2N1c2FibGVJdGVtQWRkKCk7XG4gICAgICAgIHJldHVybiAoKSA9PiBvbkZvY3VzYWJsZUl0ZW1SZW1vdmUoKTtcbiAgICAgIH1cbiAgICB9LCBbZm9jdXNhYmxlLCBvbkZvY3VzYWJsZUl0ZW1BZGQsIG9uRm9jdXNhYmxlSXRlbVJlbW92ZV0pO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgQ29sbGVjdGlvbi5JdGVtU2xvdCxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6IF9fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwLFxuICAgICAgICBpZCxcbiAgICAgICAgZm9jdXNhYmxlLFxuICAgICAgICBhY3RpdmUsXG4gICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgIFByaW1pdGl2ZS5zcGFuLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRhYkluZGV4OiBpc0N1cnJlbnRUYWJTdG9wID8gMCA6IC0xLFxuICAgICAgICAgICAgXCJkYXRhLW9yaWVudGF0aW9uXCI6IGNvbnRleHQub3JpZW50YXRpb24sXG4gICAgICAgICAgICAuLi5pdGVtUHJvcHMsXG4gICAgICAgICAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICAgICAgICAgIG9uTW91c2VEb3duOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbk1vdXNlRG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlmICghZm9jdXNhYmxlKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBlbHNlIGNvbnRleHQub25JdGVtRm9jdXMoaWQpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBvbkZvY3VzOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkZvY3VzLCAoKSA9PiBjb250ZXh0Lm9uSXRlbUZvY3VzKGlkKSksXG4gICAgICAgICAgICBvbktleURvd246IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09IFwiVGFiXCIgJiYgZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm9uSXRlbVNoaWZ0VGFiKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChldmVudC50YXJnZXQgIT09IGV2ZW50LmN1cnJlbnRUYXJnZXQpIHJldHVybjtcbiAgICAgICAgICAgICAgY29uc3QgZm9jdXNJbnRlbnQgPSBnZXRGb2N1c0ludGVudChldmVudCwgY29udGV4dC5vcmllbnRhdGlvbiwgY29udGV4dC5kaXIpO1xuICAgICAgICAgICAgICBpZiAoZm9jdXNJbnRlbnQgIT09IHZvaWQgMCkge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuYWx0S2V5IHx8IGV2ZW50LnNoaWZ0S2V5KSByZXR1cm47XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IGdldEl0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmZvY3VzYWJsZSk7XG4gICAgICAgICAgICAgICAgbGV0IGNhbmRpZGF0ZU5vZGVzID0gaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoZm9jdXNJbnRlbnQgPT09IFwibGFzdFwiKSBjYW5kaWRhdGVOb2Rlcy5yZXZlcnNlKCk7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoZm9jdXNJbnRlbnQgPT09IFwicHJldlwiIHx8IGZvY3VzSW50ZW50ID09PSBcIm5leHRcIikge1xuICAgICAgICAgICAgICAgICAgaWYgKGZvY3VzSW50ZW50ID09PSBcInByZXZcIikgY2FuZGlkYXRlTm9kZXMucmV2ZXJzZSgpO1xuICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY2FuZGlkYXRlTm9kZXMuaW5kZXhPZihldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZU5vZGVzID0gY29udGV4dC5sb29wID8gd3JhcEFycmF5KGNhbmRpZGF0ZU5vZGVzLCBjdXJyZW50SW5kZXggKyAxKSA6IGNhbmRpZGF0ZU5vZGVzLnNsaWNlKGN1cnJlbnRJbmRleCArIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGZvY3VzRmlyc3QoY2FuZGlkYXRlTm9kZXMpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xuUm92aW5nRm9jdXNHcm91cEl0ZW0uZGlzcGxheU5hbWUgPSBJVEVNX05BTUU7XG52YXIgTUFQX0tFWV9UT19GT0NVU19JTlRFTlQgPSB7XG4gIEFycm93TGVmdDogXCJwcmV2XCIsXG4gIEFycm93VXA6IFwicHJldlwiLFxuICBBcnJvd1JpZ2h0OiBcIm5leHRcIixcbiAgQXJyb3dEb3duOiBcIm5leHRcIixcbiAgUGFnZVVwOiBcImZpcnN0XCIsXG4gIEhvbWU6IFwiZmlyc3RcIixcbiAgUGFnZURvd246IFwibGFzdFwiLFxuICBFbmQ6IFwibGFzdFwiXG59O1xuZnVuY3Rpb24gZ2V0RGlyZWN0aW9uQXdhcmVLZXkoa2V5LCBkaXIpIHtcbiAgaWYgKGRpciAhPT0gXCJydGxcIikgcmV0dXJuIGtleTtcbiAgcmV0dXJuIGtleSA9PT0gXCJBcnJvd0xlZnRcIiA/IFwiQXJyb3dSaWdodFwiIDoga2V5ID09PSBcIkFycm93UmlnaHRcIiA/IFwiQXJyb3dMZWZ0XCIgOiBrZXk7XG59XG5mdW5jdGlvbiBnZXRGb2N1c0ludGVudChldmVudCwgb3JpZW50YXRpb24sIGRpcikge1xuICBjb25zdCBrZXkgPSBnZXREaXJlY3Rpb25Bd2FyZUtleShldmVudC5rZXksIGRpcik7XG4gIGlmIChvcmllbnRhdGlvbiA9PT0gXCJ2ZXJ0aWNhbFwiICYmIFtcIkFycm93TGVmdFwiLCBcIkFycm93UmlnaHRcIl0uaW5jbHVkZXMoa2V5KSkgcmV0dXJuIHZvaWQgMDtcbiAgaWYgKG9yaWVudGF0aW9uID09PSBcImhvcml6b250YWxcIiAmJiBbXCJBcnJvd1VwXCIsIFwiQXJyb3dEb3duXCJdLmluY2x1ZGVzKGtleSkpIHJldHVybiB2b2lkIDA7XG4gIHJldHVybiBNQVBfS0VZX1RPX0ZPQ1VTX0lOVEVOVFtrZXldO1xufVxuZnVuY3Rpb24gZm9jdXNGaXJzdChjYW5kaWRhdGVzLCBwcmV2ZW50U2Nyb2xsID0gZmFsc2UpIHtcbiAgY29uc3QgUFJFVklPVVNMWV9GT0NVU0VEX0VMRU1FTlQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBjYW5kaWRhdGVzKSB7XG4gICAgaWYgKGNhbmRpZGF0ZSA9PT0gUFJFVklPVVNMWV9GT0NVU0VEX0VMRU1FTlQpIHJldHVybjtcbiAgICBjYW5kaWRhdGUuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsIH0pO1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBQUkVWSU9VU0xZX0ZPQ1VTRURfRUxFTUVOVCkgcmV0dXJuO1xuICB9XG59XG5mdW5jdGlvbiB3cmFwQXJyYXkoYXJyYXksIHN0YXJ0SW5kZXgpIHtcbiAgcmV0dXJuIGFycmF5Lm1hcCgoXywgaW5kZXgpID0+IGFycmF5WyhzdGFydEluZGV4ICsgaW5kZXgpICUgYXJyYXkubGVuZ3RoXSk7XG59XG52YXIgUm9vdCA9IFJvdmluZ0ZvY3VzR3JvdXA7XG52YXIgSXRlbSA9IFJvdmluZ0ZvY3VzR3JvdXBJdGVtO1xuZXhwb3J0IHtcbiAgSXRlbSxcbiAgUm9vdCxcbiAgUm92aW5nRm9jdXNHcm91cCxcbiAgUm92aW5nRm9jdXNHcm91cEl0ZW0sXG4gIGNyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBTY29wZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsIlwidXNlIGNsaWVudFwiO1xuXG4vLyBwYWNrYWdlcy9yZWFjdC9tZW51L3NyYy9tZW51LnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gXCJAcmFkaXgtdWkvcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyBjcmVhdGVDb2xsZWN0aW9uIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb2xsZWN0aW9uXCI7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMsIGNvbXBvc2VSZWZzIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnNcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29udGV4dFwiO1xuaW1wb3J0IHsgdXNlRGlyZWN0aW9uIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1kaXJlY3Rpb25cIjtcbmltcG9ydCB7IERpc21pc3NhYmxlTGF5ZXIgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyXCI7XG5pbXBvcnQgeyB1c2VGb2N1c0d1YXJkcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtZm9jdXMtZ3VhcmRzXCI7XG5pbXBvcnQgeyBGb2N1c1Njb3BlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1mb2N1cy1zY29wZVwiO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWlkXCI7XG5pbXBvcnQgKiBhcyBQb3BwZXJQcmltaXRpdmUgZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wb3BwZXJcIjtcbmltcG9ydCB7IGNyZWF0ZVBvcHBlclNjb3BlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wb3BwZXJcIjtcbmltcG9ydCB7IFBvcnRhbCBhcyBQb3J0YWxQcmltaXRpdmUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXBvcnRhbFwiO1xuaW1wb3J0IHsgUHJlc2VuY2UgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByZXNlbmNlXCI7XG5pbXBvcnQgeyBQcmltaXRpdmUsIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgKiBhcyBSb3ZpbmdGb2N1c0dyb3VwIGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtcm92aW5nLWZvY3VzXCI7XG5pbXBvcnQgeyBjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwU2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXJvdmluZy1mb2N1c1wiO1xuaW1wb3J0IHsgU2xvdCB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtc2xvdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2tSZWYgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1jYWxsYmFjay1yZWZcIjtcbmltcG9ydCB7IGhpZGVPdGhlcnMgfSBmcm9tIFwiYXJpYS1oaWRkZW5cIjtcbmltcG9ydCB7IFJlbW92ZVNjcm9sbCB9IGZyb20gXCJyZWFjdC1yZW1vdmUtc2Nyb2xsXCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBTRUxFQ1RJT05fS0VZUyA9IFtcIkVudGVyXCIsIFwiIFwiXTtcbnZhciBGSVJTVF9LRVlTID0gW1wiQXJyb3dEb3duXCIsIFwiUGFnZVVwXCIsIFwiSG9tZVwiXTtcbnZhciBMQVNUX0tFWVMgPSBbXCJBcnJvd1VwXCIsIFwiUGFnZURvd25cIiwgXCJFbmRcIl07XG52YXIgRklSU1RfTEFTVF9LRVlTID0gWy4uLkZJUlNUX0tFWVMsIC4uLkxBU1RfS0VZU107XG52YXIgU1VCX09QRU5fS0VZUyA9IHtcbiAgbHRyOiBbLi4uU0VMRUNUSU9OX0tFWVMsIFwiQXJyb3dSaWdodFwiXSxcbiAgcnRsOiBbLi4uU0VMRUNUSU9OX0tFWVMsIFwiQXJyb3dMZWZ0XCJdXG59O1xudmFyIFNVQl9DTE9TRV9LRVlTID0ge1xuICBsdHI6IFtcIkFycm93TGVmdFwiXSxcbiAgcnRsOiBbXCJBcnJvd1JpZ2h0XCJdXG59O1xudmFyIE1FTlVfTkFNRSA9IFwiTWVudVwiO1xudmFyIFtDb2xsZWN0aW9uLCB1c2VDb2xsZWN0aW9uLCBjcmVhdGVDb2xsZWN0aW9uU2NvcGVdID0gY3JlYXRlQ29sbGVjdGlvbihNRU5VX05BTUUpO1xudmFyIFtjcmVhdGVNZW51Q29udGV4dCwgY3JlYXRlTWVudVNjb3BlXSA9IGNyZWF0ZUNvbnRleHRTY29wZShNRU5VX05BTUUsIFtcbiAgY3JlYXRlQ29sbGVjdGlvblNjb3BlLFxuICBjcmVhdGVQb3BwZXJTY29wZSxcbiAgY3JlYXRlUm92aW5nRm9jdXNHcm91cFNjb3BlXG5dKTtcbnZhciB1c2VQb3BwZXJTY29wZSA9IGNyZWF0ZVBvcHBlclNjb3BlKCk7XG52YXIgdXNlUm92aW5nRm9jdXNHcm91cFNjb3BlID0gY3JlYXRlUm92aW5nRm9jdXNHcm91cFNjb3BlKCk7XG52YXIgW01lbnVQcm92aWRlciwgdXNlTWVudUNvbnRleHRdID0gY3JlYXRlTWVudUNvbnRleHQoTUVOVV9OQU1FKTtcbnZhciBbTWVudVJvb3RQcm92aWRlciwgdXNlTWVudVJvb3RDb250ZXh0XSA9IGNyZWF0ZU1lbnVDb250ZXh0KE1FTlVfTkFNRSk7XG52YXIgTWVudSA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVNZW51LCBvcGVuID0gZmFsc2UsIGNoaWxkcmVuLCBkaXIsIG9uT3BlbkNoYW5nZSwgbW9kYWwgPSB0cnVlIH0gPSBwcm9wcztcbiAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlTWVudSk7XG4gIGNvbnN0IFtjb250ZW50LCBzZXRDb250ZW50XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBpc1VzaW5nS2V5Ym9hcmRSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCBoYW5kbGVPcGVuQ2hhbmdlID0gdXNlQ2FsbGJhY2tSZWYob25PcGVuQ2hhbmdlKTtcbiAgY29uc3QgZGlyZWN0aW9uID0gdXNlRGlyZWN0aW9uKGRpcik7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlS2V5RG93biA9ICgpID0+IHtcbiAgICAgIGlzVXNpbmdLZXlib2FyZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVyZG93blwiLCBoYW5kbGVQb2ludGVyLCB7IGNhcHR1cmU6IHRydWUsIG9uY2U6IHRydWUgfSk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcm1vdmVcIiwgaGFuZGxlUG9pbnRlciwgeyBjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlIH0pO1xuICAgIH07XG4gICAgY29uc3QgaGFuZGxlUG9pbnRlciA9ICgpID0+IGlzVXNpbmdLZXlib2FyZFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgaGFuZGxlS2V5RG93biwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVLZXlEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIiwgaGFuZGxlUG9pbnRlciwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJtb3ZlXCIsIGhhbmRsZVBvaW50ZXIsIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICB9O1xuICB9LCBbXSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFBvcHBlclByaW1pdGl2ZS5Sb290LCB7IC4uLnBvcHBlclNjb3BlLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBNZW51UHJvdmlkZXIsXG4gICAge1xuICAgICAgc2NvcGU6IF9fc2NvcGVNZW51LFxuICAgICAgb3BlbixcbiAgICAgIG9uT3BlbkNoYW5nZTogaGFuZGxlT3BlbkNoYW5nZSxcbiAgICAgIGNvbnRlbnQsXG4gICAgICBvbkNvbnRlbnRDaGFuZ2U6IHNldENvbnRlbnQsXG4gICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgTWVudVJvb3RQcm92aWRlcixcbiAgICAgICAge1xuICAgICAgICAgIHNjb3BlOiBfX3Njb3BlTWVudSxcbiAgICAgICAgICBvbkNsb3NlOiBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKSwgW2hhbmRsZU9wZW5DaGFuZ2VdKSxcbiAgICAgICAgICBpc1VzaW5nS2V5Ym9hcmRSZWYsXG4gICAgICAgICAgZGlyOiBkaXJlY3Rpb24sXG4gICAgICAgICAgbW9kYWwsXG4gICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cbiAgKSB9KTtcbn07XG5NZW51LmRpc3BsYXlOYW1lID0gTUVOVV9OQU1FO1xudmFyIEFOQ0hPUl9OQU1FID0gXCJNZW51QW5jaG9yXCI7XG52YXIgTWVudUFuY2hvciA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlTWVudSwgLi4uYW5jaG9yUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZU1lbnUpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFBvcHBlclByaW1pdGl2ZS5BbmNob3IsIHsgLi4ucG9wcGVyU2NvcGUsIC4uLmFuY2hvclByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KTtcbiAgfVxuKTtcbk1lbnVBbmNob3IuZGlzcGxheU5hbWUgPSBBTkNIT1JfTkFNRTtcbnZhciBQT1JUQUxfTkFNRSA9IFwiTWVudVBvcnRhbFwiO1xudmFyIFtQb3J0YWxQcm92aWRlciwgdXNlUG9ydGFsQ29udGV4dF0gPSBjcmVhdGVNZW51Q29udGV4dChQT1JUQUxfTkFNRSwge1xuICBmb3JjZU1vdW50OiB2b2lkIDBcbn0pO1xudmFyIE1lbnVQb3J0YWwgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlTWVudSwgZm9yY2VNb3VudCwgY2hpbGRyZW4sIGNvbnRhaW5lciB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VNZW51Q29udGV4dChQT1JUQUxfTkFNRSwgX19zY29wZU1lbnUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChQb3J0YWxQcm92aWRlciwgeyBzY29wZTogX19zY29wZU1lbnUsIGZvcmNlTW91bnQsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFByZXNlbmNlLCB7IHByZXNlbnQ6IGZvcmNlTW91bnQgfHwgY29udGV4dC5vcGVuLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChQb3J0YWxQcmltaXRpdmUsIHsgYXNDaGlsZDogdHJ1ZSwgY29udGFpbmVyLCBjaGlsZHJlbiB9KSB9KSB9KTtcbn07XG5NZW51UG9ydGFsLmRpc3BsYXlOYW1lID0gUE9SVEFMX05BTUU7XG52YXIgQ09OVEVOVF9OQU1FID0gXCJNZW51Q29udGVudFwiO1xudmFyIFtNZW51Q29udGVudFByb3ZpZGVyLCB1c2VNZW51Q29udGVudENvbnRleHRdID0gY3JlYXRlTWVudUNvbnRleHQoQ09OVEVOVF9OQU1FKTtcbnZhciBNZW51Q29udGVudCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgcG9ydGFsQ29udGV4dCA9IHVzZVBvcnRhbENvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlTWVudSk7XG4gICAgY29uc3QgeyBmb3JjZU1vdW50ID0gcG9ydGFsQ29udGV4dC5mb3JjZU1vdW50LCAuLi5jb250ZW50UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VNZW51Q29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCByb290Q29udGV4dCA9IHVzZU1lbnVSb290Q29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChDb2xsZWN0aW9uLlByb3ZpZGVyLCB7IHNjb3BlOiBwcm9wcy5fX3Njb3BlTWVudSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goUHJlc2VuY2UsIHsgcHJlc2VudDogZm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW4sIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KENvbGxlY3Rpb24uU2xvdCwgeyBzY29wZTogcHJvcHMuX19zY29wZU1lbnUsIGNoaWxkcmVuOiByb290Q29udGV4dC5tb2RhbCA/IC8qIEBfX1BVUkVfXyAqLyBqc3goTWVudVJvb3RDb250ZW50TW9kYWwsIHsgLi4uY29udGVudFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goTWVudVJvb3RDb250ZW50Tm9uTW9kYWwsIHsgLi4uY29udGVudFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KSB9KSB9KSB9KTtcbiAgfVxuKTtcbnZhciBNZW51Um9vdENvbnRlbnRNb2RhbCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU1lbnVDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjb250ZW50ID0gcmVmLmN1cnJlbnQ7XG4gICAgICBpZiAoY29udGVudCkgcmV0dXJuIGhpZGVPdGhlcnMoY29udGVudCk7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgTWVudUNvbnRlbnRJbXBsLFxuICAgICAge1xuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXG4gICAgICAgIHRyYXBGb2N1czogY29udGV4dC5vcGVuLFxuICAgICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHM6IGNvbnRleHQub3BlbixcbiAgICAgICAgZGlzYWJsZU91dHNpZGVTY3JvbGw6IHRydWUsXG4gICAgICAgIG9uRm9jdXNPdXRzaWRlOiBjb21wb3NlRXZlbnRIYW5kbGVycyhcbiAgICAgICAgICBwcm9wcy5vbkZvY3VzT3V0c2lkZSxcbiAgICAgICAgICAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgeyBjaGVja0ZvckRlZmF1bHRQcmV2ZW50ZWQ6IGZhbHNlIH1cbiAgICAgICAgKSxcbiAgICAgICAgb25EaXNtaXNzOiAoKSA9PiBjb250ZXh0Lm9uT3BlbkNoYW5nZShmYWxzZSlcbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xudmFyIE1lbnVSb290Q29udGVudE5vbk1vZGFsID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTWVudUNvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlTWVudSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIE1lbnVDb250ZW50SW1wbCxcbiAgICB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgICAgdHJhcEZvY3VzOiBmYWxzZSxcbiAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50czogZmFsc2UsXG4gICAgICBkaXNhYmxlT3V0c2lkZVNjcm9sbDogZmFsc2UsXG4gICAgICBvbkRpc21pc3M6ICgpID0+IGNvbnRleHQub25PcGVuQ2hhbmdlKGZhbHNlKVxuICAgIH1cbiAgKTtcbn0pO1xudmFyIE1lbnVDb250ZW50SW1wbCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgX19zY29wZU1lbnUsXG4gICAgICBsb29wID0gZmFsc2UsXG4gICAgICB0cmFwRm9jdXMsXG4gICAgICBvbk9wZW5BdXRvRm9jdXMsXG4gICAgICBvbkNsb3NlQXV0b0ZvY3VzLFxuICAgICAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzLFxuICAgICAgb25FbnRyeUZvY3VzLFxuICAgICAgb25Fc2NhcGVLZXlEb3duLFxuICAgICAgb25Qb2ludGVyRG93bk91dHNpZGUsXG4gICAgICBvbkZvY3VzT3V0c2lkZSxcbiAgICAgIG9uSW50ZXJhY3RPdXRzaWRlLFxuICAgICAgb25EaXNtaXNzLFxuICAgICAgZGlzYWJsZU91dHNpZGVTY3JvbGwsXG4gICAgICAuLi5jb250ZW50UHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU1lbnVDb250ZXh0KENPTlRFTlRfTkFNRSwgX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IHJvb3RDb250ZXh0ID0gdXNlTWVudVJvb3RDb250ZXh0KENPTlRFTlRfTkFNRSwgX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IHJvdmluZ0ZvY3VzR3JvdXBTY29wZSA9IHVzZVJvdmluZ0ZvY3VzR3JvdXBTY29wZShfX3Njb3BlTWVudSk7XG4gICAgY29uc3QgZ2V0SXRlbXMgPSB1c2VDb2xsZWN0aW9uKF9fc2NvcGVNZW51KTtcbiAgICBjb25zdCBbY3VycmVudEl0ZW1JZCwgc2V0Q3VycmVudEl0ZW1JZF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBjb250ZW50UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRlbnRSZWYsIGNvbnRleHQub25Db250ZW50Q2hhbmdlKTtcbiAgICBjb25zdCB0aW1lclJlZiA9IFJlYWN0LnVzZVJlZigwKTtcbiAgICBjb25zdCBzZWFyY2hSZWYgPSBSZWFjdC51c2VSZWYoXCJcIik7XG4gICAgY29uc3QgcG9pbnRlckdyYWNlVGltZXJSZWYgPSBSZWFjdC51c2VSZWYoMCk7XG4gICAgY29uc3QgcG9pbnRlckdyYWNlSW50ZW50UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHBvaW50ZXJEaXJSZWYgPSBSZWFjdC51c2VSZWYoXCJyaWdodFwiKTtcbiAgICBjb25zdCBsYXN0UG9pbnRlclhSZWYgPSBSZWFjdC51c2VSZWYoMCk7XG4gICAgY29uc3QgU2Nyb2xsTG9ja1dyYXBwZXIgPSBkaXNhYmxlT3V0c2lkZVNjcm9sbCA/IFJlbW92ZVNjcm9sbCA6IFJlYWN0LkZyYWdtZW50O1xuICAgIGNvbnN0IHNjcm9sbExvY2tXcmFwcGVyUHJvcHMgPSBkaXNhYmxlT3V0c2lkZVNjcm9sbCA/IHsgYXM6IFNsb3QsIGFsbG93UGluY2hab29tOiB0cnVlIH0gOiB2b2lkIDA7XG4gICAgY29uc3QgaGFuZGxlVHlwZWFoZWFkU2VhcmNoID0gKGtleSkgPT4ge1xuICAgICAgY29uc3Qgc2VhcmNoID0gc2VhcmNoUmVmLmN1cnJlbnQgKyBrZXk7XG4gICAgICBjb25zdCBpdGVtcyA9IGdldEl0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5kaXNhYmxlZCk7XG4gICAgICBjb25zdCBjdXJyZW50SXRlbSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCBjdXJyZW50TWF0Y2ggPSBpdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLnJlZi5jdXJyZW50ID09PSBjdXJyZW50SXRlbSk/LnRleHRWYWx1ZTtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0VmFsdWUpO1xuICAgICAgY29uc3QgbmV4dE1hdGNoID0gZ2V0TmV4dE1hdGNoKHZhbHVlcywgc2VhcmNoLCBjdXJyZW50TWF0Y2gpO1xuICAgICAgY29uc3QgbmV3SXRlbSA9IGl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udGV4dFZhbHVlID09PSBuZXh0TWF0Y2gpPy5yZWYuY3VycmVudDtcbiAgICAgIChmdW5jdGlvbiB1cGRhdGVTZWFyY2godmFsdWUpIHtcbiAgICAgICAgc2VhcmNoUmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lclJlZi5jdXJyZW50KTtcbiAgICAgICAgaWYgKHZhbHVlICE9PSBcIlwiKSB0aW1lclJlZi5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdXBkYXRlU2VhcmNoKFwiXCIpLCAxZTMpO1xuICAgICAgfSkoc2VhcmNoKTtcbiAgICAgIGlmIChuZXdJdGVtKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gbmV3SXRlbS5mb2N1cygpKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICByZXR1cm4gKCkgPT4gd2luZG93LmNsZWFyVGltZW91dCh0aW1lclJlZi5jdXJyZW50KTtcbiAgICB9LCBbXSk7XG4gICAgdXNlRm9jdXNHdWFyZHMoKTtcbiAgICBjb25zdCBpc1BvaW50ZXJNb3ZpbmdUb1N1Ym1lbnUgPSBSZWFjdC51c2VDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGlzTW92aW5nVG93YXJkcyA9IHBvaW50ZXJEaXJSZWYuY3VycmVudCA9PT0gcG9pbnRlckdyYWNlSW50ZW50UmVmLmN1cnJlbnQ/LnNpZGU7XG4gICAgICByZXR1cm4gaXNNb3ZpbmdUb3dhcmRzICYmIGlzUG9pbnRlckluR3JhY2VBcmVhKGV2ZW50LCBwb2ludGVyR3JhY2VJbnRlbnRSZWYuY3VycmVudD8uYXJlYSk7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgTWVudUNvbnRlbnRQcm92aWRlcixcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6IF9fc2NvcGVNZW51LFxuICAgICAgICBzZWFyY2hSZWYsXG4gICAgICAgIG9uSXRlbUVudGVyOiBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChpc1BvaW50ZXJNb3ZpbmdUb1N1Ym1lbnUoZXZlbnQpKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgW2lzUG9pbnRlck1vdmluZ1RvU3VibWVudV1cbiAgICAgICAgKSxcbiAgICAgICAgb25JdGVtTGVhdmU6IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzUG9pbnRlck1vdmluZ1RvU3VibWVudShldmVudCkpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnRlbnRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgICAgIHNldEN1cnJlbnRJdGVtSWQobnVsbCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBbaXNQb2ludGVyTW92aW5nVG9TdWJtZW51XVxuICAgICAgICApLFxuICAgICAgICBvblRyaWdnZXJMZWF2ZTogUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNQb2ludGVyTW92aW5nVG9TdWJtZW51KGV2ZW50KSkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIFtpc1BvaW50ZXJNb3ZpbmdUb1N1Ym1lbnVdXG4gICAgICAgICksXG4gICAgICAgIHBvaW50ZXJHcmFjZVRpbWVyUmVmLFxuICAgICAgICBvblBvaW50ZXJHcmFjZUludGVudENoYW5nZTogUmVhY3QudXNlQ2FsbGJhY2soKGludGVudCkgPT4ge1xuICAgICAgICAgIHBvaW50ZXJHcmFjZUludGVudFJlZi5jdXJyZW50ID0gaW50ZW50O1xuICAgICAgICB9LCBbXSksXG4gICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFNjcm9sbExvY2tXcmFwcGVyLCB7IC4uLnNjcm9sbExvY2tXcmFwcGVyUHJvcHMsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgIEZvY3VzU2NvcGUsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYXNDaGlsZDogdHJ1ZSxcbiAgICAgICAgICAgIHRyYXBwZWQ6IHRyYXBGb2N1cyxcbiAgICAgICAgICAgIG9uTW91bnRBdXRvRm9jdXM6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uT3BlbkF1dG9Gb2N1cywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNvbnRlbnRSZWYuY3VycmVudD8uZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBvblVubW91bnRBdXRvRm9jdXM6IG9uQ2xvc2VBdXRvRm9jdXMsXG4gICAgICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICAgICAgRGlzbWlzc2FibGVMYXllcixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFzQ2hpbGQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzLFxuICAgICAgICAgICAgICAgIG9uRXNjYXBlS2V5RG93bixcbiAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgICAgICAgICAgICBvbkZvY3VzT3V0c2lkZSxcbiAgICAgICAgICAgICAgICBvbkludGVyYWN0T3V0c2lkZSxcbiAgICAgICAgICAgICAgICBvbkRpc21pc3MsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgICAgICAgICBSb3ZpbmdGb2N1c0dyb3VwLlJvb3QsXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGFzQ2hpbGQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIC4uLnJvdmluZ0ZvY3VzR3JvdXBTY29wZSxcbiAgICAgICAgICAgICAgICAgICAgZGlyOiByb290Q29udGV4dC5kaXIsXG4gICAgICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uOiBcInZlcnRpY2FsXCIsXG4gICAgICAgICAgICAgICAgICAgIGxvb3AsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYWJTdG9wSWQ6IGN1cnJlbnRJdGVtSWQsXG4gICAgICAgICAgICAgICAgICAgIG9uQ3VycmVudFRhYlN0b3BJZENoYW5nZTogc2V0Q3VycmVudEl0ZW1JZCxcbiAgICAgICAgICAgICAgICAgICAgb25FbnRyeUZvY3VzOiBjb21wb3NlRXZlbnRIYW5kbGVycyhvbkVudHJ5Rm9jdXMsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmICghcm9vdENvbnRleHQuaXNVc2luZ0tleWJvYXJkUmVmLmN1cnJlbnQpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBwcmV2ZW50U2Nyb2xsT25FbnRyeUZvY3VzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICAgICAgICAgICAgICBQb3BwZXJQcmltaXRpdmUuQ29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlOiBcIm1lbnVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJpYS1vcmllbnRhdGlvblwiOiBcInZlcnRpY2FsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRhdGEtc3RhdGVcIjogZ2V0T3BlblN0YXRlKGNvbnRleHQub3BlbiksXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRhdGEtcmFkaXgtbWVudS1jb250ZW50XCI6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXI6IHJvb3RDb250ZXh0LmRpcixcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnBvcHBlclNjb3BlLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY29udGVudFByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBvdXRsaW5lOiBcIm5vbmVcIiwgLi4uY29udGVudFByb3BzLnN0eWxlIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd246IGNvbXBvc2VFdmVudEhhbmRsZXJzKGNvbnRlbnRQcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzS2V5RG93bkluc2lkZSA9IHRhcmdldC5jbG9zZXN0KFwiW2RhdGEtcmFkaXgtbWVudS1jb250ZW50XVwiKSA9PT0gZXZlbnQuY3VycmVudFRhcmdldDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNNb2RpZmllcktleSA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuYWx0S2V5IHx8IGV2ZW50Lm1ldGFLZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzQ2hhcmFjdGVyS2V5ID0gZXZlbnQua2V5Lmxlbmd0aCA9PT0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzS2V5RG93bkluc2lkZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09IFwiVGFiXCIpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc01vZGlmaWVyS2V5ICYmIGlzQ2hhcmFjdGVyS2V5KSBoYW5kbGVUeXBlYWhlYWRTZWFyY2goZXZlbnQua2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gY29udGVudFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSBjb250ZW50KSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghRklSU1RfTEFTVF9LRVlTLmluY2x1ZGVzKGV2ZW50LmtleSkpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSBnZXRJdGVtcygpLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0uZGlzYWJsZWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW5kaWRhdGVOb2RlcyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5yZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMQVNUX0tFWVMuaW5jbHVkZXMoZXZlbnQua2V5KSkgY2FuZGlkYXRlTm9kZXMucmV2ZXJzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c0ZpcnN0KGNhbmRpZGF0ZU5vZGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkJsdXIsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWV2ZW50LmN1cnJlbnRUYXJnZXQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoUmVmLmN1cnJlbnQgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUG9pbnRlck1vdmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5vblBvaW50ZXJNb3ZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVuTW91c2UoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvaW50ZXJYSGFzQ2hhbmdlZCA9IGxhc3RQb2ludGVyWFJlZi5jdXJyZW50ICE9PSBldmVudC5jbGllbnRYO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5jdXJyZW50VGFyZ2V0LmNvbnRhaW5zKHRhcmdldCkgJiYgcG9pbnRlclhIYXNDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdEaXIgPSBldmVudC5jbGllbnRYID4gbGFzdFBvaW50ZXJYUmVmLmN1cnJlbnQgPyBcInJpZ2h0XCIgOiBcImxlZnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJEaXJSZWYuY3VycmVudCA9IG5ld0RpcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RQb2ludGVyWFJlZi5jdXJyZW50ID0gZXZlbnQuY2xpZW50WDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICApIH0pXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcbk1lbnVDb250ZW50LmRpc3BsYXlOYW1lID0gQ09OVEVOVF9OQU1FO1xudmFyIEdST1VQX05BTUUgPSBcIk1lbnVHcm91cFwiO1xudmFyIE1lbnVHcm91cCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlTWVudSwgLi4uZ3JvdXBQcm9wcyB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUHJpbWl0aXZlLmRpdiwgeyByb2xlOiBcImdyb3VwXCIsIC4uLmdyb3VwUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xuICB9XG4pO1xuTWVudUdyb3VwLmRpc3BsYXlOYW1lID0gR1JPVVBfTkFNRTtcbnZhciBMQUJFTF9OQU1FID0gXCJNZW51TGFiZWxcIjtcbnZhciBNZW51TGFiZWwgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZU1lbnUsIC4uLmxhYmVsUHJvcHMgfSA9IHByb3BzO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFByaW1pdGl2ZS5kaXYsIHsgLi4ubGFiZWxQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XG4gIH1cbik7XG5NZW51TGFiZWwuZGlzcGxheU5hbWUgPSBMQUJFTF9OQU1FO1xudmFyIElURU1fTkFNRSA9IFwiTWVudUl0ZW1cIjtcbnZhciBJVEVNX1NFTEVDVCA9IFwibWVudS5pdGVtU2VsZWN0XCI7XG52YXIgTWVudUl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgZGlzYWJsZWQgPSBmYWxzZSwgb25TZWxlY3QsIC4uLml0ZW1Qcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHJvb3RDb250ZXh0ID0gdXNlTWVudVJvb3RDb250ZXh0KElURU1fTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlTWVudUNvbnRlbnRDb250ZXh0KElURU1fTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG4gICAgY29uc3QgaXNQb2ludGVyRG93blJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ID0gKCkgPT4ge1xuICAgICAgY29uc3QgbWVudUl0ZW0gPSByZWYuY3VycmVudDtcbiAgICAgIGlmICghZGlzYWJsZWQgJiYgbWVudUl0ZW0pIHtcbiAgICAgICAgY29uc3QgaXRlbVNlbGVjdEV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KElURU1fU0VMRUNULCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSk7XG4gICAgICAgIG1lbnVJdGVtLmFkZEV2ZW50TGlzdGVuZXIoSVRFTV9TRUxFQ1QsIChldmVudCkgPT4gb25TZWxlY3Q/LihldmVudCksIHsgb25jZTogdHJ1ZSB9KTtcbiAgICAgICAgZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50KG1lbnVJdGVtLCBpdGVtU2VsZWN0RXZlbnQpO1xuICAgICAgICBpZiAoaXRlbVNlbGVjdEV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICBpc1BvaW50ZXJEb3duUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByb290Q29udGV4dC5vbkNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgTWVudUl0ZW1JbXBsLFxuICAgICAge1xuICAgICAgICAuLi5pdGVtUHJvcHMsXG4gICAgICAgIHJlZjogY29tcG9zZWRSZWZzLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgb25DbGljazogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25DbGljaywgaGFuZGxlU2VsZWN0KSxcbiAgICAgICAgb25Qb2ludGVyRG93bjogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgcHJvcHMub25Qb2ludGVyRG93bj8uKGV2ZW50KTtcbiAgICAgICAgICBpc1BvaW50ZXJEb3duUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICBvblBvaW50ZXJVcDogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Qb2ludGVyVXAsIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmICghaXNQb2ludGVyRG93blJlZi5jdXJyZW50KSBldmVudC5jdXJyZW50VGFyZ2V0Py5jbGljaygpO1xuICAgICAgICB9KSxcbiAgICAgICAgb25LZXlEb3duOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzVHlwaW5nQWhlYWQgPSBjb250ZW50Q29udGV4dC5zZWFyY2hSZWYuY3VycmVudCAhPT0gXCJcIjtcbiAgICAgICAgICBpZiAoZGlzYWJsZWQgfHwgaXNUeXBpbmdBaGVhZCAmJiBldmVudC5rZXkgPT09IFwiIFwiKSByZXR1cm47XG4gICAgICAgICAgaWYgKFNFTEVDVElPTl9LRVlTLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5NZW51SXRlbS5kaXNwbGF5TmFtZSA9IElURU1fTkFNRTtcbnZhciBNZW51SXRlbUltcGwgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZU1lbnUsIGRpc2FibGVkID0gZmFsc2UsIHRleHRWYWx1ZSwgLi4uaXRlbVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZW50Q29udGV4dCA9IHVzZU1lbnVDb250ZW50Q29udGV4dChJVEVNX05BTUUsIF9fc2NvcGVNZW51KTtcbiAgICBjb25zdCByb3ZpbmdGb2N1c0dyb3VwU2NvcGUgPSB1c2VSb3ZpbmdGb2N1c0dyb3VwU2NvcGUoX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuICAgIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3RleHRDb250ZW50LCBzZXRUZXh0Q29udGVudF0gPSBSZWFjdC51c2VTdGF0ZShcIlwiKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbWVudUl0ZW0gPSByZWYuY3VycmVudDtcbiAgICAgIGlmIChtZW51SXRlbSkge1xuICAgICAgICBzZXRUZXh0Q29udGVudCgobWVudUl0ZW0udGV4dENvbnRlbnQgPz8gXCJcIikudHJpbSgpKTtcbiAgICAgIH1cbiAgICB9LCBbaXRlbVByb3BzLmNoaWxkcmVuXSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBDb2xsZWN0aW9uLkl0ZW1TbG90LFxuICAgICAge1xuICAgICAgICBzY29wZTogX19zY29wZU1lbnUsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICB0ZXh0VmFsdWU6IHRleHRWYWx1ZSA/PyB0ZXh0Q29udGVudCxcbiAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goUm92aW5nRm9jdXNHcm91cC5JdGVtLCB7IGFzQ2hpbGQ6IHRydWUsIC4uLnJvdmluZ0ZvY3VzR3JvdXBTY29wZSwgZm9jdXNhYmxlOiAhZGlzYWJsZWQsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgIFByaW1pdGl2ZS5kaXYsXG4gICAgICAgICAge1xuICAgICAgICAgICAgcm9sZTogXCJtZW51aXRlbVwiLFxuICAgICAgICAgICAgXCJkYXRhLWhpZ2hsaWdodGVkXCI6IGlzRm9jdXNlZCA/IFwiXCIgOiB2b2lkIDAsXG4gICAgICAgICAgICBcImFyaWEtZGlzYWJsZWRcIjogZGlzYWJsZWQgfHwgdm9pZCAwLFxuICAgICAgICAgICAgXCJkYXRhLWRpc2FibGVkXCI6IGRpc2FibGVkID8gXCJcIiA6IHZvaWQgMCxcbiAgICAgICAgICAgIC4uLml0ZW1Qcm9wcyxcbiAgICAgICAgICAgIHJlZjogY29tcG9zZWRSZWZzLFxuICAgICAgICAgICAgb25Qb2ludGVyTW92ZTogY29tcG9zZUV2ZW50SGFuZGxlcnMoXG4gICAgICAgICAgICAgIHByb3BzLm9uUG9pbnRlck1vdmUsXG4gICAgICAgICAgICAgIHdoZW5Nb3VzZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uSXRlbUxlYXZlKGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgY29udGVudENvbnRleHQub25JdGVtRW50ZXIoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBldmVudC5jdXJyZW50VGFyZ2V0O1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgb25Qb2ludGVyTGVhdmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKFxuICAgICAgICAgICAgICBwcm9wcy5vblBvaW50ZXJMZWF2ZSxcbiAgICAgICAgICAgICAgd2hlbk1vdXNlKChldmVudCkgPT4gY29udGVudENvbnRleHQub25JdGVtTGVhdmUoZXZlbnQpKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG9uRm9jdXM6IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRm9jdXMsICgpID0+IHNldElzRm9jdXNlZCh0cnVlKSksXG4gICAgICAgICAgICBvbkJsdXI6IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQmx1ciwgKCkgPT4gc2V0SXNGb2N1c2VkKGZhbHNlKSlcbiAgICAgICAgICB9XG4gICAgICAgICkgfSlcbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xudmFyIENIRUNLQk9YX0lURU1fTkFNRSA9IFwiTWVudUNoZWNrYm94SXRlbVwiO1xudmFyIE1lbnVDaGVja2JveEl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgY2hlY2tlZCA9IGZhbHNlLCBvbkNoZWNrZWRDaGFuZ2UsIC4uLmNoZWNrYm94SXRlbVByb3BzIH0gPSBwcm9wcztcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChJdGVtSW5kaWNhdG9yUHJvdmlkZXIsIHsgc2NvcGU6IHByb3BzLl9fc2NvcGVNZW51LCBjaGVja2VkLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIE1lbnVJdGVtLFxuICAgICAge1xuICAgICAgICByb2xlOiBcIm1lbnVpdGVtY2hlY2tib3hcIixcbiAgICAgICAgXCJhcmlhLWNoZWNrZWRcIjogaXNJbmRldGVybWluYXRlKGNoZWNrZWQpID8gXCJtaXhlZFwiIDogY2hlY2tlZCxcbiAgICAgICAgLi4uY2hlY2tib3hJdGVtUHJvcHMsXG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgICAgICBcImRhdGEtc3RhdGVcIjogZ2V0Q2hlY2tlZFN0YXRlKGNoZWNrZWQpLFxuICAgICAgICBvblNlbGVjdDogY29tcG9zZUV2ZW50SGFuZGxlcnMoXG4gICAgICAgICAgY2hlY2tib3hJdGVtUHJvcHMub25TZWxlY3QsXG4gICAgICAgICAgKCkgPT4gb25DaGVja2VkQ2hhbmdlPy4oaXNJbmRldGVybWluYXRlKGNoZWNrZWQpID8gdHJ1ZSA6ICFjaGVja2VkKSxcbiAgICAgICAgICB7IGNoZWNrRm9yRGVmYXVsdFByZXZlbnRlZDogZmFsc2UgfVxuICAgICAgICApXG4gICAgICB9XG4gICAgKSB9KTtcbiAgfVxuKTtcbk1lbnVDaGVja2JveEl0ZW0uZGlzcGxheU5hbWUgPSBDSEVDS0JPWF9JVEVNX05BTUU7XG52YXIgUkFESU9fR1JPVVBfTkFNRSA9IFwiTWVudVJhZGlvR3JvdXBcIjtcbnZhciBbUmFkaW9Hcm91cFByb3ZpZGVyLCB1c2VSYWRpb0dyb3VwQ29udGV4dF0gPSBjcmVhdGVNZW51Q29udGV4dChcbiAgUkFESU9fR1JPVVBfTkFNRSxcbiAgeyB2YWx1ZTogdm9pZCAwLCBvblZhbHVlQ2hhbmdlOiAoKSA9PiB7XG4gIH0gfVxuKTtcbnZhciBNZW51UmFkaW9Hcm91cCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZSwgb25WYWx1ZUNoYW5nZSwgLi4uZ3JvdXBQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgaGFuZGxlVmFsdWVDaGFuZ2UgPSB1c2VDYWxsYmFja1JlZihvblZhbHVlQ2hhbmdlKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChSYWRpb0dyb3VwUHJvdmlkZXIsIHsgc2NvcGU6IHByb3BzLl9fc2NvcGVNZW51LCB2YWx1ZSwgb25WYWx1ZUNoYW5nZTogaGFuZGxlVmFsdWVDaGFuZ2UsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KE1lbnVHcm91cCwgeyAuLi5ncm91cFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KSB9KTtcbiAgfVxuKTtcbk1lbnVSYWRpb0dyb3VwLmRpc3BsYXlOYW1lID0gUkFESU9fR1JPVVBfTkFNRTtcbnZhciBSQURJT19JVEVNX05BTUUgPSBcIk1lbnVSYWRpb0l0ZW1cIjtcbnZhciBNZW51UmFkaW9JdGVtID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCAuLi5yYWRpb0l0ZW1Qcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVJhZGlvR3JvdXBDb250ZXh0KFJBRElPX0lURU1fTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IGNoZWNrZWQgPSB2YWx1ZSA9PT0gY29udGV4dC52YWx1ZTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChJdGVtSW5kaWNhdG9yUHJvdmlkZXIsIHsgc2NvcGU6IHByb3BzLl9fc2NvcGVNZW51LCBjaGVja2VkLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIE1lbnVJdGVtLFxuICAgICAge1xuICAgICAgICByb2xlOiBcIm1lbnVpdGVtcmFkaW9cIixcbiAgICAgICAgXCJhcmlhLWNoZWNrZWRcIjogY2hlY2tlZCxcbiAgICAgICAgLi4ucmFkaW9JdGVtUHJvcHMsXG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgICAgICBcImRhdGEtc3RhdGVcIjogZ2V0Q2hlY2tlZFN0YXRlKGNoZWNrZWQpLFxuICAgICAgICBvblNlbGVjdDogY29tcG9zZUV2ZW50SGFuZGxlcnMoXG4gICAgICAgICAgcmFkaW9JdGVtUHJvcHMub25TZWxlY3QsXG4gICAgICAgICAgKCkgPT4gY29udGV4dC5vblZhbHVlQ2hhbmdlPy4odmFsdWUpLFxuICAgICAgICAgIHsgY2hlY2tGb3JEZWZhdWx0UHJldmVudGVkOiBmYWxzZSB9XG4gICAgICAgIClcbiAgICAgIH1cbiAgICApIH0pO1xuICB9XG4pO1xuTWVudVJhZGlvSXRlbS5kaXNwbGF5TmFtZSA9IFJBRElPX0lURU1fTkFNRTtcbnZhciBJVEVNX0lORElDQVRPUl9OQU1FID0gXCJNZW51SXRlbUluZGljYXRvclwiO1xudmFyIFtJdGVtSW5kaWNhdG9yUHJvdmlkZXIsIHVzZUl0ZW1JbmRpY2F0b3JDb250ZXh0XSA9IGNyZWF0ZU1lbnVDb250ZXh0KFxuICBJVEVNX0lORElDQVRPUl9OQU1FLFxuICB7IGNoZWNrZWQ6IGZhbHNlIH1cbik7XG52YXIgTWVudUl0ZW1JbmRpY2F0b3IgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZU1lbnUsIGZvcmNlTW91bnQsIC4uLml0ZW1JbmRpY2F0b3JQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgaW5kaWNhdG9yQ29udGV4dCA9IHVzZUl0ZW1JbmRpY2F0b3JDb250ZXh0KElURU1fSU5ESUNBVE9SX05BTUUsIF9fc2NvcGVNZW51KTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFByZXNlbmNlLFxuICAgICAge1xuICAgICAgICBwcmVzZW50OiBmb3JjZU1vdW50IHx8IGlzSW5kZXRlcm1pbmF0ZShpbmRpY2F0b3JDb250ZXh0LmNoZWNrZWQpIHx8IGluZGljYXRvckNvbnRleHQuY2hlY2tlZCA9PT0gdHJ1ZSxcbiAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgUHJpbWl0aXZlLnNwYW4sXG4gICAgICAgICAge1xuICAgICAgICAgICAgLi4uaXRlbUluZGljYXRvclByb3BzLFxuICAgICAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgICAgICAgICBcImRhdGEtc3RhdGVcIjogZ2V0Q2hlY2tlZFN0YXRlKGluZGljYXRvckNvbnRleHQuY2hlY2tlZClcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xuTWVudUl0ZW1JbmRpY2F0b3IuZGlzcGxheU5hbWUgPSBJVEVNX0lORElDQVRPUl9OQU1FO1xudmFyIFNFUEFSQVRPUl9OQU1FID0gXCJNZW51U2VwYXJhdG9yXCI7XG52YXIgTWVudVNlcGFyYXRvciA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlTWVudSwgLi4uc2VwYXJhdG9yUHJvcHMgfSA9IHByb3BzO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgUHJpbWl0aXZlLmRpdixcbiAgICAgIHtcbiAgICAgICAgcm9sZTogXCJzZXBhcmF0b3JcIixcbiAgICAgICAgXCJhcmlhLW9yaWVudGF0aW9uXCI6IFwiaG9yaXpvbnRhbFwiLFxuICAgICAgICAuLi5zZXBhcmF0b3JQcm9wcyxcbiAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWZcbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xuTWVudVNlcGFyYXRvci5kaXNwbGF5TmFtZSA9IFNFUEFSQVRPUl9OQU1FO1xudmFyIEFSUk9XX05BTUUgPSBcIk1lbnVBcnJvd1wiO1xudmFyIE1lbnVBcnJvdyA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlTWVudSwgLi4uYXJyb3dQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlTWVudSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUG9wcGVyUHJpbWl0aXZlLkFycm93LCB7IC4uLnBvcHBlclNjb3BlLCAuLi5hcnJvd1Byb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KTtcbiAgfVxuKTtcbk1lbnVBcnJvdy5kaXNwbGF5TmFtZSA9IEFSUk9XX05BTUU7XG52YXIgU1VCX05BTUUgPSBcIk1lbnVTdWJcIjtcbnZhciBbTWVudVN1YlByb3ZpZGVyLCB1c2VNZW51U3ViQ29udGV4dF0gPSBjcmVhdGVNZW51Q29udGV4dChTVUJfTkFNRSk7XG52YXIgTWVudVN1YiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVNZW51LCBjaGlsZHJlbiwgb3BlbiA9IGZhbHNlLCBvbk9wZW5DaGFuZ2UgfSA9IHByb3BzO1xuICBjb25zdCBwYXJlbnRNZW51Q29udGV4dCA9IHVzZU1lbnVDb250ZXh0KFNVQl9OQU1FLCBfX3Njb3BlTWVudSk7XG4gIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZU1lbnUpO1xuICBjb25zdCBbdHJpZ2dlciwgc2V0VHJpZ2dlcl0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgW2NvbnRlbnQsIHNldENvbnRlbnRdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IGhhbmRsZU9wZW5DaGFuZ2UgPSB1c2VDYWxsYmFja1JlZihvbk9wZW5DaGFuZ2UpO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwYXJlbnRNZW51Q29udGV4dC5vcGVuID09PSBmYWxzZSkgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgcmV0dXJuICgpID0+IGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICB9LCBbcGFyZW50TWVudUNvbnRleHQub3BlbiwgaGFuZGxlT3BlbkNoYW5nZV0pO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChQb3BwZXJQcmltaXRpdmUuUm9vdCwgeyAuLi5wb3BwZXJTY29wZSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgTWVudVByb3ZpZGVyLFxuICAgIHtcbiAgICAgIHNjb3BlOiBfX3Njb3BlTWVudSxcbiAgICAgIG9wZW4sXG4gICAgICBvbk9wZW5DaGFuZ2U6IGhhbmRsZU9wZW5DaGFuZ2UsXG4gICAgICBjb250ZW50LFxuICAgICAgb25Db250ZW50Q2hhbmdlOiBzZXRDb250ZW50LFxuICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgIE1lbnVTdWJQcm92aWRlcixcbiAgICAgICAge1xuICAgICAgICAgIHNjb3BlOiBfX3Njb3BlTWVudSxcbiAgICAgICAgICBjb250ZW50SWQ6IHVzZUlkKCksXG4gICAgICAgICAgdHJpZ2dlcklkOiB1c2VJZCgpLFxuICAgICAgICAgIHRyaWdnZXIsXG4gICAgICAgICAgb25UcmlnZ2VyQ2hhbmdlOiBzZXRUcmlnZ2VyLFxuICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG4gICkgfSk7XG59O1xuTWVudVN1Yi5kaXNwbGF5TmFtZSA9IFNVQl9OQU1FO1xudmFyIFNVQl9UUklHR0VSX05BTUUgPSBcIk1lbnVTdWJUcmlnZ2VyXCI7XG52YXIgTWVudVN1YlRyaWdnZXIgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VNZW51Q29udGV4dChTVUJfVFJJR0dFUl9OQU1FLCBwcm9wcy5fX3Njb3BlTWVudSk7XG4gICAgY29uc3Qgcm9vdENvbnRleHQgPSB1c2VNZW51Um9vdENvbnRleHQoU1VCX1RSSUdHRVJfTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IHN1YkNvbnRleHQgPSB1c2VNZW51U3ViQ29udGV4dChTVUJfVFJJR0dFUl9OQU1FLCBwcm9wcy5fX3Njb3BlTWVudSk7XG4gICAgY29uc3QgY29udGVudENvbnRleHQgPSB1c2VNZW51Q29udGVudENvbnRleHQoU1VCX1RSSUdHRVJfTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IG9wZW5UaW1lclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCB7IHBvaW50ZXJHcmFjZVRpbWVyUmVmLCBvblBvaW50ZXJHcmFjZUludGVudENoYW5nZSB9ID0gY29udGVudENvbnRleHQ7XG4gICAgY29uc3Qgc2NvcGUgPSB7IF9fc2NvcGVNZW51OiBwcm9wcy5fX3Njb3BlTWVudSB9O1xuICAgIGNvbnN0IGNsZWFyT3BlblRpbWVyID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKG9wZW5UaW1lclJlZi5jdXJyZW50KSB3aW5kb3cuY2xlYXJUaW1lb3V0KG9wZW5UaW1lclJlZi5jdXJyZW50KTtcbiAgICAgIG9wZW5UaW1lclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IGNsZWFyT3BlblRpbWVyLCBbY2xlYXJPcGVuVGltZXJdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgcG9pbnRlckdyYWNlVGltZXIgPSBwb2ludGVyR3JhY2VUaW1lclJlZi5jdXJyZW50O1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dChwb2ludGVyR3JhY2VUaW1lcik7XG4gICAgICAgIG9uUG9pbnRlckdyYWNlSW50ZW50Q2hhbmdlKG51bGwpO1xuICAgICAgfTtcbiAgICB9LCBbcG9pbnRlckdyYWNlVGltZXJSZWYsIG9uUG9pbnRlckdyYWNlSW50ZW50Q2hhbmdlXSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goTWVudUFuY2hvciwgeyBhc0NoaWxkOiB0cnVlLCAuLi5zY29wZSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBNZW51SXRlbUltcGwsXG4gICAgICB7XG4gICAgICAgIGlkOiBzdWJDb250ZXh0LnRyaWdnZXJJZCxcbiAgICAgICAgXCJhcmlhLWhhc3BvcHVwXCI6IFwibWVudVwiLFxuICAgICAgICBcImFyaWEtZXhwYW5kZWRcIjogY29udGV4dC5vcGVuLFxuICAgICAgICBcImFyaWEtY29udHJvbHNcIjogc3ViQ29udGV4dC5jb250ZW50SWQsXG4gICAgICAgIFwiZGF0YS1zdGF0ZVwiOiBnZXRPcGVuU3RhdGUoY29udGV4dC5vcGVuKSxcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIHJlZjogY29tcG9zZVJlZnMoZm9yd2FyZGVkUmVmLCBzdWJDb250ZXh0Lm9uVHJpZ2dlckNoYW5nZSksXG4gICAgICAgIG9uQ2xpY2s6IChldmVudCkgPT4ge1xuICAgICAgICAgIHByb3BzLm9uQ2xpY2s/LihldmVudCk7XG4gICAgICAgICAgaWYgKHByb3BzLmRpc2FibGVkIHx8IGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcbiAgICAgICAgICBldmVudC5jdXJyZW50VGFyZ2V0LmZvY3VzKCk7XG4gICAgICAgICAgaWYgKCFjb250ZXh0Lm9wZW4pIGNvbnRleHQub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICB9LFxuICAgICAgICBvblBvaW50ZXJNb3ZlOiBjb21wb3NlRXZlbnRIYW5kbGVycyhcbiAgICAgICAgICBwcm9wcy5vblBvaW50ZXJNb3ZlLFxuICAgICAgICAgIHdoZW5Nb3VzZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uSXRlbUVudGVyKGV2ZW50KTtcbiAgICAgICAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoIXByb3BzLmRpc2FibGVkICYmICFjb250ZXh0Lm9wZW4gJiYgIW9wZW5UaW1lclJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uUG9pbnRlckdyYWNlSW50ZW50Q2hhbmdlKG51bGwpO1xuICAgICAgICAgICAgICBvcGVuVGltZXJSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm9uT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgICAgICAgICBjbGVhck9wZW5UaW1lcigpO1xuICAgICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICAgIG9uUG9pbnRlckxlYXZlOiBjb21wb3NlRXZlbnRIYW5kbGVycyhcbiAgICAgICAgICBwcm9wcy5vblBvaW50ZXJMZWF2ZSxcbiAgICAgICAgICB3aGVuTW91c2UoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjbGVhck9wZW5UaW1lcigpO1xuICAgICAgICAgICAgY29uc3QgY29udGVudFJlY3QgPSBjb250ZXh0LmNvbnRlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnRSZWN0KSB7XG4gICAgICAgICAgICAgIGNvbnN0IHNpZGUgPSBjb250ZXh0LmNvbnRlbnQ/LmRhdGFzZXQuc2lkZTtcbiAgICAgICAgICAgICAgY29uc3QgcmlnaHRTaWRlID0gc2lkZSA9PT0gXCJyaWdodFwiO1xuICAgICAgICAgICAgICBjb25zdCBibGVlZCA9IHJpZ2h0U2lkZSA/IC01IDogNTtcbiAgICAgICAgICAgICAgY29uc3QgY29udGVudE5lYXJFZGdlID0gY29udGVudFJlY3RbcmlnaHRTaWRlID8gXCJsZWZ0XCIgOiBcInJpZ2h0XCJdO1xuICAgICAgICAgICAgICBjb25zdCBjb250ZW50RmFyRWRnZSA9IGNvbnRlbnRSZWN0W3JpZ2h0U2lkZSA/IFwicmlnaHRcIiA6IFwibGVmdFwiXTtcbiAgICAgICAgICAgICAgY29udGVudENvbnRleHQub25Qb2ludGVyR3JhY2VJbnRlbnRDaGFuZ2Uoe1xuICAgICAgICAgICAgICAgIGFyZWE6IFtcbiAgICAgICAgICAgICAgICAgIC8vIEFwcGx5IGEgYmxlZWQgb24gY2xpZW50WCB0byBlbnN1cmUgdGhhdCBvdXIgZXhpdCBwb2ludCBpc1xuICAgICAgICAgICAgICAgICAgLy8gY29uc2lzdGVudGx5IHdpdGhpbiBwb2x5Z29uIGJvdW5kc1xuICAgICAgICAgICAgICAgICAgeyB4OiBldmVudC5jbGllbnRYICsgYmxlZWQsIHk6IGV2ZW50LmNsaWVudFkgfSxcbiAgICAgICAgICAgICAgICAgIHsgeDogY29udGVudE5lYXJFZGdlLCB5OiBjb250ZW50UmVjdC50b3AgfSxcbiAgICAgICAgICAgICAgICAgIHsgeDogY29udGVudEZhckVkZ2UsIHk6IGNvbnRlbnRSZWN0LnRvcCB9LFxuICAgICAgICAgICAgICAgICAgeyB4OiBjb250ZW50RmFyRWRnZSwgeTogY29udGVudFJlY3QuYm90dG9tIH0sXG4gICAgICAgICAgICAgICAgICB7IHg6IGNvbnRlbnROZWFyRWRnZSwgeTogY29udGVudFJlY3QuYm90dG9tIH1cbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHNpZGVcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQocG9pbnRlckdyYWNlVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgIHBvaW50ZXJHcmFjZVRpbWVyUmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dChcbiAgICAgICAgICAgICAgICAoKSA9PiBjb250ZW50Q29udGV4dC5vblBvaW50ZXJHcmFjZUludGVudENoYW5nZShudWxsKSxcbiAgICAgICAgICAgICAgICAzMDBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uVHJpZ2dlckxlYXZlKGV2ZW50KTtcbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcbiAgICAgICAgICAgICAgY29udGVudENvbnRleHQub25Qb2ludGVyR3JhY2VJbnRlbnRDaGFuZ2UobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgICAgb25LZXlEb3duOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzVHlwaW5nQWhlYWQgPSBjb250ZW50Q29udGV4dC5zZWFyY2hSZWYuY3VycmVudCAhPT0gXCJcIjtcbiAgICAgICAgICBpZiAocHJvcHMuZGlzYWJsZWQgfHwgaXNUeXBpbmdBaGVhZCAmJiBldmVudC5rZXkgPT09IFwiIFwiKSByZXR1cm47XG4gICAgICAgICAgaWYgKFNVQl9PUEVOX0tFWVNbcm9vdENvbnRleHQuZGlyXS5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICAgICAgICBjb250ZXh0Lm9uT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgICAgIGNvbnRleHQuY29udGVudD8uZm9jdXMoKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICkgfSk7XG4gIH1cbik7XG5NZW51U3ViVHJpZ2dlci5kaXNwbGF5TmFtZSA9IFNVQl9UUklHR0VSX05BTUU7XG52YXIgU1VCX0NPTlRFTlRfTkFNRSA9IFwiTWVudVN1YkNvbnRlbnRcIjtcbnZhciBNZW51U3ViQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgcG9ydGFsQ29udGV4dCA9IHVzZVBvcnRhbENvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlTWVudSk7XG4gICAgY29uc3QgeyBmb3JjZU1vdW50ID0gcG9ydGFsQ29udGV4dC5mb3JjZU1vdW50LCAuLi5zdWJDb250ZW50UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VNZW51Q29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCByb290Q29udGV4dCA9IHVzZU1lbnVSb290Q29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCBzdWJDb250ZXh0ID0gdXNlTWVudVN1YkNvbnRleHQoU1VCX0NPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KENvbGxlY3Rpb24uUHJvdmlkZXIsIHsgc2NvcGU6IHByb3BzLl9fc2NvcGVNZW51LCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChQcmVzZW5jZSwgeyBwcmVzZW50OiBmb3JjZU1vdW50IHx8IGNvbnRleHQub3BlbiwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQ29sbGVjdGlvbi5TbG90LCB7IHNjb3BlOiBwcm9wcy5fX3Njb3BlTWVudSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBNZW51Q29udGVudEltcGwsXG4gICAgICB7XG4gICAgICAgIGlkOiBzdWJDb250ZXh0LmNvbnRlbnRJZCxcbiAgICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogc3ViQ29udGV4dC50cmlnZ2VySWQsXG4gICAgICAgIC4uLnN1YkNvbnRlbnRQcm9wcyxcbiAgICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXG4gICAgICAgIGFsaWduOiBcInN0YXJ0XCIsXG4gICAgICAgIHNpZGU6IHJvb3RDb250ZXh0LmRpciA9PT0gXCJydGxcIiA/IFwibGVmdFwiIDogXCJyaWdodFwiLFxuICAgICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHM6IGZhbHNlLFxuICAgICAgICBkaXNhYmxlT3V0c2lkZVNjcm9sbDogZmFsc2UsXG4gICAgICAgIHRyYXBGb2N1czogZmFsc2UsXG4gICAgICAgIG9uT3BlbkF1dG9Gb2N1czogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHJvb3RDb250ZXh0LmlzVXNpbmdLZXlib2FyZFJlZi5jdXJyZW50KSByZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9LFxuICAgICAgICBvbkNsb3NlQXV0b0ZvY3VzOiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCksXG4gICAgICAgIG9uRm9jdXNPdXRzaWRlOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkZvY3VzT3V0c2lkZSwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LnRhcmdldCAhPT0gc3ViQ29udGV4dC50cmlnZ2VyKSBjb250ZXh0Lm9uT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgIH0pLFxuICAgICAgICBvbkVzY2FwZUtleURvd246IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRXNjYXBlS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgcm9vdENvbnRleHQub25DbG9zZSgpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH0pLFxuICAgICAgICBvbktleURvd246IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNLZXlEb3duSW5zaWRlID0gZXZlbnQuY3VycmVudFRhcmdldC5jb250YWlucyhldmVudC50YXJnZXQpO1xuICAgICAgICAgIGNvbnN0IGlzQ2xvc2VLZXkgPSBTVUJfQ0xPU0VfS0VZU1tyb290Q29udGV4dC5kaXJdLmluY2x1ZGVzKGV2ZW50LmtleSk7XG4gICAgICAgICAgaWYgKGlzS2V5RG93bkluc2lkZSAmJiBpc0Nsb3NlS2V5KSB7XG4gICAgICAgICAgICBjb250ZXh0Lm9uT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICBzdWJDb250ZXh0LnRyaWdnZXI/LmZvY3VzKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICApIH0pIH0pIH0pO1xuICB9XG4pO1xuTWVudVN1YkNvbnRlbnQuZGlzcGxheU5hbWUgPSBTVUJfQ09OVEVOVF9OQU1FO1xuZnVuY3Rpb24gZ2V0T3BlblN0YXRlKG9wZW4pIHtcbiAgcmV0dXJuIG9wZW4gPyBcIm9wZW5cIiA6IFwiY2xvc2VkXCI7XG59XG5mdW5jdGlvbiBpc0luZGV0ZXJtaW5hdGUoY2hlY2tlZCkge1xuICByZXR1cm4gY2hlY2tlZCA9PT0gXCJpbmRldGVybWluYXRlXCI7XG59XG5mdW5jdGlvbiBnZXRDaGVja2VkU3RhdGUoY2hlY2tlZCkge1xuICByZXR1cm4gaXNJbmRldGVybWluYXRlKGNoZWNrZWQpID8gXCJpbmRldGVybWluYXRlXCIgOiBjaGVja2VkID8gXCJjaGVja2VkXCIgOiBcInVuY2hlY2tlZFwiO1xufVxuZnVuY3Rpb24gZm9jdXNGaXJzdChjYW5kaWRhdGVzKSB7XG4gIGNvbnN0IFBSRVZJT1VTTFlfRk9DVVNFRF9FTEVNRU5UID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRlcykge1xuICAgIGlmIChjYW5kaWRhdGUgPT09IFBSRVZJT1VTTFlfRk9DVVNFRF9FTEVNRU5UKSByZXR1cm47XG4gICAgY2FuZGlkYXRlLmZvY3VzKCk7XG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IFBSRVZJT1VTTFlfRk9DVVNFRF9FTEVNRU5UKSByZXR1cm47XG4gIH1cbn1cbmZ1bmN0aW9uIHdyYXBBcnJheShhcnJheSwgc3RhcnRJbmRleCkge1xuICByZXR1cm4gYXJyYXkubWFwKChfLCBpbmRleCkgPT4gYXJyYXlbKHN0YXJ0SW5kZXggKyBpbmRleCkgJSBhcnJheS5sZW5ndGhdKTtcbn1cbmZ1bmN0aW9uIGdldE5leHRNYXRjaCh2YWx1ZXMsIHNlYXJjaCwgY3VycmVudE1hdGNoKSB7XG4gIGNvbnN0IGlzUmVwZWF0ZWQgPSBzZWFyY2gubGVuZ3RoID4gMSAmJiBBcnJheS5mcm9tKHNlYXJjaCkuZXZlcnkoKGNoYXIpID0+IGNoYXIgPT09IHNlYXJjaFswXSk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRTZWFyY2ggPSBpc1JlcGVhdGVkID8gc2VhcmNoWzBdIDogc2VhcmNoO1xuICBjb25zdCBjdXJyZW50TWF0Y2hJbmRleCA9IGN1cnJlbnRNYXRjaCA/IHZhbHVlcy5pbmRleE9mKGN1cnJlbnRNYXRjaCkgOiAtMTtcbiAgbGV0IHdyYXBwZWRWYWx1ZXMgPSB3cmFwQXJyYXkodmFsdWVzLCBNYXRoLm1heChjdXJyZW50TWF0Y2hJbmRleCwgMCkpO1xuICBjb25zdCBleGNsdWRlQ3VycmVudE1hdGNoID0gbm9ybWFsaXplZFNlYXJjaC5sZW5ndGggPT09IDE7XG4gIGlmIChleGNsdWRlQ3VycmVudE1hdGNoKSB3cmFwcGVkVmFsdWVzID0gd3JhcHBlZFZhbHVlcy5maWx0ZXIoKHYpID0+IHYgIT09IGN1cnJlbnRNYXRjaCk7XG4gIGNvbnN0IG5leHRNYXRjaCA9IHdyYXBwZWRWYWx1ZXMuZmluZChcbiAgICAodmFsdWUpID0+IHZhbHVlLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChub3JtYWxpemVkU2VhcmNoLnRvTG93ZXJDYXNlKCkpXG4gICk7XG4gIHJldHVybiBuZXh0TWF0Y2ggIT09IGN1cnJlbnRNYXRjaCA/IG5leHRNYXRjaCA6IHZvaWQgMDtcbn1cbmZ1bmN0aW9uIGlzUG9pbnRJblBvbHlnb24ocG9pbnQsIHBvbHlnb24pIHtcbiAgY29uc3QgeyB4LCB5IH0gPSBwb2ludDtcbiAgbGV0IGluc2lkZSA9IGZhbHNlO1xuICBmb3IgKGxldCBpID0gMCwgaiA9IHBvbHlnb24ubGVuZ3RoIC0gMTsgaSA8IHBvbHlnb24ubGVuZ3RoOyBqID0gaSsrKSB7XG4gICAgY29uc3QgeGkgPSBwb2x5Z29uW2ldLng7XG4gICAgY29uc3QgeWkgPSBwb2x5Z29uW2ldLnk7XG4gICAgY29uc3QgeGogPSBwb2x5Z29uW2pdLng7XG4gICAgY29uc3QgeWogPSBwb2x5Z29uW2pdLnk7XG4gICAgY29uc3QgaW50ZXJzZWN0ID0geWkgPiB5ICE9PSB5aiA+IHkgJiYgeCA8ICh4aiAtIHhpKSAqICh5IC0geWkpIC8gKHlqIC0geWkpICsgeGk7XG4gICAgaWYgKGludGVyc2VjdCkgaW5zaWRlID0gIWluc2lkZTtcbiAgfVxuICByZXR1cm4gaW5zaWRlO1xufVxuZnVuY3Rpb24gaXNQb2ludGVySW5HcmFjZUFyZWEoZXZlbnQsIGFyZWEpIHtcbiAgaWYgKCFhcmVhKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IGN1cnNvclBvcyA9IHsgeDogZXZlbnQuY2xpZW50WCwgeTogZXZlbnQuY2xpZW50WSB9O1xuICByZXR1cm4gaXNQb2ludEluUG9seWdvbihjdXJzb3JQb3MsIGFyZWEpO1xufVxuZnVuY3Rpb24gd2hlbk1vdXNlKGhhbmRsZXIpIHtcbiAgcmV0dXJuIChldmVudCkgPT4gZXZlbnQucG9pbnRlclR5cGUgPT09IFwibW91c2VcIiA/IGhhbmRsZXIoZXZlbnQpIDogdm9pZCAwO1xufVxudmFyIFJvb3QzID0gTWVudTtcbnZhciBBbmNob3IyID0gTWVudUFuY2hvcjtcbnZhciBQb3J0YWwgPSBNZW51UG9ydGFsO1xudmFyIENvbnRlbnQyID0gTWVudUNvbnRlbnQ7XG52YXIgR3JvdXAgPSBNZW51R3JvdXA7XG52YXIgTGFiZWwgPSBNZW51TGFiZWw7XG52YXIgSXRlbTIgPSBNZW51SXRlbTtcbnZhciBDaGVja2JveEl0ZW0gPSBNZW51Q2hlY2tib3hJdGVtO1xudmFyIFJhZGlvR3JvdXAgPSBNZW51UmFkaW9Hcm91cDtcbnZhciBSYWRpb0l0ZW0gPSBNZW51UmFkaW9JdGVtO1xudmFyIEl0ZW1JbmRpY2F0b3IgPSBNZW51SXRlbUluZGljYXRvcjtcbnZhciBTZXBhcmF0b3IgPSBNZW51U2VwYXJhdG9yO1xudmFyIEFycm93MiA9IE1lbnVBcnJvdztcbnZhciBTdWIgPSBNZW51U3ViO1xudmFyIFN1YlRyaWdnZXIgPSBNZW51U3ViVHJpZ2dlcjtcbnZhciBTdWJDb250ZW50ID0gTWVudVN1YkNvbnRlbnQ7XG5leHBvcnQge1xuICBBbmNob3IyIGFzIEFuY2hvcixcbiAgQXJyb3cyIGFzIEFycm93LFxuICBDaGVja2JveEl0ZW0sXG4gIENvbnRlbnQyIGFzIENvbnRlbnQsXG4gIEdyb3VwLFxuICBJdGVtMiBhcyBJdGVtLFxuICBJdGVtSW5kaWNhdG9yLFxuICBMYWJlbCxcbiAgTWVudSxcbiAgTWVudUFuY2hvcixcbiAgTWVudUFycm93LFxuICBNZW51Q2hlY2tib3hJdGVtLFxuICBNZW51Q29udGVudCxcbiAgTWVudUdyb3VwLFxuICBNZW51SXRlbSxcbiAgTWVudUl0ZW1JbmRpY2F0b3IsXG4gIE1lbnVMYWJlbCxcbiAgTWVudVBvcnRhbCxcbiAgTWVudVJhZGlvR3JvdXAsXG4gIE1lbnVSYWRpb0l0ZW0sXG4gIE1lbnVTZXBhcmF0b3IsXG4gIE1lbnVTdWIsXG4gIE1lbnVTdWJDb250ZW50LFxuICBNZW51U3ViVHJpZ2dlcixcbiAgUG9ydGFsLFxuICBSYWRpb0dyb3VwLFxuICBSYWRpb0l0ZW0sXG4gIFJvb3QzIGFzIFJvb3QsXG4gIFNlcGFyYXRvcixcbiAgU3ViLFxuICBTdWJDb250ZW50LFxuICBTdWJUcmlnZ2VyLFxuICBjcmVhdGVNZW51U2NvcGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCJcInVzZSBjbGllbnRcIjtcblxuLy8gcGFja2FnZXMvcmVhY3QvZHJvcGRvd24tbWVudS9zcmMvZHJvcGRvd24tbWVudS50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tIFwiQHJhZGl4LXVpL3ByaW1pdGl2ZVwiO1xuaW1wb3J0IHsgY29tcG9zZVJlZnMgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dFNjb3BlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb250ZXh0XCI7XG5pbXBvcnQgeyB1c2VDb250cm9sbGFibGVTdGF0ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZVwiO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmltaXRpdmVcIjtcbmltcG9ydCAqIGFzIE1lbnVQcmltaXRpdmUgZnJvbSBcIkByYWRpeC11aS9yZWFjdC1tZW51XCI7XG5pbXBvcnQgeyBjcmVhdGVNZW51U2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LW1lbnVcIjtcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1pZFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgRFJPUERPV05fTUVOVV9OQU1FID0gXCJEcm9wZG93bk1lbnVcIjtcbnZhciBbY3JlYXRlRHJvcGRvd25NZW51Q29udGV4dCwgY3JlYXRlRHJvcGRvd25NZW51U2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFxuICBEUk9QRE9XTl9NRU5VX05BTUUsXG4gIFtjcmVhdGVNZW51U2NvcGVdXG4pO1xudmFyIHVzZU1lbnVTY29wZSA9IGNyZWF0ZU1lbnVTY29wZSgpO1xudmFyIFtEcm9wZG93bk1lbnVQcm92aWRlciwgdXNlRHJvcGRvd25NZW51Q29udGV4dF0gPSBjcmVhdGVEcm9wZG93bk1lbnVDb250ZXh0KERST1BET1dOX01FTlVfTkFNRSk7XG52YXIgRHJvcGRvd25NZW51ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfX3Njb3BlRHJvcGRvd25NZW51LFxuICAgIGNoaWxkcmVuLFxuICAgIGRpcixcbiAgICBvcGVuOiBvcGVuUHJvcCxcbiAgICBkZWZhdWx0T3BlbixcbiAgICBvbk9wZW5DaGFuZ2UsXG4gICAgbW9kYWwgPSB0cnVlXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICBjb25zdCB0cmlnZ2VyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBbb3BlbiA9IGZhbHNlLCBzZXRPcGVuXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICBwcm9wOiBvcGVuUHJvcCxcbiAgICBkZWZhdWx0UHJvcDogZGVmYXVsdE9wZW4sXG4gICAgb25DaGFuZ2U6IG9uT3BlbkNoYW5nZVxuICB9KTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgRHJvcGRvd25NZW51UHJvdmlkZXIsXG4gICAge1xuICAgICAgc2NvcGU6IF9fc2NvcGVEcm9wZG93bk1lbnUsXG4gICAgICB0cmlnZ2VySWQ6IHVzZUlkKCksXG4gICAgICB0cmlnZ2VyUmVmLFxuICAgICAgY29udGVudElkOiB1c2VJZCgpLFxuICAgICAgb3BlbixcbiAgICAgIG9uT3BlbkNoYW5nZTogc2V0T3BlbixcbiAgICAgIG9uT3BlblRvZ2dsZTogUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4gc2V0T3BlbigocHJldk9wZW4pID0+ICFwcmV2T3BlbiksIFtzZXRPcGVuXSksXG4gICAgICBtb2RhbCxcbiAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KE1lbnVQcmltaXRpdmUuUm9vdCwgeyAuLi5tZW51U2NvcGUsIG9wZW4sIG9uT3BlbkNoYW5nZTogc2V0T3BlbiwgZGlyLCBtb2RhbCwgY2hpbGRyZW4gfSlcbiAgICB9XG4gICk7XG59O1xuRHJvcGRvd25NZW51LmRpc3BsYXlOYW1lID0gRFJPUERPV05fTUVOVV9OQU1FO1xudmFyIFRSSUdHRVJfTkFNRSA9IFwiRHJvcGRvd25NZW51VHJpZ2dlclwiO1xudmFyIERyb3Bkb3duTWVudVRyaWdnZXIgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgZGlzYWJsZWQgPSBmYWxzZSwgLi4udHJpZ2dlclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRHJvcGRvd25NZW51Q29udGV4dChUUklHR0VSX05BTUUsIF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICAgIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChNZW51UHJpbWl0aXZlLkFuY2hvciwgeyBhc0NoaWxkOiB0cnVlLCAuLi5tZW51U2NvcGUsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgUHJpbWl0aXZlLmJ1dHRvbixcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgaWQ6IGNvbnRleHQudHJpZ2dlcklkLFxuICAgICAgICBcImFyaWEtaGFzcG9wdXBcIjogXCJtZW51XCIsXG4gICAgICAgIFwiYXJpYS1leHBhbmRlZFwiOiBjb250ZXh0Lm9wZW4sXG4gICAgICAgIFwiYXJpYS1jb250cm9sc1wiOiBjb250ZXh0Lm9wZW4gPyBjb250ZXh0LmNvbnRlbnRJZCA6IHZvaWQgMCxcbiAgICAgICAgXCJkYXRhLXN0YXRlXCI6IGNvbnRleHQub3BlbiA/IFwib3BlblwiIDogXCJjbG9zZWRcIixcbiAgICAgICAgXCJkYXRhLWRpc2FibGVkXCI6IGRpc2FibGVkID8gXCJcIiA6IHZvaWQgMCxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIC4uLnRyaWdnZXJQcm9wcyxcbiAgICAgICAgcmVmOiBjb21wb3NlUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRleHQudHJpZ2dlclJlZiksXG4gICAgICAgIG9uUG9pbnRlckRvd246IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlckRvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmICghZGlzYWJsZWQgJiYgZXZlbnQuYnV0dG9uID09PSAwICYmIGV2ZW50LmN0cmxLZXkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBjb250ZXh0Lm9uT3BlblRvZ2dsZSgpO1xuICAgICAgICAgICAgaWYgKCFjb250ZXh0Lm9wZW4pIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgb25LZXlEb3duOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChkaXNhYmxlZCkgcmV0dXJuO1xuICAgICAgICAgIGlmIChbXCJFbnRlclwiLCBcIiBcIl0uaW5jbHVkZXMoZXZlbnQua2V5KSkgY29udGV4dC5vbk9wZW5Ub2dnbGUoKTtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93RG93blwiKSBjb250ZXh0Lm9uT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgICBpZiAoW1wiRW50ZXJcIiwgXCIgXCIsIFwiQXJyb3dEb3duXCJdLmluY2x1ZGVzKGV2ZW50LmtleSkpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgKSB9KTtcbiAgfVxuKTtcbkRyb3Bkb3duTWVudVRyaWdnZXIuZGlzcGxheU5hbWUgPSBUUklHR0VSX05BTUU7XG52YXIgUE9SVEFMX05BTUUgPSBcIkRyb3Bkb3duTWVudVBvcnRhbFwiO1xudmFyIERyb3Bkb3duTWVudVBvcnRhbCA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLnBvcnRhbFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChNZW51UHJpbWl0aXZlLlBvcnRhbCwgeyAuLi5tZW51U2NvcGUsIC4uLnBvcnRhbFByb3BzIH0pO1xufTtcbkRyb3Bkb3duTWVudVBvcnRhbC5kaXNwbGF5TmFtZSA9IFBPUlRBTF9OQU1FO1xudmFyIENPTlRFTlRfTkFNRSA9IFwiRHJvcGRvd25NZW51Q29udGVudFwiO1xudmFyIERyb3Bkb3duTWVudUNvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRHJvcGRvd25NZW51Q29udGV4dChDT05URU5UX05BTUUsIF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICAgIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgICBjb25zdCBoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBNZW51UHJpbWl0aXZlLkNvbnRlbnQsXG4gICAgICB7XG4gICAgICAgIGlkOiBjb250ZXh0LmNvbnRlbnRJZCxcbiAgICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogY29udGV4dC50cmlnZ2VySWQsXG4gICAgICAgIC4uLm1lbnVTY29wZSxcbiAgICAgICAgLi4uY29udGVudFByb3BzLFxuICAgICAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICAgICAgb25DbG9zZUF1dG9Gb2N1czogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25DbG9zZUF1dG9Gb2N1cywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKCFoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZi5jdXJyZW50KSBjb250ZXh0LnRyaWdnZXJSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgICBoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSksXG4gICAgICAgIG9uSW50ZXJhY3RPdXRzaWRlOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkludGVyYWN0T3V0c2lkZSwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxFdmVudCA9IGV2ZW50LmRldGFpbC5vcmlnaW5hbEV2ZW50O1xuICAgICAgICAgIGNvbnN0IGN0cmxMZWZ0Q2xpY2sgPSBvcmlnaW5hbEV2ZW50LmJ1dHRvbiA9PT0gMCAmJiBvcmlnaW5hbEV2ZW50LmN0cmxLZXkgPT09IHRydWU7XG4gICAgICAgICAgY29uc3QgaXNSaWdodENsaWNrID0gb3JpZ2luYWxFdmVudC5idXR0b24gPT09IDIgfHwgY3RybExlZnRDbGljaztcbiAgICAgICAgICBpZiAoIWNvbnRleHQubW9kYWwgfHwgaXNSaWdodENsaWNrKSBoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgfSksXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgLi4ucHJvcHMuc3R5bGUsXG4gICAgICAgICAgLy8gcmUtbmFtZXNwYWNlIGV4cG9zZWQgY29udGVudCBjdXN0b20gcHJvcGVydGllc1xuICAgICAgICAgIC4uLntcbiAgICAgICAgICAgIFwiLS1yYWRpeC1kcm9wZG93bi1tZW51LWNvbnRlbnQtdHJhbnNmb3JtLW9yaWdpblwiOiBcInZhcigtLXJhZGl4LXBvcHBlci10cmFuc2Zvcm0tb3JpZ2luKVwiLFxuICAgICAgICAgICAgXCItLXJhZGl4LWRyb3Bkb3duLW1lbnUtY29udGVudC1hdmFpbGFibGUtd2lkdGhcIjogXCJ2YXIoLS1yYWRpeC1wb3BwZXItYXZhaWxhYmxlLXdpZHRoKVwiLFxuICAgICAgICAgICAgXCItLXJhZGl4LWRyb3Bkb3duLW1lbnUtY29udGVudC1hdmFpbGFibGUtaGVpZ2h0XCI6IFwidmFyKC0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS1oZWlnaHQpXCIsXG4gICAgICAgICAgICBcIi0tcmFkaXgtZHJvcGRvd24tbWVudS10cmlnZ2VyLXdpZHRoXCI6IFwidmFyKC0tcmFkaXgtcG9wcGVyLWFuY2hvci13aWR0aClcIixcbiAgICAgICAgICAgIFwiLS1yYWRpeC1kcm9wZG93bi1tZW51LXRyaWdnZXItaGVpZ2h0XCI6IFwidmFyKC0tcmFkaXgtcG9wcGVyLWFuY2hvci1oZWlnaHQpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xuRHJvcGRvd25NZW51Q29udGVudC5kaXNwbGF5TmFtZSA9IENPTlRFTlRfTkFNRTtcbnZhciBHUk9VUF9OQU1FID0gXCJEcm9wZG93bk1lbnVHcm91cFwiO1xudmFyIERyb3Bkb3duTWVudUdyb3VwID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLmdyb3VwUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChNZW51UHJpbWl0aXZlLkdyb3VwLCB7IC4uLm1lbnVTY29wZSwgLi4uZ3JvdXBQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XG4gIH1cbik7XG5Ecm9wZG93bk1lbnVHcm91cC5kaXNwbGF5TmFtZSA9IEdST1VQX05BTUU7XG52YXIgTEFCRUxfTkFNRSA9IFwiRHJvcGRvd25NZW51TGFiZWxcIjtcbnZhciBEcm9wZG93bk1lbnVMYWJlbCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRHJvcGRvd25NZW51LCAuLi5sYWJlbFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBtZW51U2NvcGUgPSB1c2VNZW51U2NvcGUoX19zY29wZURyb3Bkb3duTWVudSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goTWVudVByaW1pdGl2ZS5MYWJlbCwgeyAuLi5tZW51U2NvcGUsIC4uLmxhYmVsUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xuICB9XG4pO1xuRHJvcGRvd25NZW51TGFiZWwuZGlzcGxheU5hbWUgPSBMQUJFTF9OQU1FO1xudmFyIElURU1fTkFNRSA9IFwiRHJvcGRvd25NZW51SXRlbVwiO1xudmFyIERyb3Bkb3duTWVudUl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgLi4uaXRlbVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBtZW51U2NvcGUgPSB1c2VNZW51U2NvcGUoX19zY29wZURyb3Bkb3duTWVudSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goTWVudVByaW1pdGl2ZS5JdGVtLCB7IC4uLm1lbnVTY29wZSwgLi4uaXRlbVByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KTtcbiAgfVxuKTtcbkRyb3Bkb3duTWVudUl0ZW0uZGlzcGxheU5hbWUgPSBJVEVNX05BTUU7XG52YXIgQ0hFQ0tCT1hfSVRFTV9OQU1FID0gXCJEcm9wZG93bk1lbnVDaGVja2JveEl0ZW1cIjtcbnZhciBEcm9wZG93bk1lbnVDaGVja2JveEl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgLi4uY2hlY2tib3hJdGVtUHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBtZW51U2NvcGUgPSB1c2VNZW51U2NvcGUoX19zY29wZURyb3Bkb3duTWVudSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KE1lbnVQcmltaXRpdmUuQ2hlY2tib3hJdGVtLCB7IC4uLm1lbnVTY29wZSwgLi4uY2hlY2tib3hJdGVtUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xufSk7XG5Ecm9wZG93bk1lbnVDaGVja2JveEl0ZW0uZGlzcGxheU5hbWUgPSBDSEVDS0JPWF9JVEVNX05BTUU7XG52YXIgUkFESU9fR1JPVVBfTkFNRSA9IFwiRHJvcGRvd25NZW51UmFkaW9Hcm91cFwiO1xudmFyIERyb3Bkb3duTWVudVJhZGlvR3JvdXAgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgLi4ucmFkaW9Hcm91cFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChNZW51UHJpbWl0aXZlLlJhZGlvR3JvdXAsIHsgLi4ubWVudVNjb3BlLCAuLi5yYWRpb0dyb3VwUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xufSk7XG5Ecm9wZG93bk1lbnVSYWRpb0dyb3VwLmRpc3BsYXlOYW1lID0gUkFESU9fR1JPVVBfTkFNRTtcbnZhciBSQURJT19JVEVNX05BTUUgPSBcIkRyb3Bkb3duTWVudVJhZGlvSXRlbVwiO1xudmFyIERyb3Bkb3duTWVudVJhZGlvSXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlRHJvcGRvd25NZW51LCAuLi5yYWRpb0l0ZW1Qcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goTWVudVByaW1pdGl2ZS5SYWRpb0l0ZW0sIHsgLi4ubWVudVNjb3BlLCAuLi5yYWRpb0l0ZW1Qcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XG59KTtcbkRyb3Bkb3duTWVudVJhZGlvSXRlbS5kaXNwbGF5TmFtZSA9IFJBRElPX0lURU1fTkFNRTtcbnZhciBJTkRJQ0FUT1JfTkFNRSA9IFwiRHJvcGRvd25NZW51SXRlbUluZGljYXRvclwiO1xudmFyIERyb3Bkb3duTWVudUl0ZW1JbmRpY2F0b3IgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgLi4uaXRlbUluZGljYXRvclByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChNZW51UHJpbWl0aXZlLkl0ZW1JbmRpY2F0b3IsIHsgLi4ubWVudVNjb3BlLCAuLi5pdGVtSW5kaWNhdG9yUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xufSk7XG5Ecm9wZG93bk1lbnVJdGVtSW5kaWNhdG9yLmRpc3BsYXlOYW1lID0gSU5ESUNBVE9SX05BTUU7XG52YXIgU0VQQVJBVE9SX05BTUUgPSBcIkRyb3Bkb3duTWVudVNlcGFyYXRvclwiO1xudmFyIERyb3Bkb3duTWVudVNlcGFyYXRvciA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlRHJvcGRvd25NZW51LCAuLi5zZXBhcmF0b3JQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goTWVudVByaW1pdGl2ZS5TZXBhcmF0b3IsIHsgLi4ubWVudVNjb3BlLCAuLi5zZXBhcmF0b3JQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XG59KTtcbkRyb3Bkb3duTWVudVNlcGFyYXRvci5kaXNwbGF5TmFtZSA9IFNFUEFSQVRPUl9OQU1FO1xudmFyIEFSUk9XX05BTUUgPSBcIkRyb3Bkb3duTWVudUFycm93XCI7XG52YXIgRHJvcGRvd25NZW51QXJyb3cgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgLi4uYXJyb3dQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KE1lbnVQcmltaXRpdmUuQXJyb3csIHsgLi4ubWVudVNjb3BlLCAuLi5hcnJvd1Byb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KTtcbiAgfVxuKTtcbkRyb3Bkb3duTWVudUFycm93LmRpc3BsYXlOYW1lID0gQVJST1dfTkFNRTtcbnZhciBEcm9wZG93bk1lbnVTdWIgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlRHJvcGRvd25NZW51LCBjaGlsZHJlbiwgb3Blbjogb3BlblByb3AsIG9uT3BlbkNoYW5nZSwgZGVmYXVsdE9wZW4gfSA9IHByb3BzO1xuICBjb25zdCBtZW51U2NvcGUgPSB1c2VNZW51U2NvcGUoX19zY29wZURyb3Bkb3duTWVudSk7XG4gIGNvbnN0IFtvcGVuID0gZmFsc2UsIHNldE9wZW5dID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgIHByb3A6IG9wZW5Qcm9wLFxuICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0T3BlbixcbiAgICBvbkNoYW5nZTogb25PcGVuQ2hhbmdlXG4gIH0pO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChNZW51UHJpbWl0aXZlLlN1YiwgeyAuLi5tZW51U2NvcGUsIG9wZW4sIG9uT3BlbkNoYW5nZTogc2V0T3BlbiwgY2hpbGRyZW4gfSk7XG59O1xudmFyIFNVQl9UUklHR0VSX05BTUUgPSBcIkRyb3Bkb3duTWVudVN1YlRyaWdnZXJcIjtcbnZhciBEcm9wZG93bk1lbnVTdWJUcmlnZ2VyID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLnN1YlRyaWdnZXJQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goTWVudVByaW1pdGl2ZS5TdWJUcmlnZ2VyLCB7IC4uLm1lbnVTY29wZSwgLi4uc3ViVHJpZ2dlclByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KTtcbn0pO1xuRHJvcGRvd25NZW51U3ViVHJpZ2dlci5kaXNwbGF5TmFtZSA9IFNVQl9UUklHR0VSX05BTUU7XG52YXIgU1VCX0NPTlRFTlRfTkFNRSA9IFwiRHJvcGRvd25NZW51U3ViQ29udGVudFwiO1xudmFyIERyb3Bkb3duTWVudVN1YkNvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgLi4uc3ViQ29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBNZW51UHJpbWl0aXZlLlN1YkNvbnRlbnQsXG4gICAge1xuICAgICAgLi4ubWVudVNjb3BlLFxuICAgICAgLi4uc3ViQ29udGVudFByb3BzLFxuICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgICBzdHlsZToge1xuICAgICAgICAuLi5wcm9wcy5zdHlsZSxcbiAgICAgICAgLy8gcmUtbmFtZXNwYWNlIGV4cG9zZWQgY29udGVudCBjdXN0b20gcHJvcGVydGllc1xuICAgICAgICAuLi57XG4gICAgICAgICAgXCItLXJhZGl4LWRyb3Bkb3duLW1lbnUtY29udGVudC10cmFuc2Zvcm0tb3JpZ2luXCI6IFwidmFyKC0tcmFkaXgtcG9wcGVyLXRyYW5zZm9ybS1vcmlnaW4pXCIsXG4gICAgICAgICAgXCItLXJhZGl4LWRyb3Bkb3duLW1lbnUtY29udGVudC1hdmFpbGFibGUtd2lkdGhcIjogXCJ2YXIoLS1yYWRpeC1wb3BwZXItYXZhaWxhYmxlLXdpZHRoKVwiLFxuICAgICAgICAgIFwiLS1yYWRpeC1kcm9wZG93bi1tZW51LWNvbnRlbnQtYXZhaWxhYmxlLWhlaWdodFwiOiBcInZhcigtLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtaGVpZ2h0KVwiLFxuICAgICAgICAgIFwiLS1yYWRpeC1kcm9wZG93bi1tZW51LXRyaWdnZXItd2lkdGhcIjogXCJ2YXIoLS1yYWRpeC1wb3BwZXItYW5jaG9yLXdpZHRoKVwiLFxuICAgICAgICAgIFwiLS1yYWRpeC1kcm9wZG93bi1tZW51LXRyaWdnZXItaGVpZ2h0XCI6IFwidmFyKC0tcmFkaXgtcG9wcGVyLWFuY2hvci1oZWlnaHQpXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgKTtcbn0pO1xuRHJvcGRvd25NZW51U3ViQ29udGVudC5kaXNwbGF5TmFtZSA9IFNVQl9DT05URU5UX05BTUU7XG52YXIgUm9vdDIgPSBEcm9wZG93bk1lbnU7XG52YXIgVHJpZ2dlciA9IERyb3Bkb3duTWVudVRyaWdnZXI7XG52YXIgUG9ydGFsMiA9IERyb3Bkb3duTWVudVBvcnRhbDtcbnZhciBDb250ZW50MiA9IERyb3Bkb3duTWVudUNvbnRlbnQ7XG52YXIgR3JvdXAyID0gRHJvcGRvd25NZW51R3JvdXA7XG52YXIgTGFiZWwyID0gRHJvcGRvd25NZW51TGFiZWw7XG52YXIgSXRlbTIgPSBEcm9wZG93bk1lbnVJdGVtO1xudmFyIENoZWNrYm94SXRlbTIgPSBEcm9wZG93bk1lbnVDaGVja2JveEl0ZW07XG52YXIgUmFkaW9Hcm91cDIgPSBEcm9wZG93bk1lbnVSYWRpb0dyb3VwO1xudmFyIFJhZGlvSXRlbTIgPSBEcm9wZG93bk1lbnVSYWRpb0l0ZW07XG52YXIgSXRlbUluZGljYXRvcjIgPSBEcm9wZG93bk1lbnVJdGVtSW5kaWNhdG9yO1xudmFyIFNlcGFyYXRvcjIgPSBEcm9wZG93bk1lbnVTZXBhcmF0b3I7XG52YXIgQXJyb3cyID0gRHJvcGRvd25NZW51QXJyb3c7XG52YXIgU3ViMiA9IERyb3Bkb3duTWVudVN1YjtcbnZhciBTdWJUcmlnZ2VyMiA9IERyb3Bkb3duTWVudVN1YlRyaWdnZXI7XG52YXIgU3ViQ29udGVudDIgPSBEcm9wZG93bk1lbnVTdWJDb250ZW50O1xuZXhwb3J0IHtcbiAgQXJyb3cyIGFzIEFycm93LFxuICBDaGVja2JveEl0ZW0yIGFzIENoZWNrYm94SXRlbSxcbiAgQ29udGVudDIgYXMgQ29udGVudCxcbiAgRHJvcGRvd25NZW51LFxuICBEcm9wZG93bk1lbnVBcnJvdyxcbiAgRHJvcGRvd25NZW51Q2hlY2tib3hJdGVtLFxuICBEcm9wZG93bk1lbnVDb250ZW50LFxuICBEcm9wZG93bk1lbnVHcm91cCxcbiAgRHJvcGRvd25NZW51SXRlbSxcbiAgRHJvcGRvd25NZW51SXRlbUluZGljYXRvcixcbiAgRHJvcGRvd25NZW51TGFiZWwsXG4gIERyb3Bkb3duTWVudVBvcnRhbCxcbiAgRHJvcGRvd25NZW51UmFkaW9Hcm91cCxcbiAgRHJvcGRvd25NZW51UmFkaW9JdGVtLFxuICBEcm9wZG93bk1lbnVTZXBhcmF0b3IsXG4gIERyb3Bkb3duTWVudVN1YixcbiAgRHJvcGRvd25NZW51U3ViQ29udGVudCxcbiAgRHJvcGRvd25NZW51U3ViVHJpZ2dlcixcbiAgRHJvcGRvd25NZW51VHJpZ2dlcixcbiAgR3JvdXAyIGFzIEdyb3VwLFxuICBJdGVtMiBhcyBJdGVtLFxuICBJdGVtSW5kaWNhdG9yMiBhcyBJdGVtSW5kaWNhdG9yLFxuICBMYWJlbDIgYXMgTGFiZWwsXG4gIFBvcnRhbDIgYXMgUG9ydGFsLFxuICBSYWRpb0dyb3VwMiBhcyBSYWRpb0dyb3VwLFxuICBSYWRpb0l0ZW0yIGFzIFJhZGlvSXRlbSxcbiAgUm9vdDIgYXMgUm9vdCxcbiAgU2VwYXJhdG9yMiBhcyBTZXBhcmF0b3IsXG4gIFN1YjIgYXMgU3ViLFxuICBTdWJDb250ZW50MiBhcyBTdWJDb250ZW50LFxuICBTdWJUcmlnZ2VyMiBhcyBTdWJUcmlnZ2VyLFxuICBUcmlnZ2VyLFxuICBjcmVhdGVEcm9wZG93bk1lbnVTY29wZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsbnVsbCxudWxsLG51bGwsbnVsbCwiXCJ1c2UgY2xpZW50XCI7XG5cbi8vIHBhY2thZ2VzL3JlYWN0L3BvcG92ZXIvc3JjL3BvcG92ZXIudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSBcIkByYWRpeC11aS9wcmltaXRpdmVcIjtcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbnRleHRcIjtcbmltcG9ydCB7IERpc21pc3NhYmxlTGF5ZXIgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyXCI7XG5pbXBvcnQgeyB1c2VGb2N1c0d1YXJkcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtZm9jdXMtZ3VhcmRzXCI7XG5pbXBvcnQgeyBGb2N1c1Njb3BlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1mb2N1cy1zY29wZVwiO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWlkXCI7XG5pbXBvcnQgKiBhcyBQb3BwZXJQcmltaXRpdmUgZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wb3BwZXJcIjtcbmltcG9ydCB7IGNyZWF0ZVBvcHBlclNjb3BlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wb3BwZXJcIjtcbmltcG9ydCB7IFBvcnRhbCBhcyBQb3J0YWxQcmltaXRpdmUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXBvcnRhbFwiO1xuaW1wb3J0IHsgUHJlc2VuY2UgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByZXNlbmNlXCI7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZVwiO1xuaW1wb3J0IHsgU2xvdCB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtc2xvdFwiO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxhYmxlU3RhdGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1jb250cm9sbGFibGUtc3RhdGVcIjtcbmltcG9ydCB7IGhpZGVPdGhlcnMgfSBmcm9tIFwiYXJpYS1oaWRkZW5cIjtcbmltcG9ydCB7IFJlbW92ZVNjcm9sbCB9IGZyb20gXCJyZWFjdC1yZW1vdmUtc2Nyb2xsXCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBQT1BPVkVSX05BTUUgPSBcIlBvcG92ZXJcIjtcbnZhciBbY3JlYXRlUG9wb3ZlckNvbnRleHQsIGNyZWF0ZVBvcG92ZXJTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoUE9QT1ZFUl9OQU1FLCBbXG4gIGNyZWF0ZVBvcHBlclNjb3BlXG5dKTtcbnZhciB1c2VQb3BwZXJTY29wZSA9IGNyZWF0ZVBvcHBlclNjb3BlKCk7XG52YXIgW1BvcG92ZXJQcm92aWRlciwgdXNlUG9wb3ZlckNvbnRleHRdID0gY3JlYXRlUG9wb3ZlckNvbnRleHQoUE9QT1ZFUl9OQU1FKTtcbnZhciBQb3BvdmVyID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfX3Njb3BlUG9wb3ZlcixcbiAgICBjaGlsZHJlbixcbiAgICBvcGVuOiBvcGVuUHJvcCxcbiAgICBkZWZhdWx0T3BlbixcbiAgICBvbk9wZW5DaGFuZ2UsXG4gICAgbW9kYWwgPSBmYWxzZVxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVBvcG92ZXIpO1xuICBjb25zdCB0cmlnZ2VyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBbaGFzQ3VzdG9tQW5jaG9yLCBzZXRIYXNDdXN0b21BbmNob3JdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbb3BlbiA9IGZhbHNlLCBzZXRPcGVuXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICBwcm9wOiBvcGVuUHJvcCxcbiAgICBkZWZhdWx0UHJvcDogZGVmYXVsdE9wZW4sXG4gICAgb25DaGFuZ2U6IG9uT3BlbkNoYW5nZVxuICB9KTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUG9wcGVyUHJpbWl0aXZlLlJvb3QsIHsgLi4ucG9wcGVyU2NvcGUsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFBvcG92ZXJQcm92aWRlcixcbiAgICB7XG4gICAgICBzY29wZTogX19zY29wZVBvcG92ZXIsXG4gICAgICBjb250ZW50SWQ6IHVzZUlkKCksXG4gICAgICB0cmlnZ2VyUmVmLFxuICAgICAgb3BlbixcbiAgICAgIG9uT3BlbkNoYW5nZTogc2V0T3BlbixcbiAgICAgIG9uT3BlblRvZ2dsZTogUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4gc2V0T3BlbigocHJldk9wZW4pID0+ICFwcmV2T3BlbiksIFtzZXRPcGVuXSksXG4gICAgICBoYXNDdXN0b21BbmNob3IsXG4gICAgICBvbkN1c3RvbUFuY2hvckFkZDogUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4gc2V0SGFzQ3VzdG9tQW5jaG9yKHRydWUpLCBbXSksXG4gICAgICBvbkN1c3RvbUFuY2hvclJlbW92ZTogUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4gc2V0SGFzQ3VzdG9tQW5jaG9yKGZhbHNlKSwgW10pLFxuICAgICAgbW9kYWwsXG4gICAgICBjaGlsZHJlblxuICAgIH1cbiAgKSB9KTtcbn07XG5Qb3BvdmVyLmRpc3BsYXlOYW1lID0gUE9QT1ZFUl9OQU1FO1xudmFyIEFOQ0hPUl9OQU1FID0gXCJQb3BvdmVyQW5jaG9yXCI7XG52YXIgUG9wb3ZlckFuY2hvciA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlUG9wb3ZlciwgLi4uYW5jaG9yUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VQb3BvdmVyQ29udGV4dChBTkNIT1JfTkFNRSwgX19zY29wZVBvcG92ZXIpO1xuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVBvcG92ZXIpO1xuICAgIGNvbnN0IHsgb25DdXN0b21BbmNob3JBZGQsIG9uQ3VzdG9tQW5jaG9yUmVtb3ZlIH0gPSBjb250ZXh0O1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBvbkN1c3RvbUFuY2hvckFkZCgpO1xuICAgICAgcmV0dXJuICgpID0+IG9uQ3VzdG9tQW5jaG9yUmVtb3ZlKCk7XG4gICAgfSwgW29uQ3VzdG9tQW5jaG9yQWRkLCBvbkN1c3RvbUFuY2hvclJlbW92ZV0pO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFBvcHBlclByaW1pdGl2ZS5BbmNob3IsIHsgLi4ucG9wcGVyU2NvcGUsIC4uLmFuY2hvclByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KTtcbiAgfVxuKTtcblBvcG92ZXJBbmNob3IuZGlzcGxheU5hbWUgPSBBTkNIT1JfTkFNRTtcbnZhciBUUklHR0VSX05BTUUgPSBcIlBvcG92ZXJUcmlnZ2VyXCI7XG52YXIgUG9wb3ZlclRyaWdnZXIgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVBvcG92ZXIsIC4uLnRyaWdnZXJQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVBvcG92ZXJDb250ZXh0KFRSSUdHRVJfTkFNRSwgX19zY29wZVBvcG92ZXIpO1xuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVBvcG92ZXIpO1xuICAgIGNvbnN0IGNvbXBvc2VkVHJpZ2dlclJlZiA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRleHQudHJpZ2dlclJlZik7XG4gICAgY29uc3QgdHJpZ2dlciA9IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBQcmltaXRpdmUuYnV0dG9uLFxuICAgICAge1xuICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICBcImFyaWEtaGFzcG9wdXBcIjogXCJkaWFsb2dcIixcbiAgICAgICAgXCJhcmlhLWV4cGFuZGVkXCI6IGNvbnRleHQub3BlbixcbiAgICAgICAgXCJhcmlhLWNvbnRyb2xzXCI6IGNvbnRleHQuY29udGVudElkLFxuICAgICAgICBcImRhdGEtc3RhdGVcIjogZ2V0U3RhdGUoY29udGV4dC5vcGVuKSxcbiAgICAgICAgLi4udHJpZ2dlclByb3BzLFxuICAgICAgICByZWY6IGNvbXBvc2VkVHJpZ2dlclJlZixcbiAgICAgICAgb25DbGljazogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25DbGljaywgY29udGV4dC5vbk9wZW5Ub2dnbGUpXG4gICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gY29udGV4dC5oYXNDdXN0b21BbmNob3IgPyB0cmlnZ2VyIDogLyogQF9fUFVSRV9fICovIGpzeChQb3BwZXJQcmltaXRpdmUuQW5jaG9yLCB7IGFzQ2hpbGQ6IHRydWUsIC4uLnBvcHBlclNjb3BlLCBjaGlsZHJlbjogdHJpZ2dlciB9KTtcbiAgfVxuKTtcblBvcG92ZXJUcmlnZ2VyLmRpc3BsYXlOYW1lID0gVFJJR0dFUl9OQU1FO1xudmFyIFBPUlRBTF9OQU1FID0gXCJQb3BvdmVyUG9ydGFsXCI7XG52YXIgW1BvcnRhbFByb3ZpZGVyLCB1c2VQb3J0YWxDb250ZXh0XSA9IGNyZWF0ZVBvcG92ZXJDb250ZXh0KFBPUlRBTF9OQU1FLCB7XG4gIGZvcmNlTW91bnQ6IHZvaWQgMFxufSk7XG52YXIgUG9wb3ZlclBvcnRhbCA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVQb3BvdmVyLCBmb3JjZU1vdW50LCBjaGlsZHJlbiwgY29udGFpbmVyIH0gPSBwcm9wcztcbiAgY29uc3QgY29udGV4dCA9IHVzZVBvcG92ZXJDb250ZXh0KFBPUlRBTF9OQU1FLCBfX3Njb3BlUG9wb3Zlcik7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFBvcnRhbFByb3ZpZGVyLCB7IHNjb3BlOiBfX3Njb3BlUG9wb3ZlciwgZm9yY2VNb3VudCwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goUHJlc2VuY2UsIHsgcHJlc2VudDogZm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW4sIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFBvcnRhbFByaW1pdGl2ZSwgeyBhc0NoaWxkOiB0cnVlLCBjb250YWluZXIsIGNoaWxkcmVuIH0pIH0pIH0pO1xufTtcblBvcG92ZXJQb3J0YWwuZGlzcGxheU5hbWUgPSBQT1JUQUxfTkFNRTtcbnZhciBDT05URU5UX05BTUUgPSBcIlBvcG92ZXJDb250ZW50XCI7XG52YXIgUG9wb3ZlckNvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHBvcnRhbENvbnRleHQgPSB1c2VQb3J0YWxDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZVBvcG92ZXIpO1xuICAgIGNvbnN0IHsgZm9yY2VNb3VudCA9IHBvcnRhbENvbnRleHQuZm9yY2VNb3VudCwgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlUG9wb3ZlckNvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlUG9wb3Zlcik7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUHJlc2VuY2UsIHsgcHJlc2VudDogZm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW4sIGNoaWxkcmVuOiBjb250ZXh0Lm1vZGFsID8gLyogQF9fUFVSRV9fICovIGpzeChQb3BvdmVyQ29udGVudE1vZGFsLCB7IC4uLmNvbnRlbnRQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSkgOiAvKiBAX19QVVJFX18gKi8ganN4KFBvcG92ZXJDb250ZW50Tm9uTW9kYWwsIHsgLi4uY29udGVudFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KSB9KTtcbiAgfVxuKTtcblBvcG92ZXJDb250ZW50LmRpc3BsYXlOYW1lID0gQ09OVEVOVF9OQU1FO1xudmFyIFBvcG92ZXJDb250ZW50TW9kYWwgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VQb3BvdmVyQ29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVQb3BvdmVyKTtcbiAgICBjb25zdCBjb250ZW50UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRlbnRSZWYpO1xuICAgIGNvbnN0IGlzUmlnaHRDbGlja091dHNpZGVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjb250ZW50ID0gY29udGVudFJlZi5jdXJyZW50O1xuICAgICAgaWYgKGNvbnRlbnQpIHJldHVybiBoaWRlT3RoZXJzKGNvbnRlbnQpO1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChSZW1vdmVTY3JvbGwsIHsgYXM6IFNsb3QsIGFsbG93UGluY2hab29tOiB0cnVlLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFBvcG92ZXJDb250ZW50SW1wbCxcbiAgICAgIHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIHJlZjogY29tcG9zZWRSZWZzLFxuICAgICAgICB0cmFwRm9jdXM6IGNvbnRleHQub3BlbixcbiAgICAgICAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzOiB0cnVlLFxuICAgICAgICBvbkNsb3NlQXV0b0ZvY3VzOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsb3NlQXV0b0ZvY3VzLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGlmICghaXNSaWdodENsaWNrT3V0c2lkZVJlZi5jdXJyZW50KSBjb250ZXh0LnRyaWdnZXJSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgfSksXG4gICAgICAgIG9uUG9pbnRlckRvd25PdXRzaWRlOiBjb21wb3NlRXZlbnRIYW5kbGVycyhcbiAgICAgICAgICBwcm9wcy5vblBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsRXZlbnQgPSBldmVudC5kZXRhaWwub3JpZ2luYWxFdmVudDtcbiAgICAgICAgICAgIGNvbnN0IGN0cmxMZWZ0Q2xpY2sgPSBvcmlnaW5hbEV2ZW50LmJ1dHRvbiA9PT0gMCAmJiBvcmlnaW5hbEV2ZW50LmN0cmxLZXkgPT09IHRydWU7XG4gICAgICAgICAgICBjb25zdCBpc1JpZ2h0Q2xpY2sgPSBvcmlnaW5hbEV2ZW50LmJ1dHRvbiA9PT0gMiB8fCBjdHJsTGVmdENsaWNrO1xuICAgICAgICAgICAgaXNSaWdodENsaWNrT3V0c2lkZVJlZi5jdXJyZW50ID0gaXNSaWdodENsaWNrO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBjaGVja0ZvckRlZmF1bHRQcmV2ZW50ZWQ6IGZhbHNlIH1cbiAgICAgICAgKSxcbiAgICAgICAgb25Gb2N1c091dHNpZGU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKFxuICAgICAgICAgIHByb3BzLm9uRm9jdXNPdXRzaWRlLFxuICAgICAgICAgIChldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSxcbiAgICAgICAgICB7IGNoZWNrRm9yRGVmYXVsdFByZXZlbnRlZDogZmFsc2UgfVxuICAgICAgICApXG4gICAgICB9XG4gICAgKSB9KTtcbiAgfVxuKTtcbnZhciBQb3BvdmVyQ29udGVudE5vbk1vZGFsID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlUG9wb3ZlckNvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlUG9wb3Zlcik7XG4gICAgY29uc3QgaGFzSW50ZXJhY3RlZE91dHNpZGVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBQb3BvdmVyQ29udGVudEltcGwsXG4gICAgICB7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICAgICAgdHJhcEZvY3VzOiBmYWxzZSxcbiAgICAgICAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzOiBmYWxzZSxcbiAgICAgICAgb25DbG9zZUF1dG9Gb2N1czogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgcHJvcHMub25DbG9zZUF1dG9Gb2N1cz8uKGV2ZW50KTtcbiAgICAgICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgIGlmICghaGFzSW50ZXJhY3RlZE91dHNpZGVSZWYuY3VycmVudCkgY29udGV4dC50cmlnZ2VyUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgaGFzUG9pbnRlckRvd25PdXRzaWRlUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgb25JbnRlcmFjdE91dHNpZGU6IChldmVudCkgPT4ge1xuICAgICAgICAgIHByb3BzLm9uSW50ZXJhY3RPdXRzaWRlPy4oZXZlbnQpO1xuICAgICAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgaGFzSW50ZXJhY3RlZE91dHNpZGVSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZGV0YWlsLm9yaWdpbmFsRXZlbnQudHlwZSA9PT0gXCJwb2ludGVyZG93blwiKSB7XG4gICAgICAgICAgICAgIGhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICAgIGNvbnN0IHRhcmdldElzVHJpZ2dlciA9IGNvbnRleHQudHJpZ2dlclJlZi5jdXJyZW50Py5jb250YWlucyh0YXJnZXQpO1xuICAgICAgICAgIGlmICh0YXJnZXRJc1RyaWdnZXIpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgaWYgKGV2ZW50LmRldGFpbC5vcmlnaW5hbEV2ZW50LnR5cGUgPT09IFwiZm9jdXNpblwiICYmIGhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG52YXIgUG9wb3ZlckNvbnRlbnRJbXBsID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlUG9wb3ZlcixcbiAgICAgIHRyYXBGb2N1cyxcbiAgICAgIG9uT3BlbkF1dG9Gb2N1cyxcbiAgICAgIG9uQ2xvc2VBdXRvRm9jdXMsXG4gICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMsXG4gICAgICBvbkVzY2FwZUtleURvd24sXG4gICAgICBvblBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgIG9uRm9jdXNPdXRzaWRlLFxuICAgICAgb25JbnRlcmFjdE91dHNpZGUsXG4gICAgICAuLi5jb250ZW50UHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVBvcG92ZXJDb250ZXh0KENPTlRFTlRfTkFNRSwgX19zY29wZVBvcG92ZXIpO1xuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVBvcG92ZXIpO1xuICAgIHVzZUZvY3VzR3VhcmRzKCk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBGb2N1c1Njb3BlLFxuICAgICAge1xuICAgICAgICBhc0NoaWxkOiB0cnVlLFxuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICB0cmFwcGVkOiB0cmFwRm9jdXMsXG4gICAgICAgIG9uTW91bnRBdXRvRm9jdXM6IG9uT3BlbkF1dG9Gb2N1cyxcbiAgICAgICAgb25Vbm1vdW50QXV0b0ZvY3VzOiBvbkNsb3NlQXV0b0ZvY3VzLFxuICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICBEaXNtaXNzYWJsZUxheWVyLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFzQ2hpbGQ6IHRydWUsXG4gICAgICAgICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMsXG4gICAgICAgICAgICBvbkludGVyYWN0T3V0c2lkZSxcbiAgICAgICAgICAgIG9uRXNjYXBlS2V5RG93bixcbiAgICAgICAgICAgIG9uUG9pbnRlckRvd25PdXRzaWRlLFxuICAgICAgICAgICAgb25Gb2N1c091dHNpZGUsXG4gICAgICAgICAgICBvbkRpc21pc3M6ICgpID0+IGNvbnRleHQub25PcGVuQ2hhbmdlKGZhbHNlKSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgICAgICBQb3BwZXJQcmltaXRpdmUuQ29udGVudCxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwiZGF0YS1zdGF0ZVwiOiBnZXRTdGF0ZShjb250ZXh0Lm9wZW4pLFxuICAgICAgICAgICAgICAgIHJvbGU6IFwiZGlhbG9nXCIsXG4gICAgICAgICAgICAgICAgaWQ6IGNvbnRleHQuY29udGVudElkLFxuICAgICAgICAgICAgICAgIC4uLnBvcHBlclNjb3BlLFxuICAgICAgICAgICAgICAgIC4uLmNvbnRlbnRQcm9wcyxcbiAgICAgICAgICAgICAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgLi4uY29udGVudFByb3BzLnN0eWxlLFxuICAgICAgICAgICAgICAgICAgLy8gcmUtbmFtZXNwYWNlIGV4cG9zZWQgY29udGVudCBjdXN0b20gcHJvcGVydGllc1xuICAgICAgICAgICAgICAgICAgLi4ue1xuICAgICAgICAgICAgICAgICAgICBcIi0tcmFkaXgtcG9wb3Zlci1jb250ZW50LXRyYW5zZm9ybS1vcmlnaW5cIjogXCJ2YXIoLS1yYWRpeC1wb3BwZXItdHJhbnNmb3JtLW9yaWdpbilcIixcbiAgICAgICAgICAgICAgICAgICAgXCItLXJhZGl4LXBvcG92ZXItY29udGVudC1hdmFpbGFibGUtd2lkdGhcIjogXCJ2YXIoLS1yYWRpeC1wb3BwZXItYXZhaWxhYmxlLXdpZHRoKVwiLFxuICAgICAgICAgICAgICAgICAgICBcIi0tcmFkaXgtcG9wb3Zlci1jb250ZW50LWF2YWlsYWJsZS1oZWlnaHRcIjogXCJ2YXIoLS1yYWRpeC1wb3BwZXItYXZhaWxhYmxlLWhlaWdodClcIixcbiAgICAgICAgICAgICAgICAgICAgXCItLXJhZGl4LXBvcG92ZXItdHJpZ2dlci13aWR0aFwiOiBcInZhcigtLXJhZGl4LXBvcHBlci1hbmNob3Itd2lkdGgpXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiLS1yYWRpeC1wb3BvdmVyLXRyaWdnZXItaGVpZ2h0XCI6IFwidmFyKC0tcmFkaXgtcG9wcGVyLWFuY2hvci1oZWlnaHQpXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xudmFyIENMT1NFX05BTUUgPSBcIlBvcG92ZXJDbG9zZVwiO1xudmFyIFBvcG92ZXJDbG9zZSA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlUG9wb3ZlciwgLi4uY2xvc2VQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVBvcG92ZXJDb250ZXh0KENMT1NFX05BTUUsIF9fc2NvcGVQb3BvdmVyKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFByaW1pdGl2ZS5idXR0b24sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgIC4uLmNsb3NlUHJvcHMsXG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgICAgICBvbkNsaWNrOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCAoKSA9PiBjb250ZXh0Lm9uT3BlbkNoYW5nZShmYWxzZSkpXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcblBvcG92ZXJDbG9zZS5kaXNwbGF5TmFtZSA9IENMT1NFX05BTUU7XG52YXIgQVJST1dfTkFNRSA9IFwiUG9wb3ZlckFycm93XCI7XG52YXIgUG9wb3ZlckFycm93ID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVQb3BvdmVyLCAuLi5hcnJvd1Byb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBwb3BwZXJTY29wZSA9IHVzZVBvcHBlclNjb3BlKF9fc2NvcGVQb3BvdmVyKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChQb3BwZXJQcmltaXRpdmUuQXJyb3csIHsgLi4ucG9wcGVyU2NvcGUsIC4uLmFycm93UHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xuICB9XG4pO1xuUG9wb3ZlckFycm93LmRpc3BsYXlOYW1lID0gQVJST1dfTkFNRTtcbmZ1bmN0aW9uIGdldFN0YXRlKG9wZW4pIHtcbiAgcmV0dXJuIG9wZW4gPyBcIm9wZW5cIiA6IFwiY2xvc2VkXCI7XG59XG52YXIgUm9vdDIgPSBQb3BvdmVyO1xudmFyIEFuY2hvcjIgPSBQb3BvdmVyQW5jaG9yO1xudmFyIFRyaWdnZXIgPSBQb3BvdmVyVHJpZ2dlcjtcbnZhciBQb3J0YWwgPSBQb3BvdmVyUG9ydGFsO1xudmFyIENvbnRlbnQyID0gUG9wb3ZlckNvbnRlbnQ7XG52YXIgQ2xvc2UgPSBQb3BvdmVyQ2xvc2U7XG52YXIgQXJyb3cyID0gUG9wb3ZlckFycm93O1xuZXhwb3J0IHtcbiAgQW5jaG9yMiBhcyBBbmNob3IsXG4gIEFycm93MiBhcyBBcnJvdyxcbiAgQ2xvc2UsXG4gIENvbnRlbnQyIGFzIENvbnRlbnQsXG4gIFBvcG92ZXIsXG4gIFBvcG92ZXJBbmNob3IsXG4gIFBvcG92ZXJBcnJvdyxcbiAgUG9wb3ZlckNsb3NlLFxuICBQb3BvdmVyQ29udGVudCxcbiAgUG9wb3ZlclBvcnRhbCxcbiAgUG9wb3ZlclRyaWdnZXIsXG4gIFBvcnRhbCxcbiAgUm9vdDIgYXMgUm9vdCxcbiAgVHJpZ2dlcixcbiAgY3JlYXRlUG9wb3ZlclNjb3BlXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIixudWxsLCJcInVzZSBjbGllbnRcIjtcblxuLy8gcGFja2FnZXMvcmVhY3QvcHJvZ3Jlc3Mvc3JjL3Byb2dyZXNzLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbnRleHRcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBQUk9HUkVTU19OQU1FID0gXCJQcm9ncmVzc1wiO1xudmFyIERFRkFVTFRfTUFYID0gMTAwO1xudmFyIFtjcmVhdGVQcm9ncmVzc0NvbnRleHQsIGNyZWF0ZVByb2dyZXNzU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFBST0dSRVNTX05BTUUpO1xudmFyIFtQcm9ncmVzc1Byb3ZpZGVyLCB1c2VQcm9ncmVzc0NvbnRleHRdID0gY3JlYXRlUHJvZ3Jlc3NDb250ZXh0KFBST0dSRVNTX05BTUUpO1xudmFyIFByb2dyZXNzID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlUHJvZ3Jlc3MsXG4gICAgICB2YWx1ZTogdmFsdWVQcm9wID0gbnVsbCxcbiAgICAgIG1heDogbWF4UHJvcCxcbiAgICAgIGdldFZhbHVlTGFiZWwgPSBkZWZhdWx0R2V0VmFsdWVMYWJlbCxcbiAgICAgIC4uLnByb2dyZXNzUHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgaWYgKChtYXhQcm9wIHx8IG1heFByb3AgPT09IDApICYmICFpc1ZhbGlkTWF4TnVtYmVyKG1heFByb3ApKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGdldEludmFsaWRNYXhFcnJvcihgJHttYXhQcm9wfWAsIFwiUHJvZ3Jlc3NcIikpO1xuICAgIH1cbiAgICBjb25zdCBtYXggPSBpc1ZhbGlkTWF4TnVtYmVyKG1heFByb3ApID8gbWF4UHJvcCA6IERFRkFVTFRfTUFYO1xuICAgIGlmICh2YWx1ZVByb3AgIT09IG51bGwgJiYgIWlzVmFsaWRWYWx1ZU51bWJlcih2YWx1ZVByb3AsIG1heCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZ2V0SW52YWxpZFZhbHVlRXJyb3IoYCR7dmFsdWVQcm9wfWAsIFwiUHJvZ3Jlc3NcIikpO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IGlzVmFsaWRWYWx1ZU51bWJlcih2YWx1ZVByb3AsIG1heCkgPyB2YWx1ZVByb3AgOiBudWxsO1xuICAgIGNvbnN0IHZhbHVlTGFiZWwgPSBpc051bWJlcih2YWx1ZSkgPyBnZXRWYWx1ZUxhYmVsKHZhbHVlLCBtYXgpIDogdm9pZCAwO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFByb2dyZXNzUHJvdmlkZXIsIHsgc2NvcGU6IF9fc2NvcGVQcm9ncmVzcywgdmFsdWUsIG1heCwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBQcmltaXRpdmUuZGl2LFxuICAgICAge1xuICAgICAgICBcImFyaWEtdmFsdWVtYXhcIjogbWF4LFxuICAgICAgICBcImFyaWEtdmFsdWVtaW5cIjogMCxcbiAgICAgICAgXCJhcmlhLXZhbHVlbm93XCI6IGlzTnVtYmVyKHZhbHVlKSA/IHZhbHVlIDogdm9pZCAwLFxuICAgICAgICBcImFyaWEtdmFsdWV0ZXh0XCI6IHZhbHVlTGFiZWwsXG4gICAgICAgIHJvbGU6IFwicHJvZ3Jlc3NiYXJcIixcbiAgICAgICAgXCJkYXRhLXN0YXRlXCI6IGdldFByb2dyZXNzU3RhdGUodmFsdWUsIG1heCksXG4gICAgICAgIFwiZGF0YS12YWx1ZVwiOiB2YWx1ZSA/PyB2b2lkIDAsXG4gICAgICAgIFwiZGF0YS1tYXhcIjogbWF4LFxuICAgICAgICAuLi5wcm9ncmVzc1Byb3BzLFxuICAgICAgICByZWY6IGZvcndhcmRlZFJlZlxuICAgICAgfVxuICAgICkgfSk7XG4gIH1cbik7XG5Qcm9ncmVzcy5kaXNwbGF5TmFtZSA9IFBST0dSRVNTX05BTUU7XG52YXIgSU5ESUNBVE9SX05BTUUgPSBcIlByb2dyZXNzSW5kaWNhdG9yXCI7XG52YXIgUHJvZ3Jlc3NJbmRpY2F0b3IgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVByb2dyZXNzLCAuLi5pbmRpY2F0b3JQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVByb2dyZXNzQ29udGV4dChJTkRJQ0FUT1JfTkFNRSwgX19zY29wZVByb2dyZXNzKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFByaW1pdGl2ZS5kaXYsXG4gICAgICB7XG4gICAgICAgIFwiZGF0YS1zdGF0ZVwiOiBnZXRQcm9ncmVzc1N0YXRlKGNvbnRleHQudmFsdWUsIGNvbnRleHQubWF4KSxcbiAgICAgICAgXCJkYXRhLXZhbHVlXCI6IGNvbnRleHQudmFsdWUgPz8gdm9pZCAwLFxuICAgICAgICBcImRhdGEtbWF4XCI6IGNvbnRleHQubWF4LFxuICAgICAgICAuLi5pbmRpY2F0b3JQcm9wcyxcbiAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWZcbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xuUHJvZ3Jlc3NJbmRpY2F0b3IuZGlzcGxheU5hbWUgPSBJTkRJQ0FUT1JfTkFNRTtcbmZ1bmN0aW9uIGRlZmF1bHRHZXRWYWx1ZUxhYmVsKHZhbHVlLCBtYXgpIHtcbiAgcmV0dXJuIGAke01hdGgucm91bmQodmFsdWUgLyBtYXggKiAxMDApfSVgO1xufVxuZnVuY3Rpb24gZ2V0UHJvZ3Jlc3NTdGF0ZSh2YWx1ZSwgbWF4VmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgPyBcImluZGV0ZXJtaW5hdGVcIiA6IHZhbHVlID09PSBtYXhWYWx1ZSA/IFwiY29tcGxldGVcIiA6IFwibG9hZGluZ1wiO1xufVxuZnVuY3Rpb24gaXNOdW1iZXIodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIjtcbn1cbmZ1bmN0aW9uIGlzVmFsaWRNYXhOdW1iZXIobWF4KSB7XG4gIHJldHVybiBpc051bWJlcihtYXgpICYmICFpc05hTihtYXgpICYmIG1heCA+IDA7XG59XG5mdW5jdGlvbiBpc1ZhbGlkVmFsdWVOdW1iZXIodmFsdWUsIG1heCkge1xuICByZXR1cm4gaXNOdW1iZXIodmFsdWUpICYmICFpc05hTih2YWx1ZSkgJiYgdmFsdWUgPD0gbWF4ICYmIHZhbHVlID49IDA7XG59XG5mdW5jdGlvbiBnZXRJbnZhbGlkTWF4RXJyb3IocHJvcFZhbHVlLCBjb21wb25lbnROYW1lKSB7XG4gIHJldHVybiBgSW52YWxpZCBwcm9wIFxcYG1heFxcYCBvZiB2YWx1ZSBcXGAke3Byb3BWYWx1ZX1cXGAgc3VwcGxpZWQgdG8gXFxgJHtjb21wb25lbnROYW1lfVxcYC4gT25seSBudW1iZXJzIGdyZWF0ZXIgdGhhbiAwIGFyZSB2YWxpZCBtYXggdmFsdWVzLiBEZWZhdWx0aW5nIHRvIFxcYCR7REVGQVVMVF9NQVh9XFxgLmA7XG59XG5mdW5jdGlvbiBnZXRJbnZhbGlkVmFsdWVFcnJvcihwcm9wVmFsdWUsIGNvbXBvbmVudE5hbWUpIHtcbiAgcmV0dXJuIGBJbnZhbGlkIHByb3AgXFxgdmFsdWVcXGAgb2YgdmFsdWUgXFxgJHtwcm9wVmFsdWV9XFxgIHN1cHBsaWVkIHRvIFxcYCR7Y29tcG9uZW50TmFtZX1cXGAuIFRoZSBcXGB2YWx1ZVxcYCBwcm9wIG11c3QgYmU6XG4gIC0gYSBwb3NpdGl2ZSBudW1iZXJcbiAgLSBsZXNzIHRoYW4gdGhlIHZhbHVlIHBhc3NlZCB0byBcXGBtYXhcXGAgKG9yICR7REVGQVVMVF9NQVh9IGlmIG5vIFxcYG1heFxcYCBwcm9wIGlzIHNldClcbiAgLSBcXGBudWxsXFxgIG9yIFxcYHVuZGVmaW5lZFxcYCBpZiB0aGUgcHJvZ3Jlc3MgaXMgaW5kZXRlcm1pbmF0ZS5cblxuRGVmYXVsdGluZyB0byBcXGBudWxsXFxgLmA7XG59XG52YXIgUm9vdCA9IFByb2dyZXNzO1xudmFyIEluZGljYXRvciA9IFByb2dyZXNzSW5kaWNhdG9yO1xuZXhwb3J0IHtcbiAgSW5kaWNhdG9yLFxuICBQcm9ncmVzcyxcbiAgUHJvZ3Jlc3NJbmRpY2F0b3IsXG4gIFJvb3QsXG4gIGNyZWF0ZVByb2dyZXNzU2NvcGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCJcInVzZSBjbGllbnRcIjtcblxuLy8gcGFja2FnZXMvcmVhY3QvcmFkaW8tZ3JvdXAvc3JjL3JhZGlvLWdyb3VwLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QyIGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgYXMgY29tcG9zZUV2ZW50SGFuZGxlcnMyIH0gZnJvbSBcIkByYWRpeC11aS9wcmltaXRpdmVcIjtcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyBhcyB1c2VDb21wb3NlZFJlZnMyIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnNcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSBhcyBjcmVhdGVDb250ZXh0U2NvcGUyIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb250ZXh0XCI7XG5pbXBvcnQgeyBQcmltaXRpdmUgYXMgUHJpbWl0aXZlMiB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgKiBhcyBSb3ZpbmdGb2N1c0dyb3VwIGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtcm92aW5nLWZvY3VzXCI7XG5pbXBvcnQgeyBjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwU2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXJvdmluZy1mb2N1c1wiO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxhYmxlU3RhdGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1jb250cm9sbGFibGUtc3RhdGVcIjtcbmltcG9ydCB7IHVzZURpcmVjdGlvbiB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtZGlyZWN0aW9uXCI7XG5cbi8vIHBhY2thZ2VzL3JlYWN0L3JhZGlvLWdyb3VwL3NyYy9yYWRpby50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tIFwiQHJhZGl4LXVpL3ByaW1pdGl2ZVwiO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnNcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29udGV4dFwiO1xuaW1wb3J0IHsgdXNlU2l6ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLXNpemVcIjtcbmltcG9ydCB7IHVzZVByZXZpb3VzIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtcHJldmlvdXNcIjtcbmltcG9ydCB7IFByZXNlbmNlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmVzZW5jZVwiO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmltaXRpdmVcIjtcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIFJBRElPX05BTUUgPSBcIlJhZGlvXCI7XG52YXIgW2NyZWF0ZVJhZGlvQ29udGV4dCwgY3JlYXRlUmFkaW9TY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoUkFESU9fTkFNRSk7XG52YXIgW1JhZGlvUHJvdmlkZXIsIHVzZVJhZGlvQ29udGV4dF0gPSBjcmVhdGVSYWRpb0NvbnRleHQoUkFESU9fTkFNRSk7XG52YXIgUmFkaW8gPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIF9fc2NvcGVSYWRpbyxcbiAgICAgIG5hbWUsXG4gICAgICBjaGVja2VkID0gZmFsc2UsXG4gICAgICByZXF1aXJlZCxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgdmFsdWUgPSBcIm9uXCIsXG4gICAgICBvbkNoZWNrLFxuICAgICAgZm9ybSxcbiAgICAgIC4uLnJhZGlvUHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgW2J1dHRvbiwgc2V0QnV0dG9uXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIChub2RlKSA9PiBzZXRCdXR0b24obm9kZSkpO1xuICAgIGNvbnN0IGhhc0NvbnN1bWVyU3RvcHBlZFByb3BhZ2F0aW9uUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpc0Zvcm1Db250cm9sID0gYnV0dG9uID8gZm9ybSB8fCAhIWJ1dHRvbi5jbG9zZXN0KFwiZm9ybVwiKSA6IHRydWU7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFJhZGlvUHJvdmlkZXIsIHsgc2NvcGU6IF9fc2NvcGVSYWRpbywgY2hlY2tlZCwgZGlzYWJsZWQsIGNoaWxkcmVuOiBbXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICBQcmltaXRpdmUuYnV0dG9uLFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICByb2xlOiBcInJhZGlvXCIsXG4gICAgICAgICAgXCJhcmlhLWNoZWNrZWRcIjogY2hlY2tlZCxcbiAgICAgICAgICBcImRhdGEtc3RhdGVcIjogZ2V0U3RhdGUoY2hlY2tlZCksXG4gICAgICAgICAgXCJkYXRhLWRpc2FibGVkXCI6IGRpc2FibGVkID8gXCJcIiA6IHZvaWQgMCxcbiAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAuLi5yYWRpb1Byb3BzLFxuICAgICAgICAgIHJlZjogY29tcG9zZWRSZWZzLFxuICAgICAgICAgIG9uQ2xpY2s6IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQ2xpY2ssIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFjaGVja2VkKSBvbkNoZWNrPy4oKTtcbiAgICAgICAgICAgIGlmIChpc0Zvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgIGhhc0NvbnN1bWVyU3RvcHBlZFByb3BhZ2F0aW9uUmVmLmN1cnJlbnQgPSBldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpO1xuICAgICAgICAgICAgICBpZiAoIWhhc0NvbnN1bWVyU3RvcHBlZFByb3BhZ2F0aW9uUmVmLmN1cnJlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBpc0Zvcm1Db250cm9sICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgIEJ1YmJsZUlucHV0LFxuICAgICAgICB7XG4gICAgICAgICAgY29udHJvbDogYnV0dG9uLFxuICAgICAgICAgIGJ1YmJsZXM6ICFoYXNDb25zdW1lclN0b3BwZWRQcm9wYWdhdGlvblJlZi5jdXJyZW50LFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgY2hlY2tlZCxcbiAgICAgICAgICByZXF1aXJlZCxcbiAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICBmb3JtLFxuICAgICAgICAgIHN0eWxlOiB7IHRyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKC0xMDAlKVwiIH1cbiAgICAgICAgfVxuICAgICAgKVxuICAgIF0gfSk7XG4gIH1cbik7XG5SYWRpby5kaXNwbGF5TmFtZSA9IFJBRElPX05BTUU7XG52YXIgSU5ESUNBVE9SX05BTUUgPSBcIlJhZGlvSW5kaWNhdG9yXCI7XG52YXIgUmFkaW9JbmRpY2F0b3IgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVJhZGlvLCBmb3JjZU1vdW50LCAuLi5pbmRpY2F0b3JQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVJhZGlvQ29udGV4dChJTkRJQ0FUT1JfTkFNRSwgX19zY29wZVJhZGlvKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChQcmVzZW5jZSwgeyBwcmVzZW50OiBmb3JjZU1vdW50IHx8IGNvbnRleHQuY2hlY2tlZCwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBQcmltaXRpdmUuc3BhbixcbiAgICAgIHtcbiAgICAgICAgXCJkYXRhLXN0YXRlXCI6IGdldFN0YXRlKGNvbnRleHQuY2hlY2tlZCksXG4gICAgICAgIFwiZGF0YS1kaXNhYmxlZFwiOiBjb250ZXh0LmRpc2FibGVkID8gXCJcIiA6IHZvaWQgMCxcbiAgICAgICAgLi4uaW5kaWNhdG9yUHJvcHMsXG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmXG4gICAgICB9XG4gICAgKSB9KTtcbiAgfVxuKTtcblJhZGlvSW5kaWNhdG9yLmRpc3BsYXlOYW1lID0gSU5ESUNBVE9SX05BTUU7XG52YXIgQnViYmxlSW5wdXQgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBjb250cm9sLCBjaGVja2VkLCBidWJibGVzID0gdHJ1ZSwgLi4uaW5wdXRQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgY29uc3QgcHJldkNoZWNrZWQgPSB1c2VQcmV2aW91cyhjaGVja2VkKTtcbiAgY29uc3QgY29udHJvbFNpemUgPSB1c2VTaXplKGNvbnRyb2wpO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0ID0gcmVmLmN1cnJlbnQ7XG4gICAgY29uc3QgaW5wdXRQcm90byA9IHdpbmRvdy5IVE1MSW5wdXRFbGVtZW50LnByb3RvdHlwZTtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpbnB1dFByb3RvLCBcImNoZWNrZWRcIik7XG4gICAgY29uc3Qgc2V0Q2hlY2tlZCA9IGRlc2NyaXB0b3Iuc2V0O1xuICAgIGlmIChwcmV2Q2hlY2tlZCAhPT0gY2hlY2tlZCAmJiBzZXRDaGVja2VkKSB7XG4gICAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudChcImNsaWNrXCIsIHsgYnViYmxlcyB9KTtcbiAgICAgIHNldENoZWNrZWQuY2FsbChpbnB1dCwgY2hlY2tlZCk7XG4gICAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH0sIFtwcmV2Q2hlY2tlZCwgY2hlY2tlZCwgYnViYmxlc10pO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcImlucHV0XCIsXG4gICAge1xuICAgICAgdHlwZTogXCJyYWRpb1wiLFxuICAgICAgXCJhcmlhLWhpZGRlblwiOiB0cnVlLFxuICAgICAgZGVmYXVsdENoZWNrZWQ6IGNoZWNrZWQsXG4gICAgICAuLi5pbnB1dFByb3BzLFxuICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgcmVmLFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgLi4ucHJvcHMuc3R5bGUsXG4gICAgICAgIC4uLmNvbnRyb2xTaXplLFxuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgbWFyZ2luOiAwXG4gICAgICB9XG4gICAgfVxuICApO1xufTtcbmZ1bmN0aW9uIGdldFN0YXRlKGNoZWNrZWQpIHtcbiAgcmV0dXJuIGNoZWNrZWQgPyBcImNoZWNrZWRcIiA6IFwidW5jaGVja2VkXCI7XG59XG5cbi8vIHBhY2thZ2VzL3JlYWN0L3JhZGlvLWdyb3VwL3NyYy9yYWRpby1ncm91cC50c3hcbmltcG9ydCB7IGpzeCBhcyBqc3gyIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgQVJST1dfS0VZUyA9IFtcIkFycm93VXBcIiwgXCJBcnJvd0Rvd25cIiwgXCJBcnJvd0xlZnRcIiwgXCJBcnJvd1JpZ2h0XCJdO1xudmFyIFJBRElPX0dST1VQX05BTUUgPSBcIlJhZGlvR3JvdXBcIjtcbnZhciBbY3JlYXRlUmFkaW9Hcm91cENvbnRleHQsIGNyZWF0ZVJhZGlvR3JvdXBTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUyKFJBRElPX0dST1VQX05BTUUsIFtcbiAgY3JlYXRlUm92aW5nRm9jdXNHcm91cFNjb3BlLFxuICBjcmVhdGVSYWRpb1Njb3BlXG5dKTtcbnZhciB1c2VSb3ZpbmdGb2N1c0dyb3VwU2NvcGUgPSBjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwU2NvcGUoKTtcbnZhciB1c2VSYWRpb1Njb3BlID0gY3JlYXRlUmFkaW9TY29wZSgpO1xudmFyIFtSYWRpb0dyb3VwUHJvdmlkZXIsIHVzZVJhZGlvR3JvdXBDb250ZXh0XSA9IGNyZWF0ZVJhZGlvR3JvdXBDb250ZXh0KFJBRElPX0dST1VQX05BTUUpO1xudmFyIFJhZGlvR3JvdXAgPSBSZWFjdDIuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlUmFkaW9Hcm91cCxcbiAgICAgIG5hbWUsXG4gICAgICBkZWZhdWx0VmFsdWUsXG4gICAgICB2YWx1ZTogdmFsdWVQcm9wLFxuICAgICAgcmVxdWlyZWQgPSBmYWxzZSxcbiAgICAgIGRpc2FibGVkID0gZmFsc2UsXG4gICAgICBvcmllbnRhdGlvbixcbiAgICAgIGRpcixcbiAgICAgIGxvb3AgPSB0cnVlLFxuICAgICAgb25WYWx1ZUNoYW5nZSxcbiAgICAgIC4uLmdyb3VwUHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3Qgcm92aW5nRm9jdXNHcm91cFNjb3BlID0gdXNlUm92aW5nRm9jdXNHcm91cFNjb3BlKF9fc2NvcGVSYWRpb0dyb3VwKTtcbiAgICBjb25zdCBkaXJlY3Rpb24gPSB1c2VEaXJlY3Rpb24oZGlyKTtcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICAgIHByb3A6IHZhbHVlUHJvcCxcbiAgICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0VmFsdWUsXG4gICAgICBvbkNoYW5nZTogb25WYWx1ZUNoYW5nZVxuICAgIH0pO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4MihcbiAgICAgIFJhZGlvR3JvdXBQcm92aWRlcixcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6IF9fc2NvcGVSYWRpb0dyb3VwLFxuICAgICAgICBuYW1lLFxuICAgICAgICByZXF1aXJlZCxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBvblZhbHVlQ2hhbmdlOiBzZXRWYWx1ZSxcbiAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3gyKFxuICAgICAgICAgIFJvdmluZ0ZvY3VzR3JvdXAuUm9vdCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhc0NoaWxkOiB0cnVlLFxuICAgICAgICAgICAgLi4ucm92aW5nRm9jdXNHcm91cFNjb3BlLFxuICAgICAgICAgICAgb3JpZW50YXRpb24sXG4gICAgICAgICAgICBkaXI6IGRpcmVjdGlvbixcbiAgICAgICAgICAgIGxvb3AsXG4gICAgICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeDIoXG4gICAgICAgICAgICAgIFByaW1pdGl2ZTIuZGl2LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcm9sZTogXCJyYWRpb2dyb3VwXCIsXG4gICAgICAgICAgICAgICAgXCJhcmlhLXJlcXVpcmVkXCI6IHJlcXVpcmVkLFxuICAgICAgICAgICAgICAgIFwiYXJpYS1vcmllbnRhdGlvblwiOiBvcmllbnRhdGlvbixcbiAgICAgICAgICAgICAgICBcImRhdGEtZGlzYWJsZWRcIjogZGlzYWJsZWQgPyBcIlwiIDogdm9pZCAwLFxuICAgICAgICAgICAgICAgIGRpcjogZGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgIC4uLmdyb3VwUHJvcHMsXG4gICAgICAgICAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWZcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5SYWRpb0dyb3VwLmRpc3BsYXlOYW1lID0gUkFESU9fR1JPVVBfTkFNRTtcbnZhciBJVEVNX05BTUUgPSBcIlJhZGlvR3JvdXBJdGVtXCI7XG52YXIgUmFkaW9Hcm91cEl0ZW0gPSBSZWFjdDIuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVSYWRpb0dyb3VwLCBkaXNhYmxlZCwgLi4uaXRlbVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlUmFkaW9Hcm91cENvbnRleHQoSVRFTV9OQU1FLCBfX3Njb3BlUmFkaW9Hcm91cCk7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGNvbnRleHQuZGlzYWJsZWQgfHwgZGlzYWJsZWQ7XG4gICAgY29uc3Qgcm92aW5nRm9jdXNHcm91cFNjb3BlID0gdXNlUm92aW5nRm9jdXNHcm91cFNjb3BlKF9fc2NvcGVSYWRpb0dyb3VwKTtcbiAgICBjb25zdCByYWRpb1Njb3BlID0gdXNlUmFkaW9TY29wZShfX3Njb3BlUmFkaW9Hcm91cCk7XG4gICAgY29uc3QgcmVmID0gUmVhY3QyLnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMyKGZvcndhcmRlZFJlZiwgcmVmKTtcbiAgICBjb25zdCBjaGVja2VkID0gY29udGV4dC52YWx1ZSA9PT0gaXRlbVByb3BzLnZhbHVlO1xuICAgIGNvbnN0IGlzQXJyb3dLZXlQcmVzc2VkUmVmID0gUmVhY3QyLnVzZVJlZihmYWxzZSk7XG4gICAgUmVhY3QyLnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChBUlJPV19LRVlTLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgICBpc0Fycm93S2V5UHJlc3NlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGhhbmRsZUtleVVwID0gKCkgPT4gaXNBcnJvd0tleVByZXNzZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgaGFuZGxlS2V5RG93bik7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5dXBcIiwgaGFuZGxlS2V5VXApO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgaGFuZGxlS2V5RG93bik7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLCBoYW5kbGVLZXlVcCk7XG4gICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeDIoXG4gICAgICBSb3ZpbmdGb2N1c0dyb3VwLkl0ZW0sXG4gICAgICB7XG4gICAgICAgIGFzQ2hpbGQ6IHRydWUsXG4gICAgICAgIC4uLnJvdmluZ0ZvY3VzR3JvdXBTY29wZSxcbiAgICAgICAgZm9jdXNhYmxlOiAhaXNEaXNhYmxlZCxcbiAgICAgICAgYWN0aXZlOiBjaGVja2VkLFxuICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeDIoXG4gICAgICAgICAgUmFkaW8sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgICAgICByZXF1aXJlZDogY29udGV4dC5yZXF1aXJlZCxcbiAgICAgICAgICAgIGNoZWNrZWQsXG4gICAgICAgICAgICAuLi5yYWRpb1Njb3BlLFxuICAgICAgICAgICAgLi4uaXRlbVByb3BzLFxuICAgICAgICAgICAgbmFtZTogY29udGV4dC5uYW1lLFxuICAgICAgICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXG4gICAgICAgICAgICBvbkNoZWNrOiAoKSA9PiBjb250ZXh0Lm9uVmFsdWVDaGFuZ2UoaXRlbVByb3BzLnZhbHVlKSxcbiAgICAgICAgICAgIG9uS2V5RG93bjogY29tcG9zZUV2ZW50SGFuZGxlcnMyKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkVudGVyXCIpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG9uRm9jdXM6IGNvbXBvc2VFdmVudEhhbmRsZXJzMihpdGVtUHJvcHMub25Gb2N1cywgKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaXNBcnJvd0tleVByZXNzZWRSZWYuY3VycmVudCkgcmVmLmN1cnJlbnQ/LmNsaWNrKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5SYWRpb0dyb3VwSXRlbS5kaXNwbGF5TmFtZSA9IElURU1fTkFNRTtcbnZhciBJTkRJQ0FUT1JfTkFNRTIgPSBcIlJhZGlvR3JvdXBJbmRpY2F0b3JcIjtcbnZhciBSYWRpb0dyb3VwSW5kaWNhdG9yID0gUmVhY3QyLmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlUmFkaW9Hcm91cCwgLi4uaW5kaWNhdG9yUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IHJhZGlvU2NvcGUgPSB1c2VSYWRpb1Njb3BlKF9fc2NvcGVSYWRpb0dyb3VwKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeDIoUmFkaW9JbmRpY2F0b3IsIHsgLi4ucmFkaW9TY29wZSwgLi4uaW5kaWNhdG9yUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xuICB9XG4pO1xuUmFkaW9Hcm91cEluZGljYXRvci5kaXNwbGF5TmFtZSA9IElORElDQVRPUl9OQU1FMjtcbnZhciBSb290MiA9IFJhZGlvR3JvdXA7XG52YXIgSXRlbTIgPSBSYWRpb0dyb3VwSXRlbTtcbnZhciBJbmRpY2F0b3IgPSBSYWRpb0dyb3VwSW5kaWNhdG9yO1xuZXhwb3J0IHtcbiAgSW5kaWNhdG9yLFxuICBJdGVtMiBhcyBJdGVtLFxuICBSYWRpb0dyb3VwLFxuICBSYWRpb0dyb3VwSW5kaWNhdG9yLFxuICBSYWRpb0dyb3VwSXRlbSxcbiAgUm9vdDIgYXMgUm9vdCxcbiAgY3JlYXRlUmFkaW9Hcm91cFNjb3BlXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIiwiLy8gcGFja2FnZXMvcmVhY3QvdmlzdWFsbHktaGlkZGVuL3NyYy92aXN1YWxseS1oaWRkZW4udHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBOQU1FID0gXCJWaXN1YWxseUhpZGRlblwiO1xudmFyIFZpc3VhbGx5SGlkZGVuID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFByaW1pdGl2ZS5zcGFuLFxuICAgICAge1xuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL3Njc3MvbWl4aW5zL192aXN1YWxseS1oaWRkZW4uc2Nzc1xuICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAgIHdpZHRoOiAxLFxuICAgICAgICAgIGhlaWdodDogMSxcbiAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIG1hcmdpbjogLTEsXG4gICAgICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgY2xpcDogXCJyZWN0KDAsIDAsIDAsIDApXCIsXG4gICAgICAgICAgd2hpdGVTcGFjZTogXCJub3dyYXBcIixcbiAgICAgICAgICB3b3JkV3JhcDogXCJub3JtYWxcIixcbiAgICAgICAgICAuLi5wcm9wcy5zdHlsZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcblZpc3VhbGx5SGlkZGVuLmRpc3BsYXlOYW1lID0gTkFNRTtcbnZhciBSb290ID0gVmlzdWFsbHlIaWRkZW47XG5leHBvcnQge1xuICBSb290LFxuICBWaXN1YWxseUhpZGRlblxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsIlwidXNlIGNsaWVudFwiO1xuXG4vLyBwYWNrYWdlcy9yZWFjdC9zZWxlY3Qvc3JjL3NlbGVjdC50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgY2xhbXAgfSBmcm9tIFwiQHJhZGl4LXVpL251bWJlclwiO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tIFwiQHJhZGl4LXVpL3ByaW1pdGl2ZVwiO1xuaW1wb3J0IHsgY3JlYXRlQ29sbGVjdGlvbiB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29sbGVjdGlvblwiO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnNcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29udGV4dFwiO1xuaW1wb3J0IHsgdXNlRGlyZWN0aW9uIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1kaXJlY3Rpb25cIjtcbmltcG9ydCB7IERpc21pc3NhYmxlTGF5ZXIgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyXCI7XG5pbXBvcnQgeyB1c2VGb2N1c0d1YXJkcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtZm9jdXMtZ3VhcmRzXCI7XG5pbXBvcnQgeyBGb2N1c1Njb3BlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1mb2N1cy1zY29wZVwiO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWlkXCI7XG5pbXBvcnQgKiBhcyBQb3BwZXJQcmltaXRpdmUgZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wb3BwZXJcIjtcbmltcG9ydCB7IGNyZWF0ZVBvcHBlclNjb3BlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wb3BwZXJcIjtcbmltcG9ydCB7IFBvcnRhbCBhcyBQb3J0YWxQcmltaXRpdmUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXBvcnRhbFwiO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmltaXRpdmVcIjtcbmltcG9ydCB7IFNsb3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXNsb3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmXCI7XG5pbXBvcnQgeyB1c2VDb250cm9sbGFibGVTdGF0ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZVwiO1xuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdFwiO1xuaW1wb3J0IHsgdXNlUHJldmlvdXMgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1wcmV2aW91c1wiO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXZpc3VhbGx5LWhpZGRlblwiO1xuaW1wb3J0IHsgaGlkZU90aGVycyB9IGZyb20gXCJhcmlhLWhpZGRlblwiO1xuaW1wb3J0IHsgUmVtb3ZlU2Nyb2xsIH0gZnJvbSBcInJlYWN0LXJlbW92ZS1zY3JvbGxcIjtcbmltcG9ydCB7IEZyYWdtZW50LCBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBPUEVOX0tFWVMgPSBbXCIgXCIsIFwiRW50ZXJcIiwgXCJBcnJvd1VwXCIsIFwiQXJyb3dEb3duXCJdO1xudmFyIFNFTEVDVElPTl9LRVlTID0gW1wiIFwiLCBcIkVudGVyXCJdO1xudmFyIFNFTEVDVF9OQU1FID0gXCJTZWxlY3RcIjtcbnZhciBbQ29sbGVjdGlvbiwgdXNlQ29sbGVjdGlvbiwgY3JlYXRlQ29sbGVjdGlvblNjb3BlXSA9IGNyZWF0ZUNvbGxlY3Rpb24oU0VMRUNUX05BTUUpO1xudmFyIFtjcmVhdGVTZWxlY3RDb250ZXh0LCBjcmVhdGVTZWxlY3RTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoU0VMRUNUX05BTUUsIFtcbiAgY3JlYXRlQ29sbGVjdGlvblNjb3BlLFxuICBjcmVhdGVQb3BwZXJTY29wZVxuXSk7XG52YXIgdXNlUG9wcGVyU2NvcGUgPSBjcmVhdGVQb3BwZXJTY29wZSgpO1xudmFyIFtTZWxlY3RQcm92aWRlciwgdXNlU2VsZWN0Q29udGV4dF0gPSBjcmVhdGVTZWxlY3RDb250ZXh0KFNFTEVDVF9OQU1FKTtcbnZhciBbU2VsZWN0TmF0aXZlT3B0aW9uc1Byb3ZpZGVyLCB1c2VTZWxlY3ROYXRpdmVPcHRpb25zQ29udGV4dF0gPSBjcmVhdGVTZWxlY3RDb250ZXh0KFNFTEVDVF9OQU1FKTtcbnZhciBTZWxlY3QgPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIF9fc2NvcGVTZWxlY3QsXG4gICAgY2hpbGRyZW4sXG4gICAgb3Blbjogb3BlblByb3AsXG4gICAgZGVmYXVsdE9wZW4sXG4gICAgb25PcGVuQ2hhbmdlLFxuICAgIHZhbHVlOiB2YWx1ZVByb3AsXG4gICAgZGVmYXVsdFZhbHVlLFxuICAgIG9uVmFsdWVDaGFuZ2UsXG4gICAgZGlyLFxuICAgIG5hbWUsXG4gICAgYXV0b0NvbXBsZXRlLFxuICAgIGRpc2FibGVkLFxuICAgIHJlcXVpcmVkLFxuICAgIGZvcm1cbiAgfSA9IHByb3BzO1xuICBjb25zdCBwb3BwZXJTY29wZSA9IHVzZVBvcHBlclNjb3BlKF9fc2NvcGVTZWxlY3QpO1xuICBjb25zdCBbdHJpZ2dlciwgc2V0VHJpZ2dlcl0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgW3ZhbHVlTm9kZSwgc2V0VmFsdWVOb2RlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBbdmFsdWVOb2RlSGFzQ2hpbGRyZW4sIHNldFZhbHVlTm9kZUhhc0NoaWxkcmVuXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgZGlyZWN0aW9uID0gdXNlRGlyZWN0aW9uKGRpcik7XG4gIGNvbnN0IFtvcGVuID0gZmFsc2UsIHNldE9wZW5dID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgIHByb3A6IG9wZW5Qcm9wLFxuICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0T3BlbixcbiAgICBvbkNoYW5nZTogb25PcGVuQ2hhbmdlXG4gIH0pO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICBwcm9wOiB2YWx1ZVByb3AsXG4gICAgZGVmYXVsdFByb3A6IGRlZmF1bHRWYWx1ZSxcbiAgICBvbkNoYW5nZTogb25WYWx1ZUNoYW5nZVxuICB9KTtcbiAgY29uc3QgdHJpZ2dlclBvaW50ZXJEb3duUG9zUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBpc0Zvcm1Db250cm9sID0gdHJpZ2dlciA/IGZvcm0gfHwgISF0cmlnZ2VyLmNsb3Nlc3QoXCJmb3JtXCIpIDogdHJ1ZTtcbiAgY29uc3QgW25hdGl2ZU9wdGlvbnNTZXQsIHNldE5hdGl2ZU9wdGlvbnNTZXRdID0gUmVhY3QudXNlU3RhdGUoLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSk7XG4gIGNvbnN0IG5hdGl2ZVNlbGVjdEtleSA9IEFycmF5LmZyb20obmF0aXZlT3B0aW9uc1NldCkubWFwKChvcHRpb24pID0+IG9wdGlvbi5wcm9wcy52YWx1ZSkuam9pbihcIjtcIik7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFBvcHBlclByaW1pdGl2ZS5Sb290LCB7IC4uLnBvcHBlclNjb3BlLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoXG4gICAgU2VsZWN0UHJvdmlkZXIsXG4gICAge1xuICAgICAgcmVxdWlyZWQsXG4gICAgICBzY29wZTogX19zY29wZVNlbGVjdCxcbiAgICAgIHRyaWdnZXIsXG4gICAgICBvblRyaWdnZXJDaGFuZ2U6IHNldFRyaWdnZXIsXG4gICAgICB2YWx1ZU5vZGUsXG4gICAgICBvblZhbHVlTm9kZUNoYW5nZTogc2V0VmFsdWVOb2RlLFxuICAgICAgdmFsdWVOb2RlSGFzQ2hpbGRyZW4sXG4gICAgICBvblZhbHVlTm9kZUhhc0NoaWxkcmVuQ2hhbmdlOiBzZXRWYWx1ZU5vZGVIYXNDaGlsZHJlbixcbiAgICAgIGNvbnRlbnRJZDogdXNlSWQoKSxcbiAgICAgIHZhbHVlLFxuICAgICAgb25WYWx1ZUNoYW5nZTogc2V0VmFsdWUsXG4gICAgICBvcGVuLFxuICAgICAgb25PcGVuQ2hhbmdlOiBzZXRPcGVuLFxuICAgICAgZGlyOiBkaXJlY3Rpb24sXG4gICAgICB0cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWYsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goQ29sbGVjdGlvbi5Qcm92aWRlciwgeyBzY29wZTogX19zY29wZVNlbGVjdCwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgU2VsZWN0TmF0aXZlT3B0aW9uc1Byb3ZpZGVyLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNjb3BlOiBwcm9wcy5fX3Njb3BlU2VsZWN0LFxuICAgICAgICAgICAgb25OYXRpdmVPcHRpb25BZGQ6IFJlYWN0LnVzZUNhbGxiYWNrKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgc2V0TmF0aXZlT3B0aW9uc1NldCgocHJldikgPT4gbmV3IFNldChwcmV2KS5hZGQob3B0aW9uKSk7XG4gICAgICAgICAgICB9LCBbXSksXG4gICAgICAgICAgICBvbk5hdGl2ZU9wdGlvblJlbW92ZTogUmVhY3QudXNlQ2FsbGJhY2soKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICBzZXROYXRpdmVPcHRpb25zU2V0KChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uc1NldCA9IG5ldyBTZXQocHJldik7XG4gICAgICAgICAgICAgICAgb3B0aW9uc1NldC5kZWxldGUob3B0aW9uKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uc1NldDtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCBbXSksXG4gICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgIH1cbiAgICAgICAgKSB9KSxcbiAgICAgICAgaXNGb3JtQ29udHJvbCA/IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgICAgICAgIEJ1YmJsZVNlbGVjdCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcImFyaWEtaGlkZGVuXCI6IHRydWUsXG4gICAgICAgICAgICByZXF1aXJlZCxcbiAgICAgICAgICAgIHRhYkluZGV4OiAtMSxcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBhdXRvQ29tcGxldGUsXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAoZXZlbnQpID0+IHNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSksXG4gICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgIGZvcm0sXG4gICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICB2YWx1ZSA9PT0gdm9pZCAwID8gLyogQF9fUFVSRV9fICovIGpzeChcIm9wdGlvblwiLCB7IHZhbHVlOiBcIlwiIH0pIDogbnVsbCxcbiAgICAgICAgICAgICAgQXJyYXkuZnJvbShuYXRpdmVPcHRpb25zU2V0KVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgbmF0aXZlU2VsZWN0S2V5XG4gICAgICAgICkgOiBudWxsXG4gICAgICBdXG4gICAgfVxuICApIH0pO1xufTtcblNlbGVjdC5kaXNwbGF5TmFtZSA9IFNFTEVDVF9OQU1FO1xudmFyIFRSSUdHRVJfTkFNRSA9IFwiU2VsZWN0VHJpZ2dlclwiO1xudmFyIFNlbGVjdFRyaWdnZXIgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVNlbGVjdCwgZGlzYWJsZWQgPSBmYWxzZSwgLi4udHJpZ2dlclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBwb3BwZXJTY29wZSA9IHVzZVBvcHBlclNjb3BlKF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VTZWxlY3RDb250ZXh0KFRSSUdHRVJfTkFNRSwgX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGNvbnRleHQuZGlzYWJsZWQgfHwgZGlzYWJsZWQ7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgY29udGV4dC5vblRyaWdnZXJDaGFuZ2UpO1xuICAgIGNvbnN0IGdldEl0ZW1zID0gdXNlQ29sbGVjdGlvbihfX3Njb3BlU2VsZWN0KTtcbiAgICBjb25zdCBwb2ludGVyVHlwZVJlZiA9IFJlYWN0LnVzZVJlZihcInRvdWNoXCIpO1xuICAgIGNvbnN0IFtzZWFyY2hSZWYsIGhhbmRsZVR5cGVhaGVhZFNlYXJjaCwgcmVzZXRUeXBlYWhlYWRdID0gdXNlVHlwZWFoZWFkU2VhcmNoKChzZWFyY2gpID0+IHtcbiAgICAgIGNvbnN0IGVuYWJsZWRJdGVtcyA9IGdldEl0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5kaXNhYmxlZCk7XG4gICAgICBjb25zdCBjdXJyZW50SXRlbSA9IGVuYWJsZWRJdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSBjb250ZXh0LnZhbHVlKTtcbiAgICAgIGNvbnN0IG5leHRJdGVtID0gZmluZE5leHRJdGVtKGVuYWJsZWRJdGVtcywgc2VhcmNoLCBjdXJyZW50SXRlbSk7XG4gICAgICBpZiAobmV4dEl0ZW0gIT09IHZvaWQgMCkge1xuICAgICAgICBjb250ZXh0Lm9uVmFsdWVDaGFuZ2UobmV4dEl0ZW0udmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9wZW4gPSAocG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICBpZiAoIWlzRGlzYWJsZWQpIHtcbiAgICAgICAgY29udGV4dC5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgIHJlc2V0VHlwZWFoZWFkKCk7XG4gICAgICB9XG4gICAgICBpZiAocG9pbnRlckV2ZW50KSB7XG4gICAgICAgIGNvbnRleHQudHJpZ2dlclBvaW50ZXJEb3duUG9zUmVmLmN1cnJlbnQgPSB7XG4gICAgICAgICAgeDogTWF0aC5yb3VuZChwb2ludGVyRXZlbnQucGFnZVgpLFxuICAgICAgICAgIHk6IE1hdGgucm91bmQocG9pbnRlckV2ZW50LnBhZ2VZKVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUG9wcGVyUHJpbWl0aXZlLkFuY2hvciwgeyBhc0NoaWxkOiB0cnVlLCAuLi5wb3BwZXJTY29wZSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBQcmltaXRpdmUuYnV0dG9uLFxuICAgICAge1xuICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICByb2xlOiBcImNvbWJvYm94XCIsXG4gICAgICAgIFwiYXJpYS1jb250cm9sc1wiOiBjb250ZXh0LmNvbnRlbnRJZCxcbiAgICAgICAgXCJhcmlhLWV4cGFuZGVkXCI6IGNvbnRleHQub3BlbixcbiAgICAgICAgXCJhcmlhLXJlcXVpcmVkXCI6IGNvbnRleHQucmVxdWlyZWQsXG4gICAgICAgIFwiYXJpYS1hdXRvY29tcGxldGVcIjogXCJub25lXCIsXG4gICAgICAgIGRpcjogY29udGV4dC5kaXIsXG4gICAgICAgIFwiZGF0YS1zdGF0ZVwiOiBjb250ZXh0Lm9wZW4gPyBcIm9wZW5cIiA6IFwiY2xvc2VkXCIsXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICBcImRhdGEtZGlzYWJsZWRcIjogaXNEaXNhYmxlZCA/IFwiXCIgOiB2b2lkIDAsXG4gICAgICAgIFwiZGF0YS1wbGFjZWhvbGRlclwiOiBzaG91bGRTaG93UGxhY2Vob2xkZXIoY29udGV4dC52YWx1ZSkgPyBcIlwiIDogdm9pZCAwLFxuICAgICAgICAuLi50cmlnZ2VyUHJvcHMsXG4gICAgICAgIHJlZjogY29tcG9zZWRSZWZzLFxuICAgICAgICBvbkNsaWNrOiBjb21wb3NlRXZlbnRIYW5kbGVycyh0cmlnZ2VyUHJvcHMub25DbGljaywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5mb2N1cygpO1xuICAgICAgICAgIGlmIChwb2ludGVyVHlwZVJlZi5jdXJyZW50ICE9PSBcIm1vdXNlXCIpIHtcbiAgICAgICAgICAgIGhhbmRsZU9wZW4oZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIG9uUG9pbnRlckRvd246IGNvbXBvc2VFdmVudEhhbmRsZXJzKHRyaWdnZXJQcm9wcy5vblBvaW50ZXJEb3duLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICBwb2ludGVyVHlwZVJlZi5jdXJyZW50ID0gZXZlbnQucG9pbnRlclR5cGU7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICAgIGlmICh0YXJnZXQuaGFzUG9pbnRlckNhcHR1cmUoZXZlbnQucG9pbnRlcklkKSkge1xuICAgICAgICAgICAgdGFyZ2V0LnJlbGVhc2VQb2ludGVyQ2FwdHVyZShldmVudC5wb2ludGVySWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXZlbnQuYnV0dG9uID09PSAwICYmIGV2ZW50LmN0cmxLZXkgPT09IGZhbHNlICYmIGV2ZW50LnBvaW50ZXJUeXBlID09PSBcIm1vdXNlXCIpIHtcbiAgICAgICAgICAgIGhhbmRsZU9wZW4oZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBvbktleURvd246IGNvbXBvc2VFdmVudEhhbmRsZXJzKHRyaWdnZXJQcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzVHlwaW5nQWhlYWQgPSBzZWFyY2hSZWYuY3VycmVudCAhPT0gXCJcIjtcbiAgICAgICAgICBjb25zdCBpc01vZGlmaWVyS2V5ID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQubWV0YUtleTtcbiAgICAgICAgICBpZiAoIWlzTW9kaWZpZXJLZXkgJiYgZXZlbnQua2V5Lmxlbmd0aCA9PT0gMSkgaGFuZGxlVHlwZWFoZWFkU2VhcmNoKGV2ZW50LmtleSk7XG4gICAgICAgICAgaWYgKGlzVHlwaW5nQWhlYWQgJiYgZXZlbnQua2V5ID09PSBcIiBcIikgcmV0dXJuO1xuICAgICAgICAgIGlmIChPUEVOX0tFWVMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgaGFuZGxlT3BlbigpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgKSB9KTtcbiAgfVxuKTtcblNlbGVjdFRyaWdnZXIuZGlzcGxheU5hbWUgPSBUUklHR0VSX05BTUU7XG52YXIgVkFMVUVfTkFNRSA9IFwiU2VsZWN0VmFsdWVcIjtcbnZhciBTZWxlY3RWYWx1ZSA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlU2VsZWN0LCBjbGFzc05hbWUsIHN0eWxlLCBjaGlsZHJlbiwgcGxhY2Vob2xkZXIgPSBcIlwiLCAuLi52YWx1ZVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlU2VsZWN0Q29udGV4dChWQUxVRV9OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICBjb25zdCB7IG9uVmFsdWVOb2RlSGFzQ2hpbGRyZW5DaGFuZ2UgfSA9IGNvbnRleHQ7XG4gICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBjaGlsZHJlbiAhPT0gdm9pZCAwO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRleHQub25WYWx1ZU5vZGVDaGFuZ2UpO1xuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICBvblZhbHVlTm9kZUhhc0NoaWxkcmVuQ2hhbmdlKGhhc0NoaWxkcmVuKTtcbiAgICB9LCBbb25WYWx1ZU5vZGVIYXNDaGlsZHJlbkNoYW5nZSwgaGFzQ2hpbGRyZW5dKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFByaW1pdGl2ZS5zcGFuLFxuICAgICAge1xuICAgICAgICAuLi52YWx1ZVByb3BzLFxuICAgICAgICByZWY6IGNvbXBvc2VkUmVmcyxcbiAgICAgICAgc3R5bGU6IHsgcG9pbnRlckV2ZW50czogXCJub25lXCIgfSxcbiAgICAgICAgY2hpbGRyZW46IHNob3VsZFNob3dQbGFjZWhvbGRlcihjb250ZXh0LnZhbHVlKSA/IC8qIEBfX1BVUkVfXyAqLyBqc3goRnJhZ21lbnQsIHsgY2hpbGRyZW46IHBsYWNlaG9sZGVyIH0pIDogY2hpbGRyZW5cbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xuU2VsZWN0VmFsdWUuZGlzcGxheU5hbWUgPSBWQUxVRV9OQU1FO1xudmFyIElDT05fTkFNRSA9IFwiU2VsZWN0SWNvblwiO1xudmFyIFNlbGVjdEljb24gPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVNlbGVjdCwgY2hpbGRyZW4sIC4uLmljb25Qcm9wcyB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUHJpbWl0aXZlLnNwYW4sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCAuLi5pY29uUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmLCBjaGlsZHJlbjogY2hpbGRyZW4gfHwgXCJcXHUyNUJDXCIgfSk7XG4gIH1cbik7XG5TZWxlY3RJY29uLmRpc3BsYXlOYW1lID0gSUNPTl9OQU1FO1xudmFyIFBPUlRBTF9OQU1FID0gXCJTZWxlY3RQb3J0YWxcIjtcbnZhciBTZWxlY3RQb3J0YWwgPSAocHJvcHMpID0+IHtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUG9ydGFsUHJpbWl0aXZlLCB7IGFzQ2hpbGQ6IHRydWUsIC4uLnByb3BzIH0pO1xufTtcblNlbGVjdFBvcnRhbC5kaXNwbGF5TmFtZSA9IFBPUlRBTF9OQU1FO1xudmFyIENPTlRFTlRfTkFNRSA9IFwiU2VsZWN0Q29udGVudFwiO1xudmFyIFNlbGVjdENvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VTZWxlY3RDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3QgW2ZyYWdtZW50LCBzZXRGcmFnbWVudF0gPSBSZWFjdC51c2VTdGF0ZSgpO1xuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICBzZXRGcmFnbWVudChuZXcgRG9jdW1lbnRGcmFnbWVudCgpKTtcbiAgICB9LCBbXSk7XG4gICAgaWYgKCFjb250ZXh0Lm9wZW4pIHtcbiAgICAgIGNvbnN0IGZyYWcgPSBmcmFnbWVudDtcbiAgICAgIHJldHVybiBmcmFnID8gUmVhY3RET00uY3JlYXRlUG9ydGFsKFxuICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KFNlbGVjdENvbnRlbnRQcm92aWRlciwgeyBzY29wZTogcHJvcHMuX19zY29wZVNlbGVjdCwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQ29sbGVjdGlvbi5TbG90LCB7IHNjb3BlOiBwcm9wcy5fX3Njb3BlU2VsZWN0LCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KSB9KSB9KSxcbiAgICAgICAgZnJhZ1xuICAgICAgKSA6IG51bGw7XG4gICAgfVxuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFNlbGVjdENvbnRlbnRJbXBsLCB7IC4uLnByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KTtcbiAgfVxuKTtcblNlbGVjdENvbnRlbnQuZGlzcGxheU5hbWUgPSBDT05URU5UX05BTUU7XG52YXIgQ09OVEVOVF9NQVJHSU4gPSAxMDtcbnZhciBbU2VsZWN0Q29udGVudFByb3ZpZGVyLCB1c2VTZWxlY3RDb250ZW50Q29udGV4dF0gPSBjcmVhdGVTZWxlY3RDb250ZXh0KENPTlRFTlRfTkFNRSk7XG52YXIgQ09OVEVOVF9JTVBMX05BTUUgPSBcIlNlbGVjdENvbnRlbnRJbXBsXCI7XG52YXIgU2VsZWN0Q29udGVudEltcGwgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIF9fc2NvcGVTZWxlY3QsXG4gICAgICBwb3NpdGlvbiA9IFwiaXRlbS1hbGlnbmVkXCIsXG4gICAgICBvbkNsb3NlQXV0b0ZvY3VzLFxuICAgICAgb25Fc2NhcGVLZXlEb3duLFxuICAgICAgb25Qb2ludGVyRG93bk91dHNpZGUsXG4gICAgICAvL1xuICAgICAgLy8gUG9wcGVyQ29udGVudCBwcm9wc1xuICAgICAgc2lkZSxcbiAgICAgIHNpZGVPZmZzZXQsXG4gICAgICBhbGlnbixcbiAgICAgIGFsaWduT2Zmc2V0LFxuICAgICAgYXJyb3dQYWRkaW5nLFxuICAgICAgY29sbGlzaW9uQm91bmRhcnksXG4gICAgICBjb2xsaXNpb25QYWRkaW5nLFxuICAgICAgc3RpY2t5LFxuICAgICAgaGlkZVdoZW5EZXRhY2hlZCxcbiAgICAgIGF2b2lkQ29sbGlzaW9ucyxcbiAgICAgIC8vXG4gICAgICAuLi5jb250ZW50UHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVNlbGVjdENvbnRleHQoQ09OVEVOVF9OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICBjb25zdCBbY29udGVudCwgc2V0Q29udGVudF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbdmlld3BvcnQsIHNldFZpZXdwb3J0XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIChub2RlKSA9PiBzZXRDb250ZW50KG5vZGUpKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJdGVtLCBzZXRTZWxlY3RlZEl0ZW1dID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSXRlbVRleHQsIHNldFNlbGVjdGVkSXRlbVRleHRdID0gUmVhY3QudXNlU3RhdGUoXG4gICAgICBudWxsXG4gICAgKTtcbiAgICBjb25zdCBnZXRJdGVtcyA9IHVzZUNvbGxlY3Rpb24oX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3QgW2lzUG9zaXRpb25lZCwgc2V0SXNQb3NpdGlvbmVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBmaXJzdFZhbGlkSXRlbUZvdW5kUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGNvbnRlbnQpIHJldHVybiBoaWRlT3RoZXJzKGNvbnRlbnQpO1xuICAgIH0sIFtjb250ZW50XSk7XG4gICAgdXNlRm9jdXNHdWFyZHMoKTtcbiAgICBjb25zdCBmb2N1c0ZpcnN0ID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgICAoY2FuZGlkYXRlcykgPT4ge1xuICAgICAgICBjb25zdCBbZmlyc3RJdGVtLCAuLi5yZXN0SXRlbXNdID0gZ2V0SXRlbXMoKS5tYXAoKGl0ZW0pID0+IGl0ZW0ucmVmLmN1cnJlbnQpO1xuICAgICAgICBjb25zdCBbbGFzdEl0ZW1dID0gcmVzdEl0ZW1zLnNsaWNlKC0xKTtcbiAgICAgICAgY29uc3QgUFJFVklPVVNMWV9GT0NVU0VEX0VMRU1FTlQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBjYW5kaWRhdGVzKSB7XG4gICAgICAgICAgaWYgKGNhbmRpZGF0ZSA9PT0gUFJFVklPVVNMWV9GT0NVU0VEX0VMRU1FTlQpIHJldHVybjtcbiAgICAgICAgICBjYW5kaWRhdGU/LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6IFwibmVhcmVzdFwiIH0pO1xuICAgICAgICAgIGlmIChjYW5kaWRhdGUgPT09IGZpcnN0SXRlbSAmJiB2aWV3cG9ydCkgdmlld3BvcnQuc2Nyb2xsVG9wID0gMDtcbiAgICAgICAgICBpZiAoY2FuZGlkYXRlID09PSBsYXN0SXRlbSAmJiB2aWV3cG9ydCkgdmlld3BvcnQuc2Nyb2xsVG9wID0gdmlld3BvcnQuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICAgIGNhbmRpZGF0ZT8uZm9jdXMoKTtcbiAgICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gUFJFVklPVVNMWV9GT0NVU0VEX0VMRU1FTlQpIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtnZXRJdGVtcywgdmlld3BvcnRdXG4gICAgKTtcbiAgICBjb25zdCBmb2N1c1NlbGVjdGVkSXRlbSA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgKCkgPT4gZm9jdXNGaXJzdChbc2VsZWN0ZWRJdGVtLCBjb250ZW50XSksXG4gICAgICBbZm9jdXNGaXJzdCwgc2VsZWN0ZWRJdGVtLCBjb250ZW50XVxuICAgICk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc1Bvc2l0aW9uZWQpIHtcbiAgICAgICAgZm9jdXNTZWxlY3RlZEl0ZW0oKTtcbiAgICAgIH1cbiAgICB9LCBbaXNQb3NpdGlvbmVkLCBmb2N1c1NlbGVjdGVkSXRlbV0pO1xuICAgIGNvbnN0IHsgb25PcGVuQ2hhbmdlLCB0cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWYgfSA9IGNvbnRleHQ7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChjb250ZW50KSB7XG4gICAgICAgIGxldCBwb2ludGVyTW92ZURlbHRhID0geyB4OiAwLCB5OiAwIH07XG4gICAgICAgIGNvbnN0IGhhbmRsZVBvaW50ZXJNb3ZlID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgcG9pbnRlck1vdmVEZWx0YSA9IHtcbiAgICAgICAgICAgIHg6IE1hdGguYWJzKE1hdGgucm91bmQoZXZlbnQucGFnZVgpIC0gKHRyaWdnZXJQb2ludGVyRG93blBvc1JlZi5jdXJyZW50Py54ID8/IDApKSxcbiAgICAgICAgICAgIHk6IE1hdGguYWJzKE1hdGgucm91bmQoZXZlbnQucGFnZVkpIC0gKHRyaWdnZXJQb2ludGVyRG93blBvc1JlZi5jdXJyZW50Py55ID8/IDApKVxuICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGhhbmRsZVBvaW50ZXJVcCA9IChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChwb2ludGVyTW92ZURlbHRhLnggPD0gMTAgJiYgcG9pbnRlck1vdmVEZWx0YS55IDw9IDEwKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWNvbnRlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgICBvbk9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcm1vdmVcIiwgaGFuZGxlUG9pbnRlck1vdmUpO1xuICAgICAgICAgIHRyaWdnZXJQb2ludGVyRG93blBvc1JlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRyaWdnZXJQb2ludGVyRG93blBvc1JlZi5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJtb3ZlXCIsIGhhbmRsZVBvaW50ZXJNb3ZlKTtcbiAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcnVwXCIsIGhhbmRsZVBvaW50ZXJVcCwgeyBjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJtb3ZlXCIsIGhhbmRsZVBvaW50ZXJNb3ZlKTtcbiAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcnVwXCIsIGhhbmRsZVBvaW50ZXJVcCwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0sIFtjb250ZW50LCBvbk9wZW5DaGFuZ2UsIHRyaWdnZXJQb2ludGVyRG93blBvc1JlZl0pO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjbG9zZSA9ICgpID0+IG9uT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImJsdXJcIiwgY2xvc2UpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2xvc2UpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJibHVyXCIsIGNsb3NlKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2xvc2UpO1xuICAgICAgfTtcbiAgICB9LCBbb25PcGVuQ2hhbmdlXSk7XG4gICAgY29uc3QgW3NlYXJjaFJlZiwgaGFuZGxlVHlwZWFoZWFkU2VhcmNoXSA9IHVzZVR5cGVhaGVhZFNlYXJjaCgoc2VhcmNoKSA9PiB7XG4gICAgICBjb25zdCBlbmFibGVkSXRlbXMgPSBnZXRJdGVtcygpLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0uZGlzYWJsZWQpO1xuICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSBlbmFibGVkSXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS5yZWYuY3VycmVudCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk7XG4gICAgICBjb25zdCBuZXh0SXRlbSA9IGZpbmROZXh0SXRlbShlbmFibGVkSXRlbXMsIHNlYXJjaCwgY3VycmVudEl0ZW0pO1xuICAgICAgaWYgKG5leHRJdGVtKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gbmV4dEl0ZW0ucmVmLmN1cnJlbnQuZm9jdXMoKSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaXRlbVJlZkNhbGxiYWNrID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgICAobm9kZSwgdmFsdWUsIGRpc2FibGVkKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzRmlyc3RWYWxpZEl0ZW0gPSAhZmlyc3RWYWxpZEl0ZW1Gb3VuZFJlZi5jdXJyZW50ICYmICFkaXNhYmxlZDtcbiAgICAgICAgY29uc3QgaXNTZWxlY3RlZEl0ZW0gPSBjb250ZXh0LnZhbHVlICE9PSB2b2lkIDAgJiYgY29udGV4dC52YWx1ZSA9PT0gdmFsdWU7XG4gICAgICAgIGlmIChpc1NlbGVjdGVkSXRlbSB8fCBpc0ZpcnN0VmFsaWRJdGVtKSB7XG4gICAgICAgICAgc2V0U2VsZWN0ZWRJdGVtKG5vZGUpO1xuICAgICAgICAgIGlmIChpc0ZpcnN0VmFsaWRJdGVtKSBmaXJzdFZhbGlkSXRlbUZvdW5kUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2NvbnRleHQudmFsdWVdXG4gICAgKTtcbiAgICBjb25zdCBoYW5kbGVJdGVtTGVhdmUgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiBjb250ZW50Py5mb2N1cygpLCBbY29udGVudF0pO1xuICAgIGNvbnN0IGl0ZW1UZXh0UmVmQ2FsbGJhY2sgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgIChub2RlLCB2YWx1ZSwgZGlzYWJsZWQpID0+IHtcbiAgICAgICAgY29uc3QgaXNGaXJzdFZhbGlkSXRlbSA9ICFmaXJzdFZhbGlkSXRlbUZvdW5kUmVmLmN1cnJlbnQgJiYgIWRpc2FibGVkO1xuICAgICAgICBjb25zdCBpc1NlbGVjdGVkSXRlbSA9IGNvbnRleHQudmFsdWUgIT09IHZvaWQgMCAmJiBjb250ZXh0LnZhbHVlID09PSB2YWx1ZTtcbiAgICAgICAgaWYgKGlzU2VsZWN0ZWRJdGVtIHx8IGlzRmlyc3RWYWxpZEl0ZW0pIHtcbiAgICAgICAgICBzZXRTZWxlY3RlZEl0ZW1UZXh0KG5vZGUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2NvbnRleHQudmFsdWVdXG4gICAgKTtcbiAgICBjb25zdCBTZWxlY3RQb3NpdGlvbiA9IHBvc2l0aW9uID09PSBcInBvcHBlclwiID8gU2VsZWN0UG9wcGVyUG9zaXRpb24gOiBTZWxlY3RJdGVtQWxpZ25lZFBvc2l0aW9uO1xuICAgIGNvbnN0IHBvcHBlckNvbnRlbnRQcm9wcyA9IFNlbGVjdFBvc2l0aW9uID09PSBTZWxlY3RQb3BwZXJQb3NpdGlvbiA/IHtcbiAgICAgIHNpZGUsXG4gICAgICBzaWRlT2Zmc2V0LFxuICAgICAgYWxpZ24sXG4gICAgICBhbGlnbk9mZnNldCxcbiAgICAgIGFycm93UGFkZGluZyxcbiAgICAgIGNvbGxpc2lvbkJvdW5kYXJ5LFxuICAgICAgY29sbGlzaW9uUGFkZGluZyxcbiAgICAgIHN0aWNreSxcbiAgICAgIGhpZGVXaGVuRGV0YWNoZWQsXG4gICAgICBhdm9pZENvbGxpc2lvbnNcbiAgICB9IDoge307XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBTZWxlY3RDb250ZW50UHJvdmlkZXIsXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiBfX3Njb3BlU2VsZWN0LFxuICAgICAgICBjb250ZW50LFxuICAgICAgICB2aWV3cG9ydCxcbiAgICAgICAgb25WaWV3cG9ydENoYW5nZTogc2V0Vmlld3BvcnQsXG4gICAgICAgIGl0ZW1SZWZDYWxsYmFjayxcbiAgICAgICAgc2VsZWN0ZWRJdGVtLFxuICAgICAgICBvbkl0ZW1MZWF2ZTogaGFuZGxlSXRlbUxlYXZlLFxuICAgICAgICBpdGVtVGV4dFJlZkNhbGxiYWNrLFxuICAgICAgICBmb2N1c1NlbGVjdGVkSXRlbSxcbiAgICAgICAgc2VsZWN0ZWRJdGVtVGV4dCxcbiAgICAgICAgcG9zaXRpb24sXG4gICAgICAgIGlzUG9zaXRpb25lZCxcbiAgICAgICAgc2VhcmNoUmVmLFxuICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChSZW1vdmVTY3JvbGwsIHsgYXM6IFNsb3QsIGFsbG93UGluY2hab29tOiB0cnVlLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICBGb2N1c1Njb3BlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFzQ2hpbGQ6IHRydWUsXG4gICAgICAgICAgICB0cmFwcGVkOiBjb250ZXh0Lm9wZW4sXG4gICAgICAgICAgICBvbk1vdW50QXV0b0ZvY3VzOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvblVubW91bnRBdXRvRm9jdXM6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uQ2xvc2VBdXRvRm9jdXMsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb250ZXh0LnRyaWdnZXI/LmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgICAgIERpc21pc3NhYmxlTGF5ZXIsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhc0NoaWxkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICBvbkVzY2FwZUtleURvd24sXG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bk91dHNpZGUsXG4gICAgICAgICAgICAgICAgb25Gb2N1c091dHNpZGU6IChldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSxcbiAgICAgICAgICAgICAgICBvbkRpc21pc3M6ICgpID0+IGNvbnRleHQub25PcGVuQ2hhbmdlKGZhbHNlKSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICAgICAgICAgIFNlbGVjdFBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICByb2xlOiBcImxpc3Rib3hcIixcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGNvbnRleHQuY29udGVudElkLFxuICAgICAgICAgICAgICAgICAgICBcImRhdGEtc3RhdGVcIjogY29udGV4dC5vcGVuID8gXCJvcGVuXCIgOiBcImNsb3NlZFwiLFxuICAgICAgICAgICAgICAgICAgICBkaXI6IGNvbnRleHQuZGlyLFxuICAgICAgICAgICAgICAgICAgICBvbkNvbnRleHRNZW51OiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICAgICAgICAgIC4uLmNvbnRlbnRQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgLi4ucG9wcGVyQ29udGVudFByb3BzLFxuICAgICAgICAgICAgICAgICAgICBvblBsYWNlZDogKCkgPT4gc2V0SXNQb3NpdGlvbmVkKHRydWUpLFxuICAgICAgICAgICAgICAgICAgICByZWY6IGNvbXBvc2VkUmVmcyxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAvLyBmbGV4IGxheW91dCBzbyB3ZSBjYW4gcGxhY2UgdGhlIHNjcm9sbCBidXR0b25zIHByb3Blcmx5XG4gICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAvLyByZXNldCB0aGUgb3V0bGluZSBieSBkZWZhdWx0IGFzIHRoZSBjb250ZW50IE1BWSBnZXQgZm9jdXNlZFxuICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IFwibm9uZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIC4uLmNvbnRlbnRQcm9wcy5zdHlsZVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBvbktleURvd246IGNvbXBvc2VFdmVudEhhbmRsZXJzKGNvbnRlbnRQcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzTW9kaWZpZXJLZXkgPSBldmVudC5jdHJsS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5tZXRhS2V5O1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09IFwiVGFiXCIpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc01vZGlmaWVyS2V5ICYmIGV2ZW50LmtleS5sZW5ndGggPT09IDEpIGhhbmRsZVR5cGVhaGVhZFNlYXJjaChldmVudC5rZXkpO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChbXCJBcnJvd1VwXCIsIFwiQXJyb3dEb3duXCIsIFwiSG9tZVwiLCBcIkVuZFwiXS5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IGdldEl0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5kaXNhYmxlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY2FuZGlkYXRlTm9kZXMgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ucmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFtcIkFycm93VXBcIiwgXCJFbmRcIl0uaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVOb2RlcyA9IGNhbmRpZGF0ZU5vZGVzLnNsaWNlKCkucmV2ZXJzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFtcIkFycm93VXBcIiwgXCJBcnJvd0Rvd25cIl0uaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY2FuZGlkYXRlTm9kZXMuaW5kZXhPZihjdXJyZW50RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZU5vZGVzID0gY2FuZGlkYXRlTm9kZXMuc2xpY2UoY3VycmVudEluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGZvY3VzRmlyc3QoY2FuZGlkYXRlTm9kZXMpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgKSB9KVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5TZWxlY3RDb250ZW50SW1wbC5kaXNwbGF5TmFtZSA9IENPTlRFTlRfSU1QTF9OQU1FO1xudmFyIElURU1fQUxJR05FRF9QT1NJVElPTl9OQU1FID0gXCJTZWxlY3RJdGVtQWxpZ25lZFBvc2l0aW9uXCI7XG52YXIgU2VsZWN0SXRlbUFsaWduZWRQb3NpdGlvbiA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlU2VsZWN0LCBvblBsYWNlZCwgLi4ucG9wcGVyUHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBjb250ZXh0ID0gdXNlU2VsZWN0Q29udGV4dChDT05URU5UX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICBjb25zdCBjb250ZW50Q29udGV4dCA9IHVzZVNlbGVjdENvbnRlbnRDb250ZXh0KENPTlRFTlRfTkFNRSwgX19zY29wZVNlbGVjdCk7XG4gIGNvbnN0IFtjb250ZW50V3JhcHBlciwgc2V0Q29udGVudFdyYXBwZXJdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFtjb250ZW50LCBzZXRDb250ZW50XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCAobm9kZSkgPT4gc2V0Q29udGVudChub2RlKSk7XG4gIGNvbnN0IGdldEl0ZW1zID0gdXNlQ29sbGVjdGlvbihfX3Njb3BlU2VsZWN0KTtcbiAgY29uc3Qgc2hvdWxkRXhwYW5kT25TY3JvbGxSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCBzaG91bGRSZXBvc2l0aW9uUmVmID0gUmVhY3QudXNlUmVmKHRydWUpO1xuICBjb25zdCB7IHZpZXdwb3J0LCBzZWxlY3RlZEl0ZW0sIHNlbGVjdGVkSXRlbVRleHQsIGZvY3VzU2VsZWN0ZWRJdGVtIH0gPSBjb250ZW50Q29udGV4dDtcbiAgY29uc3QgcG9zaXRpb24gPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGNvbnRleHQudHJpZ2dlciAmJiBjb250ZXh0LnZhbHVlTm9kZSAmJiBjb250ZW50V3JhcHBlciAmJiBjb250ZW50ICYmIHZpZXdwb3J0ICYmIHNlbGVjdGVkSXRlbSAmJiBzZWxlY3RlZEl0ZW1UZXh0KSB7XG4gICAgICBjb25zdCB0cmlnZ2VyUmVjdCA9IGNvbnRleHQudHJpZ2dlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGNvbnRlbnRSZWN0ID0gY29udGVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHZhbHVlTm9kZVJlY3QgPSBjb250ZXh0LnZhbHVlTm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGl0ZW1UZXh0UmVjdCA9IHNlbGVjdGVkSXRlbVRleHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBpZiAoY29udGV4dC5kaXIgIT09IFwicnRsXCIpIHtcbiAgICAgICAgY29uc3QgaXRlbVRleHRPZmZzZXQgPSBpdGVtVGV4dFJlY3QubGVmdCAtIGNvbnRlbnRSZWN0LmxlZnQ7XG4gICAgICAgIGNvbnN0IGxlZnQgPSB2YWx1ZU5vZGVSZWN0LmxlZnQgLSBpdGVtVGV4dE9mZnNldDtcbiAgICAgICAgY29uc3QgbGVmdERlbHRhID0gdHJpZ2dlclJlY3QubGVmdCAtIGxlZnQ7XG4gICAgICAgIGNvbnN0IG1pbkNvbnRlbnRXaWR0aCA9IHRyaWdnZXJSZWN0LndpZHRoICsgbGVmdERlbHRhO1xuICAgICAgICBjb25zdCBjb250ZW50V2lkdGggPSBNYXRoLm1heChtaW5Db250ZW50V2lkdGgsIGNvbnRlbnRSZWN0LndpZHRoKTtcbiAgICAgICAgY29uc3QgcmlnaHRFZGdlID0gd2luZG93LmlubmVyV2lkdGggLSBDT05URU5UX01BUkdJTjtcbiAgICAgICAgY29uc3QgY2xhbXBlZExlZnQgPSBjbGFtcChsZWZ0LCBbXG4gICAgICAgICAgQ09OVEVOVF9NQVJHSU4sXG4gICAgICAgICAgLy8gUHJldmVudHMgdGhlIGNvbnRlbnQgZnJvbSBnb2luZyBvZmYgdGhlIHN0YXJ0aW5nIGVkZ2Ugb2YgdGhlXG4gICAgICAgICAgLy8gdmlld3BvcnQuIEl0IG1heSBzdGlsbCBnbyBvZmYgdGhlIGVuZGluZyBlZGdlLCBidXQgdGhpcyBjYW4gYmVcbiAgICAgICAgICAvLyBjb250cm9sbGVkIGJ5IHRoZSB1c2VyIHNpbmNlIHRoZXkgbWF5IHdhbnQgdG8gbWFuYWdlIG92ZXJmbG93IGluIGFcbiAgICAgICAgICAvLyBzcGVjaWZpYyB3YXkuXG4gICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JhZGl4LXVpL3ByaW1pdGl2ZXMvaXNzdWVzLzIwNDlcbiAgICAgICAgICBNYXRoLm1heChDT05URU5UX01BUkdJTiwgcmlnaHRFZGdlIC0gY29udGVudFdpZHRoKVxuICAgICAgICBdKTtcbiAgICAgICAgY29udGVudFdyYXBwZXIuc3R5bGUubWluV2lkdGggPSBtaW5Db250ZW50V2lkdGggKyBcInB4XCI7XG4gICAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLmxlZnQgPSBjbGFtcGVkTGVmdCArIFwicHhcIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGl0ZW1UZXh0T2Zmc2V0ID0gY29udGVudFJlY3QucmlnaHQgLSBpdGVtVGV4dFJlY3QucmlnaHQ7XG4gICAgICAgIGNvbnN0IHJpZ2h0ID0gd2luZG93LmlubmVyV2lkdGggLSB2YWx1ZU5vZGVSZWN0LnJpZ2h0IC0gaXRlbVRleHRPZmZzZXQ7XG4gICAgICAgIGNvbnN0IHJpZ2h0RGVsdGEgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIHRyaWdnZXJSZWN0LnJpZ2h0IC0gcmlnaHQ7XG4gICAgICAgIGNvbnN0IG1pbkNvbnRlbnRXaWR0aCA9IHRyaWdnZXJSZWN0LndpZHRoICsgcmlnaHREZWx0YTtcbiAgICAgICAgY29uc3QgY29udGVudFdpZHRoID0gTWF0aC5tYXgobWluQ29udGVudFdpZHRoLCBjb250ZW50UmVjdC53aWR0aCk7XG4gICAgICAgIGNvbnN0IGxlZnRFZGdlID0gd2luZG93LmlubmVyV2lkdGggLSBDT05URU5UX01BUkdJTjtcbiAgICAgICAgY29uc3QgY2xhbXBlZFJpZ2h0ID0gY2xhbXAocmlnaHQsIFtcbiAgICAgICAgICBDT05URU5UX01BUkdJTixcbiAgICAgICAgICBNYXRoLm1heChDT05URU5UX01BUkdJTiwgbGVmdEVkZ2UgLSBjb250ZW50V2lkdGgpXG4gICAgICAgIF0pO1xuICAgICAgICBjb250ZW50V3JhcHBlci5zdHlsZS5taW5XaWR0aCA9IG1pbkNvbnRlbnRXaWR0aCArIFwicHhcIjtcbiAgICAgICAgY29udGVudFdyYXBwZXIuc3R5bGUucmlnaHQgPSBjbGFtcGVkUmlnaHQgKyBcInB4XCI7XG4gICAgICB9XG4gICAgICBjb25zdCBpdGVtcyA9IGdldEl0ZW1zKCk7XG4gICAgICBjb25zdCBhdmFpbGFibGVIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBDT05URU5UX01BUkdJTiAqIDI7XG4gICAgICBjb25zdCBpdGVtc0hlaWdodCA9IHZpZXdwb3J0LnNjcm9sbEhlaWdodDtcbiAgICAgIGNvbnN0IGNvbnRlbnRTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjb250ZW50KTtcbiAgICAgIGNvbnN0IGNvbnRlbnRCb3JkZXJUb3BXaWR0aCA9IHBhcnNlSW50KGNvbnRlbnRTdHlsZXMuYm9yZGVyVG9wV2lkdGgsIDEwKTtcbiAgICAgIGNvbnN0IGNvbnRlbnRQYWRkaW5nVG9wID0gcGFyc2VJbnQoY29udGVudFN0eWxlcy5wYWRkaW5nVG9wLCAxMCk7XG4gICAgICBjb25zdCBjb250ZW50Qm9yZGVyQm90dG9tV2lkdGggPSBwYXJzZUludChjb250ZW50U3R5bGVzLmJvcmRlckJvdHRvbVdpZHRoLCAxMCk7XG4gICAgICBjb25zdCBjb250ZW50UGFkZGluZ0JvdHRvbSA9IHBhcnNlSW50KGNvbnRlbnRTdHlsZXMucGFkZGluZ0JvdHRvbSwgMTApO1xuICAgICAgY29uc3QgZnVsbENvbnRlbnRIZWlnaHQgPSBjb250ZW50Qm9yZGVyVG9wV2lkdGggKyBjb250ZW50UGFkZGluZ1RvcCArIGl0ZW1zSGVpZ2h0ICsgY29udGVudFBhZGRpbmdCb3R0b20gKyBjb250ZW50Qm9yZGVyQm90dG9tV2lkdGg7XG4gICAgICBjb25zdCBtaW5Db250ZW50SGVpZ2h0ID0gTWF0aC5taW4oc2VsZWN0ZWRJdGVtLm9mZnNldEhlaWdodCAqIDUsIGZ1bGxDb250ZW50SGVpZ2h0KTtcbiAgICAgIGNvbnN0IHZpZXdwb3J0U3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodmlld3BvcnQpO1xuICAgICAgY29uc3Qgdmlld3BvcnRQYWRkaW5nVG9wID0gcGFyc2VJbnQodmlld3BvcnRTdHlsZXMucGFkZGluZ1RvcCwgMTApO1xuICAgICAgY29uc3Qgdmlld3BvcnRQYWRkaW5nQm90dG9tID0gcGFyc2VJbnQodmlld3BvcnRTdHlsZXMucGFkZGluZ0JvdHRvbSwgMTApO1xuICAgICAgY29uc3QgdG9wRWRnZVRvVHJpZ2dlck1pZGRsZSA9IHRyaWdnZXJSZWN0LnRvcCArIHRyaWdnZXJSZWN0LmhlaWdodCAvIDIgLSBDT05URU5UX01BUkdJTjtcbiAgICAgIGNvbnN0IHRyaWdnZXJNaWRkbGVUb0JvdHRvbUVkZ2UgPSBhdmFpbGFibGVIZWlnaHQgLSB0b3BFZGdlVG9UcmlnZ2VyTWlkZGxlO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtSGFsZkhlaWdodCA9IHNlbGVjdGVkSXRlbS5vZmZzZXRIZWlnaHQgLyAyO1xuICAgICAgY29uc3QgaXRlbU9mZnNldE1pZGRsZSA9IHNlbGVjdGVkSXRlbS5vZmZzZXRUb3AgKyBzZWxlY3RlZEl0ZW1IYWxmSGVpZ2h0O1xuICAgICAgY29uc3QgY29udGVudFRvcFRvSXRlbU1pZGRsZSA9IGNvbnRlbnRCb3JkZXJUb3BXaWR0aCArIGNvbnRlbnRQYWRkaW5nVG9wICsgaXRlbU9mZnNldE1pZGRsZTtcbiAgICAgIGNvbnN0IGl0ZW1NaWRkbGVUb0NvbnRlbnRCb3R0b20gPSBmdWxsQ29udGVudEhlaWdodCAtIGNvbnRlbnRUb3BUb0l0ZW1NaWRkbGU7XG4gICAgICBjb25zdCB3aWxsQWxpZ25XaXRob3V0VG9wT3ZlcmZsb3cgPSBjb250ZW50VG9wVG9JdGVtTWlkZGxlIDw9IHRvcEVkZ2VUb1RyaWdnZXJNaWRkbGU7XG4gICAgICBpZiAod2lsbEFsaWduV2l0aG91dFRvcE92ZXJmbG93KSB7XG4gICAgICAgIGNvbnN0IGlzTGFzdEl0ZW0gPSBpdGVtcy5sZW5ndGggPiAwICYmIHNlbGVjdGVkSXRlbSA9PT0gaXRlbXNbaXRlbXMubGVuZ3RoIC0gMV0ucmVmLmN1cnJlbnQ7XG4gICAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLmJvdHRvbSA9IFwiMHB4XCI7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0T2Zmc2V0Qm90dG9tID0gY29udGVudC5jbGllbnRIZWlnaHQgLSB2aWV3cG9ydC5vZmZzZXRUb3AgLSB2aWV3cG9ydC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGNsYW1wZWRUcmlnZ2VyTWlkZGxlVG9Cb3R0b21FZGdlID0gTWF0aC5tYXgoXG4gICAgICAgICAgdHJpZ2dlck1pZGRsZVRvQm90dG9tRWRnZSxcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1IYWxmSGVpZ2h0ICsgLy8gdmlld3BvcnQgbWlnaHQgaGF2ZSBwYWRkaW5nIGJvdHRvbSwgaW5jbHVkZSBpdCB0byBhdm9pZCBhIHNjcm9sbGFibGUgdmlld3BvcnRcbiAgICAgICAgICAoaXNMYXN0SXRlbSA/IHZpZXdwb3J0UGFkZGluZ0JvdHRvbSA6IDApICsgdmlld3BvcnRPZmZzZXRCb3R0b20gKyBjb250ZW50Qm9yZGVyQm90dG9tV2lkdGhcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gY29udGVudFRvcFRvSXRlbU1pZGRsZSArIGNsYW1wZWRUcmlnZ2VyTWlkZGxlVG9Cb3R0b21FZGdlO1xuICAgICAgICBjb250ZW50V3JhcHBlci5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyBcInB4XCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpc0ZpcnN0SXRlbSA9IGl0ZW1zLmxlbmd0aCA+IDAgJiYgc2VsZWN0ZWRJdGVtID09PSBpdGVtc1swXS5yZWYuY3VycmVudDtcbiAgICAgICAgY29udGVudFdyYXBwZXIuc3R5bGUudG9wID0gXCIwcHhcIjtcbiAgICAgICAgY29uc3QgY2xhbXBlZFRvcEVkZ2VUb1RyaWdnZXJNaWRkbGUgPSBNYXRoLm1heChcbiAgICAgICAgICB0b3BFZGdlVG9UcmlnZ2VyTWlkZGxlLFxuICAgICAgICAgIGNvbnRlbnRCb3JkZXJUb3BXaWR0aCArIHZpZXdwb3J0Lm9mZnNldFRvcCArIC8vIHZpZXdwb3J0IG1pZ2h0IGhhdmUgcGFkZGluZyB0b3AsIGluY2x1ZGUgaXQgdG8gYXZvaWQgYSBzY3JvbGxhYmxlIHZpZXdwb3J0XG4gICAgICAgICAgKGlzRmlyc3RJdGVtID8gdmlld3BvcnRQYWRkaW5nVG9wIDogMCkgKyBzZWxlY3RlZEl0ZW1IYWxmSGVpZ2h0XG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IGNsYW1wZWRUb3BFZGdlVG9UcmlnZ2VyTWlkZGxlICsgaXRlbU1pZGRsZVRvQ29udGVudEJvdHRvbTtcbiAgICAgICAgY29udGVudFdyYXBwZXIuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgXCJweFwiO1xuICAgICAgICB2aWV3cG9ydC5zY3JvbGxUb3AgPSBjb250ZW50VG9wVG9JdGVtTWlkZGxlIC0gdG9wRWRnZVRvVHJpZ2dlck1pZGRsZSArIHZpZXdwb3J0Lm9mZnNldFRvcDtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLm1hcmdpbiA9IGAke0NPTlRFTlRfTUFSR0lOfXB4IDBgO1xuICAgICAgY29udGVudFdyYXBwZXIuc3R5bGUubWluSGVpZ2h0ID0gbWluQ29udGVudEhlaWdodCArIFwicHhcIjtcbiAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLm1heEhlaWdodCA9IGF2YWlsYWJsZUhlaWdodCArIFwicHhcIjtcbiAgICAgIG9uUGxhY2VkPy4oKTtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiBzaG91bGRFeHBhbmRPblNjcm9sbFJlZi5jdXJyZW50ID0gdHJ1ZSk7XG4gICAgfVxuICB9LCBbXG4gICAgZ2V0SXRlbXMsXG4gICAgY29udGV4dC50cmlnZ2VyLFxuICAgIGNvbnRleHQudmFsdWVOb2RlLFxuICAgIGNvbnRlbnRXcmFwcGVyLFxuICAgIGNvbnRlbnQsXG4gICAgdmlld3BvcnQsXG4gICAgc2VsZWN0ZWRJdGVtLFxuICAgIHNlbGVjdGVkSXRlbVRleHQsXG4gICAgY29udGV4dC5kaXIsXG4gICAgb25QbGFjZWRcbiAgXSk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiBwb3NpdGlvbigpLCBbcG9zaXRpb25dKTtcbiAgY29uc3QgW2NvbnRlbnRaSW5kZXgsIHNldENvbnRlbnRaSW5kZXhdID0gUmVhY3QudXNlU3RhdGUoKTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY29udGVudCkgc2V0Q29udGVudFpJbmRleCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjb250ZW50KS56SW5kZXgpO1xuICB9LCBbY29udGVudF0pO1xuICBjb25zdCBoYW5kbGVTY3JvbGxCdXR0b25DaGFuZ2UgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAobm9kZSkgPT4ge1xuICAgICAgaWYgKG5vZGUgJiYgc2hvdWxkUmVwb3NpdGlvblJlZi5jdXJyZW50ID09PSB0cnVlKSB7XG4gICAgICAgIHBvc2l0aW9uKCk7XG4gICAgICAgIGZvY3VzU2VsZWN0ZWRJdGVtPy4oKTtcbiAgICAgICAgc2hvdWxkUmVwb3NpdGlvblJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSxcbiAgICBbcG9zaXRpb24sIGZvY3VzU2VsZWN0ZWRJdGVtXVxuICApO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBTZWxlY3RWaWV3cG9ydFByb3ZpZGVyLFxuICAgIHtcbiAgICAgIHNjb3BlOiBfX3Njb3BlU2VsZWN0LFxuICAgICAgY29udGVudFdyYXBwZXIsXG4gICAgICBzaG91bGRFeHBhbmRPblNjcm9sbFJlZixcbiAgICAgIG9uU2Nyb2xsQnV0dG9uQ2hhbmdlOiBoYW5kbGVTY3JvbGxCdXR0b25DaGFuZ2UsXG4gICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAge1xuICAgICAgICAgIHJlZjogc2V0Q29udGVudFdyYXBwZXIsXG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcbiAgICAgICAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCIsXG4gICAgICAgICAgICB6SW5kZXg6IGNvbnRlbnRaSW5kZXhcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgICAgUHJpbWl0aXZlLmRpdixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4ucG9wcGVyUHJvcHMsXG4gICAgICAgICAgICAgIHJlZjogY29tcG9zZWRSZWZzLFxuICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UgZ2V0IHRoZSBoZWlnaHQgb2YgdGhlIGNvbnRlbnQsIGl0IGluY2x1ZGVzIGJvcmRlcnMuIElmIHdlIHdlcmUgdG8gc2V0XG4gICAgICAgICAgICAgICAgLy8gdGhlIGhlaWdodCB3aXRob3V0IGhhdmluZyBgYm94U2l6aW5nOiAnYm9yZGVyLWJveCdgIGl0IHdvdWxkIGJlIHRvbyBiaWcuXG4gICAgICAgICAgICAgICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGVuc3VyZSB0aGUgY29udGVudCBkb2Vzbid0IGdldCB0YWxsZXIgdGhhbiB0aGUgd3JhcHBlclxuICAgICAgICAgICAgICAgIG1heEhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgLi4ucG9wcGVyUHJvcHMuc3R5bGVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cbiAgKTtcbn0pO1xuU2VsZWN0SXRlbUFsaWduZWRQb3NpdGlvbi5kaXNwbGF5TmFtZSA9IElURU1fQUxJR05FRF9QT1NJVElPTl9OQU1FO1xudmFyIFBPUFBFUl9QT1NJVElPTl9OQU1FID0gXCJTZWxlY3RQb3BwZXJQb3NpdGlvblwiO1xudmFyIFNlbGVjdFBvcHBlclBvc2l0aW9uID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7XG4gICAgX19zY29wZVNlbGVjdCxcbiAgICBhbGlnbiA9IFwic3RhcnRcIixcbiAgICBjb2xsaXNpb25QYWRkaW5nID0gQ09OVEVOVF9NQVJHSU4sXG4gICAgLi4ucG9wcGVyUHJvcHNcbiAgfSA9IHByb3BzO1xuICBjb25zdCBwb3BwZXJTY29wZSA9IHVzZVBvcHBlclNjb3BlKF9fc2NvcGVTZWxlY3QpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBQb3BwZXJQcmltaXRpdmUuQ29udGVudCxcbiAgICB7XG4gICAgICAuLi5wb3BwZXJTY29wZSxcbiAgICAgIC4uLnBvcHBlclByb3BzLFxuICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgICBhbGlnbixcbiAgICAgIGNvbGxpc2lvblBhZGRpbmcsXG4gICAgICBzdHlsZToge1xuICAgICAgICAvLyBFbnN1cmUgYm9yZGVyLWJveCBmb3IgZmxvYXRpbmctdWkgY2FsY3VsYXRpb25zXG4gICAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICAgIC4uLnBvcHBlclByb3BzLnN0eWxlLFxuICAgICAgICAvLyByZS1uYW1lc3BhY2UgZXhwb3NlZCBjb250ZW50IGN1c3RvbSBwcm9wZXJ0aWVzXG4gICAgICAgIC4uLntcbiAgICAgICAgICBcIi0tcmFkaXgtc2VsZWN0LWNvbnRlbnQtdHJhbnNmb3JtLW9yaWdpblwiOiBcInZhcigtLXJhZGl4LXBvcHBlci10cmFuc2Zvcm0tb3JpZ2luKVwiLFxuICAgICAgICAgIFwiLS1yYWRpeC1zZWxlY3QtY29udGVudC1hdmFpbGFibGUtd2lkdGhcIjogXCJ2YXIoLS1yYWRpeC1wb3BwZXItYXZhaWxhYmxlLXdpZHRoKVwiLFxuICAgICAgICAgIFwiLS1yYWRpeC1zZWxlY3QtY29udGVudC1hdmFpbGFibGUtaGVpZ2h0XCI6IFwidmFyKC0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS1oZWlnaHQpXCIsXG4gICAgICAgICAgXCItLXJhZGl4LXNlbGVjdC10cmlnZ2VyLXdpZHRoXCI6IFwidmFyKC0tcmFkaXgtcG9wcGVyLWFuY2hvci13aWR0aClcIixcbiAgICAgICAgICBcIi0tcmFkaXgtc2VsZWN0LXRyaWdnZXItaGVpZ2h0XCI6IFwidmFyKC0tcmFkaXgtcG9wcGVyLWFuY2hvci1oZWlnaHQpXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgKTtcbn0pO1xuU2VsZWN0UG9wcGVyUG9zaXRpb24uZGlzcGxheU5hbWUgPSBQT1BQRVJfUE9TSVRJT05fTkFNRTtcbnZhciBbU2VsZWN0Vmlld3BvcnRQcm92aWRlciwgdXNlU2VsZWN0Vmlld3BvcnRDb250ZXh0XSA9IGNyZWF0ZVNlbGVjdENvbnRleHQoQ09OVEVOVF9OQU1FLCB7fSk7XG52YXIgVklFV1BPUlRfTkFNRSA9IFwiU2VsZWN0Vmlld3BvcnRcIjtcbnZhciBTZWxlY3RWaWV3cG9ydCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlU2VsZWN0LCBub25jZSwgLi4udmlld3BvcnRQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGVudENvbnRleHQgPSB1c2VTZWxlY3RDb250ZW50Q29udGV4dChWSUVXUE9SVF9OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICBjb25zdCB2aWV3cG9ydENvbnRleHQgPSB1c2VTZWxlY3RWaWV3cG9ydENvbnRleHQoVklFV1BPUlRfTkFNRSwgX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgY29udGVudENvbnRleHQub25WaWV3cG9ydENoYW5nZSk7XG4gICAgY29uc3QgcHJldlNjcm9sbFRvcFJlZiA9IFJlYWN0LnVzZVJlZigwKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgIFwic3R5bGVcIixcbiAgICAgICAge1xuICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgICAgICBfX2h0bWw6IGBbZGF0YS1yYWRpeC1zZWxlY3Qtdmlld3BvcnRde3Njcm9sbGJhci13aWR0aDpub25lOy1tcy1vdmVyZmxvdy1zdHlsZTpub25lOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO31bZGF0YS1yYWRpeC1zZWxlY3Qtdmlld3BvcnRdOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9YFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbm9uY2VcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goQ29sbGVjdGlvbi5TbG90LCB7IHNjb3BlOiBfX3Njb3BlU2VsZWN0LCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgUHJpbWl0aXZlLmRpdixcbiAgICAgICAge1xuICAgICAgICAgIFwiZGF0YS1yYWRpeC1zZWxlY3Qtdmlld3BvcnRcIjogXCJcIixcbiAgICAgICAgICByb2xlOiBcInByZXNlbnRhdGlvblwiLFxuICAgICAgICAgIC4uLnZpZXdwb3J0UHJvcHMsXG4gICAgICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIC8vIHdlIHVzZSBwb3NpdGlvbjogJ3JlbGF0aXZlJyBoZXJlIG9uIHRoZSBgdmlld3BvcnRgIHNvIHRoYXQgd2hlbiB3ZSBjYWxsXG4gICAgICAgICAgICAvLyBgc2VsZWN0ZWRJdGVtLm9mZnNldFRvcGAgaW4gY2FsY3VsYXRpb25zLCB0aGUgb2Zmc2V0IGlzIHJlbGF0aXZlIHRvIHRoZSB2aWV3cG9ydFxuICAgICAgICAgICAgLy8gKGluZGVwZW5kZW50IG9mIHRoZSBzY3JvbGxVcEJ1dHRvbikuXG4gICAgICAgICAgICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICAgICAgICAgICAgZmxleDogMSxcbiAgICAgICAgICAgIC8vIFZpZXdwb3J0IHNob3VsZCBvbmx5IGJlIHNjcm9sbGFibGUgaW4gdGhlIHZlcnRpY2FsIGRpcmVjdGlvbi5cbiAgICAgICAgICAgIC8vIFRoaXMgd29uJ3Qgd29yayBpbiB2ZXJ0aWNhbCB3cml0aW5nIG1vZGVzLCBzbyB3ZSdsbCBuZWVkIHRvXG4gICAgICAgICAgICAvLyByZXZpc2l0IHRoaXMgaWYvd2hlbiB0aGF0IGlzIHN1cHBvcnRlZFxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuY2hyb21lLmNvbS9ibG9nL3ZlcnRpY2FsLWZvcm0tY29udHJvbHNcbiAgICAgICAgICAgIG92ZXJmbG93OiBcImhpZGRlbiBhdXRvXCIsXG4gICAgICAgICAgICAuLi52aWV3cG9ydFByb3BzLnN0eWxlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvblNjcm9sbDogY29tcG9zZUV2ZW50SGFuZGxlcnModmlld3BvcnRQcm9wcy5vblNjcm9sbCwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2aWV3cG9ydCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgICAgICBjb25zdCB7IGNvbnRlbnRXcmFwcGVyLCBzaG91bGRFeHBhbmRPblNjcm9sbFJlZiB9ID0gdmlld3BvcnRDb250ZXh0O1xuICAgICAgICAgICAgaWYgKHNob3VsZEV4cGFuZE9uU2Nyb2xsUmVmPy5jdXJyZW50ICYmIGNvbnRlbnRXcmFwcGVyKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHNjcm9sbGVkQnkgPSBNYXRoLmFicyhwcmV2U2Nyb2xsVG9wUmVmLmN1cnJlbnQgLSB2aWV3cG9ydC5zY3JvbGxUb3ApO1xuICAgICAgICAgICAgICBpZiAoc2Nyb2xsZWRCeSA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdmFpbGFibGVIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBDT05URU5UX01BUkdJTiAqIDI7XG4gICAgICAgICAgICAgICAgY29uc3QgY3NzTWluSGVpZ2h0ID0gcGFyc2VGbG9hdChjb250ZW50V3JhcHBlci5zdHlsZS5taW5IZWlnaHQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNzc0hlaWdodCA9IHBhcnNlRmxvYXQoY29udGVudFdyYXBwZXIuc3R5bGUuaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2SGVpZ2h0ID0gTWF0aC5tYXgoY3NzTWluSGVpZ2h0LCBjc3NIZWlnaHQpO1xuICAgICAgICAgICAgICAgIGlmIChwcmV2SGVpZ2h0IDwgYXZhaWxhYmxlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBuZXh0SGVpZ2h0ID0gcHJldkhlaWdodCArIHNjcm9sbGVkQnk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBjbGFtcGVkTmV4dEhlaWdodCA9IE1hdGgubWluKGF2YWlsYWJsZUhlaWdodCwgbmV4dEhlaWdodCk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHREaWZmID0gbmV4dEhlaWdodCAtIGNsYW1wZWROZXh0SGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgY29udGVudFdyYXBwZXIuc3R5bGUuaGVpZ2h0ID0gY2xhbXBlZE5leHRIZWlnaHQgKyBcInB4XCI7XG4gICAgICAgICAgICAgICAgICBpZiAoY29udGVudFdyYXBwZXIuc3R5bGUuYm90dG9tID09PSBcIjBweFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0LnNjcm9sbFRvcCA9IGhlaWdodERpZmYgPiAwID8gaGVpZ2h0RGlmZiA6IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gXCJmbGV4LWVuZFwiO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcHJldlNjcm9sbFRvcFJlZi5jdXJyZW50ID0gdmlld3BvcnQuc2Nyb2xsVG9wO1xuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICkgfSlcbiAgICBdIH0pO1xuICB9XG4pO1xuU2VsZWN0Vmlld3BvcnQuZGlzcGxheU5hbWUgPSBWSUVXUE9SVF9OQU1FO1xudmFyIEdST1VQX05BTUUgPSBcIlNlbGVjdEdyb3VwXCI7XG52YXIgW1NlbGVjdEdyb3VwQ29udGV4dFByb3ZpZGVyLCB1c2VTZWxlY3RHcm91cENvbnRleHRdID0gY3JlYXRlU2VsZWN0Q29udGV4dChHUk9VUF9OQU1FKTtcbnZhciBTZWxlY3RHcm91cCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlU2VsZWN0LCAuLi5ncm91cFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBncm91cElkID0gdXNlSWQoKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTZWxlY3RHcm91cENvbnRleHRQcm92aWRlciwgeyBzY29wZTogX19zY29wZVNlbGVjdCwgaWQ6IGdyb3VwSWQsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFByaW1pdGl2ZS5kaXYsIHsgcm9sZTogXCJncm91cFwiLCBcImFyaWEtbGFiZWxsZWRieVwiOiBncm91cElkLCAuLi5ncm91cFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KSB9KTtcbiAgfVxuKTtcblNlbGVjdEdyb3VwLmRpc3BsYXlOYW1lID0gR1JPVVBfTkFNRTtcbnZhciBMQUJFTF9OQU1FID0gXCJTZWxlY3RMYWJlbFwiO1xudmFyIFNlbGVjdExhYmVsID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVTZWxlY3QsIC4uLmxhYmVsUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGdyb3VwQ29udGV4dCA9IHVzZVNlbGVjdEdyb3VwQ29udGV4dChMQUJFTF9OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChQcmltaXRpdmUuZGl2LCB7IGlkOiBncm91cENvbnRleHQuaWQsIC4uLmxhYmVsUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xuICB9XG4pO1xuU2VsZWN0TGFiZWwuZGlzcGxheU5hbWUgPSBMQUJFTF9OQU1FO1xudmFyIElURU1fTkFNRSA9IFwiU2VsZWN0SXRlbVwiO1xudmFyIFtTZWxlY3RJdGVtQ29udGV4dFByb3ZpZGVyLCB1c2VTZWxlY3RJdGVtQ29udGV4dF0gPSBjcmVhdGVTZWxlY3RDb250ZXh0KElURU1fTkFNRSk7XG52YXIgU2VsZWN0SXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgX19zY29wZVNlbGVjdCxcbiAgICAgIHZhbHVlLFxuICAgICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICAgIHRleHRWYWx1ZTogdGV4dFZhbHVlUHJvcCxcbiAgICAgIC4uLml0ZW1Qcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlU2VsZWN0Q29udGV4dChJVEVNX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlU2VsZWN0Q29udGVudENvbnRleHQoSVRFTV9OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICBjb25zdCBpc1NlbGVjdGVkID0gY29udGV4dC52YWx1ZSA9PT0gdmFsdWU7XG4gICAgY29uc3QgW3RleHRWYWx1ZSwgc2V0VGV4dFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHRleHRWYWx1ZVByb3AgPz8gXCJcIik7XG4gICAgY29uc3QgW2lzRm9jdXNlZCwgc2V0SXNGb2N1c2VkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoXG4gICAgICBmb3J3YXJkZWRSZWYsXG4gICAgICAobm9kZSkgPT4gY29udGVudENvbnRleHQuaXRlbVJlZkNhbGxiYWNrPy4obm9kZSwgdmFsdWUsIGRpc2FibGVkKVxuICAgICk7XG4gICAgY29uc3QgdGV4dElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBwb2ludGVyVHlwZVJlZiA9IFJlYWN0LnVzZVJlZihcInRvdWNoXCIpO1xuICAgIGNvbnN0IGhhbmRsZVNlbGVjdCA9ICgpID0+IHtcbiAgICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgICAgY29udGV4dC5vblZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgY29udGV4dC5vbk9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgfVxuICAgIH07XG4gICAgaWYgKHZhbHVlID09PSBcIlwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQSA8U2VsZWN0Lkl0ZW0gLz4gbXVzdCBoYXZlIGEgdmFsdWUgcHJvcCB0aGF0IGlzIG5vdCBhbiBlbXB0eSBzdHJpbmcuIFRoaXMgaXMgYmVjYXVzZSB0aGUgU2VsZWN0IHZhbHVlIGNhbiBiZSBzZXQgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIGNsZWFyIHRoZSBzZWxlY3Rpb24gYW5kIHNob3cgdGhlIHBsYWNlaG9sZGVyLlwiXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFNlbGVjdEl0ZW1Db250ZXh0UHJvdmlkZXIsXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiBfX3Njb3BlU2VsZWN0LFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHRleHRJZCxcbiAgICAgICAgaXNTZWxlY3RlZCxcbiAgICAgICAgb25JdGVtVGV4dENoYW5nZTogUmVhY3QudXNlQ2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgICBzZXRUZXh0VmFsdWUoKHByZXZUZXh0VmFsdWUpID0+IHByZXZUZXh0VmFsdWUgfHwgKG5vZGU/LnRleHRDb250ZW50ID8/IFwiXCIpLnRyaW0oKSk7XG4gICAgICAgIH0sIFtdKSxcbiAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgQ29sbGVjdGlvbi5JdGVtU2xvdCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzY29wZTogX19zY29wZVNlbGVjdCxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICB0ZXh0VmFsdWUsXG4gICAgICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICAgICAgUHJpbWl0aXZlLmRpdixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJvbGU6IFwib3B0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGV4dElkLFxuICAgICAgICAgICAgICAgIFwiZGF0YS1oaWdobGlnaHRlZFwiOiBpc0ZvY3VzZWQgPyBcIlwiIDogdm9pZCAwLFxuICAgICAgICAgICAgICAgIFwiYXJpYS1zZWxlY3RlZFwiOiBpc1NlbGVjdGVkICYmIGlzRm9jdXNlZCxcbiAgICAgICAgICAgICAgICBcImRhdGEtc3RhdGVcIjogaXNTZWxlY3RlZCA/IFwiY2hlY2tlZFwiIDogXCJ1bmNoZWNrZWRcIixcbiAgICAgICAgICAgICAgICBcImFyaWEtZGlzYWJsZWRcIjogZGlzYWJsZWQgfHwgdm9pZCAwLFxuICAgICAgICAgICAgICAgIFwiZGF0YS1kaXNhYmxlZFwiOiBkaXNhYmxlZCA/IFwiXCIgOiB2b2lkIDAsXG4gICAgICAgICAgICAgICAgdGFiSW5kZXg6IGRpc2FibGVkID8gdm9pZCAwIDogLTEsXG4gICAgICAgICAgICAgICAgLi4uaXRlbVByb3BzLFxuICAgICAgICAgICAgICAgIHJlZjogY29tcG9zZWRSZWZzLFxuICAgICAgICAgICAgICAgIG9uRm9jdXM6IGNvbXBvc2VFdmVudEhhbmRsZXJzKGl0ZW1Qcm9wcy5vbkZvY3VzLCAoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSkpLFxuICAgICAgICAgICAgICAgIG9uQmx1cjogY29tcG9zZUV2ZW50SGFuZGxlcnMoaXRlbVByb3BzLm9uQmx1ciwgKCkgPT4gc2V0SXNGb2N1c2VkKGZhbHNlKSksXG4gICAgICAgICAgICAgICAgb25DbGljazogY29tcG9zZUV2ZW50SGFuZGxlcnMoaXRlbVByb3BzLm9uQ2xpY2ssICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChwb2ludGVyVHlwZVJlZi5jdXJyZW50ICE9PSBcIm1vdXNlXCIpIGhhbmRsZVNlbGVjdCgpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG9uUG9pbnRlclVwOiBjb21wb3NlRXZlbnRIYW5kbGVycyhpdGVtUHJvcHMub25Qb2ludGVyVXAsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChwb2ludGVyVHlwZVJlZi5jdXJyZW50ID09PSBcIm1vdXNlXCIpIGhhbmRsZVNlbGVjdCgpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd246IGNvbXBvc2VFdmVudEhhbmRsZXJzKGl0ZW1Qcm9wcy5vblBvaW50ZXJEb3duLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgPSBldmVudC5wb2ludGVyVHlwZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBvblBvaW50ZXJNb3ZlOiBjb21wb3NlRXZlbnRIYW5kbGVycyhpdGVtUHJvcHMub25Qb2ludGVyTW92ZSwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBwb2ludGVyVHlwZVJlZi5jdXJyZW50ID0gZXZlbnQucG9pbnRlclR5cGU7XG4gICAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudENvbnRleHQub25JdGVtTGVhdmU/LigpO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwb2ludGVyVHlwZVJlZi5jdXJyZW50ID09PSBcIm1vdXNlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgb25Qb2ludGVyTGVhdmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKGl0ZW1Qcm9wcy5vblBvaW50ZXJMZWF2ZSwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY3VycmVudFRhcmdldCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50Q29udGV4dC5vbkl0ZW1MZWF2ZT8uKCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgb25LZXlEb3duOiBjb21wb3NlRXZlbnRIYW5kbGVycyhpdGVtUHJvcHMub25LZXlEb3duLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGlzVHlwaW5nQWhlYWQgPSBjb250ZW50Q29udGV4dC5zZWFyY2hSZWY/LmN1cnJlbnQgIT09IFwiXCI7XG4gICAgICAgICAgICAgICAgICBpZiAoaXNUeXBpbmdBaGVhZCAmJiBldmVudC5rZXkgPT09IFwiIFwiKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICBpZiAoU0VMRUNUSU9OX0tFWVMuaW5jbHVkZXMoZXZlbnQua2V5KSkgaGFuZGxlU2VsZWN0KCk7XG4gICAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBcIiBcIikgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcblNlbGVjdEl0ZW0uZGlzcGxheU5hbWUgPSBJVEVNX05BTUU7XG52YXIgSVRFTV9URVhUX05BTUUgPSBcIlNlbGVjdEl0ZW1UZXh0XCI7XG52YXIgU2VsZWN0SXRlbVRleHQgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVNlbGVjdCwgY2xhc3NOYW1lLCBzdHlsZSwgLi4uaXRlbVRleHRQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVNlbGVjdENvbnRleHQoSVRFTV9URVhUX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlU2VsZWN0Q29udGVudENvbnRleHQoSVRFTV9URVhUX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IGl0ZW1Db250ZXh0ID0gdXNlU2VsZWN0SXRlbUNvbnRleHQoSVRFTV9URVhUX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IG5hdGl2ZU9wdGlvbnNDb250ZXh0ID0gdXNlU2VsZWN0TmF0aXZlT3B0aW9uc0NvbnRleHQoSVRFTV9URVhUX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IFtpdGVtVGV4dE5vZGUsIHNldEl0ZW1UZXh0Tm9kZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoXG4gICAgICBmb3J3YXJkZWRSZWYsXG4gICAgICAobm9kZSkgPT4gc2V0SXRlbVRleHROb2RlKG5vZGUpLFxuICAgICAgaXRlbUNvbnRleHQub25JdGVtVGV4dENoYW5nZSxcbiAgICAgIChub2RlKSA9PiBjb250ZW50Q29udGV4dC5pdGVtVGV4dFJlZkNhbGxiYWNrPy4obm9kZSwgaXRlbUNvbnRleHQudmFsdWUsIGl0ZW1Db250ZXh0LmRpc2FibGVkKVxuICAgICk7XG4gICAgY29uc3QgdGV4dENvbnRlbnQgPSBpdGVtVGV4dE5vZGU/LnRleHRDb250ZW50O1xuICAgIGNvbnN0IG5hdGl2ZU9wdGlvbiA9IFJlYWN0LnVzZU1lbW8oXG4gICAgICAoKSA9PiAvKiBAX19QVVJFX18gKi8ganN4KFwib3B0aW9uXCIsIHsgdmFsdWU6IGl0ZW1Db250ZXh0LnZhbHVlLCBkaXNhYmxlZDogaXRlbUNvbnRleHQuZGlzYWJsZWQsIGNoaWxkcmVuOiB0ZXh0Q29udGVudCB9LCBpdGVtQ29udGV4dC52YWx1ZSksXG4gICAgICBbaXRlbUNvbnRleHQuZGlzYWJsZWQsIGl0ZW1Db250ZXh0LnZhbHVlLCB0ZXh0Q29udGVudF1cbiAgICApO1xuICAgIGNvbnN0IHsgb25OYXRpdmVPcHRpb25BZGQsIG9uTmF0aXZlT3B0aW9uUmVtb3ZlIH0gPSBuYXRpdmVPcHRpb25zQ29udGV4dDtcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgb25OYXRpdmVPcHRpb25BZGQobmF0aXZlT3B0aW9uKTtcbiAgICAgIHJldHVybiAoKSA9PiBvbk5hdGl2ZU9wdGlvblJlbW92ZShuYXRpdmVPcHRpb24pO1xuICAgIH0sIFtvbk5hdGl2ZU9wdGlvbkFkZCwgb25OYXRpdmVPcHRpb25SZW1vdmUsIG5hdGl2ZU9wdGlvbl0pO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhGcmFnbWVudCwgeyBjaGlsZHJlbjogW1xuICAgICAgLyogQF9fUFVSRV9fICovIGpzeChQcmltaXRpdmUuc3BhbiwgeyBpZDogaXRlbUNvbnRleHQudGV4dElkLCAuLi5pdGVtVGV4dFByb3BzLCByZWY6IGNvbXBvc2VkUmVmcyB9KSxcbiAgICAgIGl0ZW1Db250ZXh0LmlzU2VsZWN0ZWQgJiYgY29udGV4dC52YWx1ZU5vZGUgJiYgIWNvbnRleHQudmFsdWVOb2RlSGFzQ2hpbGRyZW4gPyBSZWFjdERPTS5jcmVhdGVQb3J0YWwoaXRlbVRleHRQcm9wcy5jaGlsZHJlbiwgY29udGV4dC52YWx1ZU5vZGUpIDogbnVsbFxuICAgIF0gfSk7XG4gIH1cbik7XG5TZWxlY3RJdGVtVGV4dC5kaXNwbGF5TmFtZSA9IElURU1fVEVYVF9OQU1FO1xudmFyIElURU1fSU5ESUNBVE9SX05BTUUgPSBcIlNlbGVjdEl0ZW1JbmRpY2F0b3JcIjtcbnZhciBTZWxlY3RJdGVtSW5kaWNhdG9yID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVTZWxlY3QsIC4uLml0ZW1JbmRpY2F0b3JQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgaXRlbUNvbnRleHQgPSB1c2VTZWxlY3RJdGVtQ29udGV4dChJVEVNX0lORElDQVRPUl9OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICByZXR1cm4gaXRlbUNvbnRleHQuaXNTZWxlY3RlZCA/IC8qIEBfX1BVUkVfXyAqLyBqc3goUHJpbWl0aXZlLnNwYW4sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCAuLi5pdGVtSW5kaWNhdG9yUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pIDogbnVsbDtcbiAgfVxuKTtcblNlbGVjdEl0ZW1JbmRpY2F0b3IuZGlzcGxheU5hbWUgPSBJVEVNX0lORElDQVRPUl9OQU1FO1xudmFyIFNDUk9MTF9VUF9CVVRUT05fTkFNRSA9IFwiU2VsZWN0U2Nyb2xsVXBCdXR0b25cIjtcbnZhciBTZWxlY3RTY3JvbGxVcEJ1dHRvbiA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgY29udGVudENvbnRleHQgPSB1c2VTZWxlY3RDb250ZW50Q29udGV4dChTQ1JPTExfVVBfQlVUVE9OX05BTUUsIHByb3BzLl9fc2NvcGVTZWxlY3QpO1xuICBjb25zdCB2aWV3cG9ydENvbnRleHQgPSB1c2VTZWxlY3RWaWV3cG9ydENvbnRleHQoU0NST0xMX1VQX0JVVFRPTl9OQU1FLCBwcm9wcy5fX3Njb3BlU2VsZWN0KTtcbiAgY29uc3QgW2NhblNjcm9sbFVwLCBzZXRDYW5TY3JvbGxVcF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHZpZXdwb3J0Q29udGV4dC5vblNjcm9sbEJ1dHRvbkNoYW5nZSk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNvbnRlbnRDb250ZXh0LnZpZXdwb3J0ICYmIGNvbnRlbnRDb250ZXh0LmlzUG9zaXRpb25lZCkge1xuICAgICAgbGV0IGhhbmRsZVNjcm9sbDIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgY29uc3QgY2FuU2Nyb2xsVXAyID0gdmlld3BvcnQuc2Nyb2xsVG9wID4gMDtcbiAgICAgICAgc2V0Q2FuU2Nyb2xsVXAoY2FuU2Nyb2xsVXAyKTtcbiAgICAgIH07XG4gICAgICB2YXIgaGFuZGxlU2Nyb2xsID0gaGFuZGxlU2Nyb2xsMjtcbiAgICAgIGNvbnN0IHZpZXdwb3J0ID0gY29udGVudENvbnRleHQudmlld3BvcnQ7XG4gICAgICBoYW5kbGVTY3JvbGwyKCk7XG4gICAgICB2aWV3cG9ydC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGhhbmRsZVNjcm9sbDIpO1xuICAgICAgcmV0dXJuICgpID0+IHZpZXdwb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgaGFuZGxlU2Nyb2xsMik7XG4gICAgfVxuICB9LCBbY29udGVudENvbnRleHQudmlld3BvcnQsIGNvbnRlbnRDb250ZXh0LmlzUG9zaXRpb25lZF0pO1xuICByZXR1cm4gY2FuU2Nyb2xsVXAgPyAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFNlbGVjdFNjcm9sbEJ1dHRvbkltcGwsXG4gICAge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICByZWY6IGNvbXBvc2VkUmVmcyxcbiAgICAgIG9uQXV0b1Njcm9sbDogKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHZpZXdwb3J0LCBzZWxlY3RlZEl0ZW0gfSA9IGNvbnRlbnRDb250ZXh0O1xuICAgICAgICBpZiAodmlld3BvcnQgJiYgc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgdmlld3BvcnQuc2Nyb2xsVG9wID0gdmlld3BvcnQuc2Nyb2xsVG9wIC0gc2VsZWN0ZWRJdGVtLm9mZnNldEhlaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgKSA6IG51bGw7XG59KTtcblNlbGVjdFNjcm9sbFVwQnV0dG9uLmRpc3BsYXlOYW1lID0gU0NST0xMX1VQX0JVVFRPTl9OQU1FO1xudmFyIFNDUk9MTF9ET1dOX0JVVFRPTl9OQU1FID0gXCJTZWxlY3RTY3JvbGxEb3duQnV0dG9uXCI7XG52YXIgU2VsZWN0U2Nyb2xsRG93bkJ1dHRvbiA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgY29udGVudENvbnRleHQgPSB1c2VTZWxlY3RDb250ZW50Q29udGV4dChTQ1JPTExfRE9XTl9CVVRUT05fTkFNRSwgcHJvcHMuX19zY29wZVNlbGVjdCk7XG4gIGNvbnN0IHZpZXdwb3J0Q29udGV4dCA9IHVzZVNlbGVjdFZpZXdwb3J0Q29udGV4dChTQ1JPTExfRE9XTl9CVVRUT05fTkFNRSwgcHJvcHMuX19zY29wZVNlbGVjdCk7XG4gIGNvbnN0IFtjYW5TY3JvbGxEb3duLCBzZXRDYW5TY3JvbGxEb3duXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgdmlld3BvcnRDb250ZXh0Lm9uU2Nyb2xsQnV0dG9uQ2hhbmdlKTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY29udGVudENvbnRleHQudmlld3BvcnQgJiYgY29udGVudENvbnRleHQuaXNQb3NpdGlvbmVkKSB7XG4gICAgICBsZXQgaGFuZGxlU2Nyb2xsMiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBjb25zdCBtYXhTY3JvbGwgPSB2aWV3cG9ydC5zY3JvbGxIZWlnaHQgLSB2aWV3cG9ydC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGNhblNjcm9sbERvd24yID0gTWF0aC5jZWlsKHZpZXdwb3J0LnNjcm9sbFRvcCkgPCBtYXhTY3JvbGw7XG4gICAgICAgIHNldENhblNjcm9sbERvd24oY2FuU2Nyb2xsRG93bjIpO1xuICAgICAgfTtcbiAgICAgIHZhciBoYW5kbGVTY3JvbGwgPSBoYW5kbGVTY3JvbGwyO1xuICAgICAgY29uc3Qgdmlld3BvcnQgPSBjb250ZW50Q29udGV4dC52aWV3cG9ydDtcbiAgICAgIGhhbmRsZVNjcm9sbDIoKTtcbiAgICAgIHZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgaGFuZGxlU2Nyb2xsMik7XG4gICAgICByZXR1cm4gKCkgPT4gdmlld3BvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBoYW5kbGVTY3JvbGwyKTtcbiAgICB9XG4gIH0sIFtjb250ZW50Q29udGV4dC52aWV3cG9ydCwgY29udGVudENvbnRleHQuaXNQb3NpdGlvbmVkXSk7XG4gIHJldHVybiBjYW5TY3JvbGxEb3duID8gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBTZWxlY3RTY3JvbGxCdXR0b25JbXBsLFxuICAgIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXG4gICAgICBvbkF1dG9TY3JvbGw6ICgpID0+IHtcbiAgICAgICAgY29uc3QgeyB2aWV3cG9ydCwgc2VsZWN0ZWRJdGVtIH0gPSBjb250ZW50Q29udGV4dDtcbiAgICAgICAgaWYgKHZpZXdwb3J0ICYmIHNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgIHZpZXdwb3J0LnNjcm9sbFRvcCA9IHZpZXdwb3J0LnNjcm9sbFRvcCArIHNlbGVjdGVkSXRlbS5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICkgOiBudWxsO1xufSk7XG5TZWxlY3RTY3JvbGxEb3duQnV0dG9uLmRpc3BsYXlOYW1lID0gU0NST0xMX0RPV05fQlVUVE9OX05BTUU7XG52YXIgU2VsZWN0U2Nyb2xsQnV0dG9uSW1wbCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlU2VsZWN0LCBvbkF1dG9TY3JvbGwsIC4uLnNjcm9sbEluZGljYXRvclByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgY29udGVudENvbnRleHQgPSB1c2VTZWxlY3RDb250ZW50Q29udGV4dChcIlNlbGVjdFNjcm9sbEJ1dHRvblwiLCBfX3Njb3BlU2VsZWN0KTtcbiAgY29uc3QgYXV0b1Njcm9sbFRpbWVyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBnZXRJdGVtcyA9IHVzZUNvbGxlY3Rpb24oX19zY29wZVNlbGVjdCk7XG4gIGNvbnN0IGNsZWFyQXV0b1Njcm9sbFRpbWVyID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChhdXRvU2Nyb2xsVGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwoYXV0b1Njcm9sbFRpbWVyUmVmLmN1cnJlbnQpO1xuICAgICAgYXV0b1Njcm9sbFRpbWVyUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW10pO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiBjbGVhckF1dG9TY3JvbGxUaW1lcigpO1xuICB9LCBbY2xlYXJBdXRvU2Nyb2xsVGltZXJdKTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBhY3RpdmVJdGVtID0gZ2V0SXRlbXMoKS5maW5kKChpdGVtKSA9PiBpdGVtLnJlZi5jdXJyZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtcbiAgICBhY3RpdmVJdGVtPy5yZWYuY3VycmVudD8uc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogXCJuZWFyZXN0XCIgfSk7XG4gIH0sIFtnZXRJdGVtc10pO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBQcmltaXRpdmUuZGl2LFxuICAgIHtcbiAgICAgIFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSxcbiAgICAgIC4uLnNjcm9sbEluZGljYXRvclByb3BzLFxuICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgICBzdHlsZTogeyBmbGV4U2hyaW5rOiAwLCAuLi5zY3JvbGxJbmRpY2F0b3JQcm9wcy5zdHlsZSB9LFxuICAgICAgb25Qb2ludGVyRG93bjogY29tcG9zZUV2ZW50SGFuZGxlcnMoc2Nyb2xsSW5kaWNhdG9yUHJvcHMub25Qb2ludGVyRG93biwgKCkgPT4ge1xuICAgICAgICBpZiAoYXV0b1Njcm9sbFRpbWVyUmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICBhdXRvU2Nyb2xsVGltZXJSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRJbnRlcnZhbChvbkF1dG9TY3JvbGwsIDUwKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBvblBvaW50ZXJNb3ZlOiBjb21wb3NlRXZlbnRIYW5kbGVycyhzY3JvbGxJbmRpY2F0b3JQcm9wcy5vblBvaW50ZXJNb3ZlLCAoKSA9PiB7XG4gICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uSXRlbUxlYXZlPy4oKTtcbiAgICAgICAgaWYgKGF1dG9TY3JvbGxUaW1lclJlZi5jdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgYXV0b1Njcm9sbFRpbWVyUmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwob25BdXRvU2Nyb2xsLCA1MCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgb25Qb2ludGVyTGVhdmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKHNjcm9sbEluZGljYXRvclByb3BzLm9uUG9pbnRlckxlYXZlLCAoKSA9PiB7XG4gICAgICAgIGNsZWFyQXV0b1Njcm9sbFRpbWVyKCk7XG4gICAgICB9KVxuICAgIH1cbiAgKTtcbn0pO1xudmFyIFNFUEFSQVRPUl9OQU1FID0gXCJTZWxlY3RTZXBhcmF0b3JcIjtcbnZhciBTZWxlY3RTZXBhcmF0b3IgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVNlbGVjdCwgLi4uc2VwYXJhdG9yUHJvcHMgfSA9IHByb3BzO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFByaW1pdGl2ZS5kaXYsIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCAuLi5zZXBhcmF0b3JQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XG4gIH1cbik7XG5TZWxlY3RTZXBhcmF0b3IuZGlzcGxheU5hbWUgPSBTRVBBUkFUT1JfTkFNRTtcbnZhciBBUlJPV19OQU1FID0gXCJTZWxlY3RBcnJvd1wiO1xudmFyIFNlbGVjdEFycm93ID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVTZWxlY3QsIC4uLmFycm93UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVNlbGVjdENvbnRleHQoQVJST1dfTkFNRSwgX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3QgY29udGVudENvbnRleHQgPSB1c2VTZWxlY3RDb250ZW50Q29udGV4dChBUlJPV19OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICByZXR1cm4gY29udGV4dC5vcGVuICYmIGNvbnRlbnRDb250ZXh0LnBvc2l0aW9uID09PSBcInBvcHBlclwiID8gLyogQF9fUFVSRV9fICovIGpzeChQb3BwZXJQcmltaXRpdmUuQXJyb3csIHsgLi4ucG9wcGVyU2NvcGUsIC4uLmFycm93UHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pIDogbnVsbDtcbiAgfVxuKTtcblNlbGVjdEFycm93LmRpc3BsYXlOYW1lID0gQVJST1dfTkFNRTtcbmZ1bmN0aW9uIHNob3VsZFNob3dQbGFjZWhvbGRlcih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPT09IFwiXCIgfHwgdmFsdWUgPT09IHZvaWQgMDtcbn1cbnZhciBCdWJibGVTZWxlY3QgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWUsIC4uLnNlbGVjdFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgcmVmKTtcbiAgICBjb25zdCBwcmV2VmFsdWUgPSB1c2VQcmV2aW91cyh2YWx1ZSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdCA9IHJlZi5jdXJyZW50O1xuICAgICAgY29uc3Qgc2VsZWN0UHJvdG8gPSB3aW5kb3cuSFRNTFNlbGVjdEVsZW1lbnQucHJvdG90eXBlO1xuICAgICAgY29uc3QgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXG4gICAgICAgIHNlbGVjdFByb3RvLFxuICAgICAgICBcInZhbHVlXCJcbiAgICAgICk7XG4gICAgICBjb25zdCBzZXRWYWx1ZSA9IGRlc2NyaXB0b3Iuc2V0O1xuICAgICAgaWYgKHByZXZWYWx1ZSAhPT0gdmFsdWUgJiYgc2V0VmFsdWUpIHtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRXZlbnQoXCJjaGFuZ2VcIiwgeyBidWJibGVzOiB0cnVlIH0pO1xuICAgICAgICBzZXRWYWx1ZS5jYWxsKHNlbGVjdCwgdmFsdWUpO1xuICAgICAgICBzZWxlY3QuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gICAgICB9XG4gICAgfSwgW3ByZXZWYWx1ZSwgdmFsdWVdKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChWaXN1YWxseUhpZGRlbiwgeyBhc0NoaWxkOiB0cnVlLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcInNlbGVjdFwiLCB7IC4uLnNlbGVjdFByb3BzLCByZWY6IGNvbXBvc2VkUmVmcywgZGVmYXVsdFZhbHVlOiB2YWx1ZSB9KSB9KTtcbiAgfVxuKTtcbkJ1YmJsZVNlbGVjdC5kaXNwbGF5TmFtZSA9IFwiQnViYmxlU2VsZWN0XCI7XG5mdW5jdGlvbiB1c2VUeXBlYWhlYWRTZWFyY2gob25TZWFyY2hDaGFuZ2UpIHtcbiAgY29uc3QgaGFuZGxlU2VhcmNoQ2hhbmdlID0gdXNlQ2FsbGJhY2tSZWYob25TZWFyY2hDaGFuZ2UpO1xuICBjb25zdCBzZWFyY2hSZWYgPSBSZWFjdC51c2VSZWYoXCJcIik7XG4gIGNvbnN0IHRpbWVyUmVmID0gUmVhY3QudXNlUmVmKDApO1xuICBjb25zdCBoYW5kbGVUeXBlYWhlYWRTZWFyY2ggPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAoa2V5KSA9PiB7XG4gICAgICBjb25zdCBzZWFyY2ggPSBzZWFyY2hSZWYuY3VycmVudCArIGtleTtcbiAgICAgIGhhbmRsZVNlYXJjaENoYW5nZShzZWFyY2gpO1xuICAgICAgKGZ1bmN0aW9uIHVwZGF0ZVNlYXJjaCh2YWx1ZSkge1xuICAgICAgICBzZWFyY2hSZWYuY3VycmVudCA9IHZhbHVlO1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVyUmVmLmN1cnJlbnQpO1xuICAgICAgICBpZiAodmFsdWUgIT09IFwiXCIpIHRpbWVyUmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB1cGRhdGVTZWFyY2goXCJcIiksIDFlMyk7XG4gICAgICB9KShzZWFyY2gpO1xuICAgIH0sXG4gICAgW2hhbmRsZVNlYXJjaENoYW5nZV1cbiAgKTtcbiAgY29uc3QgcmVzZXRUeXBlYWhlYWQgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2VhcmNoUmVmLmN1cnJlbnQgPSBcIlwiO1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXJSZWYuY3VycmVudCk7XG4gIH0sIFtdKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LmNsZWFyVGltZW91dCh0aW1lclJlZi5jdXJyZW50KTtcbiAgfSwgW10pO1xuICByZXR1cm4gW3NlYXJjaFJlZiwgaGFuZGxlVHlwZWFoZWFkU2VhcmNoLCByZXNldFR5cGVhaGVhZF07XG59XG5mdW5jdGlvbiBmaW5kTmV4dEl0ZW0oaXRlbXMsIHNlYXJjaCwgY3VycmVudEl0ZW0pIHtcbiAgY29uc3QgaXNSZXBlYXRlZCA9IHNlYXJjaC5sZW5ndGggPiAxICYmIEFycmF5LmZyb20oc2VhcmNoKS5ldmVyeSgoY2hhcikgPT4gY2hhciA9PT0gc2VhcmNoWzBdKTtcbiAgY29uc3Qgbm9ybWFsaXplZFNlYXJjaCA9IGlzUmVwZWF0ZWQgPyBzZWFyY2hbMF0gOiBzZWFyY2g7XG4gIGNvbnN0IGN1cnJlbnRJdGVtSW5kZXggPSBjdXJyZW50SXRlbSA/IGl0ZW1zLmluZGV4T2YoY3VycmVudEl0ZW0pIDogLTE7XG4gIGxldCB3cmFwcGVkSXRlbXMgPSB3cmFwQXJyYXkoaXRlbXMsIE1hdGgubWF4KGN1cnJlbnRJdGVtSW5kZXgsIDApKTtcbiAgY29uc3QgZXhjbHVkZUN1cnJlbnRJdGVtID0gbm9ybWFsaXplZFNlYXJjaC5sZW5ndGggPT09IDE7XG4gIGlmIChleGNsdWRlQ3VycmVudEl0ZW0pIHdyYXBwZWRJdGVtcyA9IHdyYXBwZWRJdGVtcy5maWx0ZXIoKHYpID0+IHYgIT09IGN1cnJlbnRJdGVtKTtcbiAgY29uc3QgbmV4dEl0ZW0gPSB3cmFwcGVkSXRlbXMuZmluZChcbiAgICAoaXRlbSkgPT4gaXRlbS50ZXh0VmFsdWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKG5vcm1hbGl6ZWRTZWFyY2gudG9Mb3dlckNhc2UoKSlcbiAgKTtcbiAgcmV0dXJuIG5leHRJdGVtICE9PSBjdXJyZW50SXRlbSA/IG5leHRJdGVtIDogdm9pZCAwO1xufVxuZnVuY3Rpb24gd3JhcEFycmF5KGFycmF5LCBzdGFydEluZGV4KSB7XG4gIHJldHVybiBhcnJheS5tYXAoKF8sIGluZGV4KSA9PiBhcnJheVsoc3RhcnRJbmRleCArIGluZGV4KSAlIGFycmF5Lmxlbmd0aF0pO1xufVxudmFyIFJvb3QyID0gU2VsZWN0O1xudmFyIFRyaWdnZXIgPSBTZWxlY3RUcmlnZ2VyO1xudmFyIFZhbHVlID0gU2VsZWN0VmFsdWU7XG52YXIgSWNvbiA9IFNlbGVjdEljb247XG52YXIgUG9ydGFsID0gU2VsZWN0UG9ydGFsO1xudmFyIENvbnRlbnQyID0gU2VsZWN0Q29udGVudDtcbnZhciBWaWV3cG9ydCA9IFNlbGVjdFZpZXdwb3J0O1xudmFyIEdyb3VwID0gU2VsZWN0R3JvdXA7XG52YXIgTGFiZWwgPSBTZWxlY3RMYWJlbDtcbnZhciBJdGVtID0gU2VsZWN0SXRlbTtcbnZhciBJdGVtVGV4dCA9IFNlbGVjdEl0ZW1UZXh0O1xudmFyIEl0ZW1JbmRpY2F0b3IgPSBTZWxlY3RJdGVtSW5kaWNhdG9yO1xudmFyIFNjcm9sbFVwQnV0dG9uID0gU2VsZWN0U2Nyb2xsVXBCdXR0b247XG52YXIgU2Nyb2xsRG93bkJ1dHRvbiA9IFNlbGVjdFNjcm9sbERvd25CdXR0b247XG52YXIgU2VwYXJhdG9yID0gU2VsZWN0U2VwYXJhdG9yO1xudmFyIEFycm93MiA9IFNlbGVjdEFycm93O1xuZXhwb3J0IHtcbiAgQXJyb3cyIGFzIEFycm93LFxuICBDb250ZW50MiBhcyBDb250ZW50LFxuICBHcm91cCxcbiAgSWNvbixcbiAgSXRlbSxcbiAgSXRlbUluZGljYXRvcixcbiAgSXRlbVRleHQsXG4gIExhYmVsLFxuICBQb3J0YWwsXG4gIFJvb3QyIGFzIFJvb3QsXG4gIFNjcm9sbERvd25CdXR0b24sXG4gIFNjcm9sbFVwQnV0dG9uLFxuICBTZWxlY3QsXG4gIFNlbGVjdEFycm93LFxuICBTZWxlY3RDb250ZW50LFxuICBTZWxlY3RHcm91cCxcbiAgU2VsZWN0SWNvbixcbiAgU2VsZWN0SXRlbSxcbiAgU2VsZWN0SXRlbUluZGljYXRvcixcbiAgU2VsZWN0SXRlbVRleHQsXG4gIFNlbGVjdExhYmVsLFxuICBTZWxlY3RQb3J0YWwsXG4gIFNlbGVjdFNjcm9sbERvd25CdXR0b24sXG4gIFNlbGVjdFNjcm9sbFVwQnV0dG9uLFxuICBTZWxlY3RTZXBhcmF0b3IsXG4gIFNlbGVjdFRyaWdnZXIsXG4gIFNlbGVjdFZhbHVlLFxuICBTZWxlY3RWaWV3cG9ydCxcbiAgU2VwYXJhdG9yLFxuICBUcmlnZ2VyLFxuICBWYWx1ZSxcbiAgVmlld3BvcnQsXG4gIGNyZWF0ZVNlbGVjdFNjb3BlXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIixudWxsLCJcInVzZSBjbGllbnRcIjtcblxuLy8gcGFja2FnZXMvcmVhY3Qvc3dpdGNoL3NyYy9zd2l0Y2gudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSBcIkByYWRpeC11aS9wcmltaXRpdmVcIjtcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbnRleHRcIjtcbmltcG9ydCB7IHVzZUNvbnRyb2xsYWJsZVN0YXRlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlXCI7XG5pbXBvcnQgeyB1c2VQcmV2aW91cyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLXByZXZpb3VzXCI7XG5pbXBvcnQgeyB1c2VTaXplIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2Utc2l6ZVwiO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmltaXRpdmVcIjtcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIFNXSVRDSF9OQU1FID0gXCJTd2l0Y2hcIjtcbnZhciBbY3JlYXRlU3dpdGNoQ29udGV4dCwgY3JlYXRlU3dpdGNoU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFNXSVRDSF9OQU1FKTtcbnZhciBbU3dpdGNoUHJvdmlkZXIsIHVzZVN3aXRjaENvbnRleHRdID0gY3JlYXRlU3dpdGNoQ29udGV4dChTV0lUQ0hfTkFNRSk7XG52YXIgU3dpdGNoID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlU3dpdGNoLFxuICAgICAgbmFtZSxcbiAgICAgIGNoZWNrZWQ6IGNoZWNrZWRQcm9wLFxuICAgICAgZGVmYXVsdENoZWNrZWQsXG4gICAgICByZXF1aXJlZCxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgdmFsdWUgPSBcIm9uXCIsXG4gICAgICBvbkNoZWNrZWRDaGFuZ2UsXG4gICAgICBmb3JtLFxuICAgICAgLi4uc3dpdGNoUHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgW2J1dHRvbiwgc2V0QnV0dG9uXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIChub2RlKSA9PiBzZXRCdXR0b24obm9kZSkpO1xuICAgIGNvbnN0IGhhc0NvbnN1bWVyU3RvcHBlZFByb3BhZ2F0aW9uUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpc0Zvcm1Db250cm9sID0gYnV0dG9uID8gZm9ybSB8fCAhIWJ1dHRvbi5jbG9zZXN0KFwiZm9ybVwiKSA6IHRydWU7XG4gICAgY29uc3QgW2NoZWNrZWQgPSBmYWxzZSwgc2V0Q2hlY2tlZF0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgICBwcm9wOiBjaGVja2VkUHJvcCxcbiAgICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0Q2hlY2tlZCxcbiAgICAgIG9uQ2hhbmdlOiBvbkNoZWNrZWRDaGFuZ2VcbiAgICB9KTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoU3dpdGNoUHJvdmlkZXIsIHsgc2NvcGU6IF9fc2NvcGVTd2l0Y2gsIGNoZWNrZWQsIGRpc2FibGVkLCBjaGlsZHJlbjogW1xuICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgUHJpbWl0aXZlLmJ1dHRvbixcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgcm9sZTogXCJzd2l0Y2hcIixcbiAgICAgICAgICBcImFyaWEtY2hlY2tlZFwiOiBjaGVja2VkLFxuICAgICAgICAgIFwiYXJpYS1yZXF1aXJlZFwiOiByZXF1aXJlZCxcbiAgICAgICAgICBcImRhdGEtc3RhdGVcIjogZ2V0U3RhdGUoY2hlY2tlZCksXG4gICAgICAgICAgXCJkYXRhLWRpc2FibGVkXCI6IGRpc2FibGVkID8gXCJcIiA6IHZvaWQgMCxcbiAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAuLi5zd2l0Y2hQcm9wcyxcbiAgICAgICAgICByZWY6IGNvbXBvc2VkUmVmcyxcbiAgICAgICAgICBvbkNsaWNrOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHNldENoZWNrZWQoKHByZXZDaGVja2VkKSA9PiAhcHJldkNoZWNrZWQpO1xuICAgICAgICAgICAgaWYgKGlzRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgaGFzQ29uc3VtZXJTdG9wcGVkUHJvcGFnYXRpb25SZWYuY3VycmVudCA9IGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7XG4gICAgICAgICAgICAgIGlmICghaGFzQ29uc3VtZXJTdG9wcGVkUHJvcGFnYXRpb25SZWYuY3VycmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIGlzRm9ybUNvbnRyb2wgJiYgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgQnViYmxlSW5wdXQsXG4gICAgICAgIHtcbiAgICAgICAgICBjb250cm9sOiBidXR0b24sXG4gICAgICAgICAgYnViYmxlczogIWhhc0NvbnN1bWVyU3RvcHBlZFByb3BhZ2F0aW9uUmVmLmN1cnJlbnQsXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBjaGVja2VkLFxuICAgICAgICAgIHJlcXVpcmVkLFxuICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgIGZvcm0sXG4gICAgICAgICAgc3R5bGU6IHsgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoLTEwMCUpXCIgfVxuICAgICAgICB9XG4gICAgICApXG4gICAgXSB9KTtcbiAgfVxuKTtcblN3aXRjaC5kaXNwbGF5TmFtZSA9IFNXSVRDSF9OQU1FO1xudmFyIFRIVU1CX05BTUUgPSBcIlN3aXRjaFRodW1iXCI7XG52YXIgU3dpdGNoVGh1bWIgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVN3aXRjaCwgLi4udGh1bWJQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVN3aXRjaENvbnRleHQoVEhVTUJfTkFNRSwgX19zY29wZVN3aXRjaCk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBQcmltaXRpdmUuc3BhbixcbiAgICAgIHtcbiAgICAgICAgXCJkYXRhLXN0YXRlXCI6IGdldFN0YXRlKGNvbnRleHQuY2hlY2tlZCksXG4gICAgICAgIFwiZGF0YS1kaXNhYmxlZFwiOiBjb250ZXh0LmRpc2FibGVkID8gXCJcIiA6IHZvaWQgMCxcbiAgICAgICAgLi4udGh1bWJQcm9wcyxcbiAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWZcbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xuU3dpdGNoVGh1bWIuZGlzcGxheU5hbWUgPSBUSFVNQl9OQU1FO1xudmFyIEJ1YmJsZUlucHV0ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udHJvbCwgY2hlY2tlZCwgYnViYmxlcyA9IHRydWUsIC4uLmlucHV0UHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IHByZXZDaGVja2VkID0gdXNlUHJldmlvdXMoY2hlY2tlZCk7XG4gIGNvbnN0IGNvbnRyb2xTaXplID0gdXNlU2l6ZShjb250cm9sKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHJlZi5jdXJyZW50O1xuICAgIGNvbnN0IGlucHV0UHJvdG8gPSB3aW5kb3cuSFRNTElucHV0RWxlbWVudC5wcm90b3R5cGU7XG4gICAgY29uc3QgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaW5wdXRQcm90bywgXCJjaGVja2VkXCIpO1xuICAgIGNvbnN0IHNldENoZWNrZWQgPSBkZXNjcmlwdG9yLnNldDtcbiAgICBpZiAocHJldkNoZWNrZWQgIT09IGNoZWNrZWQgJiYgc2V0Q2hlY2tlZCkge1xuICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRXZlbnQoXCJjbGlja1wiLCB7IGJ1YmJsZXMgfSk7XG4gICAgICBzZXRDaGVja2VkLmNhbGwoaW5wdXQsIGNoZWNrZWQpO1xuICAgICAgaW5wdXQuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gICAgfVxuICB9LCBbcHJldkNoZWNrZWQsIGNoZWNrZWQsIGJ1YmJsZXNdKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgXCJpbnB1dFwiLFxuICAgIHtcbiAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgIFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSxcbiAgICAgIGRlZmF1bHRDaGVja2VkOiBjaGVja2VkLFxuICAgICAgLi4uaW5wdXRQcm9wcyxcbiAgICAgIHRhYkluZGV4OiAtMSxcbiAgICAgIHJlZixcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIC4uLnByb3BzLnN0eWxlLFxuICAgICAgICAuLi5jb250cm9sU2l6ZSxcbiAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIG1hcmdpbjogMFxuICAgICAgfVxuICAgIH1cbiAgKTtcbn07XG5mdW5jdGlvbiBnZXRTdGF0ZShjaGVja2VkKSB7XG4gIHJldHVybiBjaGVja2VkID8gXCJjaGVja2VkXCIgOiBcInVuY2hlY2tlZFwiO1xufVxudmFyIFJvb3QgPSBTd2l0Y2g7XG52YXIgVGh1bWIgPSBTd2l0Y2hUaHVtYjtcbmV4cG9ydCB7XG4gIFJvb3QsXG4gIFN3aXRjaCxcbiAgU3dpdGNoVGh1bWIsXG4gIFRodW1iLFxuICBjcmVhdGVTd2l0Y2hTY29wZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsIlwidXNlIGNsaWVudFwiO1xuXG4vLyBwYWNrYWdlcy9yZWFjdC90YWJzL3NyYy90YWJzLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gXCJAcmFkaXgtdWkvcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbnRleHRcIjtcbmltcG9ydCB7IGNyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBTY29wZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtcm92aW5nLWZvY3VzXCI7XG5pbXBvcnQgeyBQcmVzZW5jZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2VcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgKiBhcyBSb3ZpbmdGb2N1c0dyb3VwIGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtcm92aW5nLWZvY3VzXCI7XG5pbXBvcnQgeyB1c2VEaXJlY3Rpb24gfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRpcmVjdGlvblwiO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxhYmxlU3RhdGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1jb250cm9sbGFibGUtc3RhdGVcIjtcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1pZFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgVEFCU19OQU1FID0gXCJUYWJzXCI7XG52YXIgW2NyZWF0ZVRhYnNDb250ZXh0LCBjcmVhdGVUYWJzU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFRBQlNfTkFNRSwgW1xuICBjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwU2NvcGVcbl0pO1xudmFyIHVzZVJvdmluZ0ZvY3VzR3JvdXBTY29wZSA9IGNyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBTY29wZSgpO1xudmFyIFtUYWJzUHJvdmlkZXIsIHVzZVRhYnNDb250ZXh0XSA9IGNyZWF0ZVRhYnNDb250ZXh0KFRBQlNfTkFNRSk7XG52YXIgVGFicyA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgX19zY29wZVRhYnMsXG4gICAgICB2YWx1ZTogdmFsdWVQcm9wLFxuICAgICAgb25WYWx1ZUNoYW5nZSxcbiAgICAgIGRlZmF1bHRWYWx1ZSxcbiAgICAgIG9yaWVudGF0aW9uID0gXCJob3Jpem9udGFsXCIsXG4gICAgICBkaXIsXG4gICAgICBhY3RpdmF0aW9uTW9kZSA9IFwiYXV0b21hdGljXCIsXG4gICAgICAuLi50YWJzUHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGlyZWN0aW9uID0gdXNlRGlyZWN0aW9uKGRpcik7XG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgICBwcm9wOiB2YWx1ZVByb3AsXG4gICAgICBvbkNoYW5nZTogb25WYWx1ZUNoYW5nZSxcbiAgICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0VmFsdWVcbiAgICB9KTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFRhYnNQcm92aWRlcixcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6IF9fc2NvcGVUYWJzLFxuICAgICAgICBiYXNlSWQ6IHVzZUlkKCksXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBvblZhbHVlQ2hhbmdlOiBzZXRWYWx1ZSxcbiAgICAgICAgb3JpZW50YXRpb24sXG4gICAgICAgIGRpcjogZGlyZWN0aW9uLFxuICAgICAgICBhY3RpdmF0aW9uTW9kZSxcbiAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgUHJpbWl0aXZlLmRpdixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkaXI6IGRpcmVjdGlvbixcbiAgICAgICAgICAgIFwiZGF0YS1vcmllbnRhdGlvblwiOiBvcmllbnRhdGlvbixcbiAgICAgICAgICAgIC4uLnRhYnNQcm9wcyxcbiAgICAgICAgICAgIHJlZjogZm9yd2FyZGVkUmVmXG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcblRhYnMuZGlzcGxheU5hbWUgPSBUQUJTX05BTUU7XG52YXIgVEFCX0xJU1RfTkFNRSA9IFwiVGFic0xpc3RcIjtcbnZhciBUYWJzTGlzdCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlVGFicywgbG9vcCA9IHRydWUsIC4uLmxpc3RQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVRhYnNDb250ZXh0KFRBQl9MSVNUX05BTUUsIF9fc2NvcGVUYWJzKTtcbiAgICBjb25zdCByb3ZpbmdGb2N1c0dyb3VwU2NvcGUgPSB1c2VSb3ZpbmdGb2N1c0dyb3VwU2NvcGUoX19zY29wZVRhYnMpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgUm92aW5nRm9jdXNHcm91cC5Sb290LFxuICAgICAge1xuICAgICAgICBhc0NoaWxkOiB0cnVlLFxuICAgICAgICAuLi5yb3ZpbmdGb2N1c0dyb3VwU2NvcGUsXG4gICAgICAgIG9yaWVudGF0aW9uOiBjb250ZXh0Lm9yaWVudGF0aW9uLFxuICAgICAgICBkaXI6IGNvbnRleHQuZGlyLFxuICAgICAgICBsb29wLFxuICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICBQcmltaXRpdmUuZGl2LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJvbGU6IFwidGFibGlzdFwiLFxuICAgICAgICAgICAgXCJhcmlhLW9yaWVudGF0aW9uXCI6IGNvbnRleHQub3JpZW50YXRpb24sXG4gICAgICAgICAgICAuLi5saXN0UHJvcHMsXG4gICAgICAgICAgICByZWY6IGZvcndhcmRlZFJlZlxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5UYWJzTGlzdC5kaXNwbGF5TmFtZSA9IFRBQl9MSVNUX05BTUU7XG52YXIgVFJJR0dFUl9OQU1FID0gXCJUYWJzVHJpZ2dlclwiO1xudmFyIFRhYnNUcmlnZ2VyID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVUYWJzLCB2YWx1ZSwgZGlzYWJsZWQgPSBmYWxzZSwgLi4udHJpZ2dlclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlVGFic0NvbnRleHQoVFJJR0dFUl9OQU1FLCBfX3Njb3BlVGFicyk7XG4gICAgY29uc3Qgcm92aW5nRm9jdXNHcm91cFNjb3BlID0gdXNlUm92aW5nRm9jdXNHcm91cFNjb3BlKF9fc2NvcGVUYWJzKTtcbiAgICBjb25zdCB0cmlnZ2VySWQgPSBtYWtlVHJpZ2dlcklkKGNvbnRleHQuYmFzZUlkLCB2YWx1ZSk7XG4gICAgY29uc3QgY29udGVudElkID0gbWFrZUNvbnRlbnRJZChjb250ZXh0LmJhc2VJZCwgdmFsdWUpO1xuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB2YWx1ZSA9PT0gY29udGV4dC52YWx1ZTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFJvdmluZ0ZvY3VzR3JvdXAuSXRlbSxcbiAgICAgIHtcbiAgICAgICAgYXNDaGlsZDogdHJ1ZSxcbiAgICAgICAgLi4ucm92aW5nRm9jdXNHcm91cFNjb3BlLFxuICAgICAgICBmb2N1c2FibGU6ICFkaXNhYmxlZCxcbiAgICAgICAgYWN0aXZlOiBpc1NlbGVjdGVkLFxuICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICBQcmltaXRpdmUuYnV0dG9uLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgICByb2xlOiBcInRhYlwiLFxuICAgICAgICAgICAgXCJhcmlhLXNlbGVjdGVkXCI6IGlzU2VsZWN0ZWQsXG4gICAgICAgICAgICBcImFyaWEtY29udHJvbHNcIjogY29udGVudElkLFxuICAgICAgICAgICAgXCJkYXRhLXN0YXRlXCI6IGlzU2VsZWN0ZWQgPyBcImFjdGl2ZVwiIDogXCJpbmFjdGl2ZVwiLFxuICAgICAgICAgICAgXCJkYXRhLWRpc2FibGVkXCI6IGRpc2FibGVkID8gXCJcIiA6IHZvaWQgMCxcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgaWQ6IHRyaWdnZXJJZCxcbiAgICAgICAgICAgIC4uLnRyaWdnZXJQcm9wcyxcbiAgICAgICAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgICAgICAgICAgb25Nb3VzZURvd246IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uTW91c2VEb3duLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFkaXNhYmxlZCAmJiBldmVudC5idXR0b24gPT09IDAgJiYgZXZlbnQuY3RybEtleSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm9uVmFsdWVDaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgb25LZXlEb3duOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoW1wiIFwiLCBcIkVudGVyXCJdLmluY2x1ZGVzKGV2ZW50LmtleSkpIGNvbnRleHQub25WYWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG9uRm9jdXM6IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRm9jdXMsICgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaXNBdXRvbWF0aWNBY3RpdmF0aW9uID0gY29udGV4dC5hY3RpdmF0aW9uTW9kZSAhPT0gXCJtYW51YWxcIjtcbiAgICAgICAgICAgICAgaWYgKCFpc1NlbGVjdGVkICYmICFkaXNhYmxlZCAmJiBpc0F1dG9tYXRpY0FjdGl2YXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm9uVmFsdWVDaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5UYWJzVHJpZ2dlci5kaXNwbGF5TmFtZSA9IFRSSUdHRVJfTkFNRTtcbnZhciBDT05URU5UX05BTUUgPSBcIlRhYnNDb250ZW50XCI7XG52YXIgVGFic0NvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVRhYnMsIHZhbHVlLCBmb3JjZU1vdW50LCBjaGlsZHJlbiwgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlVGFic0NvbnRleHQoQ09OVEVOVF9OQU1FLCBfX3Njb3BlVGFicyk7XG4gICAgY29uc3QgdHJpZ2dlcklkID0gbWFrZVRyaWdnZXJJZChjb250ZXh0LmJhc2VJZCwgdmFsdWUpO1xuICAgIGNvbnN0IGNvbnRlbnRJZCA9IG1ha2VDb250ZW50SWQoY29udGV4dC5iYXNlSWQsIHZhbHVlKTtcbiAgICBjb25zdCBpc1NlbGVjdGVkID0gdmFsdWUgPT09IGNvbnRleHQudmFsdWU7XG4gICAgY29uc3QgaXNNb3VudEFuaW1hdGlvblByZXZlbnRlZFJlZiA9IFJlYWN0LnVzZVJlZihpc1NlbGVjdGVkKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgckFGID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IGlzTW91bnRBbmltYXRpb25QcmV2ZW50ZWRSZWYuY3VycmVudCA9IGZhbHNlKTtcbiAgICAgIHJldHVybiAoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShyQUYpO1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChQcmVzZW5jZSwgeyBwcmVzZW50OiBmb3JjZU1vdW50IHx8IGlzU2VsZWN0ZWQsIGNoaWxkcmVuOiAoeyBwcmVzZW50IH0pID0+IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBQcmltaXRpdmUuZGl2LFxuICAgICAge1xuICAgICAgICBcImRhdGEtc3RhdGVcIjogaXNTZWxlY3RlZCA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCIsXG4gICAgICAgIFwiZGF0YS1vcmllbnRhdGlvblwiOiBjb250ZXh0Lm9yaWVudGF0aW9uLFxuICAgICAgICByb2xlOiBcInRhYnBhbmVsXCIsXG4gICAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IHRyaWdnZXJJZCxcbiAgICAgICAgaGlkZGVuOiAhcHJlc2VudCxcbiAgICAgICAgaWQ6IGNvbnRlbnRJZCxcbiAgICAgICAgdGFiSW5kZXg6IDAsXG4gICAgICAgIC4uLmNvbnRlbnRQcm9wcyxcbiAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgLi4ucHJvcHMuc3R5bGUsXG4gICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGlzTW91bnRBbmltYXRpb25QcmV2ZW50ZWRSZWYuY3VycmVudCA/IFwiMHNcIiA6IHZvaWQgMFxuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogcHJlc2VudCAmJiBjaGlsZHJlblxuICAgICAgfVxuICAgICkgfSk7XG4gIH1cbik7XG5UYWJzQ29udGVudC5kaXNwbGF5TmFtZSA9IENPTlRFTlRfTkFNRTtcbmZ1bmN0aW9uIG1ha2VUcmlnZ2VySWQoYmFzZUlkLCB2YWx1ZSkge1xuICByZXR1cm4gYCR7YmFzZUlkfS10cmlnZ2VyLSR7dmFsdWV9YDtcbn1cbmZ1bmN0aW9uIG1ha2VDb250ZW50SWQoYmFzZUlkLCB2YWx1ZSkge1xuICByZXR1cm4gYCR7YmFzZUlkfS1jb250ZW50LSR7dmFsdWV9YDtcbn1cbnZhciBSb290MiA9IFRhYnM7XG52YXIgTGlzdCA9IFRhYnNMaXN0O1xudmFyIFRyaWdnZXIgPSBUYWJzVHJpZ2dlcjtcbnZhciBDb250ZW50ID0gVGFic0NvbnRlbnQ7XG5leHBvcnQge1xuICBDb250ZW50LFxuICBMaXN0LFxuICBSb290MiBhcyBSb290LFxuICBUYWJzLFxuICBUYWJzQ29udGVudCxcbiAgVGFic0xpc3QsXG4gIFRhYnNUcmlnZ2VyLFxuICBUcmlnZ2VyLFxuICBjcmVhdGVUYWJzU2NvcGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCIvLyBwYWNrYWdlcy9yZWFjdC92aXN1YWxseS1oaWRkZW4vc3JjL3Zpc3VhbGx5LWhpZGRlbi50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmltaXRpdmVcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIE5BTUUgPSBcIlZpc3VhbGx5SGlkZGVuXCI7XG52YXIgVmlzdWFsbHlIaWRkZW4gPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgUHJpbWl0aXZlLnNwYW4sXG4gICAgICB7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21haW4vc2Nzcy9taXhpbnMvX3Zpc3VhbGx5LWhpZGRlbi5zY3NzXG4gICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgICAgd2lkdGg6IDEsXG4gICAgICAgICAgaGVpZ2h0OiAxLFxuICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgbWFyZ2luOiAtMSxcbiAgICAgICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcbiAgICAgICAgICBjbGlwOiBcInJlY3QoMCwgMCwgMCwgMClcIixcbiAgICAgICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgICAgICAgIHdvcmRXcmFwOiBcIm5vcm1hbFwiLFxuICAgICAgICAgIC4uLnByb3BzLnN0eWxlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xuVmlzdWFsbHlIaWRkZW4uZGlzcGxheU5hbWUgPSBOQU1FO1xudmFyIFJvb3QgPSBWaXN1YWxseUhpZGRlbjtcbmV4cG9ydCB7XG4gIFJvb3QsXG4gIFZpc3VhbGx5SGlkZGVuXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIiwiXCJ1c2UgY2xpZW50XCI7XG5cbi8vIHBhY2thZ2VzL3JlYWN0L3Rvb2x0aXAvc3JjL3Rvb2x0aXAudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSBcIkByYWRpeC11aS9wcmltaXRpdmVcIjtcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbnRleHRcIjtcbmltcG9ydCB7IERpc21pc3NhYmxlTGF5ZXIgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyXCI7XG5pbXBvcnQgeyB1c2VJZCB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtaWRcIjtcbmltcG9ydCAqIGFzIFBvcHBlclByaW1pdGl2ZSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXBvcHBlclwiO1xuaW1wb3J0IHsgY3JlYXRlUG9wcGVyU2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXBvcHBlclwiO1xuaW1wb3J0IHsgUG9ydGFsIGFzIFBvcnRhbFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcG9ydGFsXCI7XG5pbXBvcnQgeyBQcmVzZW5jZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2VcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyBTbG90dGFibGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXNsb3RcIjtcbmltcG9ydCB7IHVzZUNvbnRyb2xsYWJsZVN0YXRlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlXCI7XG5pbXBvcnQgKiBhcyBWaXN1YWxseUhpZGRlblByaW1pdGl2ZSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXZpc3VhbGx5LWhpZGRlblwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgW2NyZWF0ZVRvb2x0aXBDb250ZXh0LCBjcmVhdGVUb29sdGlwU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFwiVG9vbHRpcFwiLCBbXG4gIGNyZWF0ZVBvcHBlclNjb3BlXG5dKTtcbnZhciB1c2VQb3BwZXJTY29wZSA9IGNyZWF0ZVBvcHBlclNjb3BlKCk7XG52YXIgUFJPVklERVJfTkFNRSA9IFwiVG9vbHRpcFByb3ZpZGVyXCI7XG52YXIgREVGQVVMVF9ERUxBWV9EVVJBVElPTiA9IDcwMDtcbnZhciBUT09MVElQX09QRU4gPSBcInRvb2x0aXAub3BlblwiO1xudmFyIFtUb29sdGlwUHJvdmlkZXJDb250ZXh0UHJvdmlkZXIsIHVzZVRvb2x0aXBQcm92aWRlckNvbnRleHRdID0gY3JlYXRlVG9vbHRpcENvbnRleHQoUFJPVklERVJfTkFNRSk7XG52YXIgVG9vbHRpcFByb3ZpZGVyID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfX3Njb3BlVG9vbHRpcCxcbiAgICBkZWxheUR1cmF0aW9uID0gREVGQVVMVF9ERUxBWV9EVVJBVElPTixcbiAgICBza2lwRGVsYXlEdXJhdGlvbiA9IDMwMCxcbiAgICBkaXNhYmxlSG92ZXJhYmxlQ29udGVudCA9IGZhbHNlLFxuICAgIGNoaWxkcmVuXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW2lzT3BlbkRlbGF5ZWQsIHNldElzT3BlbkRlbGF5ZWRdID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IGlzUG9pbnRlckluVHJhbnNpdFJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHNraXBEZWxheVRpbWVyUmVmID0gUmVhY3QudXNlUmVmKDApO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNraXBEZWxheVRpbWVyID0gc2tpcERlbGF5VGltZXJSZWYuY3VycmVudDtcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LmNsZWFyVGltZW91dChza2lwRGVsYXlUaW1lcik7XG4gIH0sIFtdKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgVG9vbHRpcFByb3ZpZGVyQ29udGV4dFByb3ZpZGVyLFxuICAgIHtcbiAgICAgIHNjb3BlOiBfX3Njb3BlVG9vbHRpcCxcbiAgICAgIGlzT3BlbkRlbGF5ZWQsXG4gICAgICBkZWxheUR1cmF0aW9uLFxuICAgICAgb25PcGVuOiBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQoc2tpcERlbGF5VGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgIHNldElzT3BlbkRlbGF5ZWQoZmFsc2UpO1xuICAgICAgfSwgW10pLFxuICAgICAgb25DbG9zZTogUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHNraXBEZWxheVRpbWVyUmVmLmN1cnJlbnQpO1xuICAgICAgICBza2lwRGVsYXlUaW1lclJlZi5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoXG4gICAgICAgICAgKCkgPT4gc2V0SXNPcGVuRGVsYXllZCh0cnVlKSxcbiAgICAgICAgICBza2lwRGVsYXlEdXJhdGlvblxuICAgICAgICApO1xuICAgICAgfSwgW3NraXBEZWxheUR1cmF0aW9uXSksXG4gICAgICBpc1BvaW50ZXJJblRyYW5zaXRSZWYsXG4gICAgICBvblBvaW50ZXJJblRyYW5zaXRDaGFuZ2U6IFJlYWN0LnVzZUNhbGxiYWNrKChpblRyYW5zaXQpID0+IHtcbiAgICAgICAgaXNQb2ludGVySW5UcmFuc2l0UmVmLmN1cnJlbnQgPSBpblRyYW5zaXQ7XG4gICAgICB9LCBbXSksXG4gICAgICBkaXNhYmxlSG92ZXJhYmxlQ29udGVudCxcbiAgICAgIGNoaWxkcmVuXG4gICAgfVxuICApO1xufTtcblRvb2x0aXBQcm92aWRlci5kaXNwbGF5TmFtZSA9IFBST1ZJREVSX05BTUU7XG52YXIgVE9PTFRJUF9OQU1FID0gXCJUb29sdGlwXCI7XG52YXIgW1Rvb2x0aXBDb250ZXh0UHJvdmlkZXIsIHVzZVRvb2x0aXBDb250ZXh0XSA9IGNyZWF0ZVRvb2x0aXBDb250ZXh0KFRPT0xUSVBfTkFNRSk7XG52YXIgVG9vbHRpcCA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgX19zY29wZVRvb2x0aXAsXG4gICAgY2hpbGRyZW4sXG4gICAgb3Blbjogb3BlblByb3AsXG4gICAgZGVmYXVsdE9wZW4gPSBmYWxzZSxcbiAgICBvbk9wZW5DaGFuZ2UsXG4gICAgZGlzYWJsZUhvdmVyYWJsZUNvbnRlbnQ6IGRpc2FibGVIb3ZlcmFibGVDb250ZW50UHJvcCxcbiAgICBkZWxheUR1cmF0aW9uOiBkZWxheUR1cmF0aW9uUHJvcFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHByb3ZpZGVyQ29udGV4dCA9IHVzZVRvb2x0aXBQcm92aWRlckNvbnRleHQoVE9PTFRJUF9OQU1FLCBwcm9wcy5fX3Njb3BlVG9vbHRpcCk7XG4gIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVRvb2x0aXApO1xuICBjb25zdCBbdHJpZ2dlciwgc2V0VHJpZ2dlcl0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgY29udGVudElkID0gdXNlSWQoKTtcbiAgY29uc3Qgb3BlblRpbWVyUmVmID0gUmVhY3QudXNlUmVmKDApO1xuICBjb25zdCBkaXNhYmxlSG92ZXJhYmxlQ29udGVudCA9IGRpc2FibGVIb3ZlcmFibGVDb250ZW50UHJvcCA/PyBwcm92aWRlckNvbnRleHQuZGlzYWJsZUhvdmVyYWJsZUNvbnRlbnQ7XG4gIGNvbnN0IGRlbGF5RHVyYXRpb24gPSBkZWxheUR1cmF0aW9uUHJvcCA/PyBwcm92aWRlckNvbnRleHQuZGVsYXlEdXJhdGlvbjtcbiAgY29uc3Qgd2FzT3BlbkRlbGF5ZWRSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCBbb3BlbiA9IGZhbHNlLCBzZXRPcGVuXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICBwcm9wOiBvcGVuUHJvcCxcbiAgICBkZWZhdWx0UHJvcDogZGVmYXVsdE9wZW4sXG4gICAgb25DaGFuZ2U6IChvcGVuMikgPT4ge1xuICAgICAgaWYgKG9wZW4yKSB7XG4gICAgICAgIHByb3ZpZGVyQ29udGV4dC5vbk9wZW4oKTtcbiAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoVE9PTFRJUF9PUEVOKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm92aWRlckNvbnRleHQub25DbG9zZSgpO1xuICAgICAgfVxuICAgICAgb25PcGVuQ2hhbmdlPy4ob3BlbjIpO1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IHN0YXRlQXR0cmlidXRlID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIG9wZW4gPyB3YXNPcGVuRGVsYXllZFJlZi5jdXJyZW50ID8gXCJkZWxheWVkLW9wZW5cIiA6IFwiaW5zdGFudC1vcGVuXCIgOiBcImNsb3NlZFwiO1xuICB9LCBbb3Blbl0pO1xuICBjb25zdCBoYW5kbGVPcGVuID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQob3BlblRpbWVyUmVmLmN1cnJlbnQpO1xuICAgIG9wZW5UaW1lclJlZi5jdXJyZW50ID0gMDtcbiAgICB3YXNPcGVuRGVsYXllZFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgc2V0T3Blbih0cnVlKTtcbiAgfSwgW3NldE9wZW5dKTtcbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgd2luZG93LmNsZWFyVGltZW91dChvcGVuVGltZXJSZWYuY3VycmVudCk7XG4gICAgb3BlblRpbWVyUmVmLmN1cnJlbnQgPSAwO1xuICAgIHNldE9wZW4oZmFsc2UpO1xuICB9LCBbc2V0T3Blbl0pO1xuICBjb25zdCBoYW5kbGVEZWxheWVkT3BlbiA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KG9wZW5UaW1lclJlZi5jdXJyZW50KTtcbiAgICBvcGVuVGltZXJSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHdhc09wZW5EZWxheWVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgIG9wZW5UaW1lclJlZi5jdXJyZW50ID0gMDtcbiAgICB9LCBkZWxheUR1cmF0aW9uKTtcbiAgfSwgW2RlbGF5RHVyYXRpb24sIHNldE9wZW5dKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKG9wZW5UaW1lclJlZi5jdXJyZW50KSB7XG4gICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQob3BlblRpbWVyUmVmLmN1cnJlbnQpO1xuICAgICAgICBvcGVuVGltZXJSZWYuY3VycmVudCA9IDA7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW10pO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChQb3BwZXJQcmltaXRpdmUuUm9vdCwgeyAuLi5wb3BwZXJTY29wZSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgVG9vbHRpcENvbnRleHRQcm92aWRlcixcbiAgICB7XG4gICAgICBzY29wZTogX19zY29wZVRvb2x0aXAsXG4gICAgICBjb250ZW50SWQsXG4gICAgICBvcGVuLFxuICAgICAgc3RhdGVBdHRyaWJ1dGUsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgb25UcmlnZ2VyQ2hhbmdlOiBzZXRUcmlnZ2VyLFxuICAgICAgb25UcmlnZ2VyRW50ZXI6IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKHByb3ZpZGVyQ29udGV4dC5pc09wZW5EZWxheWVkKSBoYW5kbGVEZWxheWVkT3BlbigpO1xuICAgICAgICBlbHNlIGhhbmRsZU9wZW4oKTtcbiAgICAgIH0sIFtwcm92aWRlckNvbnRleHQuaXNPcGVuRGVsYXllZCwgaGFuZGxlRGVsYXllZE9wZW4sIGhhbmRsZU9wZW5dKSxcbiAgICAgIG9uVHJpZ2dlckxlYXZlOiBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlSG92ZXJhYmxlQ29udGVudCkge1xuICAgICAgICAgIGhhbmRsZUNsb3NlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dChvcGVuVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgb3BlblRpbWVyUmVmLmN1cnJlbnQgPSAwO1xuICAgICAgICB9XG4gICAgICB9LCBbaGFuZGxlQ2xvc2UsIGRpc2FibGVIb3ZlcmFibGVDb250ZW50XSksXG4gICAgICBvbk9wZW46IGhhbmRsZU9wZW4sXG4gICAgICBvbkNsb3NlOiBoYW5kbGVDbG9zZSxcbiAgICAgIGRpc2FibGVIb3ZlcmFibGVDb250ZW50LFxuICAgICAgY2hpbGRyZW5cbiAgICB9XG4gICkgfSk7XG59O1xuVG9vbHRpcC5kaXNwbGF5TmFtZSA9IFRPT0xUSVBfTkFNRTtcbnZhciBUUklHR0VSX05BTUUgPSBcIlRvb2x0aXBUcmlnZ2VyXCI7XG52YXIgVG9vbHRpcFRyaWdnZXIgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVRvb2x0aXAsIC4uLnRyaWdnZXJQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVRvb2x0aXBDb250ZXh0KFRSSUdHRVJfTkFNRSwgX19zY29wZVRvb2x0aXApO1xuICAgIGNvbnN0IHByb3ZpZGVyQ29udGV4dCA9IHVzZVRvb2x0aXBQcm92aWRlckNvbnRleHQoVFJJR0dFUl9OQU1FLCBfX3Njb3BlVG9vbHRpcCk7XG4gICAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlVG9vbHRpcCk7XG4gICAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZiwgY29udGV4dC5vblRyaWdnZXJDaGFuZ2UpO1xuICAgIGNvbnN0IGlzUG9pbnRlckRvd25SZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGhhc1BvaW50ZXJNb3ZlT3BlbmVkUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBoYW5kbGVQb2ludGVyVXAgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiBpc1BvaW50ZXJEb3duUmVmLmN1cnJlbnQgPSBmYWxzZSwgW10pO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJ1cFwiLCBoYW5kbGVQb2ludGVyVXApO1xuICAgIH0sIFtoYW5kbGVQb2ludGVyVXBdKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChQb3BwZXJQcmltaXRpdmUuQW5jaG9yLCB7IGFzQ2hpbGQ6IHRydWUsIC4uLnBvcHBlclNjb3BlLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFByaW1pdGl2ZS5idXR0b24sXG4gICAgICB7XG4gICAgICAgIFwiYXJpYS1kZXNjcmliZWRieVwiOiBjb250ZXh0Lm9wZW4gPyBjb250ZXh0LmNvbnRlbnRJZCA6IHZvaWQgMCxcbiAgICAgICAgXCJkYXRhLXN0YXRlXCI6IGNvbnRleHQuc3RhdGVBdHRyaWJ1dGUsXG4gICAgICAgIC4uLnRyaWdnZXJQcm9wcyxcbiAgICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXG4gICAgICAgIG9uUG9pbnRlck1vdmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlck1vdmUsIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudC5wb2ludGVyVHlwZSA9PT0gXCJ0b3VjaFwiKSByZXR1cm47XG4gICAgICAgICAgaWYgKCFoYXNQb2ludGVyTW92ZU9wZW5lZFJlZi5jdXJyZW50ICYmICFwcm92aWRlckNvbnRleHQuaXNQb2ludGVySW5UcmFuc2l0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnRleHQub25UcmlnZ2VyRW50ZXIoKTtcbiAgICAgICAgICAgIGhhc1BvaW50ZXJNb3ZlT3BlbmVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIG9uUG9pbnRlckxlYXZlOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJMZWF2ZSwgKCkgPT4ge1xuICAgICAgICAgIGNvbnRleHQub25UcmlnZ2VyTGVhdmUoKTtcbiAgICAgICAgICBoYXNQb2ludGVyTW92ZU9wZW5lZFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIH0pLFxuICAgICAgICBvblBvaW50ZXJEb3duOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJEb3duLCAoKSA9PiB7XG4gICAgICAgICAgaXNQb2ludGVyRG93blJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcnVwXCIsIGhhbmRsZVBvaW50ZXJVcCwgeyBvbmNlOiB0cnVlIH0pO1xuICAgICAgICB9KSxcbiAgICAgICAgb25Gb2N1czogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Gb2N1cywgKCkgPT4ge1xuICAgICAgICAgIGlmICghaXNQb2ludGVyRG93blJlZi5jdXJyZW50KSBjb250ZXh0Lm9uT3BlbigpO1xuICAgICAgICB9KSxcbiAgICAgICAgb25CbHVyOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkJsdXIsIGNvbnRleHQub25DbG9zZSksXG4gICAgICAgIG9uQ2xpY2s6IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQ2xpY2ssIGNvbnRleHQub25DbG9zZSlcbiAgICAgIH1cbiAgICApIH0pO1xuICB9XG4pO1xuVG9vbHRpcFRyaWdnZXIuZGlzcGxheU5hbWUgPSBUUklHR0VSX05BTUU7XG52YXIgUE9SVEFMX05BTUUgPSBcIlRvb2x0aXBQb3J0YWxcIjtcbnZhciBbUG9ydGFsUHJvdmlkZXIsIHVzZVBvcnRhbENvbnRleHRdID0gY3JlYXRlVG9vbHRpcENvbnRleHQoUE9SVEFMX05BTUUsIHtcbiAgZm9yY2VNb3VudDogdm9pZCAwXG59KTtcbnZhciBUb29sdGlwUG9ydGFsID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZVRvb2x0aXAsIGZvcmNlTW91bnQsIGNoaWxkcmVuLCBjb250YWluZXIgfSA9IHByb3BzO1xuICBjb25zdCBjb250ZXh0ID0gdXNlVG9vbHRpcENvbnRleHQoUE9SVEFMX05BTUUsIF9fc2NvcGVUb29sdGlwKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUG9ydGFsUHJvdmlkZXIsIHsgc2NvcGU6IF9fc2NvcGVUb29sdGlwLCBmb3JjZU1vdW50LCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChQcmVzZW5jZSwgeyBwcmVzZW50OiBmb3JjZU1vdW50IHx8IGNvbnRleHQub3BlbiwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goUG9ydGFsUHJpbWl0aXZlLCB7IGFzQ2hpbGQ6IHRydWUsIGNvbnRhaW5lciwgY2hpbGRyZW4gfSkgfSkgfSk7XG59O1xuVG9vbHRpcFBvcnRhbC5kaXNwbGF5TmFtZSA9IFBPUlRBTF9OQU1FO1xudmFyIENPTlRFTlRfTkFNRSA9IFwiVG9vbHRpcENvbnRlbnRcIjtcbnZhciBUb29sdGlwQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgcG9ydGFsQ29udGV4dCA9IHVzZVBvcnRhbENvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlVG9vbHRpcCk7XG4gICAgY29uc3QgeyBmb3JjZU1vdW50ID0gcG9ydGFsQ29udGV4dC5mb3JjZU1vdW50LCBzaWRlID0gXCJ0b3BcIiwgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlVG9vbHRpcENvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlVG9vbHRpcCk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUHJlc2VuY2UsIHsgcHJlc2VudDogZm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW4sIGNoaWxkcmVuOiBjb250ZXh0LmRpc2FibGVIb3ZlcmFibGVDb250ZW50ID8gLyogQF9fUFVSRV9fICovIGpzeChUb29sdGlwQ29udGVudEltcGwsIHsgc2lkZSwgLi4uY29udGVudFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goVG9vbHRpcENvbnRlbnRIb3ZlcmFibGUsIHsgc2lkZSwgLi4uY29udGVudFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KSB9KTtcbiAgfVxuKTtcbnZhciBUb29sdGlwQ29udGVudEhvdmVyYWJsZSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZVRvb2x0aXBDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZVRvb2x0aXApO1xuICBjb25zdCBwcm92aWRlckNvbnRleHQgPSB1c2VUb29sdGlwUHJvdmlkZXJDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZVRvb2x0aXApO1xuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG4gIGNvbnN0IFtwb2ludGVyR3JhY2VBcmVhLCBzZXRQb2ludGVyR3JhY2VBcmVhXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICBjb25zdCB7IHRyaWdnZXIsIG9uQ2xvc2UgfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGNvbnRlbnQgPSByZWYuY3VycmVudDtcbiAgY29uc3QgeyBvblBvaW50ZXJJblRyYW5zaXRDaGFuZ2UgfSA9IHByb3ZpZGVyQ29udGV4dDtcbiAgY29uc3QgaGFuZGxlUmVtb3ZlR3JhY2VBcmVhID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFBvaW50ZXJHcmFjZUFyZWEobnVsbCk7XG4gICAgb25Qb2ludGVySW5UcmFuc2l0Q2hhbmdlKGZhbHNlKTtcbiAgfSwgW29uUG9pbnRlckluVHJhbnNpdENoYW5nZV0pO1xuICBjb25zdCBoYW5kbGVDcmVhdGVHcmFjZUFyZWEgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAoZXZlbnQsIGhvdmVyVGFyZ2V0KSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50VGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldDtcbiAgICAgIGNvbnN0IGV4aXRQb2ludCA9IHsgeDogZXZlbnQuY2xpZW50WCwgeTogZXZlbnQuY2xpZW50WSB9O1xuICAgICAgY29uc3QgZXhpdFNpZGUgPSBnZXRFeGl0U2lkZUZyb21SZWN0KGV4aXRQb2ludCwgY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7XG4gICAgICBjb25zdCBwYWRkZWRFeGl0UG9pbnRzID0gZ2V0UGFkZGVkRXhpdFBvaW50cyhleGl0UG9pbnQsIGV4aXRTaWRlKTtcbiAgICAgIGNvbnN0IGhvdmVyVGFyZ2V0UG9pbnRzID0gZ2V0UG9pbnRzRnJvbVJlY3QoaG92ZXJUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuICAgICAgY29uc3QgZ3JhY2VBcmVhID0gZ2V0SHVsbChbLi4ucGFkZGVkRXhpdFBvaW50cywgLi4uaG92ZXJUYXJnZXRQb2ludHNdKTtcbiAgICAgIHNldFBvaW50ZXJHcmFjZUFyZWEoZ3JhY2VBcmVhKTtcbiAgICAgIG9uUG9pbnRlckluVHJhbnNpdENoYW5nZSh0cnVlKTtcbiAgICB9LFxuICAgIFtvblBvaW50ZXJJblRyYW5zaXRDaGFuZ2VdXG4gICk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IGhhbmRsZVJlbW92ZUdyYWNlQXJlYSgpO1xuICB9LCBbaGFuZGxlUmVtb3ZlR3JhY2VBcmVhXSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRyaWdnZXIgJiYgY29udGVudCkge1xuICAgICAgY29uc3QgaGFuZGxlVHJpZ2dlckxlYXZlID0gKGV2ZW50KSA9PiBoYW5kbGVDcmVhdGVHcmFjZUFyZWEoZXZlbnQsIGNvbnRlbnQpO1xuICAgICAgY29uc3QgaGFuZGxlQ29udGVudExlYXZlID0gKGV2ZW50KSA9PiBoYW5kbGVDcmVhdGVHcmFjZUFyZWEoZXZlbnQsIHRyaWdnZXIpO1xuICAgICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmxlYXZlXCIsIGhhbmRsZVRyaWdnZXJMZWF2ZSk7XG4gICAgICBjb250ZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVybGVhdmVcIiwgaGFuZGxlQ29udGVudExlYXZlKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHRyaWdnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJsZWF2ZVwiLCBoYW5kbGVUcmlnZ2VyTGVhdmUpO1xuICAgICAgICBjb250ZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVybGVhdmVcIiwgaGFuZGxlQ29udGVudExlYXZlKTtcbiAgICAgIH07XG4gICAgfVxuICB9LCBbdHJpZ2dlciwgY29udGVudCwgaGFuZGxlQ3JlYXRlR3JhY2VBcmVhLCBoYW5kbGVSZW1vdmVHcmFjZUFyZWFdKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocG9pbnRlckdyYWNlQXJlYSkge1xuICAgICAgY29uc3QgaGFuZGxlVHJhY2tQb2ludGVyR3JhY2UgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICBjb25zdCBwb2ludGVyUG9zaXRpb24gPSB7IHg6IGV2ZW50LmNsaWVudFgsIHk6IGV2ZW50LmNsaWVudFkgfTtcbiAgICAgICAgY29uc3QgaGFzRW50ZXJlZFRhcmdldCA9IHRyaWdnZXI/LmNvbnRhaW5zKHRhcmdldCkgfHwgY29udGVudD8uY29udGFpbnModGFyZ2V0KTtcbiAgICAgICAgY29uc3QgaXNQb2ludGVyT3V0c2lkZUdyYWNlQXJlYSA9ICFpc1BvaW50SW5Qb2x5Z29uKHBvaW50ZXJQb3NpdGlvbiwgcG9pbnRlckdyYWNlQXJlYSk7XG4gICAgICAgIGlmIChoYXNFbnRlcmVkVGFyZ2V0KSB7XG4gICAgICAgICAgaGFuZGxlUmVtb3ZlR3JhY2VBcmVhKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNQb2ludGVyT3V0c2lkZUdyYWNlQXJlYSkge1xuICAgICAgICAgIGhhbmRsZVJlbW92ZUdyYWNlQXJlYSgpO1xuICAgICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVybW92ZVwiLCBoYW5kbGVUcmFja1BvaW50ZXJHcmFjZSk7XG4gICAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJtb3ZlXCIsIGhhbmRsZVRyYWNrUG9pbnRlckdyYWNlKTtcbiAgICB9XG4gIH0sIFt0cmlnZ2VyLCBjb250ZW50LCBwb2ludGVyR3JhY2VBcmVhLCBvbkNsb3NlLCBoYW5kbGVSZW1vdmVHcmFjZUFyZWFdKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goVG9vbHRpcENvbnRlbnRJbXBsLCB7IC4uLnByb3BzLCByZWY6IGNvbXBvc2VkUmVmcyB9KTtcbn0pO1xudmFyIFtWaXN1YWxseUhpZGRlbkNvbnRlbnRDb250ZXh0UHJvdmlkZXIsIHVzZVZpc3VhbGx5SGlkZGVuQ29udGVudENvbnRleHRdID0gY3JlYXRlVG9vbHRpcENvbnRleHQoVE9PTFRJUF9OQU1FLCB7IGlzSW5zaWRlOiBmYWxzZSB9KTtcbnZhciBUb29sdGlwQ29udGVudEltcGwgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIF9fc2NvcGVUb29sdGlwLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBcImFyaWEtbGFiZWxcIjogYXJpYUxhYmVsLFxuICAgICAgb25Fc2NhcGVLZXlEb3duLFxuICAgICAgb25Qb2ludGVyRG93bk91dHNpZGUsXG4gICAgICAuLi5jb250ZW50UHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVRvb2x0aXBDb250ZXh0KENPTlRFTlRfTkFNRSwgX19zY29wZVRvb2x0aXApO1xuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVRvb2x0aXApO1xuICAgIGNvbnN0IHsgb25DbG9zZSB9ID0gY29udGV4dDtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihUT09MVElQX09QRU4sIG9uQ2xvc2UpO1xuICAgICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoVE9PTFRJUF9PUEVOLCBvbkNsb3NlKTtcbiAgICB9LCBbb25DbG9zZV0pO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoY29udGV4dC50cmlnZ2VyKSB7XG4gICAgICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9IChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgICBpZiAodGFyZ2V0Py5jb250YWlucyhjb250ZXh0LnRyaWdnZXIpKSBvbkNsb3NlKCk7XG4gICAgICAgIH07XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGhhbmRsZVNjcm9sbCwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgaGFuZGxlU2Nyb2xsLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgICB9XG4gICAgfSwgW2NvbnRleHQudHJpZ2dlciwgb25DbG9zZV0pO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgRGlzbWlzc2FibGVMYXllcixcbiAgICAgIHtcbiAgICAgICAgYXNDaGlsZDogdHJ1ZSxcbiAgICAgICAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzOiBmYWxzZSxcbiAgICAgICAgb25Fc2NhcGVLZXlEb3duLFxuICAgICAgICBvblBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgICAgb25Gb2N1c091dHNpZGU6IChldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSxcbiAgICAgICAgb25EaXNtaXNzOiBvbkNsb3NlLFxuICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoXG4gICAgICAgICAgUG9wcGVyUHJpbWl0aXZlLkNvbnRlbnQsXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJkYXRhLXN0YXRlXCI6IGNvbnRleHQuc3RhdGVBdHRyaWJ1dGUsXG4gICAgICAgICAgICAuLi5wb3BwZXJTY29wZSxcbiAgICAgICAgICAgIC4uLmNvbnRlbnRQcm9wcyxcbiAgICAgICAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgLi4uY29udGVudFByb3BzLnN0eWxlLFxuICAgICAgICAgICAgICAvLyByZS1uYW1lc3BhY2UgZXhwb3NlZCBjb250ZW50IGN1c3RvbSBwcm9wZXJ0aWVzXG4gICAgICAgICAgICAgIC4uLntcbiAgICAgICAgICAgICAgICBcIi0tcmFkaXgtdG9vbHRpcC1jb250ZW50LXRyYW5zZm9ybS1vcmlnaW5cIjogXCJ2YXIoLS1yYWRpeC1wb3BwZXItdHJhbnNmb3JtLW9yaWdpbilcIixcbiAgICAgICAgICAgICAgICBcIi0tcmFkaXgtdG9vbHRpcC1jb250ZW50LWF2YWlsYWJsZS13aWR0aFwiOiBcInZhcigtLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtd2lkdGgpXCIsXG4gICAgICAgICAgICAgICAgXCItLXJhZGl4LXRvb2x0aXAtY29udGVudC1hdmFpbGFibGUtaGVpZ2h0XCI6IFwidmFyKC0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS1oZWlnaHQpXCIsXG4gICAgICAgICAgICAgICAgXCItLXJhZGl4LXRvb2x0aXAtdHJpZ2dlci13aWR0aFwiOiBcInZhcigtLXJhZGl4LXBvcHBlci1hbmNob3Itd2lkdGgpXCIsXG4gICAgICAgICAgICAgICAgXCItLXJhZGl4LXRvb2x0aXAtdHJpZ2dlci1oZWlnaHRcIjogXCJ2YXIoLS1yYWRpeC1wb3BwZXItYW5jaG9yLWhlaWdodClcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChTbG90dGFibGUsIHsgY2hpbGRyZW4gfSksXG4gICAgICAgICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goVmlzdWFsbHlIaWRkZW5Db250ZW50Q29udGV4dFByb3ZpZGVyLCB7IHNjb3BlOiBfX3Njb3BlVG9vbHRpcCwgaXNJbnNpZGU6IHRydWUsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFZpc3VhbGx5SGlkZGVuUHJpbWl0aXZlLlJvb3QsIHsgaWQ6IGNvbnRleHQuY29udGVudElkLCByb2xlOiBcInRvb2x0aXBcIiwgY2hpbGRyZW46IGFyaWFMYWJlbCB8fCBjaGlsZHJlbiB9KSB9KVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5Ub29sdGlwQ29udGVudC5kaXNwbGF5TmFtZSA9IENPTlRFTlRfTkFNRTtcbnZhciBBUlJPV19OQU1FID0gXCJUb29sdGlwQXJyb3dcIjtcbnZhciBUb29sdGlwQXJyb3cgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVRvb2x0aXAsIC4uLmFycm93UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVRvb2x0aXApO1xuICAgIGNvbnN0IHZpc3VhbGx5SGlkZGVuQ29udGVudENvbnRleHQgPSB1c2VWaXN1YWxseUhpZGRlbkNvbnRlbnRDb250ZXh0KFxuICAgICAgQVJST1dfTkFNRSxcbiAgICAgIF9fc2NvcGVUb29sdGlwXG4gICAgKTtcbiAgICByZXR1cm4gdmlzdWFsbHlIaWRkZW5Db250ZW50Q29udGV4dC5pc0luc2lkZSA/IG51bGwgOiAvKiBAX19QVVJFX18gKi8ganN4KFBvcHBlclByaW1pdGl2ZS5BcnJvdywgeyAuLi5wb3BwZXJTY29wZSwgLi4uYXJyb3dQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XG4gIH1cbik7XG5Ub29sdGlwQXJyb3cuZGlzcGxheU5hbWUgPSBBUlJPV19OQU1FO1xuZnVuY3Rpb24gZ2V0RXhpdFNpZGVGcm9tUmVjdChwb2ludCwgcmVjdCkge1xuICBjb25zdCB0b3AgPSBNYXRoLmFicyhyZWN0LnRvcCAtIHBvaW50LnkpO1xuICBjb25zdCBib3R0b20gPSBNYXRoLmFicyhyZWN0LmJvdHRvbSAtIHBvaW50LnkpO1xuICBjb25zdCByaWdodCA9IE1hdGguYWJzKHJlY3QucmlnaHQgLSBwb2ludC54KTtcbiAgY29uc3QgbGVmdCA9IE1hdGguYWJzKHJlY3QubGVmdCAtIHBvaW50LngpO1xuICBzd2l0Y2ggKE1hdGgubWluKHRvcCwgYm90dG9tLCByaWdodCwgbGVmdCkpIHtcbiAgICBjYXNlIGxlZnQ6XG4gICAgICByZXR1cm4gXCJsZWZ0XCI7XG4gICAgY2FzZSByaWdodDpcbiAgICAgIHJldHVybiBcInJpZ2h0XCI7XG4gICAgY2FzZSB0b3A6XG4gICAgICByZXR1cm4gXCJ0b3BcIjtcbiAgICBjYXNlIGJvdHRvbTpcbiAgICAgIHJldHVybiBcImJvdHRvbVwiO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1bnJlYWNoYWJsZVwiKTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0UGFkZGVkRXhpdFBvaW50cyhleGl0UG9pbnQsIGV4aXRTaWRlLCBwYWRkaW5nID0gNSkge1xuICBjb25zdCBwYWRkZWRFeGl0UG9pbnRzID0gW107XG4gIHN3aXRjaCAoZXhpdFNpZGUpIHtcbiAgICBjYXNlIFwidG9wXCI6XG4gICAgICBwYWRkZWRFeGl0UG9pbnRzLnB1c2goXG4gICAgICAgIHsgeDogZXhpdFBvaW50LnggLSBwYWRkaW5nLCB5OiBleGl0UG9pbnQueSArIHBhZGRpbmcgfSxcbiAgICAgICAgeyB4OiBleGl0UG9pbnQueCArIHBhZGRpbmcsIHk6IGV4aXRQb2ludC55ICsgcGFkZGluZyB9XG4gICAgICApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImJvdHRvbVwiOlxuICAgICAgcGFkZGVkRXhpdFBvaW50cy5wdXNoKFxuICAgICAgICB7IHg6IGV4aXRQb2ludC54IC0gcGFkZGluZywgeTogZXhpdFBvaW50LnkgLSBwYWRkaW5nIH0sXG4gICAgICAgIHsgeDogZXhpdFBvaW50LnggKyBwYWRkaW5nLCB5OiBleGl0UG9pbnQueSAtIHBhZGRpbmcgfVxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJsZWZ0XCI6XG4gICAgICBwYWRkZWRFeGl0UG9pbnRzLnB1c2goXG4gICAgICAgIHsgeDogZXhpdFBvaW50LnggKyBwYWRkaW5nLCB5OiBleGl0UG9pbnQueSAtIHBhZGRpbmcgfSxcbiAgICAgICAgeyB4OiBleGl0UG9pbnQueCArIHBhZGRpbmcsIHk6IGV4aXRQb2ludC55ICsgcGFkZGluZyB9XG4gICAgICApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcInJpZ2h0XCI6XG4gICAgICBwYWRkZWRFeGl0UG9pbnRzLnB1c2goXG4gICAgICAgIHsgeDogZXhpdFBvaW50LnggLSBwYWRkaW5nLCB5OiBleGl0UG9pbnQueSAtIHBhZGRpbmcgfSxcbiAgICAgICAgeyB4OiBleGl0UG9pbnQueCAtIHBhZGRpbmcsIHk6IGV4aXRQb2ludC55ICsgcGFkZGluZyB9XG4gICAgICApO1xuICAgICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIHBhZGRlZEV4aXRQb2ludHM7XG59XG5mdW5jdGlvbiBnZXRQb2ludHNGcm9tUmVjdChyZWN0KSB7XG4gIGNvbnN0IHsgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0IH0gPSByZWN0O1xuICByZXR1cm4gW1xuICAgIHsgeDogbGVmdCwgeTogdG9wIH0sXG4gICAgeyB4OiByaWdodCwgeTogdG9wIH0sXG4gICAgeyB4OiByaWdodCwgeTogYm90dG9tIH0sXG4gICAgeyB4OiBsZWZ0LCB5OiBib3R0b20gfVxuICBdO1xufVxuZnVuY3Rpb24gaXNQb2ludEluUG9seWdvbihwb2ludCwgcG9seWdvbikge1xuICBjb25zdCB7IHgsIHkgfSA9IHBvaW50O1xuICBsZXQgaW5zaWRlID0gZmFsc2U7XG4gIGZvciAobGV0IGkgPSAwLCBqID0gcG9seWdvbi5sZW5ndGggLSAxOyBpIDwgcG9seWdvbi5sZW5ndGg7IGogPSBpKyspIHtcbiAgICBjb25zdCB4aSA9IHBvbHlnb25baV0ueDtcbiAgICBjb25zdCB5aSA9IHBvbHlnb25baV0ueTtcbiAgICBjb25zdCB4aiA9IHBvbHlnb25bal0ueDtcbiAgICBjb25zdCB5aiA9IHBvbHlnb25bal0ueTtcbiAgICBjb25zdCBpbnRlcnNlY3QgPSB5aSA+IHkgIT09IHlqID4geSAmJiB4IDwgKHhqIC0geGkpICogKHkgLSB5aSkgLyAoeWogLSB5aSkgKyB4aTtcbiAgICBpZiAoaW50ZXJzZWN0KSBpbnNpZGUgPSAhaW5zaWRlO1xuICB9XG4gIHJldHVybiBpbnNpZGU7XG59XG5mdW5jdGlvbiBnZXRIdWxsKHBvaW50cykge1xuICBjb25zdCBuZXdQb2ludHMgPSBwb2ludHMuc2xpY2UoKTtcbiAgbmV3UG9pbnRzLnNvcnQoKGEsIGIpID0+IHtcbiAgICBpZiAoYS54IDwgYi54KSByZXR1cm4gLTE7XG4gICAgZWxzZSBpZiAoYS54ID4gYi54KSByZXR1cm4gMTtcbiAgICBlbHNlIGlmIChhLnkgPCBiLnkpIHJldHVybiAtMTtcbiAgICBlbHNlIGlmIChhLnkgPiBiLnkpIHJldHVybiAxO1xuICAgIGVsc2UgcmV0dXJuIDA7XG4gIH0pO1xuICByZXR1cm4gZ2V0SHVsbFByZXNvcnRlZChuZXdQb2ludHMpO1xufVxuZnVuY3Rpb24gZ2V0SHVsbFByZXNvcnRlZChwb2ludHMpIHtcbiAgaWYgKHBvaW50cy5sZW5ndGggPD0gMSkgcmV0dXJuIHBvaW50cy5zbGljZSgpO1xuICBjb25zdCB1cHBlckh1bGwgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBwID0gcG9pbnRzW2ldO1xuICAgIHdoaWxlICh1cHBlckh1bGwubGVuZ3RoID49IDIpIHtcbiAgICAgIGNvbnN0IHEgPSB1cHBlckh1bGxbdXBwZXJIdWxsLmxlbmd0aCAtIDFdO1xuICAgICAgY29uc3QgciA9IHVwcGVySHVsbFt1cHBlckh1bGwubGVuZ3RoIC0gMl07XG4gICAgICBpZiAoKHEueCAtIHIueCkgKiAocC55IC0gci55KSA+PSAocS55IC0gci55KSAqIChwLnggLSByLngpKSB1cHBlckh1bGwucG9wKCk7XG4gICAgICBlbHNlIGJyZWFrO1xuICAgIH1cbiAgICB1cHBlckh1bGwucHVzaChwKTtcbiAgfVxuICB1cHBlckh1bGwucG9wKCk7XG4gIGNvbnN0IGxvd2VySHVsbCA9IFtdO1xuICBmb3IgKGxldCBpID0gcG9pbnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgY29uc3QgcCA9IHBvaW50c1tpXTtcbiAgICB3aGlsZSAobG93ZXJIdWxsLmxlbmd0aCA+PSAyKSB7XG4gICAgICBjb25zdCBxID0gbG93ZXJIdWxsW2xvd2VySHVsbC5sZW5ndGggLSAxXTtcbiAgICAgIGNvbnN0IHIgPSBsb3dlckh1bGxbbG93ZXJIdWxsLmxlbmd0aCAtIDJdO1xuICAgICAgaWYgKChxLnggLSByLngpICogKHAueSAtIHIueSkgPj0gKHEueSAtIHIueSkgKiAocC54IC0gci54KSkgbG93ZXJIdWxsLnBvcCgpO1xuICAgICAgZWxzZSBicmVhaztcbiAgICB9XG4gICAgbG93ZXJIdWxsLnB1c2gocCk7XG4gIH1cbiAgbG93ZXJIdWxsLnBvcCgpO1xuICBpZiAodXBwZXJIdWxsLmxlbmd0aCA9PT0gMSAmJiBsb3dlckh1bGwubGVuZ3RoID09PSAxICYmIHVwcGVySHVsbFswXS54ID09PSBsb3dlckh1bGxbMF0ueCAmJiB1cHBlckh1bGxbMF0ueSA9PT0gbG93ZXJIdWxsWzBdLnkpIHtcbiAgICByZXR1cm4gdXBwZXJIdWxsO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB1cHBlckh1bGwuY29uY2F0KGxvd2VySHVsbCk7XG4gIH1cbn1cbnZhciBQcm92aWRlciA9IFRvb2x0aXBQcm92aWRlcjtcbnZhciBSb290MyA9IFRvb2x0aXA7XG52YXIgVHJpZ2dlciA9IFRvb2x0aXBUcmlnZ2VyO1xudmFyIFBvcnRhbCA9IFRvb2x0aXBQb3J0YWw7XG52YXIgQ29udGVudDIgPSBUb29sdGlwQ29udGVudDtcbnZhciBBcnJvdzIgPSBUb29sdGlwQXJyb3c7XG5leHBvcnQge1xuICBBcnJvdzIgYXMgQXJyb3csXG4gIENvbnRlbnQyIGFzIENvbnRlbnQsXG4gIFBvcnRhbCxcbiAgUHJvdmlkZXIsXG4gIFJvb3QzIGFzIFJvb3QsXG4gIFRvb2x0aXAsXG4gIFRvb2x0aXBBcnJvdyxcbiAgVG9vbHRpcENvbnRlbnQsXG4gIFRvb2x0aXBQb3J0YWwsXG4gIFRvb2x0aXBQcm92aWRlcixcbiAgVG9vbHRpcFRyaWdnZXIsXG4gIFRyaWdnZXIsXG4gIGNyZWF0ZVRvb2x0aXBTY29wZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGxdLCJuYW1lcyI6WyJoYXNPd24iLCJoYXNPd25Qcm9wZXJ0eSIsImNsYXNzTmFtZXMiLCJjbGFzc2VzIiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZyIsImFwcGVuZENsYXNzIiwicGFyc2VWYWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsImFwcGx5IiwidG9TdHJpbmciLCJPYmplY3QiLCJwcm90b3R5cGUiLCJpbmNsdWRlcyIsImtleSIsImNhbGwiLCJ2YWx1ZSIsIm5ld0NsYXNzIiwibW9kdWxlIiwiZXhwb3J0cyIsImRlZmF1bHQiLCJ3aW5kb3ciLCJjcmVhdGVDb250ZXh0U2NvcGUiLCJzY29wZU5hbWUiLCJjcmVhdGVDb250ZXh0U2NvcGVEZXBzIiwiZGVmYXVsdENvbnRleHRzIiwiY3JlYXRlU2NvcGUiLCJzY29wZUNvbnRleHRzIiwibWFwIiwiZGVmYXVsdENvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJzY29wZSIsImNvbnRleHRzIiwidXNlTWVtbyIsInJvb3RDb21wb25lbnROYW1lIiwiQmFzZUNvbnRleHQiLCJpbmRleCIsIlByb3ZpZGVyIiwicHJvcHMiLCJjaGlsZHJlbiIsImNvbnRleHQiLCJDb250ZXh0IiwidmFsdWVzIiwianN4IiwiZGlzcGxheU5hbWUiLCJjb25zdW1lck5hbWUiLCJ1c2VDb250ZXh0IiwiRXJyb3IiLCJjb21wb3NlQ29udGV4dFNjb3BlcyIsInNjb3BlcyIsImJhc2VTY29wZSIsInNjb3BlSG9va3MiLCJjcmVhdGVTY29wZTIiLCJ1c2VTY29wZSIsIm92ZXJyaWRlU2NvcGVzIiwibmV4dFNjb3BlcyIsInJlZHVjZSIsIm5leHRTY29wZXMyIiwic2V0UmVmIiwicmVmIiwiY3VycmVudCIsImNvbXBvc2VSZWZzIiwicmVmcyIsIm5vZGUiLCJoYXNDbGVhbnVwIiwiY2xlYW51cHMiLCJjbGVhbnVwIiwidXNlQ29tcG9zZWRSZWZzIiwidXNlQ2FsbGJhY2siLCJjb21wb3NlRXZlbnRIYW5kbGVycyIsIm9yaWdpbmFsRXZlbnRIYW5kbGVyIiwib3VyRXZlbnRIYW5kbGVyIiwiY2hlY2tGb3JEZWZhdWx0UHJldmVudGVkIiwiZXZlbnQiLCJkZWZhdWx0UHJldmVudGVkIiwidXNlTGF5b3V0RWZmZWN0MiIsIkJvb2xlYW4iLCJnbG9iYWxUaGlzIiwiZG9jdW1lbnQiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VSZWFjdElkIiwiY291bnQiLCJ1c2VJZCIsImRldGVybWluaXN0aWNJZCIsImlkIiwic2V0SWQiLCJ1c2VTdGF0ZSIsInJlYWN0SWQiLCJTdHJpbmciLCJ1c2VDYWxsYmFja1JlZiIsImNhbGxiYWNrIiwiY2FsbGJhY2tSZWYiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJhcmdzIiwidXNlQ29udHJvbGxhYmxlU3RhdGUiLCJwcm9wIiwiZGVmYXVsdFByb3AiLCJvbkNoYW5nZSIsInVuY29udHJvbGxlZFByb3AiLCJzZXRVbmNvbnRyb2xsZWRQcm9wIiwidW5jb250cm9sbGVkU3RhdGUiLCJwcmV2VmFsdWVSZWYiLCJoYW5kbGVDaGFuZ2UiLCJ1c2VVbmNvbnRyb2xsZWRTdGF0ZSIsImlzQ29udHJvbGxlZCIsIm5leHRWYWx1ZSIsInZhbHVlMiIsIlNsb3QiLCJmb3J3YXJkUmVmIiwiZm9yd2FyZGVkUmVmIiwic2xvdFByb3BzIiwiY2hpbGRyZW5BcnJheSIsIkNoaWxkcmVuIiwidG9BcnJheSIsInNsb3R0YWJsZSIsImZpbmQiLCJpc1Nsb3R0YWJsZSIsIm5ld0VsZW1lbnQiLCJuZXdDaGlsZHJlbiIsImNoaWxkIiwib25seSIsImlzVmFsaWRFbGVtZW50IiwiU2xvdENsb25lIiwiY2xvbmVFbGVtZW50IiwiY2hpbGRyZW5SZWYiLCJlbGVtZW50IiwiZ2V0dGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0IiwibWF5V2FybiIsImlzUmVhY3RXYXJuaW5nIiwiZ2V0RWxlbWVudFJlZiIsInByb3BzMiIsImNoaWxkUHJvcHMiLCJvdmVycmlkZVByb3BzIiwicHJvcE5hbWUiLCJzbG90UHJvcFZhbHVlIiwiY2hpbGRQcm9wVmFsdWUiLCJ0ZXN0IiwiZmlsdGVyIiwiam9pbiIsIm1lcmdlUHJvcHMiLCJ0eXBlIiwiRnJhZ21lbnQiLCJTbG90dGFibGUiLCJGcmFnbWVudDIiLCJQcmltaXRpdmUiLCJwcmltaXRpdmUiLCJOb2RlIiwiYXNDaGlsZCIsInByaW1pdGl2ZVByb3BzIiwiQ29tcCIsIlN5bWJvbCIsImZvciIsImRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCIsInRhcmdldCIsIlJlYWN0RE9NIiwiZmx1c2hTeW5jIiwiZGlzcGF0Y2hFdmVudCIsIm9yaWdpbmFsQm9keVBvaW50ZXJFdmVudHMiLCJDT05URVhUX1VQREFURSIsIlBPSU5URVJfRE9XTl9PVVRTSURFIiwiRk9DVVNfT1VUU0lERSIsIkRpc21pc3NhYmxlTGF5ZXJDb250ZXh0IiwibGF5ZXJzIiwiU2V0IiwibGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQiLCJicmFuY2hlcyIsIkRpc21pc3NhYmxlTGF5ZXIiLCJkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMiLCJvbkVzY2FwZUtleURvd24iLCJvblBvaW50ZXJEb3duT3V0c2lkZSIsIm9uRm9jdXNPdXRzaWRlIiwib25JbnRlcmFjdE91dHNpZGUiLCJvbkRpc21pc3MiLCJsYXllclByb3BzIiwic2V0Tm9kZSIsIm93bmVyRG9jdW1lbnQiLCJmb3JjZSIsImNvbXBvc2VkUmVmcyIsIm5vZGUyIiwiZnJvbSIsImhpZ2hlc3RMYXllcldpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkIiwic2xpY2UiLCJoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZEluZGV4IiwiaW5kZXhPZiIsImlzQm9keVBvaW50ZXJFdmVudHNEaXNhYmxlZCIsInNpemUiLCJpc1BvaW50ZXJFdmVudHNFbmFibGVkIiwicG9pbnRlckRvd25PdXRzaWRlIiwiaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlIiwiaXNQb2ludGVySW5zaWRlUmVhY3RUcmVlUmVmIiwiaGFuZGxlQ2xpY2tSZWYiLCJoYW5kbGVQb2ludGVyRG93biIsImhhbmRsZUFuZERpc3BhdGNoUG9pbnRlckRvd25PdXRzaWRlRXZlbnQyIiwiaGFuZGxlQW5kRGlzcGF0Y2hDdXN0b21FdmVudCIsImV2ZW50RGV0YWlsIiwiZGlzY3JldGUiLCJvcmlnaW5hbEV2ZW50IiwicG9pbnRlclR5cGUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9uY2UiLCJ0aW1lcklkIiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsIm9uUG9pbnRlckRvd25DYXB0dXJlIiwidXNlUG9pbnRlckRvd25PdXRzaWRlIiwiaXNQb2ludGVyRG93bk9uQnJhbmNoIiwic29tZSIsImJyYW5jaCIsImNvbnRhaW5zIiwiZm9jdXNPdXRzaWRlIiwiaGFuZGxlRm9jdXNPdXRzaWRlIiwiaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZiIsImhhbmRsZUZvY3VzIiwib25Gb2N1c0NhcHR1cmUiLCJvbkJsdXJDYXB0dXJlIiwidXNlRm9jdXNPdXRzaWRlIiwib25Fc2NhcGVLZXlEb3duUHJvcCIsImhhbmRsZUtleURvd24iLCJjYXB0dXJlIiwidXNlRXNjYXBlS2V5ZG93biIsInByZXZlbnREZWZhdWx0IiwiYm9keSIsInN0eWxlIiwicG9pbnRlckV2ZW50cyIsImFkZCIsImRpc3BhdGNoVXBkYXRlIiwiZGVsZXRlIiwiaGFuZGxlVXBkYXRlIiwiZGl2IiwiQ3VzdG9tRXZlbnQiLCJuYW1lIiwiaGFuZGxlciIsImRldGFpbCIsImJ1YmJsZXMiLCJjYW5jZWxhYmxlIiwiQVVUT0ZPQ1VTX09OX01PVU5UIiwiQVVUT0ZPQ1VTX09OX1VOTU9VTlQiLCJFVkVOVF9PUFRJT05TIiwiRm9jdXNTY29wZSIsImxvb3AiLCJ0cmFwcGVkIiwib25Nb3VudEF1dG9Gb2N1cyIsIm9uTW91bnRBdXRvRm9jdXNQcm9wIiwib25Vbm1vdW50QXV0b0ZvY3VzIiwib25Vbm1vdW50QXV0b0ZvY3VzUHJvcCIsInNjb3BlUHJvcHMiLCJjb250YWluZXIiLCJzZXRDb250YWluZXIiLCJsYXN0Rm9jdXNlZEVsZW1lbnRSZWYiLCJmb2N1c1Njb3BlIiwicGF1c2VkIiwicGF1c2UiLCJ0aGlzIiwicmVzdW1lIiwiaGFuZGxlRm9jdXNJbjIiLCJmb2N1cyIsInNlbGVjdCIsImhhbmRsZUZvY3VzT3V0MiIsInJlbGF0ZWRUYXJnZXQiLCJoYW5kbGVNdXRhdGlvbnMyIiwibXV0YXRpb25zIiwiYWN0aXZlRWxlbWVudCIsIm11dGF0aW9uIiwicmVtb3ZlZE5vZGVzIiwibXV0YXRpb25PYnNlcnZlciIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJvYnNlcnZlIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImRpc2Nvbm5lY3QiLCJmb2N1c1Njb3Blc1N0YWNrIiwicHJldmlvdXNseUZvY3VzZWRFbGVtZW50IiwibW91bnRFdmVudCIsImNhbmRpZGF0ZXMiLCJjYW5kaWRhdGUiLCJmb2N1c0ZpcnN0IiwiaXRlbXMiLCJnZXRUYWJiYWJsZUNhbmRpZGF0ZXMiLCJpdGVtIiwidGFnTmFtZSIsInVubW91bnRFdmVudCIsInJlbW92ZSIsImlzVGFiS2V5IiwiYWx0S2V5IiwiY3RybEtleSIsIm1ldGFLZXkiLCJmb2N1c2VkRWxlbWVudCIsImNvbnRhaW5lcjIiLCJjdXJyZW50VGFyZ2V0IiwiZmlyc3QiLCJsYXN0IiwiZmluZFZpc2libGUiLCJyZXZlcnNlIiwiZ2V0VGFiYmFibGVFZGdlcyIsInNoaWZ0S2V5IiwidGFiSW5kZXgiLCJvbktleURvd24iLCJub2RlcyIsIndhbGtlciIsImNyZWF0ZVRyZWVXYWxrZXIiLCJOb2RlRmlsdGVyIiwiU0hPV19FTEVNRU5UIiwiYWNjZXB0Tm9kZSIsImlzSGlkZGVuSW5wdXQiLCJkaXNhYmxlZCIsImhpZGRlbiIsIkZJTFRFUl9TS0lQIiwiRklMVEVSX0FDQ0VQVCIsIm5leHROb2RlIiwicHVzaCIsImN1cnJlbnROb2RlIiwiZWxlbWVudHMiLCJpc0hpZGRlbiIsInVwVG8iLCJnZXRDb21wdXRlZFN0eWxlIiwidmlzaWJpbGl0eSIsImRpc3BsYXkiLCJwYXJlbnRFbGVtZW50IiwicHJldmVudFNjcm9sbCIsIkhUTUxJbnB1dEVsZW1lbnQiLCJpc1NlbGVjdGFibGVJbnB1dCIsInN0YWNrIiwiYWN0aXZlRm9jdXNTY29wZSIsImFycmF5UmVtb3ZlIiwidW5zaGlmdCIsImNyZWF0ZUZvY3VzU2NvcGVzU3RhY2siLCJhcnJheSIsInVwZGF0ZWRBcnJheSIsInNwbGljZSIsIlBvcnRhbCIsImNvbnRhaW5lclByb3AiLCJwb3J0YWxQcm9wcyIsIm1vdW50ZWQiLCJzZXRNb3VudGVkIiwiY3JlYXRlUG9ydGFsIiwiUHJlc2VuY2UiLCJwcmVzZW50IiwicHJlc2VuY2UiLCJSZWFjdDIiLCJzdHlsZXNSZWYiLCJwcmV2UHJlc2VudFJlZiIsInByZXZBbmltYXRpb25OYW1lUmVmIiwiaW5pdGlhbFN0YXRlIiwic3RhdGUiLCJzZW5kIiwibWFjaGluZSIsInVzZVJlZHVjZXIiLCJ1c2VTdGF0ZU1hY2hpbmUiLCJVTk1PVU5UIiwiQU5JTUFUSU9OX09VVCIsInVubW91bnRTdXNwZW5kZWQiLCJNT1VOVCIsIkFOSU1BVElPTl9FTkQiLCJ1bm1vdW50ZWQiLCJjdXJyZW50QW5pbWF0aW9uTmFtZSIsImdldEFuaW1hdGlvbk5hbWUiLCJzdHlsZXMiLCJ3YXNQcmVzZW50IiwicHJldkFuaW1hdGlvbk5hbWUiLCJ0aW1lb3V0SWQiLCJvd25lcldpbmRvdyIsImRlZmF1bHRWaWV3IiwiaGFuZGxlQW5pbWF0aW9uRW5kIiwiaXNDdXJyZW50QW5pbWF0aW9uIiwiYW5pbWF0aW9uTmFtZSIsImN1cnJlbnRGaWxsTW9kZSIsImFuaW1hdGlvbkZpbGxNb2RlIiwiaGFuZGxlQW5pbWF0aW9uU3RhcnQiLCJpc1ByZXNlbnQiLCJ1c2VQcmVzZW5jZSIsInVzZUZvY3VzR3VhcmRzIiwiZWRnZUd1YXJkcyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJpbnNlcnRBZGphY2VudEVsZW1lbnQiLCJjcmVhdGVGb2N1c0d1YXJkIiwiZm9yRWFjaCIsImNyZWF0ZUVsZW1lbnQiLCJzZXRBdHRyaWJ1dGUiLCJvdXRsaW5lIiwib3BhY2l0eSIsInBvc2l0aW9uIiwiX19hc3NpZ24iLCJhc3NpZ24iLCJ0IiwicyIsIm4iLCJwIiwiX19yZXN0IiwiZSIsImdldE93blByb3BlcnR5U3ltYm9scyIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiU3VwcHJlc3NlZEVycm9yIiwiemVyb1JpZ2h0Q2xhc3NOYW1lIiwiZnVsbFdpZHRoQ2xhc3NOYW1lIiwiYXNzaWduUmVmIiwidXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCIsImN1cnJlbnRWYWx1ZXMiLCJXZWFrTWFwIiwidXNlTWVyZ2VSZWZzIiwiZGVmYXVsdFZhbHVlIiwiaW5pdGlhbFZhbHVlIiwibmV3VmFsdWUiLCJmYWNhZGUiLCJvbGRWYWx1ZSIsInByZXZSZWZzXzEiLCJuZXh0UmVmc18xIiwiY3VycmVudF8xIiwiaGFzIiwic2V0IiwiSXRvSSIsImEiLCJTaWRlQ2FyIiwiX2EiLCJzaWRlQ2FyIiwicmVzdCIsIlRhcmdldCIsInJlYWQiLCJpc1NpZGVDYXJFeHBvcnQiLCJlZmZlY3RDYXIiLCJvcHRpb25zIiwibWVkaXVtIiwiZGVmYXVsdHMiLCJtaWRkbGV3YXJlIiwiYnVmZmVyIiwiYXNzaWduZWQiLCJ1c2VNZWRpdW0iLCJkYXRhIiwieCIsImFzc2lnblN5bmNNZWRpdW0iLCJjYiIsImNicyIsImFzc2lnbk1lZGl1bSIsInBlbmRpbmdRdWV1ZSIsImV4ZWN1dGVRdWV1ZSIsImN5Y2xlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiaW5uZXJDcmVhdGVNZWRpdW0iLCJhc3luYyIsInNzciIsImNyZWF0ZVNpZGVjYXJNZWRpdW0iLCJub3RoaW5nIiwiUmVtb3ZlU2Nyb2xsIiwicGFyZW50UmVmIiwib25TY3JvbGxDYXB0dXJlIiwib25XaGVlbENhcHR1cmUiLCJvblRvdWNoTW92ZUNhcHR1cmUiLCJjYWxsYmFja3MiLCJzZXRDYWxsYmFja3MiLCJmb3J3YXJkUHJvcHMiLCJjbGFzc05hbWUiLCJyZW1vdmVTY3JvbGxCYXIiLCJlbmFibGVkIiwic2hhcmRzIiwibm9Jc29sYXRpb24iLCJpbmVydCIsImFsbG93UGluY2hab29tIiwiX2IiLCJhcyIsIkNvbnRhaW5lciIsImdhcE1vZGUiLCJjb250YWluZXJSZWYiLCJjb250YWluZXJQcm9wcyIsImxvY2tSZWYiLCJkZWZhdWx0UHJvcHMiLCJmdWxsV2lkdGgiLCJ6ZXJvUmlnaHQiLCJtYWtlU3R5bGVUYWciLCJ0YWciLCJub25jZSIsIl9fd2VicGFja19ub25jZV9fIiwiZ2V0Tm9uY2UiLCJzdHlsZXNoZWV0U2luZ2xldG9uIiwiY291bnRlciIsInN0eWxlc2hlZXQiLCJjc3MiLCJzdHlsZVNoZWV0IiwiY3NzVGV4dCIsImFwcGVuZENoaWxkIiwiY3JlYXRlVGV4dE5vZGUiLCJpbmplY3RTdHlsZXMiLCJoZWFkIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJwYXJlbnROb2RlIiwicmVtb3ZlQ2hpbGQiLCJzdHlsZVNpbmdsZXRvbiIsInNoZWV0IiwidXNlU3R5bGUiLCJpc0R5bmFtaWMiLCJkeW5hbWljIiwiemVyb0dhcCIsImxlZnQiLCJ0b3AiLCJyaWdodCIsImdhcCIsInBhcnNlIiwicGFyc2VJbnQiLCJnZXRHYXBXaWR0aCIsIm9mZnNldHMiLCJjcyIsImdldE9mZnNldCIsImRvY3VtZW50V2lkdGgiLCJkb2N1bWVudEVsZW1lbnQiLCJjbGllbnRXaWR0aCIsIndpbmRvd1dpZHRoIiwiaW5uZXJXaWR0aCIsIk1hdGgiLCJtYXgiLCJTdHlsZSIsImxvY2tBdHRyaWJ1dGUiLCJnZXRTdHlsZXMiLCJhbGxvd1JlbGF0aXZlIiwiaW1wb3J0YW50IiwiY29uY2F0IiwiZ2V0Q3VycmVudFVzZUNvdW50ZXIiLCJnZXRBdHRyaWJ1dGUiLCJpc0Zpbml0ZSIsIlJlbW92ZVNjcm9sbEJhciIsIm5vUmVsYXRpdmUiLCJub0ltcG9ydGFudCIsIm5ld0NvdW50ZXIiLCJyZW1vdmVBdHRyaWJ1dGUiLCJwYXNzaXZlU3VwcG9ydGVkIiwiZGVmaW5lUHJvcGVydHkiLCJlcnIiLCJub25QYXNzaXZlIiwicGFzc2l2ZSIsImVsZW1lbnRDYW5CZVNjcm9sbGVkIiwib3ZlcmZsb3ciLCJFbGVtZW50Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwiYWx3YXlzQ29udGFpbnNTY3JvbGwiLCJsb2NhdGlvbkNvdWxkQmVTY3JvbGxlZCIsImF4aXMiLCJTaGFkb3dSb290IiwiaG9zdCIsImVsZW1lbnRDb3VsZEJlU2Nyb2xsZWQiLCJnZXRTY3JvbGxWYXJpYWJsZXMiLCJlbGVtZW50Q291bGRCZVZTY3JvbGxlZCIsImVsZW1lbnRDb3VsZEJlSFNjcm9sbGVkIiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsTGVmdCIsInNjcm9sbFdpZHRoIiwiZ2V0SFNjcm9sbFZhcmlhYmxlcyIsImdldFRvdWNoWFkiLCJjaGFuZ2VkVG91Y2hlcyIsImNsaWVudFgiLCJjbGllbnRZIiwiZ2V0RGVsdGFYWSIsImRlbHRhWCIsImRlbHRhWSIsImV4dHJhY3RSZWYiLCJnZW5lcmF0ZVN0eWxlIiwiaWRDb3VudGVyIiwibG9ja1N0YWNrIiwiZ2V0T3V0ZXJtb3N0U2hhZG93UGFyZW50Iiwic2hhZG93UGFyZW50IiwiZXhwb3J0ZWQiLCJzaG91bGRQcmV2ZW50UXVldWUiLCJ0b3VjaFN0YXJ0UmVmIiwiYWN0aXZlQXhpcyIsImxhc3RQcm9wcyIsImNsYXNzTGlzdCIsImFsbG93XzEiLCJ0byIsInBhY2siLCJhciIsImwiLCJfX3NwcmVhZEFycmF5IiwiZWwiLCJzaG91bGRDYW5jZWxFdmVudCIsInBhcmVudCIsInRvdWNoZXMiLCJjdXJyZW50QXhpcyIsInRvdWNoIiwidG91Y2hTdGFydCIsIm1vdmVEaXJlY3Rpb24iLCJhYnMiLCJjYW5CZVNjcm9sbGVkSW5NYWluRGlyZWN0aW9uIiwiY2FuY2VsaW5nQXhpcyIsImVuZFRhcmdldCIsInNvdXJjZURlbHRhIiwiZGlyZWN0aW9uRmFjdG9yIiwiZGlyZWN0aW9uIiwiZ2V0RGlyZWN0aW9uRmFjdG9yIiwiZGVsdGEiLCJ0YXJnZXRJbkxvY2siLCJzaG91bGRDYW5jZWxTY3JvbGwiLCJpc0RlbHRhUG9zaXRpdmUiLCJhdmFpbGFibGVTY3JvbGwiLCJhdmFpbGFibGVTY3JvbGxUb3AiLCJlbGVtZW50U2Nyb2xsIiwiaGFuZGxlU2Nyb2xsIiwic2hvdWxkUHJldmVudCIsIl9ldmVudCIsInNvdXJjZUV2ZW50IiwieSIsInNob3VsZCIsInNoYXJkTm9kZXMiLCJzaG91bGRDYW5jZWwiLCJzY3JvbGxUb3VjaFN0YXJ0IiwidW5kZWZpbmVkIiwic2Nyb2xsV2hlZWwiLCJzY3JvbGxUb3VjaE1vdmUiLCJpbnN0IiwiUmVhY3RSZW1vdmVTY3JvbGwiLCJjb3VudGVyTWFwIiwidW5jb250cm9sbGVkTm9kZXMiLCJtYXJrZXJNYXAiLCJsb2NrQ291bnQiLCJ1bndyYXBIb3N0IiwiYXBwbHlBdHRyaWJ1dGVUb090aGVycyIsIm9yaWdpbmFsVGFyZ2V0IiwibWFya2VyTmFtZSIsImNvbnRyb2xBdHRyaWJ1dGUiLCJ0YXJnZXRzIiwiY29ycmVjdGVkVGFyZ2V0IiwiY29uc29sZSIsImVycm9yIiwiY29ycmVjdFRhcmdldHMiLCJtYXJrZXJDb3VudGVyIiwiaGlkZGVuTm9kZXMiLCJlbGVtZW50c1RvS2VlcCIsImVsZW1lbnRzVG9TdG9wIiwia2VlcCIsImRlZXAiLCJhdHRyIiwiYWxyZWFkeUhpZGRlbiIsImNvdW50ZXJWYWx1ZSIsIm1hcmtlclZhbHVlIiwiY2xlYXIiLCJoaWRlT3RoZXJzIiwiYWN0aXZlUGFyZW50Tm9kZSIsImdldERlZmF1bHRQYXJlbnQiLCJESUFMT0dfTkFNRSIsImNyZWF0ZURpYWxvZ0NvbnRleHQiLCJjcmVhdGVEaWFsb2dTY29wZSIsIkRpYWxvZ1Byb3ZpZGVyIiwidXNlRGlhbG9nQ29udGV4dCIsIkRpYWxvZyIsIl9fc2NvcGVEaWFsb2ciLCJvcGVuIiwib3BlblByb3AiLCJkZWZhdWx0T3BlbiIsIm9uT3BlbkNoYW5nZSIsIm1vZGFsIiwidHJpZ2dlclJlZiIsImNvbnRlbnRSZWYiLCJzZXRPcGVuIiwiY29udGVudElkIiwidGl0bGVJZCIsImRlc2NyaXB0aW9uSWQiLCJvbk9wZW5Ub2dnbGUiLCJwcmV2T3BlbiIsIlRSSUdHRVJfTkFNRSIsIkRpYWxvZ1RyaWdnZXIiLCJ0cmlnZ2VyUHJvcHMiLCJjb21wb3NlZFRyaWdnZXJSZWYiLCJidXR0b24iLCJnZXRTdGF0ZSIsIm9uQ2xpY2siLCJQT1JUQUxfTkFNRSIsIlBvcnRhbFByb3ZpZGVyIiwidXNlUG9ydGFsQ29udGV4dCIsImZvcmNlTW91bnQiLCJEaWFsb2dQb3J0YWwiLCJQb3J0YWxQcmltaXRpdmUiLCJPVkVSTEFZX05BTUUiLCJEaWFsb2dPdmVybGF5IiwicG9ydGFsQ29udGV4dCIsIm92ZXJsYXlQcm9wcyIsIkRpYWxvZ092ZXJsYXlJbXBsIiwiQ09OVEVOVF9OQU1FIiwiRGlhbG9nQ29udGVudCIsImNvbnRlbnRQcm9wcyIsIkRpYWxvZ0NvbnRlbnRNb2RhbCIsIkRpYWxvZ0NvbnRlbnROb25Nb2RhbCIsImNvbnRlbnQiLCJEaWFsb2dDb250ZW50SW1wbCIsInRyYXBGb2N1cyIsIm9uQ2xvc2VBdXRvRm9jdXMiLCJjdHJsTGVmdENsaWNrIiwiaGFzSW50ZXJhY3RlZE91dHNpZGVSZWYiLCJoYXNQb2ludGVyRG93bk91dHNpZGVSZWYiLCJ0YXJnZXRJc1RyaWdnZXIiLCJvbk9wZW5BdXRvRm9jdXMiLCJqc3hzIiwicm9sZSIsIlRpdGxlV2FybmluZyIsIkRlc2NyaXB0aW9uV2FybmluZyIsIlRJVExFX05BTUUiLCJEaWFsb2dUaXRsZSIsInRpdGxlUHJvcHMiLCJoMiIsIkRFU0NSSVBUSU9OX05BTUUiLCJEaWFsb2dEZXNjcmlwdGlvbiIsImRlc2NyaXB0aW9uUHJvcHMiLCJDTE9TRV9OQU1FIiwiRGlhbG9nQ2xvc2UiLCJjbG9zZVByb3BzIiwiVElUTEVfV0FSTklOR19OQU1FIiwiV2FybmluZ1Byb3ZpZGVyIiwidXNlV2FybmluZ0NvbnRleHQiLCJjb250ZW50TmFtZSIsInRpdGxlTmFtZSIsImRvY3NTbHVnIiwidGl0bGVXYXJuaW5nQ29udGV4dCIsIk1FU1NBR0UiLCJnZXRFbGVtZW50QnlJZCIsImRlc2NyaWJlZEJ5SWQiLCJ3YXJuIiwiUm9vdCIsIlRyaWdnZXIiLCJPdmVybGF5IiwiQ29udGVudCIsIlRpdGxlIiwiRGVzY3JpcHRpb24iLCJDbG9zZSIsIlJPT1RfTkFNRSIsImNyZWF0ZUFsZXJ0RGlhbG9nQ29udGV4dCIsImNyZWF0ZUFsZXJ0RGlhbG9nU2NvcGUiLCJ1c2VEaWFsb2dTY29wZSIsIkFsZXJ0RGlhbG9nIiwiX19zY29wZUFsZXJ0RGlhbG9nIiwiYWxlcnREaWFsb2dQcm9wcyIsImRpYWxvZ1Njb3BlIiwiRGlhbG9nUHJpbWl0aXZlLlJvb3QiLCJEaWFsb2dQcmltaXRpdmUuVHJpZ2dlciIsIkFsZXJ0RGlhbG9nUG9ydGFsIiwiRGlhbG9nUHJpbWl0aXZlLlBvcnRhbCIsIkFsZXJ0RGlhbG9nT3ZlcmxheSIsIkRpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5IiwiQWxlcnREaWFsb2dDb250ZW50UHJvdmlkZXIiLCJ1c2VBbGVydERpYWxvZ0NvbnRlbnRDb250ZXh0IiwiQWxlcnREaWFsb2dDb250ZW50IiwiY2FuY2VsUmVmIiwiRGlhbG9nUHJpbWl0aXZlLldhcm5pbmdQcm92aWRlciIsIkRpYWxvZ1ByaW1pdGl2ZS5Db250ZW50IiwiQWxlcnREaWFsb2dUaXRsZSIsIkRpYWxvZ1ByaW1pdGl2ZS5UaXRsZSIsIkFsZXJ0RGlhbG9nRGVzY3JpcHRpb24iLCJEaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb24iLCJBbGVydERpYWxvZ0FjdGlvbiIsImFjdGlvblByb3BzIiwiRGlhbG9nUHJpbWl0aXZlLkNsb3NlIiwiQ0FOQ0VMX05BTUUiLCJBbGVydERpYWxvZ0NhbmNlbCIsImNhbmNlbFByb3BzIiwiX3BhdGgiLCJSb290MiIsIlBvcnRhbDIiLCJPdmVybGF5MiIsIkNvbnRlbnQyIiwiQWN0aW9uIiwiQ2FuY2VsIiwiVGl0bGUyIiwiRGVzY3JpcHRpb24yIiwiX2V4dGVuZHMiLCJiaW5kIiwiciIsIlN2Z0Nsb3NlIiwieG1sbnMiLCJmaWxsIiwidmlld0JveCIsIndpZHRoIiwiaGVpZ2h0IiwiZCIsIk1lbW8iLCJtZW1vIiwiTG9hZGVyIiwiaW5oZXJpdENvbG9yIiwibG9hZGVyIiwiQnV0dG9uIiwidmFyaWFudCIsInByZWZpeCIsInN1ZmZpeCIsInNob3dMb2FkZXIiLCJjbiIsIkFWQVRBUl9OQU1FIiwiY3JlYXRlQXZhdGFyQ29udGV4dCIsImNyZWF0ZUF2YXRhclNjb3BlIiwiQXZhdGFyUHJvdmlkZXIiLCJ1c2VBdmF0YXJDb250ZXh0IiwiQXZhdGFyIiwiX19zY29wZUF2YXRhciIsImF2YXRhclByb3BzIiwiaW1hZ2VMb2FkaW5nU3RhdHVzIiwic2V0SW1hZ2VMb2FkaW5nU3RhdHVzIiwib25JbWFnZUxvYWRpbmdTdGF0dXNDaGFuZ2UiLCJzcGFuIiwiSU1BR0VfTkFNRSIsIkF2YXRhckltYWdlIiwic3JjIiwib25Mb2FkaW5nU3RhdHVzQ2hhbmdlIiwiaW1hZ2VQcm9wcyIsInJlZmVycmVyUG9saWN5IiwibG9hZGluZ1N0YXR1cyIsInNldExvYWRpbmdTdGF0dXMiLCJpc01vdW50ZWQiLCJpbWFnZSIsIkltYWdlIiwidXBkYXRlU3RhdHVzIiwic3RhdHVzIiwib25sb2FkIiwib25lcnJvciIsInVzZUltYWdlTG9hZGluZ1N0YXR1cyIsImhhbmRsZUxvYWRpbmdTdGF0dXNDaGFuZ2UiLCJpbWciLCJGQUxMQkFDS19OQU1FIiwiQXZhdGFyRmFsbGJhY2siLCJkZWxheU1zIiwiZmFsbGJhY2tQcm9wcyIsImNhblJlbmRlciIsInNldENhblJlbmRlciIsIl9nIiwiRmFsbGJhY2siLCJTdmdBZGQiLCJtYXNrVW5pdHMiLCJtYXNrVHlwZSIsIm1hc2siLCJfcGF0aDIiLCJTdmdBcnJvd0xlZnQiLCJTdmdBcnJvd0xlZnREb3VibGUiLCJTdmdBcnJvd0xlZnRTaW5nbGUiLCJTdmdBdCIsIlN2Z0JhckNoYXJ0IiwiU3ZnQmxvY2siLCJTdmdCbHVyT24iLCJTdmdDYWNoZWQiLCJTdmdDYWxlbmRhciIsIl9kZWZzIiwiU3ZnQ2FtZXJhIiwiU3ZnQ2FtZXJhT3V0bGluZWQiLCJjbGlwUGF0aCIsIl9wYXRoMyIsIl9wYXRoNCIsIl9wYXRoNSIsIlN2Z0NoYXRJY29uIiwiU3ZnQ2hhdERpc2FibGVkIiwiZmlsbFJ1bGUiLCJjbGlwUnVsZSIsIlN2Z0NoZWNrIiwiU3ZnQ2hlY2tDaXJjbGUiLCJTdmdDaGVja0NpcmNsZVNvbGlkIiwiU3ZnQ2hlY2tib3giLCJTdmdDbG9jayIsIlN2Z0NvbXByZXNzIiwiU3ZnQ29weSIsIlN2Z0N1c3RvbWl6ZSIsIlN2Z0RlbGV0ZSIsIlN2Z0RvdHMiLCJTdmdEb3dubG9hZCIsIlN2Z0VkaXQiLCJTdmdFbGVjdHJpY0JvbHQiLCJTdmdFdmVudERldGFpbHMiLCJTdmdFdmVudFJlcGVhdCIsIlN2Z0V4Y2xhbWF0aW9uIiwiU3ZnRXhwYW5kIiwiU3ZnRXh0ZXJuYWxMaW5rIiwiU3ZnRmVhdHVyZUFjdGlvbiIsImN4IiwiY3kiLCJTdmdGaWxlIiwiU3ZnRmlsdGVyTGlzdCIsIlN2Z0ZsaXBDYW1lcmEiLCJTdmdHZWFyIiwiU3ZnSGVscCIsIlN2Z0hlbHBTb2xpZCIsIlN2Z0luZm8iLCJTdmdJbmZvMSIsIlN2Z0luZm9DaXJjbGUiLCJTdmdJbmZvQ2lyY2xlU29saWQiLCJTdmdJdGVtcyIsIlN2Z0tleWJvYXJkQXJyb3dEb3duIiwiU3ZnTGlzdCIsIlN2Z0xvY2F0aW9uIiwiU3ZnTG9jayIsIlN2Z01hZ2ljIiwiU3ZnTWFpbCIsIlN2Z01hdGVyaWFscyIsIlN2Z01pY09mZiIsIlN2Z01pY09mZjEiLCJTdmdNaWNPdXRsaW5lZCIsIlN2Z01pYzEiLCJTdmdNaWNCb2xkIiwiU3ZnTW9iaWxlRGV2aWNlIiwiZm9udFNpemUiLCJTdmdPdXRTdGFnZSIsIlN2Z1Bhc3N3b3JkRXllIiwiU3ZnUGFzc3dvcmRFeWVDcm9zc2VkIiwiU3ZnUGVvcGxlIiwiU3ZnUGVvcGxlQ29tbXVuaXR5IiwiU3ZnUGVyc29uIiwiU3ZnUGVyc29uRGVsZXRlIiwiU3ZnUGxheSIsIlN2Z1BsdXMiLCJTdmdQb2xsIiwiU3ZnUHJlc2VudGF0aW9uIiwiU3ZnUHJvZ3Jlc3MiLCJTdmdSZXBsYXlEaXNhYmxlZCIsInN0cm9rZSIsIlN2Z1Jlc3RhcnQiLCJTdmdSb2NrZXQiLCJTdmdTY3JlZW5QZXJzb24iLCJTdmdTY3JlZW5TY2FyZVdpbmRvd3MiLCJTdmdTY3JlZW5TaGFyaW5nIiwiU3ZnU2VhcmNoIiwiU3ZnU2lkZWJhciIsIlN2Z1NtaWxlIiwiU3ZnU3BvdGxpZ2h0IiwiU3ZnU3RhY2tlZEVtYWlsIiwiU3ZnU3RhZ2UiLCJTdmdTeW5jIiwiU3ZnVGltZXNDaXJjbGUiLCJTdmdUb2RheSIsIlN2Z1RyYXNoIiwiU3ZnVHJlbmRpbmdEb3duIiwiU3ZnVHJlbmRpbmdVcCIsIlN2Z1VuZG8iLCJTdmdWaWRlb2NhbSIsIlN2Z1ZpZGVvY2FtMSIsIlN2Z1ZvbHVtZU9mZjEiLCJTdmdWb2x1bWVVcCIsIlN2Z1dhcm5pbmciLCJTdmdXYXJuaW5nMSIsIkFWQVRBUl9TSVpFUyIsImNvbG9yIiwiQ2FyZCIsImlzRW1wdHlTdGF0ZUF2YWlsYWJsZSIsImlzTG9hZGluZyIsImVtcHR5U3RhdGVJY29uIiwiZW1wdHlTdGF0ZVRleHQiLCJzaGFkb3dFbGV2YXRpb24iLCJpc0RlZmF1bHRJY29uIiwiaXNEZWZhdWx0VGV4dCIsInNoYWRvdyIsImVtcHR5U3RhdGUiLCJCYXJDaGFydEljb24iLCJ1c2VQcmV2aW91cyIsInByZXZpb3VzIiwidXNlU2l6ZSIsInNldFNpemUiLCJvZmZzZXRXaWR0aCIsIm9mZnNldEhlaWdodCIsInJlc2l6ZU9ic2VydmVyIiwiUmVzaXplT2JzZXJ2ZXIiLCJlbnRyaWVzIiwiZW50cnkiLCJib3JkZXJTaXplRW50cnkiLCJib3JkZXJTaXplIiwiYm94IiwidW5vYnNlcnZlIiwiQ0hFQ0tCT1hfTkFNRSIsImNyZWF0ZUNoZWNrYm94Q29udGV4dCIsImNyZWF0ZUNoZWNrYm94U2NvcGUiLCJDaGVja2JveFByb3ZpZGVyIiwidXNlQ2hlY2tib3hDb250ZXh0IiwiQ2hlY2tib3giLCJfX3Njb3BlQ2hlY2tib3giLCJjaGVja2VkIiwiY2hlY2tlZFByb3AiLCJkZWZhdWx0Q2hlY2tlZCIsInJlcXVpcmVkIiwib25DaGVja2VkQ2hhbmdlIiwiZm9ybSIsImNoZWNrYm94UHJvcHMiLCJzZXRCdXR0b24iLCJoYXNDb25zdW1lclN0b3BwZWRQcm9wYWdhdGlvblJlZiIsImlzRm9ybUNvbnRyb2wiLCJjbG9zZXN0Iiwic2V0Q2hlY2tlZCIsImluaXRpYWxDaGVja2VkU3RhdGVSZWYiLCJmb3JtMiIsInJlc2V0IiwiaXNJbmRldGVybWluYXRlIiwicHJldkNoZWNrZWQiLCJpc1Byb3BhZ2F0aW9uU3RvcHBlZCIsInN0b3BQcm9wYWdhdGlvbiIsIkJ1YmJsZUlucHV0IiwiY29udHJvbCIsInRyYW5zZm9ybSIsIklORElDQVRPUl9OQU1FIiwiQ2hlY2tib3hJbmRpY2F0b3IiLCJpbmRpY2F0b3JQcm9wcyIsImlucHV0UHJvcHMiLCJjb250cm9sU2l6ZSIsImlucHV0IiwiaW5wdXRQcm90byIsIkV2ZW50IiwiaW5kZXRlcm1pbmF0ZSIsImRlZmF1bHRDaGVja2VkUmVmIiwibWFyZ2luIiwiSW5kaWNhdG9yIiwiTGFiZWwiLCJsYWJlbCIsIm9uTW91c2VEb3duIiwiZ2V0V2VpZ2h0Q2xhc3MiLCJ3ZWlnaHQiLCJodG1sRm9yIiwiUmVkdXhMYWJlbC5Sb290IiwiQ2hlY2tib3hQcmltaXRpdmVzLlJvb3QiLCJDaGVja2JveFByaW1pdGl2ZXMuSW5kaWNhdG9yIiwiQ2hlY2tib3hJY29uIiwiSW5wdXRIaW50Iiwic3R5bGVzJGlfZXJyb3IiLCJJbnB1dCIsImF1dG9Db21wbGV0ZSIsImNvdW50ZXJWaXNpYmlsaXR5TGltaXQiLCJlbmRBZG9ybm1lbnQiLCJlbmRBZG9ybm1lbnRDbGFzc05hbWUiLCJlcnJvck1lc3NhZ2UiLCJoaW50IiwiaW5wdXRXcmFwcGVyQ2xhc3MiLCJpc0xhYmVsU3RhdGljIiwibWF4TGVuZ3RoIiwib25CbHVyIiwib25DaGFuZ2VGcm9tUHJvcHMiLCJvbkZvY3VzIiwib3B0aW9uYWxUZXh0IiwicGxhY2Vob2xkZXIiLCJzdGFydEFkb3JubWVudCIsInZhbHVlRnJvbVByb3BzIiwicmVzdFByb3BzIiwiaXNQYXNzd29yZFZpc2libGUiLCJzZXRJc1Bhc3N3b3JkVmlzaWJsZSIsImludGVybmFsVmFsdWUiLCJzZXRJbnRlcm5hbFZhbHVlIiwiaXNGb2N1c2VkIiwic2V0SXNGb2N1c2VkIiwiaXNQYXNzd29yZCIsImZpZWxkVHlwZSIsImxldHRlckNvdW50IiwiaXNMaW1pdFJlYWNoZWQiLCJyb290IiwiaXNEaXNhYmxlZCIsImhhc1N0YXJ0QWRvcm5tZW50IiwiaXNFcnJvciIsInN0YXRpYyIsIm9wdGlvbmFsIiwiY29ycmVjdGVkVG9wIiwiaW5wdXRXcmFwcGVyIiwiZm9vdGVyIiwiZm9vdGVyV2l0aEVuZEFkb3JubWVudCIsImZvb3Rlck1lc3NhZ2UiLCJ0b2dnbGVQYXNzd29yZEJ1dHRvbiIsIlBhc3N3b3JkRXllSWNvbiIsIlBhc3N3b3JkRXllQ3Jvc3NlZEljb24iLCJDb3B5QnV0dG9uIiwib25Db3B5IiwiQ29weUljb24iLCJjbGFtcCIsIm1pbiIsIkRpcmVjdGlvbkNvbnRleHQiLCJ1c2VEaXJlY3Rpb24iLCJsb2NhbERpciIsImdsb2JhbERpciIsImNyZWF0ZUNvbGxlY3Rpb24iLCJQUk9WSURFUl9OQU1FIiwiY3JlYXRlQ29sbGVjdGlvbkNvbnRleHQiLCJjcmVhdGVDb2xsZWN0aW9uU2NvcGUiLCJDb2xsZWN0aW9uUHJvdmlkZXJJbXBsIiwidXNlQ29sbGVjdGlvbkNvbnRleHQiLCJjb2xsZWN0aW9uUmVmIiwiaXRlbU1hcCIsIk1hcCIsIkNvbGxlY3Rpb25Qcm92aWRlciIsIkNPTExFQ1RJT05fU0xPVF9OQU1FIiwiQ29sbGVjdGlvblNsb3QiLCJJVEVNX1NMT1RfTkFNRSIsIklURU1fREFUQV9BVFRSIiwiQ29sbGVjdGlvbkl0ZW1TbG90IiwiaXRlbURhdGEiLCJJdGVtU2xvdCIsImNvbGxlY3Rpb25Ob2RlIiwib3JkZXJlZE5vZGVzIiwic29ydCIsImIiLCJQQUdFX0tFWVMiLCJBUlJPV19LRVlTIiwiQkFDS19LRVlTIiwiU0xJREVSX05BTUUiLCJDb2xsZWN0aW9uIiwidXNlQ29sbGVjdGlvbiIsImNyZWF0ZVNsaWRlckNvbnRleHQiLCJjcmVhdGVTbGlkZXJTY29wZSIsIlNsaWRlclByb3ZpZGVyIiwidXNlU2xpZGVyQ29udGV4dCIsIlNsaWRlciIsInN0ZXAiLCJvcmllbnRhdGlvbiIsIm1pblN0ZXBzQmV0d2VlblRodW1icyIsIm9uVmFsdWVDaGFuZ2UiLCJvblZhbHVlQ29tbWl0IiwiaW52ZXJ0ZWQiLCJzbGlkZXJQcm9wcyIsInRodW1iUmVmcyIsInZhbHVlSW5kZXhUb0NoYW5nZVJlZiIsIlNsaWRlck9yaWVudGF0aW9uIiwiU2xpZGVySG9yaXpvbnRhbCIsIlNsaWRlclZlcnRpY2FsIiwic2V0VmFsdWVzIiwidGh1bWJzIiwidmFsdWVzQmVmb3JlU2xpZGVTdGFydFJlZiIsInVwZGF0ZVZhbHVlcyIsImF0SW5kZXgiLCJjb21taXQiLCJkZWNpbWFsQ291bnQiLCJzcGxpdCIsImdldERlY2ltYWxDb3VudCIsInNuYXBUb1N0ZXAiLCJyb3VuZGVyIiwicG93Iiwicm91bmQiLCJyb3VuZFZhbHVlIiwicHJldlZhbHVlcyIsIm5leHRWYWx1ZXMiLCJnZXROZXh0U29ydGVkVmFsdWVzIiwibWluU3RlcHNCZXR3ZWVuVmFsdWVzIiwic3RlcHNCZXR3ZWVuVmFsdWVzIiwiZ2V0U3RlcHNCZXR3ZWVuVmFsdWVzIiwiaGFzTWluU3RlcHNCZXR3ZWVuVmFsdWVzIiwiaGFzQ2hhbmdlZCIsIl9fc2NvcGVTbGlkZXIiLCJvblBvaW50ZXJEb3duIiwib25TbGlkZVN0YXJ0IiwiY2xvc2VzdEluZGV4IiwiZGlzdGFuY2VzIiwiY2xvc2VzdERpc3RhbmNlIiwiZ2V0Q2xvc2VzdFZhbHVlSW5kZXgiLCJvblNsaWRlTW92ZSIsIm9uU2xpZGVFbmQiLCJwcmV2VmFsdWUiLCJvbkhvbWVLZXlEb3duIiwib25FbmRLZXlEb3duIiwib25TdGVwS2V5RG93biIsInN0ZXBEaXJlY3Rpb24iLCJtdWx0aXBsaWVyIiwiU2xpZGVyT3JpZW50YXRpb25Qcm92aWRlciIsInVzZVNsaWRlck9yaWVudGF0aW9uQ29udGV4dCIsInN0YXJ0RWRnZSIsImVuZEVkZ2UiLCJkaXIiLCJzbGlkZXIiLCJzZXRTbGlkZXIiLCJyZWN0UmVmIiwiaXNEaXJlY3Rpb25MVFIiLCJpc1NsaWRpbmdGcm9tTGVmdCIsImdldFZhbHVlRnJvbVBvaW50ZXIiLCJwb2ludGVyUG9zaXRpb24iLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibGluZWFyU2NhbGUiLCJTbGlkZXJJbXBsIiwiaXNCYWNrS2V5Iiwic2xpZGVyUmVmIiwiaXNTbGlkaW5nRnJvbUJvdHRvbSIsInNldFBvaW50ZXJDYXB0dXJlIiwicG9pbnRlcklkIiwib25Qb2ludGVyTW92ZSIsImhhc1BvaW50ZXJDYXB0dXJlIiwib25Qb2ludGVyVXAiLCJyZWxlYXNlUG9pbnRlckNhcHR1cmUiLCJUUkFDS19OQU1FIiwiU2xpZGVyVHJhY2siLCJ0cmFja1Byb3BzIiwiUkFOR0VfTkFNRSIsIlNsaWRlclJhbmdlIiwicmFuZ2VQcm9wcyIsInZhbHVlc0NvdW50IiwicGVyY2VudGFnZXMiLCJjb252ZXJ0VmFsdWVUb1BlcmNlbnRhZ2UiLCJvZmZzZXRTdGFydCIsIm9mZnNldEVuZCIsIlRIVU1CX05BTUUiLCJTbGlkZXJUaHVtYiIsImdldEl0ZW1zIiwidGh1bWIiLCJzZXRUaHVtYiIsImZpbmRJbmRleCIsIlNsaWRlclRodW1iSW1wbCIsInRodW1iUHJvcHMiLCJwZXJjZW50IiwidG90YWxWYWx1ZXMiLCJnZXRMYWJlbCIsIm9yaWVudGF0aW9uU2l6ZSIsInRodW1iSW5Cb3VuZHNPZmZzZXQiLCJoYWxmV2lkdGgiLCJvZmZzZXQiLCJnZXRUaHVtYkluQm91bmRzT2Zmc2V0Iiwic2V0VmFsdWUiLCJvdXRwdXQiLCJyYXRpbyIsIlRyYWNrIiwiUmFuZ2UiLCJUaHVtYiIsIlNsaWRlckRlbW8iLCJ0aHVtYkFyaWFMYWJlbCIsInNsaWRlclZhbHVlIiwic2V0U2xpZGVyVmFsdWUiLCJQcmltaXRpdmVTbGlkZXIuUm9vdCIsImxpc3QiLCJvbkNoYW5nZUhhbmRsZXIiLCJjaGFuZ2VkVmFsdWUiLCJQcmltaXRpdmVTbGlkZXIuVHJhY2siLCJQcmltaXRpdmVTbGlkZXIuUmFuZ2UiLCJQcmltaXRpdmVTbGlkZXIuVGh1bWIiLCJDcm9wIiwiYXNwZWN0IiwiaXNHcmlkVmlzaWJsZSIsIm9uQ3JvcENoYW5nZSIsIm9uQ3JvcENvbXBsZXRlIiwib25ab29tQ2hhbmdlIiwic2xpZGVyTWluIiwic2xpZGVyTWF4Iiwic2xpZGVyU3RlcCIsImNyb3AiLCJzZXRDcm9wIiwiem9vbSIsInNldFpvb20iLCJDcm9wcGVyIiwiY29udGFpbmVyQ2xhc3NOYW1lIiwibWVkaWFDbGFzc05hbWUiLCJuZXdDcm9wcGVkQXJlYSIsIm5ld0Nyb3BwZWRBcmVhUGl4ZWxzIiwic2hvd0dyaWQiLCJtaW1lVHlwZU1hcCIsImpwZyIsImpwZWciLCJwbmciLCJnaWYiLCJibXAiLCJ3ZWJwIiwidGlmZiIsImljbyIsInN2ZyIsInBkZiIsInR4dCIsImRvYyIsImRvY3giLCJ4bHMiLCJ4bHN4IiwicHBzIiwicHB0IiwicHB0eCIsIm9kdCIsIm9kcyIsIm9kcCIsInJ0ZiIsIm1wMyIsIndhdiIsIm9nZyIsImFhYyIsImZsYWMiLCJhdmkiLCJmbHYiLCJtNHYiLCJta3YiLCJtb3YiLCJtcDQiLCJtcGVnIiwibXBnIiwid2VibSIsInppcCIsInRhciIsImd6IiwicmFyIiwiaHRtbCIsImh0bSIsImpzIiwianNvbiIsInhtbCIsInR0ZiIsIm90ZiIsIndvZmYiLCJ3b2ZmMiIsImNzdiIsInNxbCIsIm1kIiwieWFtbCIsInltbCIsImVwdWIiLCJtb2JpIiwiZ2V0RmlsZUV4dGVuc2lvbiIsImZpbGUiLCJGaWxlIiwiZmlsZU5hbWUiLCJ0b0xvd2VyQ2FzZSIsInRyaW0iLCJkb3RJbmRleCIsImxhc3RJbmRleE9mIiwic3Vic3RyaW5nIiwiZ2V0RmlsZU1pbWVUeXBlIiwiZmlsZVR5cGUiLCJpc0V4dGVuc2lvbk1hdGNoaW5nTWltZVR5cGUiLCJleHRlbnNpb24iLCJtaW1lVHlwZSIsIm5vcm1hbGl6ZWRFeHRlbnNpb24iLCJub3JtYWxpemVkTWltZVR5cGUiLCJ2YWxpZE1pbWVUeXBlcyIsImlzVmFsaWRGaWxlVHlwZSIsImFjY2VwdGFibGVUeXBlUGF0dGVybiIsImZpbGVFeHRlbnNpb24iLCJmaWxlTWltZVR5cGUiLCJpc0ltYWdlIiwic3RhcnRzV2l0aCIsImlzVmFsaWRGaWxlU2l6ZSIsImZpbGVTaXplTWJMaW1pdCIsImZpbGVTaXplQnl0ZUxpbWl0IiwiaXNWYWxpZEZpbGVEaW1lbnNpb24iLCJtaW5XaWR0aCIsIm1pbkhlaWdodCIsInJlamVjdCIsInJlYWRlciIsIkZpbGVSZWFkZXIiLCJpc1ZhbGlkIiwicmVzdWx0IiwicmVhZEFzRGF0YVVSTCIsImNyZWF0ZUltYWdlIiwidXJsIiwiZ2V0UmFkaWFuQW5nbGUiLCJkZWdyZWVWYWx1ZSIsIlBJIiwicm90YXRlU2l6ZSIsInJvdGF0aW9uIiwicm90UmFkIiwiY29zIiwic2luIiwiZ2V0Q3JvcHBlZEltYWdlVVJMIiwiaW1hZ2VTcmMiLCJwaXhlbENyb3AiLCJmbGlwIiwiaG9yaXpvbnRhbCIsInZlcnRpY2FsIiwiY2FudmFzIiwiZ2V0Q29udGV4dCIsImJCb3hXaWR0aCIsImJCb3hIZWlnaHQiLCJ0cmFuc2xhdGUiLCJzY2FsZSIsImRyYXdJbWFnZSIsImNyb3BwZWRDYW52YXMiLCJjcm9wcGVkQ3R4IiwidG9CbG9iIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwiVG9hc3QiLCJkZXNjcmlwdGlvbiIsImR1cmF0aW9uIiwiaWNvbiIsImlzQ2xvc2FibGUiLCJtZXNzYWdlIiwib25DbG9zZSIsImlzVmlzaWJsZSIsInNldElzVmlzaWJsZSIsInRvYXN0SUQiLCJEYXRlIiwibm93IiwiaXNEZXNjcmlwdGlvbiIsImlzTWVzc2FnZSIsImlzSW5mbyIsImlzU3VjY2VzcyIsImlzV2FybmluZyIsInVwZGF0ZWREdXJhdGlvbiIsIm9uQ2xvc2VIYW5kbGVyIiwidGltZXJFdmVudCIsImNzcyQyX25vQ2xvc2VCdG4iLCJFeGNsYW1hdGlvbkljb24iLCJJbmZvQ2lyY2xlSWNvbiIsIkNoZWNrQ2lyY2xlSWNvbiIsIkluZm9JY29uIiwiY3NzJDJfbm9NZXNzYWdlIiwiQ2xvc2VJY29uIiwiVG9hc3RMaXN0IiwidG9hc3RMaXN0Iiwic2V0VG9hc3RMaXN0IiwiaXNFbXB0eVRvYXN0TGlzdCIsInJlbW92ZVRvYXN0QnlJZCIsInByZXYiLCJ0b2FzdCIsInJlbW92ZVRvYXN0IiwiTnVtYmVyIiwib25Fc2NQcmVzcyIsInVwZGF0ZVNldHRlciIsImVuc3VyZVRvYXN0TGlzdEluaXRpYWxpemVkIiwidG9hc3RSb290IiwiY3JlYXRlUm9vdCIsInJlbmRlciIsInRvYXN0UXVldWUiLCJpc1dhaXRpbmdGb3JDbGllbnQiLCJjb25zdHJ1Y3RvciIsIndhaXRGb3JDbGllbnQiLCJvYnNlcnZlciIsImdldFVJVG9hc3RMaXN0QW1vdW50IiwibmV3VG9hc3QiLCJ1aUFtb3VudCIsInVwZGF0ZWROZXdUb2FzdCIsInByb2Nlc3NRdWV1ZSIsIm5leHRUb2FzdCIsInNoaWZ0IiwiYWRkVG9RdWV1ZSIsImluZm8iLCJzdWNjZXNzIiwid2FybmluZyIsInVzZUNyb3BwZWRJbWFnZSIsImNyb3BwZWRBcmVhIiwiY3JvcHBlZEltYWdlVVJMIiwic2V0Q3JvcHBlZEltYWdlVVJMIiwiY2F0Y2giLCJpbml0aWFsRmlsZVZhbGlkYXRpb24iLCJpc0ZpbGVEaW1lbnNpb25WYWxpZCIsImlzRmlsZVNpemVWYWxpZCIsImlzRmlsZVR5cGVWYWxpZCIsImlzRmlsZVZhbGlkIiwidXNlRmlsZVZhbGlkYXRpb24iLCJhY2NlcHRhYmxlRmlsZVR5cGVzIiwiaXNWYWxpZGF0aW9uRW5hYmxlZCIsImlzRGltZW5zaW9uVmFsaWRhdGlvbkVuYWJsZWQiLCJpc1NpemVWYWxpZGF0aW9uRW5hYmxlZCIsIm1pbkhlaWdodExpbWl0IiwibWluV2lkdGhMaW1pdCIsImZpbGVWYWxpZGF0aW9uIiwic2V0RmlsZVZhbGlkYXRpb24iLCJ2YWxpZGF0ZSIsInVwZGF0ZWRGaWxlVmFsaWRhdGlvbiIsImljb25NYXAiLCJJbmZvQ2lyY2xlU29saWRJY29uIiwiVGltZXNDaXJjbGVJY29uIiwiTm90ZSIsImNsYXNzTmFtZUljb24iLCJ0ZXh0IiwiaXNUZXh0IiwiSWNvbkNvbXBvbmVudCIsInN0eWxlJDRfZXJyb3IiLCJzdHlsZSQ0X2luZm8iLCJzdHlsZSQ0X2JsdWUiLCJEbkRBcmVhIiwiZHJvcFRleHQiLCJlcnJvckRpbWVuc2lvbiIsImVycm9yU2l6ZSIsImVycm9yVHlwZSIsIm9uRHJhZ0xlYXZlIiwib25EcmFnT3ZlciIsIm9uRHJvcCIsImlzRG5EIiwic2V0SXNEbkQiLCJpc0luY29tZUVycm9yIiwiaXNUeXBlVmFsaWRhdGlvbkVuYWJsZWQiLCJpc0RpbWVuc2lvbkVycm9yIiwiaXNTaXplRXJyb3IiLCJpc1R5cGVFcnJvciIsInN0eWxlJDNfaXNEcmFnZ2VkT3ZlciIsImRyb3BwZWRGaWxlIiwiZGF0YVRyYW5zZmVyIiwiZmlsZXMiLCJNb2RhbCIsImNvbnRlbnRDbGFzc05hbWUiLCJpc0Nsb3NlQnV0dG9uVmlzaWJsZSIsIm92ZXJsYXlDbGFzc05hbWUiLCJ0aXRsZSIsInBvcnRhbENvbnRhaW5lciIsIkRpYWxvZy5Sb290IiwiRGlhbG9nLlBvcnRhbCIsIkRpYWxvZy5PdmVybGF5Iiwic3R5bGVzJGZfaXNUaXRsZUhpZGRlbiIsIkRpYWxvZy5Db250ZW50IiwiRGlhbG9nLlRpdGxlIiwic3R5bGVzJGZfdGl0bGVDZW50ZXJlZCIsIkRpYWxvZy5DbG9zZSIsInNpZGVzIiwiZmxvb3IiLCJjcmVhdGVDb29yZHMiLCJ2Iiwib3Bwb3NpdGVTaWRlTWFwIiwiYm90dG9tIiwib3Bwb3NpdGVBbGlnbm1lbnRNYXAiLCJzdGFydCIsImVuZCIsImV2YWx1YXRlIiwicGFyYW0iLCJnZXRTaWRlIiwicGxhY2VtZW50IiwiZ2V0QWxpZ25tZW50IiwiZ2V0T3Bwb3NpdGVBeGlzIiwiZ2V0QXhpc0xlbmd0aCIsImdldFNpZGVBeGlzIiwiZ2V0QWxpZ25tZW50QXhpcyIsImdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50IiwicmVwbGFjZSIsImFsaWdubWVudCIsImdldE9wcG9zaXRlUGxhY2VtZW50Iiwic2lkZSIsImdldFBhZGRpbmdPYmplY3QiLCJwYWRkaW5nIiwiZXhwYW5kUGFkZGluZ09iamVjdCIsInJlY3RUb0NsaWVudFJlY3QiLCJjb21wdXRlQ29vcmRzRnJvbVBsYWNlbWVudCIsIl9yZWYiLCJydGwiLCJyZWZlcmVuY2UiLCJmbG9hdGluZyIsInNpZGVBeGlzIiwiYWxpZ25tZW50QXhpcyIsImFsaWduTGVuZ3RoIiwiaXNWZXJ0aWNhbCIsImNvbW1vblgiLCJjb21tb25ZIiwiY29tbW9uQWxpZ24iLCJjb29yZHMiLCJkZXRlY3RPdmVyZmxvdyIsIl9hd2FpdCRwbGF0Zm9ybSRpc0VsZSIsInBsYXRmb3JtIiwicmVjdHMiLCJzdHJhdGVneSIsImJvdW5kYXJ5Iiwicm9vdEJvdW5kYXJ5IiwiZWxlbWVudENvbnRleHQiLCJhbHRCb3VuZGFyeSIsInBhZGRpbmdPYmplY3QiLCJjbGlwcGluZ0NsaWVudFJlY3QiLCJnZXRDbGlwcGluZ1JlY3QiLCJpc0VsZW1lbnQiLCJjb250ZXh0RWxlbWVudCIsImdldERvY3VtZW50RWxlbWVudCIsIm9mZnNldFBhcmVudCIsImdldE9mZnNldFBhcmVudCIsIm9mZnNldFNjYWxlIiwiZ2V0U2NhbGUiLCJlbGVtZW50Q2xpZW50UmVjdCIsImNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0IiwiZ2V0U2lkZU9mZnNldHMiLCJpc0FueVNpZGVGdWxseUNsaXBwZWQiLCJoYXNXaW5kb3ciLCJnZXROb2RlTmFtZSIsImlzTm9kZSIsIm5vZGVOYW1lIiwiZ2V0V2luZG93IiwiX25vZGUkb3duZXJEb2N1bWVudCIsImlzSFRNTEVsZW1lbnQiLCJIVE1MRWxlbWVudCIsImlzU2hhZG93Um9vdCIsImlzT3ZlcmZsb3dFbGVtZW50IiwiaXNUYWJsZUVsZW1lbnQiLCJpc1RvcExheWVyIiwic2VsZWN0b3IiLCJtYXRjaGVzIiwiaXNDb250YWluaW5nQmxvY2siLCJlbGVtZW50T3JDc3MiLCJ3ZWJraXQiLCJpc1dlYktpdCIsImNvbnRhaW5lclR5cGUiLCJiYWNrZHJvcEZpbHRlciIsIndpbGxDaGFuZ2UiLCJjb250YWluIiwiQ1NTIiwic3VwcG9ydHMiLCJpc0xhc3RUcmF2ZXJzYWJsZU5vZGUiLCJnZXROb2RlU2Nyb2xsIiwic2Nyb2xsWCIsInNjcm9sbFkiLCJnZXRQYXJlbnROb2RlIiwiYXNzaWduZWRTbG90IiwiZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3IiLCJnZXRPdmVyZmxvd0FuY2VzdG9ycyIsInRyYXZlcnNlSWZyYW1lcyIsIl9ub2RlJG93bmVyRG9jdW1lbnQyIiwic2Nyb2xsYWJsZUFuY2VzdG9yIiwiaXNCb2R5Iiwid2luIiwiZnJhbWVFbGVtZW50IiwiZ2V0RnJhbWVFbGVtZW50IiwidmlzdWFsVmlld3BvcnQiLCJnZXRQcm90b3R5cGVPZiIsImdldENzc0RpbWVuc2lvbnMiLCJwYXJzZUZsb2F0IiwiaGFzT2Zmc2V0Iiwic2hvdWxkRmFsbGJhY2siLCIkIiwidW53cmFwRWxlbWVudCIsImRvbUVsZW1lbnQiLCJub09mZnNldHMiLCJnZXRWaXN1YWxPZmZzZXRzIiwib2Zmc2V0TGVmdCIsIm9mZnNldFRvcCIsImluY2x1ZGVTY2FsZSIsImlzRml4ZWRTdHJhdGVneSIsImNsaWVudFJlY3QiLCJ2aXN1YWxPZmZzZXRzIiwiaXNGaXhlZCIsImZsb2F0aW5nT2Zmc2V0UGFyZW50Iiwic2hvdWxkQWRkVmlzdWFsT2Zmc2V0cyIsIm9mZnNldFdpbiIsImN1cnJlbnRXaW4iLCJjdXJyZW50SUZyYW1lIiwiaWZyYW1lU2NhbGUiLCJpZnJhbWVSZWN0IiwiY2xpZW50TGVmdCIsInBhZGRpbmdMZWZ0IiwiY2xpZW50VG9wIiwicGFkZGluZ1RvcCIsImdldFdpbmRvd1Njcm9sbEJhclgiLCJsZWZ0U2Nyb2xsIiwiZ2V0SFRNTE9mZnNldCIsInNjcm9sbCIsImlnbm9yZVNjcm9sbGJhclgiLCJodG1sUmVjdCIsImdldENsaWVudFJlY3RGcm9tQ2xpcHBpbmdBbmNlc3RvciIsImNsaXBwaW5nQW5jZXN0b3IiLCJ2aXN1YWxWaWV3cG9ydEJhc2VkIiwiZ2V0Vmlld3BvcnRSZWN0IiwiZ2V0RG9jdW1lbnRSZWN0IiwiZ2V0SW5uZXJCb3VuZGluZ0NsaWVudFJlY3QiLCJoYXNGaXhlZFBvc2l0aW9uQW5jZXN0b3IiLCJzdG9wTm9kZSIsImdldFJlY3RSZWxhdGl2ZVRvT2Zmc2V0UGFyZW50IiwiaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQiLCJvZmZzZXRSZWN0IiwiaHRtbE9mZnNldCIsImlzU3RhdGljUG9zaXRpb25lZCIsImdldFRydWVPZmZzZXRQYXJlbnQiLCJwb2x5ZmlsbCIsInJhd09mZnNldFBhcmVudCIsInN2Z09mZnNldFBhcmVudCIsImdldENvbnRhaW5pbmdCbG9jayIsInRvcExheWVyIiwiY2xpcHBpbmdBbmNlc3RvcnMiLCJjYWNoZSIsImNhY2hlZFJlc3VsdCIsImN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlIiwiZWxlbWVudElzRml4ZWQiLCJjb21wdXRlZFN0eWxlIiwiY3VycmVudE5vZGVJc0NvbnRhaW5pbmciLCJhbmNlc3RvciIsImdldENsaXBwaW5nRWxlbWVudEFuY2VzdG9ycyIsIl9jIiwiZmlyc3RDbGlwcGluZ0FuY2VzdG9yIiwiY2xpcHBpbmdSZWN0IiwiYWNjUmVjdCIsImdldEVsZW1lbnRSZWN0cyIsImdldE9mZnNldFBhcmVudEZuIiwiZ2V0RGltZW5zaW9uc0ZuIiwiZ2V0RGltZW5zaW9ucyIsImZsb2F0aW5nRGltZW5zaW9ucyIsImdldENsaWVudFJlY3RzIiwiaXNSVEwiLCJyZWN0c0FyZUVxdWFsIiwiYXV0b1VwZGF0ZSIsInVwZGF0ZSIsImFuY2VzdG9yU2Nyb2xsIiwiYW5jZXN0b3JSZXNpemUiLCJlbGVtZW50UmVzaXplIiwibGF5b3V0U2hpZnQiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsImFuaW1hdGlvbkZyYW1lIiwicmVmZXJlbmNlRWwiLCJhbmNlc3RvcnMiLCJjbGVhbnVwSW8iLCJvbk1vdmUiLCJpbyIsIl9pbyIsInJlZnJlc2giLCJza2lwIiwidGhyZXNob2xkIiwiZWxlbWVudFJlY3RGb3JSb290TWFyZ2luIiwicm9vdE1hcmdpbiIsImlzRmlyc3RVcGRhdGUiLCJoYW5kbGVPYnNlcnZlIiwiaW50ZXJzZWN0aW9uUmF0aW8iLCJvYnNlcnZlTW92ZSIsImZyYW1lSWQiLCJyZW9ic2VydmVGcmFtZSIsImZpcnN0RW50cnkiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIl9yZXNpemVPYnNlcnZlciIsInByZXZSZWZSZWN0IiwiZnJhbWVMb29wIiwibmV4dFJlZlJlY3QiLCJfcmVzaXplT2JzZXJ2ZXIyIiwiZm4iLCJfbWlkZGxld2FyZURhdGEkb2Zmc2UiLCJfbWlkZGxld2FyZURhdGEkYXJyb3ciLCJtaWRkbGV3YXJlRGF0YSIsImRpZmZDb29yZHMiLCJtYWluQXhpc011bHRpIiwiY3Jvc3NBeGlzTXVsdGkiLCJyYXdWYWx1ZSIsIm1haW5BeGlzIiwiY3Jvc3NBeGlzIiwiY29udmVydFZhbHVlVG9Db29yZHMiLCJhcnJvdyIsImFsaWdubWVudE9mZnNldCIsImNoZWNrTWFpbkF4aXMiLCJjaGVja0Nyb3NzQXhpcyIsImxpbWl0ZXIiLCJkZXRlY3RPdmVyZmxvd09wdGlvbnMiLCJtYWluQXhpc0Nvb3JkIiwiY3Jvc3NBeGlzQ29vcmQiLCJtYXhTaWRlIiwibGltaXRlZENvb3JkcyIsIl9taWRkbGV3YXJlRGF0YSRmbGlwIiwiaW5pdGlhbFBsYWNlbWVudCIsImZhbGxiYWNrUGxhY2VtZW50cyIsInNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyIsImZhbGxiYWNrU3RyYXRlZ3kiLCJmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uIiwiZmxpcEFsaWdubWVudCIsImluaXRpYWxTaWRlQXhpcyIsImlzQmFzZVBsYWNlbWVudCIsIm9wcG9zaXRlUGxhY2VtZW50IiwiZ2V0RXhwYW5kZWRQbGFjZW1lbnRzIiwiaGFzRmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbiIsImlzU3RhcnQiLCJsciIsInJsIiwidGIiLCJidCIsImdldFNpZGVMaXN0IiwiZ2V0T3Bwb3NpdGVBeGlzUGxhY2VtZW50cyIsInBsYWNlbWVudHMiLCJvdmVyZmxvd3MiLCJvdmVyZmxvd3NEYXRhIiwibWFpbkFsaWdubWVudFNpZGUiLCJnZXRBbGlnbm1lbnRTaWRlcyIsImV2ZXJ5IiwiX21pZGRsZXdhcmVEYXRhJGZsaXAyIiwiX292ZXJmbG93c0RhdGEkZmlsdGVyIiwibmV4dEluZGV4IiwibmV4dFBsYWNlbWVudCIsInJlc2V0UGxhY2VtZW50IiwiX292ZXJmbG93c0RhdGEkZmlsdGVyMiIsImN1cnJlbnRTaWRlQXhpcyIsImFjYyIsIl9zdGF0ZSRtaWRkbGV3YXJlRGF0YSIsIl9zdGF0ZSRtaWRkbGV3YXJlRGF0YTIiLCJpc1lBeGlzIiwiaGVpZ2h0U2lkZSIsIndpZHRoU2lkZSIsIm1heGltdW1DbGlwcGluZ0hlaWdodCIsIm1heGltdW1DbGlwcGluZ1dpZHRoIiwib3ZlcmZsb3dBdmFpbGFibGVIZWlnaHQiLCJvdmVyZmxvd0F2YWlsYWJsZVdpZHRoIiwibm9TaGlmdCIsImF2YWlsYWJsZUhlaWdodCIsImF2YWlsYWJsZVdpZHRoIiwieE1pbiIsInhNYXgiLCJ5TWluIiwieU1heCIsIm5leHREaW1lbnNpb25zIiwiaGlkZSIsInJlZmVyZW5jZUhpZGRlbk9mZnNldHMiLCJyZWZlcmVuY2VIaWRkZW4iLCJlc2NhcGVkT2Zmc2V0cyIsImVzY2FwZWQiLCJhcnJvd0RpbWVuc2lvbnMiLCJtaW5Qcm9wIiwibWF4UHJvcCIsImNsaWVudFByb3AiLCJlbmREaWZmIiwic3RhcnREaWZmIiwiYXJyb3dPZmZzZXRQYXJlbnQiLCJjbGllbnRTaXplIiwiY2VudGVyVG9SZWZlcmVuY2UiLCJsYXJnZXN0UG9zc2libGVQYWRkaW5nIiwibWluUGFkZGluZyIsIm1heFBhZGRpbmciLCJtaW4kMSIsImNlbnRlciIsInNob3VsZEFkZE9mZnNldCIsImNlbnRlck9mZnNldCIsImxpbWl0U2hpZnQiLCJyYXdPZmZzZXQiLCJjb21wdXRlZE9mZnNldCIsImxlbiIsImxpbWl0TWluIiwibGltaXRNYXgiLCJfbWlkZGxld2FyZURhdGEkb2Zmc2UyIiwiaXNPcmlnaW5TaWRlIiwiY29tcHV0ZVBvc2l0aW9uIiwibWVyZ2VkT3B0aW9ucyIsInBsYXRmb3JtV2l0aENhY2hlIiwiY29uZmlnIiwidmFsaWRNaWRkbGV3YXJlIiwic3RhdGVmdWxQbGFjZW1lbnQiLCJyZXNldENvdW50IiwibmV4dFgiLCJuZXh0WSIsImNvbXB1dGVQb3NpdGlvbiQxIiwiZGVlcEVxdWFsIiwia2V5cyIsIiQkdHlwZW9mIiwiZ2V0RFBSIiwiZGV2aWNlUGl4ZWxSYXRpbyIsInJvdW5kQnlEUFIiLCJkcHIiLCJ1c2VMYXRlc3RSZWYiLCJhcnJvdyQxIiwiYXJyb3ckMiIsImRlcHMiLCJvZmZzZXQkMSIsInNoaWZ0JDEiLCJsaW1pdFNoaWZ0JDEiLCJmbGlwJDEiLCJzaXplJDEiLCJoaWRlJDEiLCJBcnJvdyIsImFycm93UHJvcHMiLCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwicG9pbnRzIiwiUE9QUEVSX05BTUUiLCJjcmVhdGVQb3BwZXJDb250ZXh0IiwiY3JlYXRlUG9wcGVyU2NvcGUiLCJQb3BwZXJQcm92aWRlciIsInVzZVBvcHBlckNvbnRleHQiLCJQb3BwZXIiLCJfX3Njb3BlUG9wcGVyIiwiYW5jaG9yIiwic2V0QW5jaG9yIiwib25BbmNob3JDaGFuZ2UiLCJBTkNIT1JfTkFNRSIsIlBvcHBlckFuY2hvciIsInZpcnR1YWxSZWYiLCJhbmNob3JQcm9wcyIsIlBvcHBlckNvbnRlbnRQcm92aWRlciIsInVzZUNvbnRlbnRDb250ZXh0IiwiUG9wcGVyQ29udGVudCIsInNpZGVPZmZzZXQiLCJhbGlnbiIsImFsaWduT2Zmc2V0IiwiYXJyb3dQYWRkaW5nIiwiYXZvaWRDb2xsaXNpb25zIiwiY29sbGlzaW9uQm91bmRhcnkiLCJjb2xsaXNpb25QYWRkaW5nIiwiY29sbGlzaW9uUGFkZGluZ1Byb3AiLCJzdGlja3kiLCJoaWRlV2hlbkRldGFjaGVkIiwidXBkYXRlUG9zaXRpb25TdHJhdGVneSIsIm9uUGxhY2VkIiwic2V0Q29udGVudCIsInNldEFycm93IiwiYXJyb3dTaXplIiwiYXJyb3dXaWR0aCIsImFycm93SGVpZ2h0IiwiZGVzaXJlZFBsYWNlbWVudCIsImhhc0V4cGxpY2l0Qm91bmRhcmllcyIsImlzTm90TnVsbCIsImZsb2F0aW5nU3R5bGVzIiwiaXNQb3NpdGlvbmVkIiwiZXh0ZXJuYWxSZWZlcmVuY2UiLCJleHRlcm5hbEZsb2F0aW5nIiwid2hpbGVFbGVtZW50c01vdW50ZWQiLCJzZXREYXRhIiwibGF0ZXN0TWlkZGxld2FyZSIsInNldExhdGVzdE1pZGRsZXdhcmUiLCJfcmVmZXJlbmNlIiwiX3NldFJlZmVyZW5jZSIsIl9mbG9hdGluZyIsIl9zZXRGbG9hdGluZyIsInNldFJlZmVyZW5jZSIsInJlZmVyZW5jZVJlZiIsInNldEZsb2F0aW5nIiwiZmxvYXRpbmdSZWYiLCJmbG9hdGluZ0VsIiwiZGF0YVJlZiIsImhhc1doaWxlRWxlbWVudHNNb3VudGVkIiwid2hpbGVFbGVtZW50c01vdW50ZWRSZWYiLCJwbGF0Zm9ybVJlZiIsIm9wZW5SZWYiLCJmdWxsRGF0YSIsImlzTW91bnRlZFJlZiIsImluaXRpYWxTdHlsZXMiLCJ1c2VGbG9hdGluZyIsImFuY2hvcldpZHRoIiwiYW5jaG9ySGVpZ2h0IiwiY29udGVudFN0eWxlIiwic2V0UHJvcGVydHkiLCJmbG9hdGluZ1VJYXJyb3ciLCJ0cmFuc2Zvcm1PcmlnaW4iLCJwbGFjZWRTaWRlIiwicGxhY2VkQWxpZ24iLCJnZXRTaWRlQW5kQWxpZ25Gcm9tUGxhY2VtZW50IiwiaGFuZGxlUGxhY2VkIiwiYXJyb3dYIiwiYXJyb3dZIiwiY2Fubm90Q2VudGVyQXJyb3ciLCJjb250ZW50WkluZGV4Iiwic2V0Q29udGVudFpJbmRleCIsInpJbmRleCIsIm9uQXJyb3dDaGFuZ2UiLCJzaG91bGRIaWRlQXJyb3ciLCJhbmltYXRpb24iLCJBUlJPV19OQU1FIiwiT1BQT1NJVEVfU0lERSIsIlBvcHBlckFycm93IiwiY29udGVudENvbnRleHQiLCJiYXNlU2lkZSIsIkFycm93UHJpbWl0aXZlLlJvb3QiLCJpc0Fycm93SGlkZGVuIiwibm9BcnJvd0FsaWduIiwiYXJyb3dYQ2VudGVyIiwiYXJyb3dZQ2VudGVyIiwiQW5jaG9yIiwiRU5UUllfRk9DVVMiLCJHUk9VUF9OQU1FIiwiY3JlYXRlUm92aW5nRm9jdXNHcm91cENvbnRleHQiLCJjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwU2NvcGUiLCJSb3ZpbmdGb2N1c1Byb3ZpZGVyIiwidXNlUm92aW5nRm9jdXNDb250ZXh0IiwiUm92aW5nRm9jdXNHcm91cCIsIl9fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwIiwiUm92aW5nRm9jdXNHcm91cEltcGwiLCJjdXJyZW50VGFiU3RvcElkIiwiY3VycmVudFRhYlN0b3BJZFByb3AiLCJkZWZhdWx0Q3VycmVudFRhYlN0b3BJZCIsIm9uQ3VycmVudFRhYlN0b3BJZENoYW5nZSIsIm9uRW50cnlGb2N1cyIsInByZXZlbnRTY3JvbGxPbkVudHJ5Rm9jdXMiLCJncm91cFByb3BzIiwic2V0Q3VycmVudFRhYlN0b3BJZCIsImlzVGFiYmluZ0JhY2tPdXQiLCJzZXRJc1RhYmJpbmdCYWNrT3V0IiwiaGFuZGxlRW50cnlGb2N1cyIsImlzQ2xpY2tGb2N1c1JlZiIsImZvY3VzYWJsZUl0ZW1zQ291bnQiLCJzZXRGb2N1c2FibGVJdGVtc0NvdW50Iiwib25JdGVtRm9jdXMiLCJ0YWJTdG9wSWQiLCJvbkl0ZW1TaGlmdFRhYiIsIm9uRm9jdXNhYmxlSXRlbUFkZCIsInByZXZDb3VudCIsIm9uRm9jdXNhYmxlSXRlbVJlbW92ZSIsImlzS2V5Ym9hcmRGb2N1cyIsImVudHJ5Rm9jdXNFdmVudCIsImZvY3VzYWJsZSIsImFjdGl2ZSIsIklURU1fTkFNRSIsIlJvdmluZ0ZvY3VzR3JvdXBJdGVtIiwiaXRlbVByb3BzIiwiYXV0b0lkIiwiaXNDdXJyZW50VGFiU3RvcCIsImZvY3VzSW50ZW50IiwiZ2V0RGlyZWN0aW9uQXdhcmVLZXkiLCJNQVBfS0VZX1RPX0ZPQ1VTX0lOVEVOVCIsImdldEZvY3VzSW50ZW50IiwiY2FuZGlkYXRlTm9kZXMiLCJjdXJyZW50SW5kZXgiLCJzdGFydEluZGV4IiwiXyIsIkFycm93TGVmdCIsIkFycm93VXAiLCJBcnJvd1JpZ2h0IiwiQXJyb3dEb3duIiwiUGFnZVVwIiwiSG9tZSIsIlBhZ2VEb3duIiwiRW5kIiwiUFJFVklPVVNMWV9GT0NVU0VEX0VMRU1FTlQiLCJJdGVtIiwiU0VMRUNUSU9OX0tFWVMiLCJMQVNUX0tFWVMiLCJGSVJTVF9MQVNUX0tFWVMiLCJTVUJfT1BFTl9LRVlTIiwibHRyIiwiU1VCX0NMT1NFX0tFWVMiLCJNRU5VX05BTUUiLCJjcmVhdGVNZW51Q29udGV4dCIsImNyZWF0ZU1lbnVTY29wZSIsInVzZVBvcHBlclNjb3BlIiwidXNlUm92aW5nRm9jdXNHcm91cFNjb3BlIiwiTWVudVByb3ZpZGVyIiwidXNlTWVudUNvbnRleHQiLCJNZW51Um9vdFByb3ZpZGVyIiwidXNlTWVudVJvb3RDb250ZXh0IiwiTWVudSIsIl9fc2NvcGVNZW51IiwicG9wcGVyU2NvcGUiLCJpc1VzaW5nS2V5Ym9hcmRSZWYiLCJoYW5kbGVPcGVuQ2hhbmdlIiwiaGFuZGxlUG9pbnRlciIsIlBvcHBlclByaW1pdGl2ZS5Sb290Iiwib25Db250ZW50Q2hhbmdlIiwiTWVudUFuY2hvciIsIlBvcHBlclByaW1pdGl2ZS5BbmNob3IiLCJNZW51UG9ydGFsIiwiTWVudUNvbnRlbnRQcm92aWRlciIsInVzZU1lbnVDb250ZW50Q29udGV4dCIsIk1lbnVDb250ZW50Iiwicm9vdENvbnRleHQiLCJNZW51Um9vdENvbnRlbnRNb2RhbCIsIk1lbnVSb290Q29udGVudE5vbk1vZGFsIiwiTWVudUNvbnRlbnRJbXBsIiwiZGlzYWJsZU91dHNpZGVTY3JvbGwiLCJyb3ZpbmdGb2N1c0dyb3VwU2NvcGUiLCJjdXJyZW50SXRlbUlkIiwic2V0Q3VycmVudEl0ZW1JZCIsInRpbWVyUmVmIiwic2VhcmNoUmVmIiwicG9pbnRlckdyYWNlVGltZXJSZWYiLCJwb2ludGVyR3JhY2VJbnRlbnRSZWYiLCJwb2ludGVyRGlyUmVmIiwibGFzdFBvaW50ZXJYUmVmIiwiU2Nyb2xsTG9ja1dyYXBwZXIiLCJzY3JvbGxMb2NrV3JhcHBlclByb3BzIiwiaGFuZGxlVHlwZWFoZWFkU2VhcmNoIiwic2VhcmNoIiwiY3VycmVudEl0ZW0iLCJjdXJyZW50TWF0Y2giLCJ0ZXh0VmFsdWUiLCJuZXh0TWF0Y2giLCJpc1JlcGVhdGVkIiwiY2hhciIsIm5vcm1hbGl6ZWRTZWFyY2giLCJjdXJyZW50TWF0Y2hJbmRleCIsIndyYXBwZWRWYWx1ZXMiLCJnZXROZXh0TWF0Y2giLCJuZXdJdGVtIiwidXBkYXRlU2VhcmNoIiwiaXNQb2ludGVyTW92aW5nVG9TdWJtZW51IiwiYXJlYSIsImN1cnNvclBvcyIsInBvaW50IiwicG9seWdvbiIsImluc2lkZSIsImoiLCJ4aSIsInlpIiwieGoiLCJ5aiIsImlzUG9pbnRJblBvbHlnb24iLCJpc1BvaW50ZXJJbkdyYWNlQXJlYSIsIm9uSXRlbUVudGVyIiwib25JdGVtTGVhdmUiLCJvblRyaWdnZXJMZWF2ZSIsIm9uUG9pbnRlckdyYWNlSW50ZW50Q2hhbmdlIiwiaW50ZW50IiwiUm92aW5nRm9jdXNHcm91cC5Sb290IiwiUG9wcGVyUHJpbWl0aXZlLkNvbnRlbnQiLCJnZXRPcGVuU3RhdGUiLCJpc0tleURvd25JbnNpZGUiLCJpc01vZGlmaWVyS2V5IiwiaXNDaGFyYWN0ZXJLZXkiLCJ3aGVuTW91c2UiLCJwb2ludGVyWEhhc0NoYW5nZWQiLCJuZXdEaXIiLCJNZW51R3JvdXAiLCJNZW51TGFiZWwiLCJsYWJlbFByb3BzIiwiSVRFTV9TRUxFQ1QiLCJNZW51SXRlbSIsIm9uU2VsZWN0IiwiaXNQb2ludGVyRG93blJlZiIsIk1lbnVJdGVtSW1wbCIsIm1lbnVJdGVtIiwiaXRlbVNlbGVjdEV2ZW50IiwiY2xpY2siLCJpc1R5cGluZ0FoZWFkIiwidGV4dENvbnRlbnQiLCJzZXRUZXh0Q29udGVudCIsIlJvdmluZ0ZvY3VzR3JvdXAuSXRlbSIsIm9uUG9pbnRlckxlYXZlIiwiTWVudUNoZWNrYm94SXRlbSIsImNoZWNrYm94SXRlbVByb3BzIiwiSXRlbUluZGljYXRvclByb3ZpZGVyIiwiZ2V0Q2hlY2tlZFN0YXRlIiwiUkFESU9fR1JPVVBfTkFNRSIsIlJhZGlvR3JvdXBQcm92aWRlciIsInVzZVJhZGlvR3JvdXBDb250ZXh0IiwiTWVudVJhZGlvR3JvdXAiLCJoYW5kbGVWYWx1ZUNoYW5nZSIsIlJBRElPX0lURU1fTkFNRSIsIk1lbnVSYWRpb0l0ZW0iLCJyYWRpb0l0ZW1Qcm9wcyIsIklURU1fSU5ESUNBVE9SX05BTUUiLCJ1c2VJdGVtSW5kaWNhdG9yQ29udGV4dCIsIk1lbnVJdGVtSW5kaWNhdG9yIiwiaXRlbUluZGljYXRvclByb3BzIiwiaW5kaWNhdG9yQ29udGV4dCIsIk1lbnVTZXBhcmF0b3IiLCJzZXBhcmF0b3JQcm9wcyIsIk1lbnVBcnJvdyIsIlBvcHBlclByaW1pdGl2ZS5BcnJvdyIsIk1lbnVTdWJQcm92aWRlciIsInVzZU1lbnVTdWJDb250ZXh0IiwiU1VCX1RSSUdHRVJfTkFNRSIsIk1lbnVTdWJUcmlnZ2VyIiwic3ViQ29udGV4dCIsIm9wZW5UaW1lclJlZiIsImNsZWFyT3BlblRpbWVyIiwicG9pbnRlckdyYWNlVGltZXIiLCJ0cmlnZ2VySWQiLCJvblRyaWdnZXJDaGFuZ2UiLCJjb250ZW50UmVjdCIsImRhdGFzZXQiLCJyaWdodFNpZGUiLCJibGVlZCIsImNvbnRlbnROZWFyRWRnZSIsImNvbnRlbnRGYXJFZGdlIiwiU1VCX0NPTlRFTlRfTkFNRSIsIk1lbnVTdWJDb250ZW50Iiwic3ViQ29udGVudFByb3BzIiwidHJpZ2dlciIsImlzQ2xvc2VLZXkiLCJSb290MyIsIkFuY2hvcjIiLCJHcm91cCIsIkl0ZW0yIiwiQ2hlY2tib3hJdGVtIiwiUmFkaW9Hcm91cCIsIlJhZGlvSXRlbSIsIkl0ZW1JbmRpY2F0b3IiLCJTZXBhcmF0b3IiLCJBcnJvdzIiLCJTdWJUcmlnZ2VyIiwiU3ViQ29udGVudCIsIkRST1BET1dOX01FTlVfTkFNRSIsImNyZWF0ZURyb3Bkb3duTWVudUNvbnRleHQiLCJjcmVhdGVEcm9wZG93bk1lbnVTY29wZSIsInVzZU1lbnVTY29wZSIsIkRyb3Bkb3duTWVudVByb3ZpZGVyIiwidXNlRHJvcGRvd25NZW51Q29udGV4dCIsIkRyb3Bkb3duTWVudSIsIl9fc2NvcGVEcm9wZG93bk1lbnUiLCJtZW51U2NvcGUiLCJNZW51UHJpbWl0aXZlLlJvb3QiLCJEcm9wZG93bk1lbnVUcmlnZ2VyIiwiTWVudVByaW1pdGl2ZS5BbmNob3IiLCJEcm9wZG93bk1lbnVQb3J0YWwiLCJNZW51UHJpbWl0aXZlLlBvcnRhbCIsIkRyb3Bkb3duTWVudUNvbnRlbnQiLCJNZW51UHJpbWl0aXZlLkNvbnRlbnQiLCJpc1JpZ2h0Q2xpY2siLCJEcm9wZG93bk1lbnVHcm91cCIsIk1lbnVQcmltaXRpdmUuR3JvdXAiLCJEcm9wZG93bk1lbnVMYWJlbCIsIk1lbnVQcmltaXRpdmUuTGFiZWwiLCJEcm9wZG93bk1lbnVJdGVtIiwiTWVudVByaW1pdGl2ZS5JdGVtIiwiTWVudVByaW1pdGl2ZS5DaGVja2JveEl0ZW0iLCJyYWRpb0dyb3VwUHJvcHMiLCJNZW51UHJpbWl0aXZlLlJhZGlvR3JvdXAiLCJNZW51UHJpbWl0aXZlLlJhZGlvSXRlbSIsIk1lbnVQcmltaXRpdmUuSXRlbUluZGljYXRvciIsIkRyb3Bkb3duTWVudVNlcGFyYXRvciIsIk1lbnVQcmltaXRpdmUuU2VwYXJhdG9yIiwiTWVudVByaW1pdGl2ZS5BcnJvdyIsInN1YlRyaWdnZXJQcm9wcyIsIk1lbnVQcmltaXRpdmUuU3ViVHJpZ2dlciIsIk1lbnVQcmltaXRpdmUuU3ViQ29udGVudCIsIkdyb3VwMiIsIkxhYmVsMiIsIlNlcGFyYXRvcjIiLCJEcm9wZG93bk1lbnVQcmltaXRpdmUuUG9ydGFsIiwiRHJvcGRvd25NZW51UHJpbWl0aXZlLkNvbnRlbnQiLCJEcm9wZG93bk1lbnVQcmltaXRpdmUuU2VwYXJhdG9yIiwiRHJvcGRvd25NZW51Um9vdCIsIkRyb3Bkb3duTWVudVByaW1pdGl2ZS5Sb290IiwiRHJvcGRvd25NZW51UHJpbWl0aXZlLlRyaWdnZXIiLCJEcm9wZG93bk1lbnVQcmltaXRpdmUuTGFiZWwiLCJEcm9wZG93bk1lbnVQcmltaXRpdmUuSXRlbSIsIkRyb3Bkb3duTWVudVByaW1pdGl2ZS5Hcm91cCIsIk1vZGFsU2Nyb2xsYWJsZSIsImNhbmNlbEJ0blRleHQiLCJjdXN0b21Cb2R5Q2xhc3MiLCJjdXN0b21DYW5jZWxCdG5DbGFzcyIsImN1c3RvbUNsb3NlQnRuQ2xhc3MiLCJjdXN0b21Db250ZW50Q2xhc3MiLCJjdXN0b21Gb290ZXJDbGFzcyIsImN1c3RvbU9rQnRuQ2xhc3MiLCJjdXN0b21PdmVybGF5Q2xhc3MiLCJjdXN0b21UaXRsZUNsYXNzIiwiaGVhZGVyIiwiaXNBdmFpbGFibGVDYW5jZWxCdG4iLCJpc0F2YWlsYWJsZU9rQnRuIiwiaXNPa0J0bkRpc2FibGVkIiwiaXNPcGVuIiwiaXNPcGVuQnlEZWZhdWx0Iiwib2tCdG5UZXh0Iiwib25DYW5jZWwiLCJvbk9rIiwib25PcGVuQ2hhbmdlSGFuZGxlciIsImNzc19pc0hpZGRlbiIsImNzc193aXRoSGVhZGVyIiwiY3NzX25vVGl0bGUiLCJjc3Nfd2l0aEZvb3RlciIsIkN1c3RvbURyb3Bkb3duSW5kaWNhdG9yIiwiY29tcG9uZW50cyIsIkluZGljYXRvcnNDb250YWluZXIiLCJzdHlsZXMkYV9pbmRpY2F0b3JJc0Rpc2FibGVkIiwiQXJyb3dEb3duSWNvbiIsIkN1c3RvbU11bHRpVmFsdWVSZW1vdmUiLCJNdWx0aVZhbHVlUmVtb3ZlIiwiQ3VzdG9tTm9PcHRpb25zTWVzc2FnZSIsIk11bHRpU2VsZWN0IiwiY2xhc3NOYW1lUHJlZml4IiwiZXJyb3JNZXNzYWdlQ2xhc3MiLCJpc011bHRpIiwiaXNWaXNpYmxlT3B0aW9uYWwiLCJwb3J0YWxUYXJnZXQiLCJzZWxlY3RlZE9wdGlvbiIsInNldFNlbGVjdGVkT3B0aW9uIiwiUmVhY3RTZWxlY3QiLCJzdHlsZXMkYV9jb250cm9sSXNGb2N1c2VkIiwibWVudUlzT3BlbiIsInN0eWxlcyRhX2NvbnRyb2xJc09wZW5lZCIsInN0eWxlcyRhX2lzRGlzYWJsZWQiLCJtZW51IiwibWVudUxpc3QiLCJtZW51UG9ydGFsIiwibXVsdGlWYWx1ZSIsInN0eWxlcyRhX211bHRpVmFsdWVJc0Rpc2FibGVkIiwibXVsdGlWYWx1ZUxhYmVsIiwic3R5bGVzJGFfbXVsdGlWYWx1ZUxhYmVsSXNEaXNhYmxlZCIsIm11bHRpVmFsdWVSZW1vdmUiLCJzdHlsZXMkYV9tdWx0aVZhbHVlUmVtb3ZlSXNEaXNhYmxlZCIsIm9wdGlvbiIsImlzU2VsZWN0ZWQiLCJzdHlsZXMkYV9vcHRpb25TZWxlY3RlZCIsInN0eWxlcyRhX29wdGlvbkZvY3VzZWQiLCJzdHlsZXMkYV9vcHRpb25EaXNhYmxlZCIsInNpbmdsZVZhbHVlIiwidmFsdWVDb250YWluZXIiLCJJbmRpY2F0b3JTZXBhcmF0b3IiLCJEcm9wZG93bkluZGljYXRvciIsIk5vT3B0aW9uc01lc3NhZ2UiLCJtZW51UG9ydGFsVGFyZ2V0Iiwic2VsZWN0ZWRWYWx1ZSIsInByb3ZpZGVkIiwic2VsZWN0UHJvcHMiLCJQYWdpbmF0aW9uIiwiY3VycmVudFBhZ2UiLCJwYWdlU2l6ZSIsInRvdGFsIiwicGFnZSIsInNldFBhZ2UiLCJtYXhQYWdlIiwiY2VpbCIsImlzRGlzYWJsZWRGaXJzdFBhZ2UiLCJpc0Rpc2FibGVkTGFzdFBhZ2UiLCJpc0F2YWlsYWJsZSIsInByZXZpb3VzUGFnZSIsInByZXZpb3VzUHJldmlvdXNQYWdlIiwibmV4dFBhZ2UiLCJuZXh0TmV4dFBhZ2UiLCJnZXRDb3JyZWN0ZWRQYWdlIiwibmV3UGFnZSIsImNvcnJlY3RlZFBhZ2UiLCJzdHlsZXMkOV9kaXNhYmxlZCIsIkFycm93TGVmdERvdWJsZUljb24iLCJBcnJvd0xlZnRTaW5nbGVJY29uIiwiUE9QT1ZFUl9OQU1FIiwiY3JlYXRlUG9wb3ZlckNvbnRleHQiLCJjcmVhdGVQb3BvdmVyU2NvcGUiLCJQb3BvdmVyUHJvdmlkZXIiLCJ1c2VQb3BvdmVyQ29udGV4dCIsIlBvcG92ZXIiLCJfX3Njb3BlUG9wb3ZlciIsImhhc0N1c3RvbUFuY2hvciIsInNldEhhc0N1c3RvbUFuY2hvciIsIm9uQ3VzdG9tQW5jaG9yQWRkIiwib25DdXN0b21BbmNob3JSZW1vdmUiLCJQb3BvdmVyVHJpZ2dlciIsIlBvcG92ZXJQb3J0YWwiLCJQb3BvdmVyQ29udGVudCIsIlBvcG92ZXJDb250ZW50TW9kYWwiLCJQb3BvdmVyQ29udGVudE5vbk1vZGFsIiwiaXNSaWdodENsaWNrT3V0c2lkZVJlZiIsIlBvcG92ZXJDb250ZW50SW1wbCIsIlBvcG92ZXJBcnJvdyIsInRyaWdnZXJDbGFzc05hbWUiLCJzaG93QXJyb3ciLCJzdHlsZXMkOF9wb3BvdmVyVHJpZ2dlciIsIlBST0dSRVNTX05BTUUiLCJERUZBVUxUX01BWCIsImNyZWF0ZVByb2dyZXNzQ29udGV4dCIsImNyZWF0ZVByb2dyZXNzU2NvcGUiLCJQcm9ncmVzc1Byb3ZpZGVyIiwidXNlUHJvZ3Jlc3NDb250ZXh0IiwiUHJvZ3Jlc3MiLCJfX3Njb3BlUHJvZ3Jlc3MiLCJ2YWx1ZVByb3AiLCJnZXRWYWx1ZUxhYmVsIiwiZGVmYXVsdEdldFZhbHVlTGFiZWwiLCJwcm9ncmVzc1Byb3BzIiwiaXNWYWxpZE1heE51bWJlciIsImlzVmFsaWRWYWx1ZU51bWJlciIsInByb3BWYWx1ZSIsImNvbXBvbmVudE5hbWUiLCJnZXRJbnZhbGlkVmFsdWVFcnJvciIsInZhbHVlTGFiZWwiLCJpc051bWJlciIsImdldFByb2dyZXNzU3RhdGUiLCJQcm9ncmVzc0luZGljYXRvciIsIm1heFZhbHVlIiwiaXNOYU4iLCJSQURJT19OQU1FIiwiY3JlYXRlUmFkaW9Db250ZXh0IiwiY3JlYXRlUmFkaW9TY29wZSIsIlJhZGlvUHJvdmlkZXIiLCJ1c2VSYWRpb0NvbnRleHQiLCJSYWRpbyIsIl9fc2NvcGVSYWRpbyIsIm9uQ2hlY2siLCJyYWRpb1Byb3BzIiwiUmFkaW9JbmRpY2F0b3IiLCJjcmVhdGVSYWRpb0dyb3VwQ29udGV4dCIsImNyZWF0ZVJhZGlvR3JvdXBTY29wZSIsImNyZWF0ZUNvbnRleHRTY29wZTIiLCJ1c2VSYWRpb1Njb3BlIiwiX19zY29wZVJhZGlvR3JvdXAiLCJqc3gyIiwiUHJpbWl0aXZlMiIsIlJhZGlvR3JvdXBJdGVtIiwicmFkaW9TY29wZSIsInVzZUNvbXBvc2VkUmVmczIiLCJpc0Fycm93S2V5UHJlc3NlZFJlZiIsImhhbmRsZUtleVVwIiwiY29tcG9zZUV2ZW50SGFuZGxlcnMyIiwiUmFkaW9Hcm91cEluZGljYXRvciIsIlZpc3VhbGx5SGlkZGVuIiwiYm9yZGVyIiwiY2xpcCIsIndoaXRlU3BhY2UiLCJ3b3JkV3JhcCIsIk9QRU5fS0VZUyIsIlNFTEVDVF9OQU1FIiwiY3JlYXRlU2VsZWN0Q29udGV4dCIsImNyZWF0ZVNlbGVjdFNjb3BlIiwiU2VsZWN0UHJvdmlkZXIiLCJ1c2VTZWxlY3RDb250ZXh0IiwiU2VsZWN0TmF0aXZlT3B0aW9uc1Byb3ZpZGVyIiwidXNlU2VsZWN0TmF0aXZlT3B0aW9uc0NvbnRleHQiLCJTZWxlY3QiLCJfX3Njb3BlU2VsZWN0Iiwic2V0VHJpZ2dlciIsInZhbHVlTm9kZSIsInNldFZhbHVlTm9kZSIsInZhbHVlTm9kZUhhc0NoaWxkcmVuIiwic2V0VmFsdWVOb2RlSGFzQ2hpbGRyZW4iLCJ0cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWYiLCJuYXRpdmVPcHRpb25zU2V0Iiwic2V0TmF0aXZlT3B0aW9uc1NldCIsIm5hdGl2ZVNlbGVjdEtleSIsIm9uVmFsdWVOb2RlQ2hhbmdlIiwib25WYWx1ZU5vZGVIYXNDaGlsZHJlbkNoYW5nZSIsIm9uTmF0aXZlT3B0aW9uQWRkIiwib25OYXRpdmVPcHRpb25SZW1vdmUiLCJvcHRpb25zU2V0IiwiQnViYmxlU2VsZWN0IiwiU2VsZWN0VHJpZ2dlciIsInBvaW50ZXJUeXBlUmVmIiwicmVzZXRUeXBlYWhlYWQiLCJ1c2VUeXBlYWhlYWRTZWFyY2giLCJlbmFibGVkSXRlbXMiLCJuZXh0SXRlbSIsImZpbmROZXh0SXRlbSIsImhhbmRsZU9wZW4iLCJwb2ludGVyRXZlbnQiLCJwYWdlWCIsInBhZ2VZIiwic2hvdWxkU2hvd1BsYWNlaG9sZGVyIiwiVkFMVUVfTkFNRSIsIlNlbGVjdFZhbHVlIiwidmFsdWVQcm9wcyIsImhhc0NoaWxkcmVuIiwiU2VsZWN0SWNvbiIsImljb25Qcm9wcyIsIlNlbGVjdFBvcnRhbCIsIlNlbGVjdENvbnRlbnQiLCJmcmFnbWVudCIsInNldEZyYWdtZW50IiwiRG9jdW1lbnRGcmFnbWVudCIsImZyYWciLCJTZWxlY3RDb250ZW50UHJvdmlkZXIiLCJTZWxlY3RDb250ZW50SW1wbCIsIkNPTlRFTlRfTUFSR0lOIiwidXNlU2VsZWN0Q29udGVudENvbnRleHQiLCJ2aWV3cG9ydCIsInNldFZpZXdwb3J0Iiwic2VsZWN0ZWRJdGVtIiwic2V0U2VsZWN0ZWRJdGVtIiwic2VsZWN0ZWRJdGVtVGV4dCIsInNldFNlbGVjdGVkSXRlbVRleHQiLCJzZXRJc1Bvc2l0aW9uZWQiLCJmaXJzdFZhbGlkSXRlbUZvdW5kUmVmIiwiZmlyc3RJdGVtIiwicmVzdEl0ZW1zIiwibGFzdEl0ZW0iLCJzY3JvbGxJbnRvVmlldyIsImJsb2NrIiwiZm9jdXNTZWxlY3RlZEl0ZW0iLCJwb2ludGVyTW92ZURlbHRhIiwiaGFuZGxlUG9pbnRlck1vdmUiLCJoYW5kbGVQb2ludGVyVXAiLCJjbG9zZSIsIml0ZW1SZWZDYWxsYmFjayIsImlzRmlyc3RWYWxpZEl0ZW0iLCJoYW5kbGVJdGVtTGVhdmUiLCJpdGVtVGV4dFJlZkNhbGxiYWNrIiwiU2VsZWN0UG9zaXRpb24iLCJTZWxlY3RQb3BwZXJQb3NpdGlvbiIsIlNlbGVjdEl0ZW1BbGlnbmVkUG9zaXRpb24iLCJwb3BwZXJDb250ZW50UHJvcHMiLCJvblZpZXdwb3J0Q2hhbmdlIiwib25Db250ZXh0TWVudSIsImZsZXhEaXJlY3Rpb24iLCJjdXJyZW50RWxlbWVudCIsInBvcHBlclByb3BzIiwiY29udGVudFdyYXBwZXIiLCJzZXRDb250ZW50V3JhcHBlciIsInNob3VsZEV4cGFuZE9uU2Nyb2xsUmVmIiwic2hvdWxkUmVwb3NpdGlvblJlZiIsInRyaWdnZXJSZWN0IiwidmFsdWVOb2RlUmVjdCIsIml0ZW1UZXh0UmVjdCIsIml0ZW1UZXh0T2Zmc2V0IiwibGVmdERlbHRhIiwibWluQ29udGVudFdpZHRoIiwiY29udGVudFdpZHRoIiwicmlnaHRFZGdlIiwiY2xhbXBlZExlZnQiLCJyaWdodERlbHRhIiwibGVmdEVkZ2UiLCJjbGFtcGVkUmlnaHQiLCJpbm5lckhlaWdodCIsIml0ZW1zSGVpZ2h0IiwiY29udGVudFN0eWxlcyIsImNvbnRlbnRCb3JkZXJUb3BXaWR0aCIsImJvcmRlclRvcFdpZHRoIiwiY29udGVudFBhZGRpbmdUb3AiLCJjb250ZW50Qm9yZGVyQm90dG9tV2lkdGgiLCJib3JkZXJCb3R0b21XaWR0aCIsImZ1bGxDb250ZW50SGVpZ2h0IiwicGFkZGluZ0JvdHRvbSIsIm1pbkNvbnRlbnRIZWlnaHQiLCJ2aWV3cG9ydFN0eWxlcyIsInZpZXdwb3J0UGFkZGluZ1RvcCIsInZpZXdwb3J0UGFkZGluZ0JvdHRvbSIsInRvcEVkZ2VUb1RyaWdnZXJNaWRkbGUiLCJ0cmlnZ2VyTWlkZGxlVG9Cb3R0b21FZGdlIiwic2VsZWN0ZWRJdGVtSGFsZkhlaWdodCIsImNvbnRlbnRUb3BUb0l0ZW1NaWRkbGUiLCJpdGVtTWlkZGxlVG9Db250ZW50Qm90dG9tIiwiaXNMYXN0SXRlbSIsInZpZXdwb3J0T2Zmc2V0Qm90dG9tIiwiaXNGaXJzdEl0ZW0iLCJtYXhIZWlnaHQiLCJoYW5kbGVTY3JvbGxCdXR0b25DaGFuZ2UiLCJTZWxlY3RWaWV3cG9ydFByb3ZpZGVyIiwib25TY3JvbGxCdXR0b25DaGFuZ2UiLCJib3hTaXppbmciLCJ1c2VTZWxlY3RWaWV3cG9ydENvbnRleHQiLCJWSUVXUE9SVF9OQU1FIiwiU2VsZWN0Vmlld3BvcnQiLCJ2aWV3cG9ydFByb3BzIiwidmlld3BvcnRDb250ZXh0IiwicHJldlNjcm9sbFRvcFJlZiIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiZmxleCIsIm9uU2Nyb2xsIiwic2Nyb2xsZWRCeSIsImNzc01pbkhlaWdodCIsImNzc0hlaWdodCIsInByZXZIZWlnaHQiLCJuZXh0SGVpZ2h0IiwiY2xhbXBlZE5leHRIZWlnaHQiLCJoZWlnaHREaWZmIiwianVzdGlmeUNvbnRlbnQiLCJTZWxlY3RHcm91cENvbnRleHRQcm92aWRlciIsInVzZVNlbGVjdEdyb3VwQ29udGV4dCIsImdyb3VwSWQiLCJMQUJFTF9OQU1FIiwiZ3JvdXBDb250ZXh0IiwiU2VsZWN0SXRlbUNvbnRleHRQcm92aWRlciIsInVzZVNlbGVjdEl0ZW1Db250ZXh0IiwiU2VsZWN0SXRlbSIsInRleHRWYWx1ZVByb3AiLCJzZXRUZXh0VmFsdWUiLCJ0ZXh0SWQiLCJoYW5kbGVTZWxlY3QiLCJvbkl0ZW1UZXh0Q2hhbmdlIiwicHJldlRleHRWYWx1ZSIsIklURU1fVEVYVF9OQU1FIiwiU2VsZWN0SXRlbVRleHQiLCJpdGVtVGV4dFByb3BzIiwiaXRlbUNvbnRleHQiLCJuYXRpdmVPcHRpb25zQ29udGV4dCIsIml0ZW1UZXh0Tm9kZSIsInNldEl0ZW1UZXh0Tm9kZSIsIm5hdGl2ZU9wdGlvbiIsIlNDUk9MTF9VUF9CVVRUT05fTkFNRSIsImNhblNjcm9sbFVwIiwic2V0Q2FuU2Nyb2xsVXAiLCJoYW5kbGVTY3JvbGwyIiwiY2FuU2Nyb2xsVXAyIiwiU2VsZWN0U2Nyb2xsQnV0dG9uSW1wbCIsIm9uQXV0b1Njcm9sbCIsIlNDUk9MTF9ET1dOX0JVVFRPTl9OQU1FIiwiY2FuU2Nyb2xsRG93biIsInNldENhblNjcm9sbERvd24iLCJtYXhTY3JvbGwiLCJjYW5TY3JvbGxEb3duMiIsInNjcm9sbEluZGljYXRvclByb3BzIiwiYXV0b1Njcm9sbFRpbWVyUmVmIiwiY2xlYXJBdXRvU2Nyb2xsVGltZXIiLCJjbGVhckludGVydmFsIiwiYWN0aXZlSXRlbSIsImZsZXhTaHJpbmsiLCJzZXRJbnRlcnZhbCIsInNlbGVjdFByb3RvIiwiSFRNTFNlbGVjdEVsZW1lbnQiLCJvblNlYXJjaENoYW5nZSIsImhhbmRsZVNlYXJjaENoYW5nZSIsImN1cnJlbnRJdGVtSW5kZXgiLCJ3cmFwcGVkSXRlbXMiLCJWYWx1ZSIsIkljb24iLCJWaWV3cG9ydCIsIkl0ZW1UZXh0IiwiY3NzQ2xhc3MiLCJTZWxlY3RQcmltaXRpdmUuUm9vdCIsIlNlbGVjdFByaW1pdGl2ZS5UcmlnZ2VyIiwiU2VsZWN0UHJpbWl0aXZlLlZhbHVlIiwiU2VsZWN0UHJpbWl0aXZlLkljb24iLCJTZWxlY3RQcmltaXRpdmUuUG9ydGFsIiwiU2VsZWN0UHJpbWl0aXZlLkNvbnRlbnQiLCJTZWxlY3RQcmltaXRpdmUuVmlld3BvcnQiLCJTZWxlY3RQcmltaXRpdmUuSXRlbSIsIlNlbGVjdFByaW1pdGl2ZS5JdGVtVGV4dCIsIlNXSVRDSF9OQU1FIiwiY3JlYXRlU3dpdGNoQ29udGV4dCIsImNyZWF0ZVN3aXRjaFNjb3BlIiwiU3dpdGNoUHJvdmlkZXIiLCJ1c2VTd2l0Y2hDb250ZXh0IiwiU3dpdGNoIiwiX19zY29wZVN3aXRjaCIsInN3aXRjaFByb3BzIiwiU3dpdGNoVGh1bWIiLCJUQUJTX05BTUUiLCJjcmVhdGVUYWJzQ29udGV4dCIsImNyZWF0ZVRhYnNTY29wZSIsIlRhYnNQcm92aWRlciIsInVzZVRhYnNDb250ZXh0IiwiVGFicyIsIl9fc2NvcGVUYWJzIiwiYWN0aXZhdGlvbk1vZGUiLCJ0YWJzUHJvcHMiLCJiYXNlSWQiLCJUQUJfTElTVF9OQU1FIiwiVGFic0xpc3QiLCJsaXN0UHJvcHMiLCJUYWJzVHJpZ2dlciIsIm1ha2VUcmlnZ2VySWQiLCJtYWtlQ29udGVudElkIiwiaXNBdXRvbWF0aWNBY3RpdmF0aW9uIiwiVGFic0NvbnRlbnQiLCJpc01vdW50QW5pbWF0aW9uUHJldmVudGVkUmVmIiwickFGIiwiYW5pbWF0aW9uRHVyYXRpb24iLCJMaXN0IiwiY3JlYXRlVG9vbHRpcENvbnRleHQiLCJjcmVhdGVUb29sdGlwU2NvcGUiLCJERUZBVUxUX0RFTEFZX0RVUkFUSU9OIiwiVE9PTFRJUF9PUEVOIiwiVG9vbHRpcFByb3ZpZGVyQ29udGV4dFByb3ZpZGVyIiwidXNlVG9vbHRpcFByb3ZpZGVyQ29udGV4dCIsIlRvb2x0aXBQcm92aWRlciIsIl9fc2NvcGVUb29sdGlwIiwiZGVsYXlEdXJhdGlvbiIsInNraXBEZWxheUR1cmF0aW9uIiwiZGlzYWJsZUhvdmVyYWJsZUNvbnRlbnQiLCJpc09wZW5EZWxheWVkIiwic2V0SXNPcGVuRGVsYXllZCIsImlzUG9pbnRlckluVHJhbnNpdFJlZiIsInNraXBEZWxheVRpbWVyUmVmIiwic2tpcERlbGF5VGltZXIiLCJvbk9wZW4iLCJvblBvaW50ZXJJblRyYW5zaXRDaGFuZ2UiLCJpblRyYW5zaXQiLCJUT09MVElQX05BTUUiLCJUb29sdGlwQ29udGV4dFByb3ZpZGVyIiwidXNlVG9vbHRpcENvbnRleHQiLCJUb29sdGlwIiwiZGlzYWJsZUhvdmVyYWJsZUNvbnRlbnRQcm9wIiwiZGVsYXlEdXJhdGlvblByb3AiLCJwcm92aWRlckNvbnRleHQiLCJ3YXNPcGVuRGVsYXllZFJlZiIsIm9wZW4yIiwic3RhdGVBdHRyaWJ1dGUiLCJoYW5kbGVDbG9zZSIsImhhbmRsZURlbGF5ZWRPcGVuIiwib25UcmlnZ2VyRW50ZXIiLCJUb29sdGlwVHJpZ2dlciIsImhhc1BvaW50ZXJNb3ZlT3BlbmVkUmVmIiwiVG9vbHRpcFBvcnRhbCIsIlRvb2x0aXBDb250ZW50IiwiVG9vbHRpcENvbnRlbnRJbXBsIiwiVG9vbHRpcENvbnRlbnRIb3ZlcmFibGUiLCJwb2ludGVyR3JhY2VBcmVhIiwic2V0UG9pbnRlckdyYWNlQXJlYSIsImhhbmRsZVJlbW92ZUdyYWNlQXJlYSIsImhhbmRsZUNyZWF0ZUdyYWNlQXJlYSIsImhvdmVyVGFyZ2V0IiwiZXhpdFBvaW50IiwicGFkZGVkRXhpdFBvaW50cyIsImV4aXRTaWRlIiwiZ2V0UGFkZGVkRXhpdFBvaW50cyIsImdldEV4aXRTaWRlRnJvbVJlY3QiLCJncmFjZUFyZWEiLCJuZXdQb2ludHMiLCJ1cHBlckh1bGwiLCJxIiwicG9wIiwibG93ZXJIdWxsIiwiZ2V0SHVsbFByZXNvcnRlZCIsImdldEh1bGwiLCJnZXRQb2ludHNGcm9tUmVjdCIsImhhbmRsZVRyaWdnZXJMZWF2ZSIsImhhbmRsZUNvbnRlbnRMZWF2ZSIsImhhbmRsZVRyYWNrUG9pbnRlckdyYWNlIiwiaGFzRW50ZXJlZFRhcmdldCIsImlzUG9pbnRlck91dHNpZGVHcmFjZUFyZWEiLCJWaXN1YWxseUhpZGRlbkNvbnRlbnRDb250ZXh0UHJvdmlkZXIiLCJ1c2VWaXN1YWxseUhpZGRlbkNvbnRlbnRDb250ZXh0IiwiaXNJbnNpZGUiLCJhcmlhTGFiZWwiLCJWaXN1YWxseUhpZGRlblByaW1pdGl2ZS5Sb290IiwiVG9vbHRpcEFycm93IiwiaXNDdXN0b21UcmlnZ2VyIiwiaXNQb3J0YWwiLCJpc1RyaWdnZXJBc0NoaWxkIiwiaXNUb29sdGlwT3BlbiIsIlRvb2x0aXBQcmltaXRpdmUuQ29udGVudCIsIlRvb2x0aXBQcmltaXRpdmUuQXJyb3ciLCJUb29sdGlwUHJpbWl0aXZlLlByb3ZpZGVyIiwiVG9vbHRpcFByaW1pdGl2ZS5Sb290IiwidmlzaWJsZSIsIlRvb2x0aXBQcmltaXRpdmUuVHJpZ2dlciIsIlRvb2x0aXBQcmltaXRpdmUuUG9ydGFsIiwidmFyaWFudE1hcHBlciIsImgxIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJiMSIsImIyIiwiYjMiLCJzYjEiLCJzYjIiLCJzYjMiLCJvbDEiLCJvbDIiLCJsaW5rIiwiREVGQVVMVF9TSURFX09GRlNFVCIsIlVwbG9hZE1lbnUiLCJ0cmlnZ2VyQnV0dG9uIiwidHJpZ2dlckJ1dHRvbkNsYXNzIiwiaXNPcGVuTWVudSIsInNldElzT3Blbk1lbnUiLCJpc1RyaWdnZXJCdXR0b24iLCJjbGVhcmVkTWVudSIsImlzTWVudUF2YWlsYWJsZSIsIkRvdHNJY29uIiwic3R5bGUkMl9tZW51SXRlbURpc2FibGVkIiwiaXRlbU51bWJlciIsIm9uU2VsZWN0TWVudUl0ZW0iLCJVcGxvYWRQcm9ncmVzc1ByZXZpZXciLCJmaWxlSW5mbyIsImltYWdlVGl0bGUiLCJpc1VwbG9hZCIsImlzVXBsb2FkTW9kZSIsIm1lbnVQcmV2aWV3IiwiaXNQcmV2aWV3T25seSIsIm1lbnVQcm9ncmVzcyIsImlzUHJvZ3Jlc3NPbmx5IiwiYWx0IiwiUHJvZ3Jlc3NJY29uIiwic3R5bGUkMV9ub01lbnUiLCJzdHlsZSQxX2lzVXBsb2FkTW9kZSIsIlVwbG9hZCIsImN1c3RvbUljb24iLCJjdXN0b21IZWFkZXIiLCJjdXN0b21UZXh0IiwiY3JvcEFzcGVjdFJhdGlvIiwiaXNDcm9wQWxsb3dlZCIsIm9uVXBsb2FkIiwib25Dcm9wQ2FuY2VsIiwib25Dcm9wT2siLCJvblJlYWRGaWxlRXJyb3IiLCJvblJlYWRGaWxlUHJvZ3Jlc3MiLCJvblJlYWRGaWxlU3RhcnQiLCJvblJlYWRGaWxlU3VjY2VzcyIsInByZXZpZXdGaWxlSW5mbyIsInByZXZpZXdGaWxlTmFtZSIsInByZXZpZXdJbWFnZSIsInByZXZpZXdJbWFnZVRpdGxlIiwidXBsb2FkUGVyY2VudCIsImNyb3BwZWRBcmVhT3B0aW9ucyIsInNldENyb3BwZWRBcmVhT3B0aW9ucyIsImZpbGVVcmwiLCJzZXRGaWxlVXJsIiwiaXNDcm9wcGVkIiwic2V0SXNDcm9wcGVkIiwiaXNPcGVuQ3JvcE1vZGFsIiwic2V0SXNPcGVuQ3JvcE1vZGFsIiwidXBsb2FkRXJyb3IiLCJzZXRVcGxvYWRFcnJvciIsInVwbG9hZGVkRmlsZSIsInNldFVwbG9hZGVkRmlsZSIsInVwbG9hZFByb2dyZXNzIiwic2V0VXBsb2FkUHJvZ3Jlc3MiLCJpc1Byb2dyZXNzUHJldmlldyIsImFjY2VwdGFibGVGb3JtYXRzIiwicmVwbGFjZUFsbCIsImlzQ3JvcHBlZEltYWdlVVJMIiwiaXNVcGxvYWRlZEZpbGVJbWFnZSIsInByb2Nlc3NGaWxlIiwiZmlsZVVSTCIsImNhbmNlbENyb3BIYW5kbGVyIiwiY2FsY3VsYXRlZEVycm9yIiwidmFsaWRhdGVGaWxlIiwib25wcm9ncmVzcyIsImxlbmd0aENvbXB1dGFibGUiLCJwcm9ncmVzcyIsImxvYWRlZCIsImNhbmNlbFVwbG9hZCIsIm1lbnVXaXRoSGFuZGxlcnMiLCJhY3Rpb24iLCJvblNlbGVjdE1lbnVJdGVtSGFuZGxlciIsIm1lbnVQcm9ncmVzc1ByZXZpZXciLCJzdGFuZGFyZE1lbnUiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwiYWNjZXB0IiwiUGx1c0ljb24iLCJjcm9wcGVkQXJlYVBpeGVscyIsImFjdGlvblRleHQiLCJvbkFjdGlvbkNsaWNrIiwiY2FuY2VsVGV4dCIsIm9uQ2FuY2VsQ2xpY2siLCJpc09rRGlzYWJsZWQiLCJhY3Rpb25CdXR0b25UeXBlIiwibWF4V2lkdGgiLCJBbGVydERpYWxvZy5Sb290IiwiQWxlcnREaWFsb2cuUG9ydGFsIiwiQWxlcnREaWFsb2cuT3ZlcmxheSIsIkFsZXJ0RGlhbG9nLkNvbnRlbnQiLCJBbGVydERpYWxvZy5UaXRsZSIsIkFsZXJ0RGlhbG9nLkRlc2NyaXB0aW9uIiwiQWxlcnREaWFsb2cuQ2FuY2VsIiwiQWxlcnREaWFsb2cuQWN0aW9uIiwidXNlck5hbWUiLCJmYWxsYmFja0RlbGF5IiwiYXZhdGFyU2l6ZUNsYXNzIiwic2l6ZTMyIiwiZmlyc3RMZXR0ZXIiLCJBdmF0YXJEZW1vLlJvb3QiLCJhdmF0YXJSb290IiwiQXZhdGFyRGVtby5JbWFnZSIsImF2YXRhckltYWdlIiwiQXZhdGFyRGVtby5GYWxsYmFjayIsImF2YXRhckZhbGxiYWNrIiwiUGVyc29uIiwiYmFkZ2UiLCJjb3BpZWQiLCJzZXRDb3BpZWQiLCJpbnB1dFJlZiIsIm5hdmlnYXRvciIsImNsaXBib2FyZCIsIndyaXRlVGV4dCIsImNvcHlUb0NsaXBib2FyZCIsInJlYWRPbmx5IiwidG9nZ2xlRHJhd2VyIiwiZHJhd2VyIiwib3ZlcmxheSIsImFsaWduUmlnaHQiLCJhbGlnbkxlZnQiLCJjaGlsZHJlbldyYXBwZXIiLCJpc0xhYmVsIiwiQ29tcG9uZW50IiwiRHJvcGRvd25NZW51LkxhYmVsIiwiRHJvcGRvd25NZW51Lkl0ZW0iLCJzdHlsZXMkZF93YXJuaW5nIiwic3R5bGVzJGRfbGFiZWwiLCJqdXN0aWZ5IiwiYWxpZ25JdGVtcyIsImZvcm1Hcm91cCIsImlzSWNvblZpc2libGUiLCJSb2NrZXRJY29uIiwibWF4VG91Y2hQb2ludHMiLCJQcm9ncmVzc1ByaW1pdGl2ZS5Sb290IiwiUHJvZ3Jlc3NQcmltaXRpdmUuSW5kaWNhdG9yIiwiY29udHJvbGxlZFByb3BzIiwiUmFkaW8uUm9vdCIsIlJhZGlvLkl0ZW0iLCJSYWRpby5JbmRpY2F0b3IiLCJpbmRpY2F0b3IiLCJSYWRpeFN3aXRjaC5Sb290IiwiUmFkaXhTd2l0Y2guVGh1bWIiLCJUYWJzLlRyaWdnZXIiLCJUYWJzLkNvbnRlbnQiLCJUYWJzLkxpc3QiLCJUYWJzLlJvb3QiLCJvbkRlbGV0ZSIsImNsYXNzbmFtZXMiLCJkYXRhVGVzdElkIiwiZW1waGFzaXMiXSwibWFwcGluZ3MiOiI7Ozs7O01BT0MsV0FHQSxJQUFJQSxFQUFTLENBQUEsRUFBR0MsZUFFaEIsU0FBU0MsSUFHUixJQUZBLElBQUlDLEVBQVUsR0FFTEMsRUFBSSxFQUFHQSxFQUFJQyxVQUFVQyxPQUFRRixJQUFLLENBQzFDLElBQUlHLEVBQU1GLFVBQVVELEdBQ2hCRyxJQUNISixFQUFVSyxFQUFZTCxFQUFTTSxFQUFXRixJQUU5QyxDQUVFLE9BQU9KLENBQ1QsQ0FFQyxTQUFTTSxFQUFZRixHQUNwQixHQUFtQixpQkFBUkEsR0FBbUMsaUJBQVJBLEVBQ3JDLE9BQU9BLEVBR1IsR0FBbUIsaUJBQVJBLEVBQ1YsTUFBTyxHQUdSLEdBQUlHLE1BQU1DLFFBQVFKLEdBQ2pCLE9BQU9MLEVBQVdVLE1BQU0sS0FBTUwsR0FHL0Is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V3pjLEVBQVcwVyxHQUFhLGdCQUFpQixDQUNsRCtGLENBQUNBLEdBQVlBLEtBRWRoYSxFQUdQLGNDaEJ3QixVQUFJQSxTQUFFQSxFQUFRb3RGLFNBQUVBLEVBQVcsS0FBSXB6RSxVQUFFQSxFQUFZLEtBQ25FLE9BQ0UxYSxFQUFBK1YsY0FBQSxNQUFBLENBQUsyRSxVQUFXcXpFLEVBQVdwNUUsR0FBZ0IseUJBQTBCK0YsSUFDbEVoYSxFQUVBcUMsUUFBUStxRixJQUNQOXRGLEVBQ0UrVixjQUFBLFNBQUEsQ0FBQTdPLEtBQUssU0FDTDZnQixRQUFTK2xFLEVBQ1RwekUsVUFBV3F6RSxFQUFXcDVFLEdBQXFCLCtCQUMzQzNVLEVBQUErVixjQUFDdStCLEdBQVksT0FLdkIseURic0IwQixFQUN4QjE0QixNQUNBb3lFLGFBQWEsR0FDYmw5QixRQUFRLE9BQ1JwMkMsWUFBWSxHQUNaaGEsV0FBVyxLQUNYdXRGLFdBQVcsVUFDWHAwQyxRQUFRLEdBQ1I3cUIsVUFBVSxRQUNQeVAsTUFFSCxNQUFNaGYsRUFBVTdELEVBRWhCLE9BQ0U1YixnQkFBQ3lmLEVBQU8sQ0FDTm82QixNQUFPQSxFQUNNLGNBQUFtMEMsRUFDYnR6RSxVQUFXcXpFLEVBQ1RwNUUsR0FBT3JWLFFBQ1BxVixHQUFPK3VFLEdBQWMxMEQsSUFDckJyYSxHQUFPbThDLEdBQ1BuOEMsR0FBT3M1RSxHQUNQLDhCQUNBLGNBQWNqL0QsSUFDZHRVLE1BRUUrakIsR0FDSC85QixFQUNPLGtZckN1RlMsQ0FBQ291QyxFQUFnQixPQUNoQ0EsYUFBZ0JDLE1BSWZELEVBQUs1bkMsS0FBS2lwQyxXQUFXIiwieF9nb29nbGVfaWdub3JlTGlzdCI6WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIsMzMsMzQsMzUsMzYsMzcsMzgsNDIsMTQwLDE0MSwxNDIsMTQzLDE0OSwxNTAsMTUxLDE1MiwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTczLDE3NCwxNzUsMTgwLDE4MiwxODMsMTg0LDE4NSwxODcsMTg4LDE4OSwxOTBdfQ==
|
|
1
|
+
"use strict";function _interopNamespaceDefault(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function createContextScope(e,t=[]){let n=[];const o=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const o=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:o}})),[n,o])}};return o.scopeName=e,[function(t,o){const a=React__namespace.createContext(o),r=n.length;n=[...n,o];const i=t=>{const{scope:n,children:o,...i}=t,s=n?.[e]?.[r]||a,c=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.jsx(s.Provider,{value:c,children:o})};return i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e]?.[r]||a,c=React__namespace.useContext(s);if(c)return c;if(void 0!==o)return o;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes(o,...t)]}function composeContextScopes(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const o=n.reduce(((t,{useScope:n,scopeName:o})=>({...t,...n(e)[`__scope${o}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:o})),[o])}};return n.scopeName=t.scopeName,n}function setRef(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function composeRefs(...e){return t=>{let n=!1;const o=e.map((e=>{const o=setRef(e,t);return n||"function"!=typeof o||(n=!0),o}));if(n)return()=>{for(let t=0;t<o.length;t++){const n=o[t];"function"==typeof n?n():setRef(e[t],null)}}}}function useComposedRefs(...e){return React__namespace.useCallback(composeRefs(...e),e)}function composeEventHandlers(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e?.(o),!1===n||!o.defaultPrevented)return t?.(o)}}function useId(e){const[t,n]=React__namespace.useState(useReactId());return useLayoutEffect2((()=>{n((e=>e??String(count$1++)))}),[e]),e||(t?`radix-${t}`:"")}function useCallbackRef$1(e){const t=React__namespace.useRef(e);return React__namespace.useEffect((()=>{t.current=e})),React__namespace.useMemo((()=>(...e)=>t.current?.(...e)),[])}function useControllableState({prop:e,defaultProp:t,onChange:n=()=>{}}){const[o,a]=function({defaultProp:e,onChange:t}){const n=React__namespace.useState(e),[o]=n,a=React__namespace.useRef(o),r=useCallbackRef$1(t);return React__namespace.useEffect((()=>{a.current!==o&&(r(o),a.current=o)}),[o,a,r]),n}({defaultProp:t,onChange:n}),r=void 0!==e,i=r?e:o,s=useCallbackRef$1(n);return[i,React__namespace.useCallback((t=>{if(r){const n="function"==typeof t?t(e):t;n!==e&&s(n)}else a(t)}),[r,e,a,s])]}function isSlottable(e){return React__namespace.isValidElement(e)&&e.type===Slottable}function dispatchDiscreteCustomEvent(e,t){e&&ReactDOM__namespace.flushSync((()=>e.dispatchEvent(t)))}function dispatchUpdate(){const e=new CustomEvent(CONTEXT_UPDATE);document.dispatchEvent(e)}function handleAndDispatchCustomEvent(e,t,n,{discrete:o}){const a=n.originalEvent.target,r=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),o?dispatchDiscreteCustomEvent(a,r):a.dispatchEvent(r)}function getTabbableCandidates(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function findVisible(e,t){for(const n of e)if(!isHidden(n,{upTo:t}))return n}function isHidden(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(void 0!==t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}function focus(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&function(e){return e instanceof HTMLInputElement&&"select"in e}(e)&&t&&e.select()}}function arrayRemove(e,t){const n=[...e],o=n.indexOf(t);return-1!==o&&n.splice(o,1),n}function usePresence(e){const[t,n]=React__namespace.useState(),o=React__namespace.useRef({}),a=React__namespace.useRef(e),r=React__namespace.useRef("none"),i=e?"mounted":"unmounted",[s,c]=function(e,t){return React__namespace.useReducer(((e,n)=>t[e][n]??e),e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return React__namespace.useEffect((()=>{const e=getAnimationName(o.current);r.current="mounted"===s?e:"none"}),[s]),useLayoutEffect2((()=>{const t=o.current,n=a.current;if(n!==e){const o=r.current,i=getAnimationName(t);if(e)c("MOUNT");else if("none"===i||"none"===t?.display)c("UNMOUNT");else{c(n&&o!==i?"ANIMATION_OUT":"UNMOUNT")}a.current=e}}),[e,c]),useLayoutEffect2((()=>{if(t){let e;const n=t.ownerDocument.defaultView??window,i=r=>{const i=getAnimationName(o.current).includes(r.animationName);if(r.target===t&&i&&(c("ANIMATION_END"),!a.current)){const o=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout((()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=o)}))}},s=e=>{e.target===t&&(r.current=getAnimationName(o.current))};return t.addEventListener("animationstart",s),t.addEventListener("animationcancel",i),t.addEventListener("animationend",i),()=>{n.clearTimeout(e),t.removeEventListener("animationstart",s),t.removeEventListener("animationcancel",i),t.removeEventListener("animationend",i)}}c("ANIMATION_END")}),[t,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:React__namespace.useCallback((e=>{e&&(o.current=getComputedStyle(e)),n(e)}),[])}}function getAnimationName(e){return e?.animationName||"none"}function useFocusGuards(){React__namespace.useEffect((()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??createFocusGuard()),document.body.insertAdjacentElement("beforeend",e[1]??createFocusGuard()),count++,()=>{1===count&&document.querySelectorAll("[data-radix-focus-guard]").forEach((e=>e.remove())),count--}}),[])}function createFocusGuard(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}function __rest(e,t){var n,o,a={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(o=0,n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(a[n[o]]=e[n[o]]);return a}function assignRef(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}function useMergeRefs(e,t){var n,o,a,r=(n=null,o=function(t){return e.forEach((function(e){return assignRef(e,t)}))},(a=React.useState((function(){return{value:n,callback:o,facade:{get current(){return a.value},set current(e){var t=a.value;t!==e&&(a.value=e,a.callback(e,t))}}}}))[0]).callback=o,a.facade);return useIsomorphicLayoutEffect((function(){var t,n,o,a=currentValues.get(r);a&&(t=new Set(a),n=new Set(e),o=r.current,t.forEach((function(e){n.has(e)||assignRef(e,null)})),n.forEach((function(e){t.has(e)||assignRef(e,o)}))),currentValues.set(r,e)}),[e]),r}function ItoI(e){return e}function getOutermostShadowParent(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}function getState$4(e){return e?"open":"closed"}function _extends$1F(){return _extends$1F=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1F.apply(null,arguments)}function Loader({size:e="medium",className:t="",inheritColor:n=!1}){return React.createElement("span",{className:cn("demio-ui-loader",styles$r.loader,{[styles$r[e]]:e,[styles$r.inheritColor]:n,[t]:t})})}function _extends$1E(){return _extends$1E=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1E.apply(null,arguments)}function _extends$1D(){return _extends$1D=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1D.apply(null,arguments)}function _extends$1C(){return _extends$1C=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1C.apply(null,arguments)}function _extends$1B(){return _extends$1B=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1B.apply(null,arguments)}function _extends$1A(){return _extends$1A=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1A.apply(null,arguments)}function _extends$1z(){return _extends$1z=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1z.apply(null,arguments)}function _extends$1y(){return _extends$1y=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1y.apply(null,arguments)}function _extends$1x(){return _extends$1x=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1x.apply(null,arguments)}function _extends$1w(){return _extends$1w=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1w.apply(null,arguments)}function _extends$1v(){return _extends$1v=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1v.apply(null,arguments)}function _extends$1u(){return _extends$1u=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1u.apply(null,arguments)}function _extends$1t(){return _extends$1t=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1t.apply(null,arguments)}function _extends$1s(){return _extends$1s=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1s.apply(null,arguments)}function _extends$1r(){return _extends$1r=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1r.apply(null,arguments)}function _extends$1q(){return _extends$1q=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1q.apply(null,arguments)}function _extends$1p(){return _extends$1p=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1p.apply(null,arguments)}function _extends$1o(){return _extends$1o=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1o.apply(null,arguments)}function _extends$1n(){return _extends$1n=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1n.apply(null,arguments)}function _extends$1m(){return _extends$1m=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1m.apply(null,arguments)}function _extends$1l(){return _extends$1l=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1l.apply(null,arguments)}function _extends$1k(){return _extends$1k=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1k.apply(null,arguments)}function _extends$1j(){return _extends$1j=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1j.apply(null,arguments)}function _extends$1i(){return _extends$1i=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1i.apply(null,arguments)}function _extends$1h(){return _extends$1h=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1h.apply(null,arguments)}function _extends$1g(){return _extends$1g=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1g.apply(null,arguments)}function _extends$1f(){return _extends$1f=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1f.apply(null,arguments)}function _extends$1e(){return _extends$1e=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1e.apply(null,arguments)}function _extends$1d(){return _extends$1d=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1d.apply(null,arguments)}function _extends$1c(){return _extends$1c=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1c.apply(null,arguments)}function _extends$1b(){return _extends$1b=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1b.apply(null,arguments)}function _extends$1a(){return _extends$1a=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1a.apply(null,arguments)}function _extends$19(){return _extends$19=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$19.apply(null,arguments)}function _extends$18(){return _extends$18=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$18.apply(null,arguments)}function _extends$17(){return _extends$17=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$17.apply(null,arguments)}function _extends$16(){return _extends$16=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$16.apply(null,arguments)}function _extends$15(){return _extends$15=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$15.apply(null,arguments)}function _extends$14(){return _extends$14=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$14.apply(null,arguments)}function _extends$13(){return _extends$13=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$13.apply(null,arguments)}function _extends$12(){return _extends$12=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$12.apply(null,arguments)}function _extends$11(){return _extends$11=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$11.apply(null,arguments)}function _extends$10(){return _extends$10=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$10.apply(null,arguments)}function _extends$$(){return _extends$$=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$$.apply(null,arguments)}function _extends$_(){return _extends$_=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$_.apply(null,arguments)}function _extends$Z(){return _extends$Z=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$Z.apply(null,arguments)}function _extends$Y(){return _extends$Y=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$Y.apply(null,arguments)}function _extends$X(){return _extends$X=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$X.apply(null,arguments)}function _extends$W(){return _extends$W=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$W.apply(null,arguments)}function _extends$V(){return _extends$V=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$V.apply(null,arguments)}function _extends$U(){return _extends$U=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$U.apply(null,arguments)}function _extends$T(){return _extends$T=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$T.apply(null,arguments)}function _extends$S(){return _extends$S=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$S.apply(null,arguments)}function _extends$R(){return _extends$R=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$R.apply(null,arguments)}function _extends$Q(){return _extends$Q=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$Q.apply(null,arguments)}function _extends$P(){return _extends$P=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$P.apply(null,arguments)}function _extends$O(){return _extends$O=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$O.apply(null,arguments)}function _extends$N(){return _extends$N=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$N.apply(null,arguments)}function _extends$M(){return _extends$M=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$M.apply(null,arguments)}function _extends$L(){return _extends$L=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$L.apply(null,arguments)}function _extends$K(){return _extends$K=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$K.apply(null,arguments)}function _extends$J(){return _extends$J=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$J.apply(null,arguments)}function _extends$I(){return _extends$I=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$I.apply(null,arguments)}function _extends$H(){return _extends$H=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$H.apply(null,arguments)}function _extends$G(){return _extends$G=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$G.apply(null,arguments)}function _extends$F(){return _extends$F=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$F.apply(null,arguments)}function _extends$E(){return _extends$E=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$E.apply(null,arguments)}function _extends$D(){return _extends$D=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$D.apply(null,arguments)}function _extends$C(){return _extends$C=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$C.apply(null,arguments)}function _extends$B(){return _extends$B=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$B.apply(null,arguments)}function _extends$A(){return _extends$A=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$A.apply(null,arguments)}function _extends$z(){return _extends$z=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$z.apply(null,arguments)}function _extends$y(){return _extends$y=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$y.apply(null,arguments)}function _extends$x(){return _extends$x=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$x.apply(null,arguments)}function _extends$w(){return _extends$w=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$w.apply(null,arguments)}function _extends$v(){return _extends$v=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$v.apply(null,arguments)}function _extends$u(){return _extends$u=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$u.apply(null,arguments)}function _extends$t(){return _extends$t=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$t.apply(null,arguments)}function _extends$s(){return _extends$s=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$s.apply(null,arguments)}function _extends$r(){return _extends$r=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$r.apply(null,arguments)}function _extends$q(){return _extends$q=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$q.apply(null,arguments)}function _extends$p(){return _extends$p=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$p.apply(null,arguments)}function _extends$o(){return _extends$o=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$o.apply(null,arguments)}function _extends$n(){return _extends$n=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$n.apply(null,arguments)}function _extends$m(){return _extends$m=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$m.apply(null,arguments)}function _extends$l(){return _extends$l=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$l.apply(null,arguments)}function _extends$k(){return _extends$k=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$k.apply(null,arguments)}function _extends$j(){return _extends$j=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$j.apply(null,arguments)}function _extends$i(){return _extends$i=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$i.apply(null,arguments)}function _extends$h(){return _extends$h=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$h.apply(null,arguments)}function _extends$g(){return _extends$g=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$g.apply(null,arguments)}function _extends$f(){return _extends$f=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$f.apply(null,arguments)}function _extends$e(){return _extends$e=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$e.apply(null,arguments)}function _extends$d(){return _extends$d=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$d.apply(null,arguments)}function _extends$c(){return _extends$c=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$c.apply(null,arguments)}function _extends$b(){return _extends$b=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$b.apply(null,arguments)}function _extends$a(){return _extends$a=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$a.apply(null,arguments)}function _extends$9(){return _extends$9=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$9.apply(null,arguments)}function _extends$8(){return _extends$8=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$8.apply(null,arguments)}function _extends$7(){return _extends$7=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$7.apply(null,arguments)}function _extends$6(){return _extends$6=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$6.apply(null,arguments)}function _extends$5(){return _extends$5=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$5.apply(null,arguments)}function _extends$4(){return _extends$4=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$4.apply(null,arguments)}function _extends$3(){return _extends$3=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$3.apply(null,arguments)}function _extends$2(){return _extends$2=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$2.apply(null,arguments)}function _extends$1(){return _extends$1=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends$1.apply(null,arguments)}function usePrevious(e){const t=React__namespace.useRef({value:e,previous:e});return React__namespace.useMemo((()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous)),[e])}function useSize(e){const[t,n]=React__namespace.useState(void 0);return useLayoutEffect2((()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const t=new ResizeObserver((t=>{if(!Array.isArray(t))return;if(!t.length)return;const o=t[0];let a,r;if("borderBoxSize"in o){const e=o.borderBoxSize,t=Array.isArray(e)?e[0]:e;a=t.inlineSize,r=t.blockSize}else a=e.offsetWidth,r=e.offsetHeight;n({width:a,height:r})}));return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}n(void 0)}),[e]),t}function isIndeterminate$1(e){return"indeterminate"===e}function getState$3(e){return isIndeterminate$1(e)?"indeterminate":e?"checked":"unchecked"}function Label$1({htmlFor:e,children:t,className:n="",weight:o="regular"}){return React.createElement(Root$6,{htmlFor:e,className:cn("demio-ui-label",styles$k_label,[getWeightClass(o)],{[n]:!!n})},t)}function InputHint({children:e,type:t="hint",className:n=""}){return React.createElement("div",{className:cn("demio-ui-input-hint",styles$i_root,{[styles$i_error]:"error"===t,[n]:!!n}),"data-html":t},e)}function _populate(){var e,t,n,o,a;_populated||(_populated=!0,e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e),_iphone=/\b(iPhone|iP[ao]d)/.exec(e),_ipad=/\b(iP[ao]d)/.exec(e),_android=/Android/i.exec(e),_native=/FBAN\/\w+;/i.exec(e),_mobile=/Mobile/i.exec(e),_win64=!!/Win64/.exec(e),t?((_ie=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN)&&document&&document.documentMode&&(_ie=document.documentMode),o=/(?:Trident\/(\d+.\d+))/.exec(e),_ie_real_version=o?parseFloat(o[1])+4:_ie,_firefox=t[2]?parseFloat(t[2]):NaN,_opera=t[3]?parseFloat(t[3]):NaN,(_webkit=t[4]?parseFloat(t[4]):NaN)?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),_chrome=t&&t[1]?parseFloat(t[1]):NaN):_chrome=NaN):_ie=_firefox=_opera=_chrome=_webkit=NaN,n?(n[1]?(a=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e),_osx=!a||parseFloat(a[1].replace("_","."))):_osx=!1,_windows=!!n[2],_linux=!!n[3]):_osx=_windows=_linux=!1)}function normalizeWheel$2(e){var t=0,n=0,o=0,a=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),o=t*PIXEL_STEP,a=n*PIXEL_STEP,"deltaY"in e&&(a=e.deltaY),"deltaX"in e&&(o=e.deltaX),(o||a)&&e.deltaMode&&(1==e.deltaMode?(o*=LINE_HEIGHT,a*=LINE_HEIGHT):(o*=PAGE_HEIGHT,a*=PAGE_HEIGHT)),o&&!t&&(t=o<1?-1:1),a&&!n&&(n=a<1?-1:1),{spinX:t,spinY:n,pixelX:o,pixelY:a}}function restrictPosition(e,t,n,o,a){void 0===a&&(a=0);var r=rotateSize$1(t.width,t.height,a),i=r.width,s=r.height;return{x:restrictPositionCoord(e.x,i,n.width,o),y:restrictPositionCoord(e.y,s,n.height,o)}}function restrictPositionCoord(e,t,n,o){var a=t*o/2-n/2;return clamp$2(e,-a,a)}function getDistanceBetweenPoints(e,t){return Math.sqrt(Math.pow(e.y-t.y,2)+Math.pow(e.x-t.x,2))}function getRotationBetweenPoints(e,t){return 180*Math.atan2(t.y-e.y,t.x-e.x)/Math.PI}function limitArea(e,t){return Math.min(e,Math.max(0,t))}function noOp(e,t){return t}function getCenter(e,t){return{x:(t.x+e.x)/2,y:(t.y+e.y)/2}}function rotateSize$1(e,t,n){var o=n*Math.PI/180;return{width:Math.abs(Math.cos(o)*e)+Math.abs(Math.sin(o)*t),height:Math.abs(Math.sin(o)*e)+Math.abs(Math.cos(o)*t)}}function clamp$2(e,t,n){return Math.min(Math.max(e,t),n)}function classNames$1(){var e,t=[];for(e=0;e<arguments.length;e++)t[e]=arguments[e];return t.filter((function(e){return"string"==typeof e&&e.length>0})).join(" ").trim()}function clamp$1(e,[t,n]){return Math.min(n,Math.max(t,e))}function useDirection(e){const t=React__namespace.useContext(DirectionContext);return e||t||"ltr"}function createCollection(e){const t=e+"CollectionProvider",[n,o]=createContextScope(t),[a,r]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=e=>{const{scope:t,children:n}=e,o=React.useRef(null),r=React.useRef(new Map).current;return jsxRuntime.jsx(a,{scope:t,itemMap:r,collectionRef:o,children:n})};i.displayName=t;const s=e+"CollectionSlot",c=React.forwardRef(((e,t)=>{const{scope:n,children:o}=e,a=useComposedRefs(t,r(s,n).collectionRef);return jsxRuntime.jsx(Slot,{ref:a,children:o})}));c.displayName=s;const l=e+"CollectionItemSlot",u="data-radix-collection-item",d=React.forwardRef(((e,t)=>{const{scope:n,children:o,...a}=e,i=React.useRef(null),s=useComposedRefs(t,i),c=r(l,n);return React.useEffect((()=>(c.itemMap.set(i,{ref:i,...a}),()=>{c.itemMap.delete(i)}))),jsxRuntime.jsx(Slot,{[u]:"",ref:s,children:o})}));return d.displayName=l,[{Provider:i,Slot:c,ItemSlot:d},function(t){const n=r(e+"CollectionConsumer",t);return React.useCallback((()=>{const e=n.collectionRef.current;if(!e)return[];const t=Array.from(e.querySelectorAll(`[${u}]`));return Array.from(n.itemMap.values()).sort(((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current)))}),[n.collectionRef,n.itemMap])},o]}function convertValueToPercentage(e,t,n){return clamp$1(100/(n-t)*(e-t),[0,100])}function linearScale(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const o=(t[1]-t[0])/(e[1]-e[0]);return t[0]+o*(n-e[0])}}function Modal({children:e=null,contentClassName:t="",isCloseButtonVisible:n=!0,onClose:o=()=>{},onOpenChange:a,open:r,overlayClassName:i="",title:s,isClosable:c=!0,portalContainer:l=document.body,...u}){return React.createElement(Root$9,{open:r,onOpenChange:e=>{c&&a&&a(e)},"data-testid":"modal-overlay"},React.createElement(Portal$4,{container:l||void 0},React.createElement(Overlay,{"data-testid":"modal-overlay",className:cn(styles$f_overlay,{[i]:!!i,[styles$f_isTitleHidden]:!s&&!n},"demio-ui-modal-overlay")},React.createElement(Content$2,{...u,className:cn(styles$f_content,{[t]:!!t},"demio-ui-modal-content"),"aria-describedby":void 0},React.createElement("div",{className:cn(styles$f_header,"demio-ui-modal-header"),"data-html":"header"},React.createElement(Title,{className:cn(styles$f_title,{[styles$f_titleCentered]:!n},"demio-ui-modal-title"),"data-html":"title"},s),n&&React.createElement(Close,{className:cn(styles$f_close,"demio-ui-modal-close-button"),onClick:()=>{a(!1),o()},"data-html":"close-btn","data-testid":"close-btn"},React.createElement(SvgClose,null))),React.createElement("div",{className:cn(styles$f_body,"demio-ui-modal-children"),"data-html":"content"},e)))))}function clamp(e,t,n){return max(e,min(t,n))}function evaluate(e,t){return"function"==typeof e?e(t):e}function getSide(e){return e.split("-")[0]}function getAlignment(e){return e.split("-")[1]}function getOppositeAxis(e){return"x"===e?"y":"x"}function getAxisLength(e){return"y"===e?"height":"width"}function getSideAxis(e){return["top","bottom"].includes(getSide(e))?"y":"x"}function getAlignmentAxis(e){return getOppositeAxis(getSideAxis(e))}function getOppositeAlignmentPlacement(e){return e.replace(/start|end/g,(e=>oppositeAlignmentMap[e]))}function getOppositePlacement(e){return e.replace(/left|right|bottom|top/g,(e=>oppositeSideMap[e]))}function getPaddingObject(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function rectToClientRect(e){const{x:t,y:n,width:o,height:a}=e;return{width:o,height:a,top:n,left:t,right:t+o,bottom:n+a,x:t,y:n}}function computeCoordsFromPlacement(e,t,n){let{reference:o,floating:a}=e;const r=getSideAxis(t),i=getAlignmentAxis(t),s=getAxisLength(i),c=getSide(t),l="y"===r,u=o.x+o.width/2-a.width/2,d=o.y+o.height/2-a.height/2,p=o[s]/2-a[s]/2;let m;switch(c){case"top":m={x:u,y:o.y-a.height};break;case"bottom":m={x:u,y:o.y+o.height};break;case"right":m={x:o.x+o.width,y:d};break;case"left":m={x:o.x-a.width,y:d};break;default:m={x:o.x,y:o.y}}switch(getAlignment(t)){case"start":m[i]-=p*(n&&l?-1:1);break;case"end":m[i]+=p*(n&&l?-1:1)}return m}async function detectOverflow(e,t){var n;void 0===t&&(t={});const{x:o,y:a,platform:r,rects:i,elements:s,strategy:c}=e,{boundary:l="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:p=!1,padding:m=0}=evaluate(t,e),g=getPaddingObject(m),_=s[p?"floating"===d?"reference":"floating":d],f=rectToClientRect(await r.getClippingRect({element:null==(n=await(null==r.isElement?void 0:r.isElement(_)))||n?_:_.contextElement||await(null==r.getDocumentElement?void 0:r.getDocumentElement(s.floating)),boundary:l,rootBoundary:u,strategy:c})),C="floating"===d?{x:o,y:a,width:i.floating.width,height:i.floating.height}:i.reference,h=await(null==r.getOffsetParent?void 0:r.getOffsetParent(s.floating)),v=await(null==r.isElement?void 0:r.isElement(h))&&await(null==r.getScale?void 0:r.getScale(h))||{x:1,y:1},b=rectToClientRect(r.convertOffsetParentRelativeRectToViewportRelativeRect?await r.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:C,offsetParent:h,strategy:c}):C);return{top:(f.top-b.top+g.top)/v.y,bottom:(b.bottom-f.bottom+g.bottom)/v.y,left:(f.left-b.left+g.left)/v.x,right:(b.right-f.right+g.right)/v.x}}function getSideOffsets(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function isAnySideFullyClipped(e){return sides.some((t=>e[t]>=0))}function hasWindow(){return"undefined"!=typeof window}function getNodeName(e){return isNode(e)?(e.nodeName||"").toLowerCase():"#document"}function getWindow(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function getDocumentElement(e){var t;return null==(t=(isNode(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function isNode(e){return!!hasWindow()&&(e instanceof Node||e instanceof getWindow(e).Node)}function isElement(e){return!!hasWindow()&&(e instanceof Element||e instanceof getWindow(e).Element)}function isHTMLElement(e){return!!hasWindow()&&(e instanceof HTMLElement||e instanceof getWindow(e).HTMLElement)}function isShadowRoot(e){return!(!hasWindow()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof getWindow(e).ShadowRoot)}function isOverflowElement(e){const{overflow:t,overflowX:n,overflowY:o,display:a}=getComputedStyle$1(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&!["inline","contents"].includes(a)}function isTableElement(e){return["table","td","th"].includes(getNodeName(e))}function isTopLayer(t){return[":popover-open",":modal"].some((n=>{try{return t.matches(n)}catch(e){return!1}}))}function isContainingBlock(e){const t=isWebKit(),n=isElement(e)?getComputedStyle$1(e):e;return["transform","translate","scale","rotate","perspective"].some((e=>!!n[e]&&"none"!==n[e]))||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||["transform","translate","scale","rotate","perspective","filter"].some((e=>(n.willChange||"").includes(e)))||["paint","layout","strict","content"].some((e=>(n.contain||"").includes(e)))}function isWebKit(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function isLastTraversableNode(e){return["html","body","#document"].includes(getNodeName(e))}function getComputedStyle$1(e){return getWindow(e).getComputedStyle(e)}function getNodeScroll(e){return isElement(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function getParentNode(e){if("html"===getNodeName(e))return e;const t=e.assignedSlot||e.parentNode||isShadowRoot(e)&&e.host||getDocumentElement(e);return isShadowRoot(t)?t.host:t}function getNearestOverflowAncestor(e){const t=getParentNode(e);return isLastTraversableNode(t)?e.ownerDocument?e.ownerDocument.body:e.body:isHTMLElement(t)&&isOverflowElement(t)?t:getNearestOverflowAncestor(t)}function getOverflowAncestors(e,t,n){var o;void 0===t&&(t=[]),void 0===n&&(n=!0);const a=getNearestOverflowAncestor(e),r=a===(null==(o=e.ownerDocument)?void 0:o.body),i=getWindow(a);if(r){const e=getFrameElement(i);return t.concat(i,i.visualViewport||[],isOverflowElement(a)?a:[],e&&n?getOverflowAncestors(e):[])}return t.concat(a,getOverflowAncestors(a,[],n))}function getFrameElement(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function getCssDimensions(e){const t=getComputedStyle$1(e);let n=parseFloat(t.width)||0,o=parseFloat(t.height)||0;const a=isHTMLElement(e),r=a?e.offsetWidth:n,i=a?e.offsetHeight:o,s=round(n)!==r||round(o)!==i;return s&&(n=r,o=i),{width:n,height:o,$:s}}function unwrapElement(e){return isElement(e)?e:e.contextElement}function getScale(e){const t=unwrapElement(e);if(!isHTMLElement(t))return createCoords(1);const n=t.getBoundingClientRect(),{width:o,height:a,$:r}=getCssDimensions(t);let i=(r?round(n.width):n.width)/o,s=(r?round(n.height):n.height)/a;return i&&Number.isFinite(i)||(i=1),s&&Number.isFinite(s)||(s=1),{x:i,y:s}}function getVisualOffsets(e){const t=getWindow(e);return isWebKit()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:noOffsets}function getBoundingClientRect(e,t,n,o){void 0===t&&(t=!1),void 0===n&&(n=!1);const a=e.getBoundingClientRect(),r=unwrapElement(e);let i=createCoords(1);t&&(o?isElement(o)&&(i=getScale(o)):i=getScale(e));const s=function(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==getWindow(e))&&t}(r,n,o)?getVisualOffsets(r):createCoords(0);let c=(a.left+s.x)/i.x,l=(a.top+s.y)/i.y,u=a.width/i.x,d=a.height/i.y;if(r){const e=getWindow(r),t=o&&isElement(o)?getWindow(o):o;let n=e,a=getFrameElement(n);for(;a&&o&&t!==n;){const e=getScale(a),t=a.getBoundingClientRect(),o=getComputedStyle$1(a),r=t.left+(a.clientLeft+parseFloat(o.paddingLeft))*e.x,i=t.top+(a.clientTop+parseFloat(o.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=r,l+=i,n=getWindow(a),a=getFrameElement(n)}}return rectToClientRect({width:u,height:d,x:c,y:l})}function getWindowScrollBarX(e,t){const n=getNodeScroll(e).scrollLeft;return t?t.left+n:getBoundingClientRect(getDocumentElement(e)).left+n}function getHTMLOffset(e,t,n){void 0===n&&(n=!1);const o=e.getBoundingClientRect();return{x:o.left+t.scrollLeft-(n?0:getWindowScrollBarX(e,o)),y:o.top+t.scrollTop}}function getClientRectFromClippingAncestor(e,t,n){let o;if("viewport"===t)o=function(e,t){const n=getWindow(e),o=getDocumentElement(e),a=n.visualViewport;let r=o.clientWidth,i=o.clientHeight,s=0,c=0;if(a){r=a.width,i=a.height;const e=isWebKit();(!e||e&&"fixed"===t)&&(s=a.offsetLeft,c=a.offsetTop)}return{width:r,height:i,x:s,y:c}}(e,n);else if("document"===t)o=function(e){const t=getDocumentElement(e),n=getNodeScroll(e),o=e.ownerDocument.body,a=max(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),r=max(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let i=-n.scrollLeft+getWindowScrollBarX(e);const s=-n.scrollTop;return"rtl"===getComputedStyle$1(o).direction&&(i+=max(t.clientWidth,o.clientWidth)-a),{width:a,height:r,x:i,y:s}}(getDocumentElement(e));else if(isElement(t))o=function(e,t){const n=getBoundingClientRect(e,!0,"fixed"===t),o=n.top+e.clientTop,a=n.left+e.clientLeft,r=isHTMLElement(e)?getScale(e):createCoords(1);return{width:e.clientWidth*r.x,height:e.clientHeight*r.y,x:a*r.x,y:o*r.y}}(t,n);else{const n=getVisualOffsets(e);o={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return rectToClientRect(o)}function hasFixedPositionAncestor(e,t){const n=getParentNode(e);return!(n===t||!isElement(n)||isLastTraversableNode(n))&&("fixed"===getComputedStyle$1(n).position||hasFixedPositionAncestor(n,t))}function getRectRelativeToOffsetParent(e,t,n){const o=isHTMLElement(t),a=getDocumentElement(t),r="fixed"===n,i=getBoundingClientRect(e,!0,r,t);let s={scrollLeft:0,scrollTop:0};const c=createCoords(0);if(o||!o&&!r)if(("body"!==getNodeName(t)||isOverflowElement(a))&&(s=getNodeScroll(t)),o){const e=getBoundingClientRect(t,!0,r,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else a&&(c.x=getWindowScrollBarX(a));const l=!a||o||r?createCoords(0):getHTMLOffset(a,s);return{x:i.left+s.scrollLeft-c.x-l.x,y:i.top+s.scrollTop-c.y-l.y,width:i.width,height:i.height}}function isStaticPositioned(e){return"static"===getComputedStyle$1(e).position}function getTrueOffsetParent(e,t){if(!isHTMLElement(e)||"fixed"===getComputedStyle$1(e).position)return null;if(t)return t(e);let n=e.offsetParent;return getDocumentElement(e)===n&&(n=n.ownerDocument.body),n}function getOffsetParent(e,t){const n=getWindow(e);if(isTopLayer(e))return n;if(!isHTMLElement(e)){let t=getParentNode(e);for(;t&&!isLastTraversableNode(t);){if(isElement(t)&&!isStaticPositioned(t))return t;t=getParentNode(t)}return n}let o=getTrueOffsetParent(e,t);for(;o&&isTableElement(o)&&isStaticPositioned(o);)o=getTrueOffsetParent(o,t);return o&&isLastTraversableNode(o)&&isStaticPositioned(o)&&!isContainingBlock(o)?n:o||function(e){let t=getParentNode(e);for(;isHTMLElement(t)&&!isLastTraversableNode(t);){if(isContainingBlock(t))return t;if(isTopLayer(t))return null;t=getParentNode(t)}return null}(e)||n}function rectsAreEqual(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function autoUpdate(t,n,o,a){void 0===a&&(a={});const{ancestorScroll:r=!0,ancestorResize:i=!0,elementResize:s="function"==typeof ResizeObserver,layoutShift:c="function"==typeof IntersectionObserver,animationFrame:l=!1}=a,u=unwrapElement(t),d=r||i?[...u?getOverflowAncestors(u):[],...getOverflowAncestors(n)]:[];d.forEach((e=>{r&&e.addEventListener("scroll",o,{passive:!0}),i&&e.addEventListener("resize",o)}));const p=u&&c?function(t,n){function o(){var e;clearTimeout(a),null==(e=r)||e.disconnect(),r=null}let a,r=null;const i=getDocumentElement(t);return function s(c,l){function u(e){const n=e[0].intersectionRatio;if(n!==l){if(!C)return s();n?s(!1,n):a=setTimeout((()=>{s(!1,1e-7)}),1e3)}1!==n||rectsAreEqual(d,t.getBoundingClientRect())||s(),C=!1}void 0===c&&(c=!1),void 0===l&&(l=1),o();const d=t.getBoundingClientRect(),{left:p,top:m,width:g,height:_}=d;if(c||n(),!g||!_)return;const f={rootMargin:-floor(m)+"px "+-floor(i.clientWidth-(p+g))+"px "+-floor(i.clientHeight-(m+_))+"px "+-floor(p)+"px",threshold:max(0,min(1,l))||1};let C=!0;try{r=new IntersectionObserver(u,{...f,root:i.ownerDocument})}catch(e){r=new IntersectionObserver(u,f)}r.observe(t)}(!0),o}(u,o):null;let m,g=-1,_=null;s&&(_=new ResizeObserver((e=>{let[t]=e;t&&t.target===u&&_&&(_.unobserve(n),cancelAnimationFrame(g),g=requestAnimationFrame((()=>{var e;null==(e=_)||e.observe(n)}))),o()})),u&&!l&&_.observe(u),_.observe(n));let f=l?getBoundingClientRect(t):null;return l&&function e(){const n=getBoundingClientRect(t);f&&!rectsAreEqual(f,n)&&o(),f=n,m=requestAnimationFrame(e)}(),o(),()=>{var e;d.forEach((e=>{r&&e.removeEventListener("scroll",o),i&&e.removeEventListener("resize",o)})),null==p||p(),null==(e=_)||e.disconnect(),_=null,l&&cancelAnimationFrame(m)}}function deepEqual(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;let n,o,a;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(o=n;0!=o--;)if(!deepEqual(e[o],t[o]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(o=n;0!=o--;)if(!{}.hasOwnProperty.call(t,a[o]))return!1;for(o=n;0!=o--;){const n=a[o];if(("_owner"!==n||!e.$$typeof)&&!deepEqual(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function getDPR(e){if("undefined"==typeof window)return 1;return(e.ownerDocument.defaultView||window).devicePixelRatio||1}function roundByDPR(e,t){const n=getDPR(e);return Math.round(t*n)/n}function useLatestRef(e){const t=React__namespace.useRef(e);return index$1((()=>{t.current=e})),t}function isNotNull(e){return null!==e}function getSideAndAlignFromPlacement(e){const[t,n="center"]=e.split("-");return[t,n]}function focusFirst$1(e,t=!1){const n=document.activeElement;for(const o of e){if(o===n)return;if(o.focus({preventScroll:t}),document.activeElement!==n)return}}function getOpenState(e){return e?"open":"closed"}function isIndeterminate(e){return"indeterminate"===e}function getCheckedState(e){return isIndeterminate(e)?"indeterminate":e?"checked":"unchecked"}function whenMouse(e){return t=>"mouse"===t.pointerType?e(t):void 0}function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}function toPropertyKey(e){var t=function(e,t){var n,o;if("object"!=_typeof(e)||!e)return e;if(void 0!==(n=e[Symbol.toPrimitive])){if("object"!=_typeof(o=n.call(e,t)))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==_typeof(t)?t:t+""}function _defineProperty(e,t,n){return(t=toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ownKeys(e,t){var n,o=Object.keys(e);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(e),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)),o}function _objectSpread2(e){var t,n;for(t=1;t<arguments.length;t++)n=null!=arguments[t]?arguments[t]:{},t%2?ownKeys(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}));return e}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}function _slicedToArray(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,o,a,r,i,s,c,l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){i=[],s=!0,c=!1;try{if(a=(l=l.call(e)).next,0===t){if(Object(l)!==l)return;s=!1}else for(;!(s=(n=a.call(l)).done)&&(i.push(n.value),i.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=l.return&&(r=l.return(),Object(r)!==r))return}finally{if(c)throw o}}return i}}(e,t)||_unsupportedIterableToArray(e,t)||function(){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 _objectWithoutProperties(e,t){var n,o,a,r;if(null==e)return{};if(a=function(e,t){var n,o;if(null==e)return{};for(o in n={},e)if({}.hasOwnProperty.call(e,o)){if(-1!==t.indexOf(o))continue;n[o]=e[o]}return n}(e,t),Object.getOwnPropertySymbols)for(r=Object.getOwnPropertySymbols(e),o=0;o<r.length;o++)n=r[o],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(a[n]=e[n]);return a}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){var t,n,o;for(t=1;t<arguments.length;t++)for(o in n=arguments[t])({}).hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},_extends.apply(null,arguments)}function _defineProperties(e,t){var n,o;for(n=0;n<t.length;n++)(o=t[n]).enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,toPropertyKey(o.key),o)}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function _getPrototypeOf(e){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_getPrototypeOf(e)}function _isNativeReflectConstruct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(_isNativeReflectConstruct=function(){return!!e})()}function _possibleConstructorReturn(e,t){if(t&&("object"==_typeof(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function _toConsumableArray(e){return function(e){if(Array.isArray(e))return _arrayLikeToArray(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||_unsupportedIterableToArray(e)||function(){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 trim(e){return e.trim()}function replace(e,t,n){return e.replace(t,n)}function indexof(e,t){return e.indexOf(t)}function charat(e,t){return 0|e.charCodeAt(t)}function substr(e,t,n){return e.slice(t,n)}function strlen(e){return e.length}function sizeof(e){return e.length}function append(e,t){return t.push(e),e}function node(e,t,n,o,a,r,i){return{value:e,root:t,parent:n,type:o,props:a,children:r,line:line,column:column,length:i,return:""}}function copy(e,t){return assign(node("",null,null,"",null,null,0),e,{length:-e.length},t)}function prev(){return character=position>0?charat(characters,--position):0,column--,10===character&&(column=1,line--),character}function next(){return character=position<length?charat(characters,position++):0,column++,10===character&&(column=1,line++),character}function peek(){return charat(characters,position)}function caret(){return position}function slice(e,t){return substr(characters,e,t)}function token(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function alloc(e){return line=column=1,length=strlen(characters=e),position=0,[]}function dealloc(e){return characters="",e}function delimit(e){return trim(slice(position-1,delimiter(91===e?e+2:40===e?e+1:e)))}function whitespace(e){for(;(character=peek())&&character<33;)next();return token(e)>2||token(character)>3?"":" "}function escaping(e,t){for(;--t&&next()&&!(character<48||character>102||character>57&&character<65||character>70&&character<97););return slice(e,caret()+(t<6&&32==peek()&&32==next()))}function delimiter(e){for(;next();)switch(character){case e:return position;case 34:case 39:34!==e&&39!==e&&delimiter(character);break;case 40:41===e&&delimiter(e);break;case 92:next()}return position}function commenter(e,t){for(;next()&&e+character!==57&&(e+character!==84||47!==peek()););return"/*"+slice(t,position-1)+"*"+from(47===e?e:next())}function identifier(e){for(;!token(peek());)next();return slice(e,position)}function compile(e){return dealloc(parse("",null,null,null,[""],e=alloc(e),0,[0],e))}function parse(e,t,n,o,a,r,i,s,c){for(var l=0,u=0,d=i,p=0,m=0,g=0,_=1,f=1,C=1,h=0,v="",b=a,R=r,y=o,x=v;f;)switch(g=h,h=next()){case 40:if(108!=g&&58==charat(x,d-1)){-1!=indexof(x+=replace(delimit(h),"&","&\f"),"&\f")&&(C=-1);break}case 34:case 39:case 91:x+=delimit(h);break;case 9:case 10:case 13:case 32:x+=whitespace(g);break;case 92:x+=escaping(caret()-1,7);continue;case 47:switch(peek()){case 42:case 47:append(comment(commenter(next(),caret()),t,n),c);break;default:x+="/"}break;case 123*_:s[l++]=strlen(x)*C;case 125*_:case 59:case 0:switch(h){case 0:case 125:f=0;case 59+u:-1==C&&(x=replace(x,/\f/g,"")),m>0&&strlen(x)-d&&append(m>32?declaration(x+";",o,n,d-1):declaration(replace(x," ","")+";",o,n,d-2),c);break;case 59:x+=";";default:if(append(y=ruleset(x,t,n,l,u,a,s,v,b=[],R=[],d),r),123===h)if(0===u)parse(x,t,y,y,b,r,d,s,R);else switch(99===p&&110===charat(x,3)?100:p){case 100:case 108:case 109:case 115:parse(e,y,y,o&&append(ruleset(e,y,y,0,0,a,s,v,a,b=[],d),R),a,R,d,s,o?b:R);break;default:parse(x,y,y,y,[""],R,0,s,R)}}l=u=m=0,_=C=1,v=x="",d=i;break;case 58:d=1+strlen(x),m=g;default:if(_<1)if(123==h)--_;else if(125==h&&0==_++&&125==prev())continue;switch(x+=from(h),h*_){case 38:C=u>0?1:(x+="\f",-1);break;case 44:s[l++]=(strlen(x)-1)*C,C=1;break;case 64:45===peek()&&(x+=delimit(next())),p=peek(),u=d=strlen(v=x+=identifier(caret())),h++;break;case 45:45===g&&2==strlen(x)&&(_=0)}}return r}function ruleset(e,t,n,o,a,r,i,s,c,l,u){var d,p,m,g,_,f,C=a-1,h=0===a?r:[""],v=sizeof(h);for(d=0,p=0,m=0;d<o;++d)for(g=0,_=substr(e,C+1,C=abs(p=i[d])),f=e;g<v;++g)(f=trim(p>0?h[g]+" "+_:replace(_,/&\f/g,h[g])))&&(c[m++]=f);return node(e,t,n,0===a?RULESET:s,c,l,u)}function comment(e,t,n){return node(e,t,n,COMMENT,from(character),substr(e,2,-2),0)}function declaration(e,t,n,o){return node(e,t,n,DECLARATION,substr(e,0,o),substr(e,o+1,-1),o)}function serialize(e,t){var n,o="",a=sizeof(e);for(n=0;n<a;n++)o+=t(e[n],n,e,t)||"";return o}function stringify(e,t,n,o){switch(e.type){case LAYER:if(e.children.length)break;case IMPORT:case DECLARATION:return e.return=e.return||e.value;case COMMENT:return"";case KEYFRAMES:return e.return=e.value+"{"+serialize(e.children,o)+"}";case RULESET:e.value=e.props.join(",")}return strlen(n=serialize(e.children,o))?e.return=e.value+"{"+n+"}":""}function middleware(e){var t=sizeof(e);return function(n,o,a,r){var i,s="";for(i=0;i<t;i++)s+=e[i](n,o,a,r)||"";return s}}function memoize(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}function prefix(e,t){switch(function(e,t){return 45^charat(e,0)?(((t<<2^charat(e,0))<<2^charat(e,1))<<2^charat(e,2))<<2^charat(e,3):0}(e,t)){case 5103:return WEBKIT+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return WEBKIT+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return WEBKIT+e+MOZ+e+MS+e+e;case 6828:case 4268:return WEBKIT+e+MS+e+e;case 6165:return WEBKIT+e+MS+"flex-"+e+e;case 5187:return WEBKIT+e+replace(e,/(\w+).+(:[^]+)/,WEBKIT+"box-$1$2"+MS+"flex-$1$2")+e;case 5443:return WEBKIT+e+MS+"flex-item-"+replace(e,/flex-|-self/,"")+e;case 4675:return WEBKIT+e+MS+"flex-line-pack"+replace(e,/align-content|flex-|-self/,"")+e;case 5548:return WEBKIT+e+MS+replace(e,"shrink","negative")+e;case 5292:return WEBKIT+e+MS+replace(e,"basis","preferred-size")+e;case 6060:return WEBKIT+"box-"+replace(e,"-grow","")+WEBKIT+e+MS+replace(e,"grow","positive")+e;case 4554:return WEBKIT+replace(e,/([^-])(transform)/g,"$1"+WEBKIT+"$2")+e;case 6187:return replace(replace(replace(e,/(zoom-|grab)/,WEBKIT+"$1"),/(image-set)/,WEBKIT+"$1"),e,"")+e;case 5495:case 3959:return replace(e,/(image-set\([^]*)/,WEBKIT+"$1$`$1");case 4968:return replace(replace(e,/(.+:)(flex-)?(.*)/,WEBKIT+"box-pack:$3"+MS+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+WEBKIT+e+e;case 4095:case 3583:case 4068:case 2532:return replace(e,/(.+)-inline(.+)/,WEBKIT+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(strlen(e)-1-t>6)switch(charat(e,t+1)){case 109:if(45!==charat(e,t+4))break;case 102:return replace(e,/(.+:)(.+)-([^]+)/,"$1"+WEBKIT+"$2-$3$1"+MOZ+(108==charat(e,t+3)?"$3":"$2-$3"))+e;case 115:return~indexof(e,"stretch")?prefix(replace(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==charat(e,t+1))break;case 6444:switch(charat(e,strlen(e)-3-(~indexof(e,"!important")&&10))){case 107:return replace(e,":",":"+WEBKIT)+e;case 101:return replace(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+WEBKIT+(45===charat(e,14)?"inline-":"")+"box$3$1"+WEBKIT+"$2$3$1"+MS+"$2box$3")+e}break;case 5936:switch(charat(e,t+11)){case 114:return WEBKIT+e+MS+replace(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return WEBKIT+e+MS+replace(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return WEBKIT+e+MS+replace(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return WEBKIT+e+MS+e+e}return e}function handleInterpolation(e,t,n){var o,a,r,i,s,c;if(null==n)return"";if(void 0!==(o=n).__emotion_styles)return o;switch(typeof n){case"boolean":return"";case"object":if(1===(a=n).anim)return cursor={name:a.name,styles:a.styles,next:cursor},a.name;if(void 0!==(r=n).styles){if(void 0!==(i=r.next))for(;void 0!==i;)cursor={name:i.name,styles:i.styles,next:cursor},i=i.next;return r.styles+";"}return function(e,t,n){var o,a,r,i,s,c,l="";if(Array.isArray(n))for(o=0;o<n.length;o++)l+=handleInterpolation(e,t,n[o])+";";else for(a in n)if("object"!=typeof(r=n[a]))isProcessableValue(i=r)&&(l+=processStyleName(a)+":"+processStyleValue(a,i)+";");else if(Array.isArray(r)&&"string"==typeof r[0]&&null==t)for(s=0;s<r.length;s++)isProcessableValue(r[s])&&(l+=processStyleName(a)+":"+processStyleValue(a,r[s])+";");else switch(c=handleInterpolation(e,t,r),a){case"animation":case"animationName":l+=processStyleName(a)+":"+c+";";break;default:l+=a+"{"+c+"}"}return l}(e,t,n);case"function":if(void 0!==e)return s=cursor,c=n(e),cursor=s,handleInterpolation(e,t,c)}return n}function serializeStyles(e,t,n){var o,a,r,i,s,c,l;if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];for(o=!0,a="",cursor=void 0,null==(r=e[0])||void 0===r.raw?(o=!1,a+=handleInterpolation(n,t,r)):a+=r[0],i=1;i<e.length;i++)a+=handleInterpolation(n,t,e[i]),o&&(a+=r[i]);for(labelPattern.lastIndex=0,s="";null!==(c=labelPattern.exec(a));)s+="-"+c[1];return l=function(e){for(var t,n=0,o=0,a=e.length;a>=4;++o,a-=4)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(a){case 3:n^=(255&e.charCodeAt(o+2))<<16;case 2:n^=(255&e.charCodeAt(o+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(o)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(a)+s,{name:l,styles:a,next:cursor}}function css$2(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return serializeStyles(t)}function applyPrefixToName(e,t){return t?"-"===t[0]?e+t:e+"__"+t:e}function classNames(e,t){var n,o,a,r,i;for(n=arguments.length,o=new Array(n>2?n-2:0),a=2;a<n;a++)o[a-2]=arguments[a];if(r=[].concat(o),t&&e)for(i in t)t.hasOwnProperty(i)&&t[i]&&r.push("".concat(applyPrefixToName(e,i)));return r.filter((function(e){return e})).map((function(e){return String(e).trim()})).join(" ")}function isDocumentElement(e){return[document.documentElement,document.body,window].indexOf(e)>-1}function getScrollTop(e){return isDocumentElement(e)?window.pageYOffset:e.scrollTop}function scrollTo(e,t){isDocumentElement(e)?window.scrollTo(0,t):e.scrollTop=t}function animatedScrollTo(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:noop,a=getScrollTop(e),r=t-a,i=10,s=0;!function t(){var c,l=r*((c=(c=s+=i)/n-1)*c*c+1)+a;scrollTo(e,l),s<n?window.requestAnimationFrame(t):o(e)}()}function scrollIntoView(e,t){var n=e.getBoundingClientRect(),o=t.getBoundingClientRect(),a=t.offsetHeight/3;o.bottom+a>n.bottom?scrollTo(e,Math.min(t.offsetTop+t.clientHeight-e.offsetHeight+a,e.scrollHeight)):o.top-a<n.top&&scrollTo(e,Math.max(t.offsetTop-a,0))}function isTouchCapable(){try{return document.createEvent("TouchEvent"),!0}catch(e){return!1}}function notNullish(e){return null!=e}function valueTernary(e,t,n){return e?t:n}function getMenuPlacement(e){var t,n,o,a,r,i,s,c,l,u,d,p,m,g,_,f,C,h,v,b,R,y=e.maxHeight,x=e.menuEl,E=e.minHeight,I=e.placement,S=e.shouldScroll,A=e.isFixedPosition,w=e.controlHeight,M=function(e){var t,n=getComputedStyle(e),o="absolute"===n.position,a=/(auto|scroll)/;if("fixed"===n.position)return document.documentElement;for(t=e;t=t.parentElement;)if(n=getComputedStyle(t),(!o||"static"!==n.position)&&a.test(n.overflow+n.overflowY+n.overflowX))return t;return document.documentElement}(x),$={placement:"bottom",maxHeight:y};if(!x||!x.offsetParent)return $;switch(t=M.getBoundingClientRect().height,o=(n=x.getBoundingClientRect()).bottom,a=n.height,r=n.top,i=x.offsetParent.getBoundingClientRect().top,s=A?window.innerHeight:isDocumentElement(R=M)?window.innerHeight:R.clientHeight,c=getScrollTop(M),l=parseInt(getComputedStyle(x).marginBottom,10),p=s-r,m=(d=i-(u=parseInt(getComputedStyle(x).marginTop,10)))+c,g=t-c-r,_=o-s+c+l,f=c+r-u,C=160,I){case"auto":case"bottom":if(p>=a)return{placement:"bottom",maxHeight:y};if(g>=a&&!A)return S&&animatedScrollTo(M,_,C),{placement:"bottom",maxHeight:y};if(!A&&g>=E||A&&p>=E)return S&&animatedScrollTo(M,_,C),{placement:"bottom",maxHeight:A?p-l:g-l};if("auto"===I||A)return h=y,(v=A?d:m)>=E&&(h=Math.min(v-l-w,y)),{placement:"top",maxHeight:h};if("bottom"===I)return S&&scrollTo(M,_),{placement:"bottom",maxHeight:y};break;case"top":return d>=a?{placement:"top",maxHeight:y}:m>=a&&!A?(S&&animatedScrollTo(M,f,C),{placement:"top",maxHeight:y}):!A&&m>=E||A&&d>=E?(b=y,(!A&&m>=E||A&&d>=E)&&(b=A?d-u:m-u),S&&animatedScrollTo(M,f,C),{placement:"top",maxHeight:b}):{placement:"bottom",maxHeight:y};default:throw new Error('Invalid placement provided "'.concat(I,'".'))}return $}function areInputsEqual(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(o=e[n],a=t[n],!(o===a||safeIsNaN(o)&&safeIsNaN(a)))return!1;var o,a;return!0}function DummyInput(e){var t=e.innerRef,n=_objectWithoutProperties(e,_excluded),o=removeProps(n,"onExited","in","enter","exit","appear");return jsx("input",_extends({ref:t},o,{css:css$2({label:"dummyInput",background:0,border:0,caretColor:"transparent",fontSize:"inherit",gridArea:"1 / 1 / 2 / 3",outline:0,padding:0,width:1,color:"transparent",left:-100,opacity:0,position:"relative",transform:"scale(.01)"},"production"===process.env.NODE_ENV?"":";label:DummyInput;","production"===process.env.NODE_ENV?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCTSIsImZpbGUiOiJEdW1teUlucHV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgSlNYLCBSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyByZW1vdmVQcm9wcyB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRHVtbXlJbnB1dCh7XG4gIGlubmVyUmVmLFxuICAuLi5wcm9wc1xufTogSlNYLkludHJpbnNpY0VsZW1lbnRzWydpbnB1dCddICYge1xuICByZWFkb25seSBpbm5lclJlZjogUmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xufSkge1xuICAvLyBSZW1vdmUgYW5pbWF0aW9uIHByb3BzIG5vdCBtZWFudCBmb3IgSFRNTCBlbGVtZW50c1xuICBjb25zdCBmaWx0ZXJlZFByb3BzID0gcmVtb3ZlUHJvcHMoXG4gICAgcHJvcHMsXG4gICAgJ29uRXhpdGVkJyxcbiAgICAnaW4nLFxuICAgICdlbnRlcicsXG4gICAgJ2V4aXQnLFxuICAgICdhcHBlYXInXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8aW5wdXRcbiAgICAgIHJlZj17aW5uZXJSZWZ9XG4gICAgICB7Li4uZmlsdGVyZWRQcm9wc31cbiAgICAgIGNzcz17e1xuICAgICAgICBsYWJlbDogJ2R1bW15SW5wdXQnLFxuICAgICAgICAvLyBnZXQgcmlkIG9mIGFueSBkZWZhdWx0IHN0eWxlc1xuICAgICAgICBiYWNrZ3JvdW5kOiAwLFxuICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgIC8vIGltcG9ydGFudCEgdGhpcyBoaWRlcyB0aGUgZmxhc2hpbmcgY3Vyc29yXG4gICAgICAgIGNhcmV0Q29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgIGZvbnRTaXplOiAnaW5oZXJpdCcsXG4gICAgICAgIGdyaWRBcmVhOiAnMSAvIDEgLyAyIC8gMycsXG4gICAgICAgIG91dGxpbmU6IDAsXG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgIC8vIGltcG9ydGFudCEgd2l0aG91dCBgd2lkdGhgIGJyb3dzZXJzIHdvbid0IGFsbG93IGZvY3VzXG4gICAgICAgIHdpZHRoOiAxLFxuXG4gICAgICAgIC8vIHJlbW92ZSBjdXJzb3Igb24gZGVza3RvcFxuICAgICAgICBjb2xvcjogJ3RyYW5zcGFyZW50JyxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIG1vYmlsZSB3aGlsc3QgbWFpbnRhaW5pbmcgXCJzY3JvbGwgaW50byB2aWV3XCIgYmVoYXZpb3VyXG4gICAgICAgIGxlZnQ6IC0xMDAsXG4gICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSguMDEpJyxcbiAgICAgIH19XG4gICAgLz5cbiAgKTtcbn1cbiJdfQ== */")}))}function preventTouchMove(e){e.cancelable&&e.preventDefault()}function allowTouchMove(e){e.stopPropagation()}function preventInertiaScroll(){var e=this.scrollTop,t=this.scrollHeight,n=e+this.offsetHeight;0===e?this.scrollTop=1:n===t&&(this.scrollTop=e-1)}function isTouchDevice$1(){return"ontouchstart"in window||navigator.maxTouchPoints}function ScrollManager(e){var t=e.children,n=e.lockEnabled,o=e.captureEnabled,a=void 0===o||o,r=e.onBottomArrive,i=e.onBottomLeave,s=e.onTopArrive,c=e.onTopLeave,l=function(e){var t=e.isEnabled,n=e.onBottomArrive,o=e.onBottomLeave,a=e.onTopArrive,r=e.onTopLeave,i=React.useRef(!1),s=React.useRef(!1),c=React.useRef(0),l=React.useRef(null),u=React.useCallback((function(e,t){var c,u,d,p,m,g,_,f;null!==l.current&&(u=(c=l.current).scrollTop,d=c.scrollHeight,p=c.clientHeight,m=l.current,g=t>0,f=!1,(_=d-p-u)>t&&i.current&&(o&&o(e),i.current=!1),g&&s.current&&(r&&r(e),s.current=!1),g&&t>_?(n&&!i.current&&n(e),m.scrollTop=d,f=!0,i.current=!0):!g&&-t>u&&(a&&!s.current&&a(e),m.scrollTop=0,f=!0,s.current=!0),f&&cancelScroll(e))}),[n,o,a,r]),d=React.useCallback((function(e){u(e,e.deltaY)}),[u]),p=React.useCallback((function(e){c.current=e.changedTouches[0].clientY}),[]),m=React.useCallback((function(e){var t=c.current-e.changedTouches[0].clientY;u(e,t)}),[u]),g=React.useCallback((function(e){if(e){var t=!!supportsPassiveEvents&&{passive:!1};e.addEventListener("wheel",d,t),e.addEventListener("touchstart",p,t),e.addEventListener("touchmove",m,t)}}),[m,p,d]),_=React.useCallback((function(e){e&&(e.removeEventListener("wheel",d,!1),e.removeEventListener("touchstart",p,!1),e.removeEventListener("touchmove",m,!1))}),[m,p,d]);return React.useEffect((function(){if(t){var e=l.current;return g(e),function(){_(e)}}}),[t,g,_]),function(e){l.current=e}}({isEnabled:a,onBottomArrive:r,onBottomLeave:i,onTopArrive:s,onTopLeave:c}),u=function(e){var t=e.isEnabled,n=e.accountForScrollbars,o=void 0===n||n,a=React.useRef({}),r=React.useRef(null),i=React.useCallback((function(e){var t,n,r,i,s;canUseDOM&&(t=document.body,n=t&&t.style,o&&STYLE_KEYS.forEach((function(e){var t=n&&n[e];a.current[e]=t})),o&&activeScrollLocks<1&&(r=parseInt(a.current.paddingRight,10)||0,i=document.body?document.body.clientWidth:0,s=window.innerWidth-i+r||0,Object.keys(LOCK_STYLES).forEach((function(e){var t=LOCK_STYLES[e];n&&(n[e]=t)})),n&&(n.paddingRight="".concat(s,"px"))),t&&isTouchDevice$1()&&(t.addEventListener("touchmove",preventTouchMove,listenerOptions),e&&(e.addEventListener("touchstart",preventInertiaScroll,listenerOptions),e.addEventListener("touchmove",allowTouchMove,listenerOptions))),activeScrollLocks+=1)}),[o]),s=React.useCallback((function(e){var t,n;canUseDOM&&(t=document.body,n=t&&t.style,activeScrollLocks=Math.max(activeScrollLocks-1,0),o&&activeScrollLocks<1&&STYLE_KEYS.forEach((function(e){var t=a.current[e];n&&(n[e]=t)})),t&&isTouchDevice$1()&&(t.removeEventListener("touchmove",preventTouchMove,listenerOptions),e&&(e.removeEventListener("touchstart",preventInertiaScroll,listenerOptions),e.removeEventListener("touchmove",allowTouchMove,listenerOptions))))}),[o]);return React.useEffect((function(){if(t){var e=r.current;return i(e),function(){s(e)}}}),[t,i,s]),function(e){r.current=e}}({isEnabled:n}),d=function(e){l(e),u(e)};return jsx(React.Fragment,null,n&&jsx("div",{onClick:blurSelectInput,css:_ref2$1}),t(d))}function testPlatform(e){var t;return"undefined"!=typeof window&&null!=window.navigator&&e.test((null===(t=window.navigator.userAgentData)||void 0===t?void 0:t.platform)||window.navigator.platform)}function isMac(){return testPlatform(/^Mac/i)}function isIOS(){return testPlatform(/^iPhone/i)||testPlatform(/^iPad/i)||isMac()&&navigator.maxTouchPoints>1}function toCategorizedOption(e,t,n,o){var a=_isOptionDisabled(e,t,n),r=_isOptionSelected(e,t,n),i=getOptionLabel(e,t),s=getOptionValue(e,t);return{type:"option",data:t,isDisabled:a,isSelected:r,label:i,value:s,index:o}}function buildCategorizedOptions(e,t){return e.options.map((function(n,o){var a,r;return"options"in n?(a=n.options.map((function(n,o){return toCategorizedOption(e,n,t,o)})).filter((function(t){return isFocusable(e,t)})),a.length>0?{type:"group",data:n,options:a,index:o}:void 0):(r=toCategorizedOption(e,n,t,o),isFocusable(e,r)?r:void 0)})).filter(notNullish)}function buildFocusableOptionsFromCategorizedOptions(e){return e.reduce((function(e,t){return"group"===t.type?e.push.apply(e,_toConsumableArray(t.options.map((function(e){return e.data})))):e.push(t.data),e}),[])}function buildFocusableOptionsWithIds(e,t){return e.reduce((function(e,n){return"group"===n.type?e.push.apply(e,_toConsumableArray(n.options.map((function(e){return{data:e.data,id:"".concat(t,"-").concat(n.index,"-").concat(e.index)}})))):e.push({data:n.data,id:"".concat(t,"-").concat(n.index)}),e}),[])}function isFocusable(e,t){var n=e.inputValue,o=void 0===n?"":n,a=t.data,r=t.isSelected,i=t.label,s=t.value;return(!shouldHideSelectedOptions(e)||!r)&&_filterOption(e,{label:i,value:s,data:a},o)}function _isOptionDisabled(e,t,n){return"function"==typeof e.isOptionDisabled&&e.isOptionDisabled(t,n)}function _isOptionSelected(e,t,n){if(n.indexOf(t)>-1)return!0;if("function"==typeof e.isOptionSelected)return e.isOptionSelected(t,n);var o=getOptionValue(e,t);return n.some((function(t){return getOptionValue(e,t)===o}))}function _filterOption(e,t,n){return!e.filterOption||e.filterOption(t,n)}function getState$2(e){return e?"open":"closed"}function defaultGetValueLabel(e,t){return`${Math.round(e/t*100)}%`}function getProgressState(e,t){return null==e?"indeterminate":e===t?"complete":"loading"}function isNumber(e){return"number"==typeof e}function isValidMaxNumber(e){return isNumber(e)&&!isNaN(e)&&e>0}function isValidValueNumber(e,t){return isNumber(e)&&!isNaN(e)&&e<=t&&e>=0}function getState$1(e){return e?"checked":"unchecked"}function shouldShowPlaceholder(e){return""===e||void 0===e}function useTypeaheadSearch(e){const t=useCallbackRef$1(e),n=React__namespace.useRef(""),o=React__namespace.useRef(0),a=React__namespace.useCallback((e=>{const a=n.current+e;t(a),function e(t){n.current=t,window.clearTimeout(o.current),""!==t&&(o.current=window.setTimeout((()=>e("")),1e3))}(a)}),[t]),r=React__namespace.useCallback((()=>{n.current="",window.clearTimeout(o.current)}),[]);return React__namespace.useEffect((()=>()=>window.clearTimeout(o.current)),[]),[n,a,r]}function findNextItem(e,t,n){const o=t.length>1&&Array.from(t).every((e=>e===t[0])),a=o?t[0]:t,r=n?e.indexOf(n):-1;let i=(s=e,c=Math.max(r,0),s.map(((e,t)=>s[(c+t)%s.length])));var s,c;1===a.length&&(i=i.filter((e=>e!==n)));const l=i.find((e=>e.textValue.toLowerCase().startsWith(a.toLowerCase())));return l!==n?l:void 0}function getState(e){return e?"checked":"unchecked"}function makeTriggerId(e,t){return`${e}-trigger-${t}`}function makeContentId(e,t){return`${e}-content-${t}`}function Tooltip({align:e="center",alignOffset:t=0,children:n,className:o="",collisionBoundary:a,container:r,content:i,defaultOpen:s,delayDuration:c=200,isCustomTrigger:l=!1,isPortal:u=!1,isTriggerAsChild:d=!0,open:p,onOpenChange:m,side:g="top",sideOffset:_=4,skipDelayDuration:f=300,...C}){const[h,v]=React.useState(s),b=p??h,R=React.createElement(Content2,{sideOffset:_,alignOffset:t,side:g,align:e,collisionBoundary:a,...C,className:cn(styles$1_content,"demio-ui-tooltip",{[o]:o})},i,React.createElement(Arrow2,{className:styles$1_arrow,width:11,height:5}));return i?React.createElement(Provider,{skipDelayDuration:f,delayDuration:c},React.createElement(Root3,{defaultOpen:s,onOpenChange:e=>{m&&m(e),v(e)},open:b},React.createElement(Trigger,{asChild:l||d},l?React.createElement("div",{className:cn("demio-ui-tooltip-trigger",styles$1_tooltipTrigger)},n):n),u?React.createElement(Portal,{container:r},R):R)):n}var classnamesExports,cn,useLayoutEffect2,useReactId,count$1,Slot,SlotClone,Slottable,Primitive,DISMISSABLE_LAYER_NAME,CONTEXT_UPDATE,POINTER_DOWN_OUTSIDE,FOCUS_OUTSIDE,originalBodyPointerEvents,DismissableLayerContext,DismissableLayer,BRANCH_NAME,DismissableLayerBranch,AUTOFOCUS_ON_MOUNT,AUTOFOCUS_ON_UNMOUNT,EVENT_OPTIONS$1,FOCUS_SCOPE_NAME,FocusScope,focusScopesStack,PORTAL_NAME$7,Portal$5,Presence,count,extendStatics,__assign,zeroRightClassName,fullWidthClassName,noScrollbarsClassName,removedBarSizeVariable,useIsomorphicLayoutEffect,currentValues,SideCar$1,effectCar,nothing,RemoveScroll,getNonce,stylesheetSingleton,styleHookSingleton,styleSingleton,zeroGap,parse$1,getOffset,getGapWidth,Style,lockAttribute,getStyles,getCurrentUseCounter,useLockAttribute,RemoveScrollBar,passiveSupported,options$1,nonPassive,alwaysContainsScroll,elementCanBeScrolled,elementCouldBeVScrolled,elementCouldBeHScrolled,locationCouldBeScrolled,getVScrollVariables,getHScrollVariables,elementCouldBeScrolled,getScrollVariables,getDirectionFactor,handleScroll,getTouchXY,getDeltaXY,extractRef,deltaCompare,generateStyle,idCounter,lockStack,SideCar,ReactRemoveScroll,getDefaultParent,counterMap,uncontrolledNodes,markerMap,lockCount,unwrapHost,correctTargets,applyAttributeToOthers,hideOthers,DIALOG_NAME,Dialog,TRIGGER_NAME$6,DialogTrigger,PORTAL_NAME$6,DialogPortal,OVERLAY_NAME$1,DialogOverlay,DialogOverlayImpl,CONTENT_NAME$8,DialogContent,DialogContentModal,DialogContentNonModal,DialogContentImpl,TITLE_NAME$1,DialogTitle,DESCRIPTION_NAME$1,DialogDescription,CLOSE_NAME$1,DialogClose,TITLE_WARNING_NAME,TitleWarning,DESCRIPTION_WARNING_NAME,DescriptionWarning$1,Root$9,Trigger$5,Portal$4,Overlay,Content$2,Title,Description,Close,ROOT_NAME,useDialogScope,AlertDialog,TRIGGER_NAME$5,AlertDialogPortal,OVERLAY_NAME,AlertDialogOverlay,CONTENT_NAME$7,AlertDialogContent,TITLE_NAME,AlertDialogTitle,DESCRIPTION_NAME,AlertDialogDescription,ACTION_NAME,AlertDialogAction,CANCEL_NAME,AlertDialogCancel,DescriptionWarning,Root2$6,Portal2$1,Overlay2,Content2$5,Action,Cancel,Title2,Description2,_path$1f,SvgClose,styles$r,styles$q,styles$p_overlay,styles$p_close,styles$p_content,styles$p_title,styles$p_description,styles$p_buttons,AVATAR_NAME,Avatar$1,IMAGE_NAME,AvatarImage,FALLBACK_NAME,AvatarFallback,Root$8,Image$1,Fallback,_rect$m,_g$v,SvgAdd,_path$1e,SvgArrowLeft,_path$1d,SvgCheck,_path$1c,_g$u,SvgDelete,_path$1b,SvgEdit,_path$1a,_g$t,SvgKeyboardArrowDown,_path$19,SvgPlus,_path$18,SvgSearch,_path$17,SvgArrowFromLeft,_path$16,_path2$6,SvgArrowLeftDouble,_path$15,SvgArrowLeftSingle,_path$14,SvgCompress,_path$13,SvgExpand,_path$12,SvgAt,_path$11,SvgCheckCircle,_path$10,SvgCheckCircleSolid,_path$$,SvgCheckbox,_path$_,SvgCheckboxUncheck,_path$Z,SvgExclamation,_path$Y,SvgPasswordEye,_path$X,SvgPasswordEyeCrossed,_path$W,SvgCamera,_g$s,_defs$1,SvgCameraOutlined,_path$V,SvgChatIcon,_path$U,_path2$5,_path3,_path4,_path5,_path6,_path7,_path8,_path9,_path10,_path11,_path12,_path13,_path14,_path15,SvgChatDisabled,_rect$l,_g$r,SvgMic,_rect$k,_g$q,SvgMicOff,_rect$j,_g$p,SvgMicOff1,_path$T,SvgMicOutlined,_rect$i,_g$o,SvgMic1,_path$S,SvgMicBold,_rect$h,_g$n,SvgVideocam,_rect$g,_g$m,SvgVideocamOff,_rect$f,_g$l,SvgVideocamOff1,_rect$e,_g$k,SvgVideocam1,_rect$d,_g$j,SvgVolumeOff,_rect$c,_g$i,SvgVolumeOff1,_rect$b,_g$h,SvgVolumeUp,_rect$a,_g$g,SvgVolumeUp1,_path$R,SvgClock,_path$Q,SvgCopy,_path$P,SvgDots,_path$O,SvgDownload,_path$N,SvgExternalLink,_path$M,SvgFile,_path$L,SvgFilterList,_path$K,SvgFlipCamera,_path$J,SvgGear,_path$I,SvgLock,_path$H,SvgMail,_path$G,SvgPlay,_path$F,SvgSync,_path$E,SvgTimesCircle,_path$D,SvgTrash,_path$C,SvgUndo,_path$B,_g$f,SvgHelp,_path$A,SvgHelpSolid,_path$z,SvgInfo,_path$y,_g$e,SvgInfo1,_path$x,SvgInfoCircle,_path$w,SvgInfoCircleSolid,_path$v,_g$d,SvgWarning,_rect$9,_g$c,SvgWarning1,_path$u,SvgBarChart,_path$t,_path2$4,SvgPoll,_path$s,SvgProgress,_path$r,SvgTrendingDown,_path$q,SvgTrendingUp,_rect$8,_g$b,SvgCalendar,_path$p,_path2$3,SvgCalendarStar,_rect$7,_g$a,SvgEventDetails,_rect$6,_g$9,SvgEventRepeat,_rect$5,_g$8,SvgToday,_path$o,SvgPeople,_path$n,SvgPeopleCommunity,_path$m,SvgPerson,_path$l,SvgPersonDelete,_path$k,SvgSmile,_path$j,SvgLocation,_path$i,SvgSidebar,_path$h,SvgSpotlight,_path$g,SvgOutStage,_path$f,SvgPresentation,_path$e,SvgScreenPerson,_path$d,SvgScreenScareWindows,_path$c,SvgScreenSharing,_path$b,SvgStage,_path$a,_g$7,SvgBlock,_rect$4,_g$6,SvgBlurOn,_path$9,_g$5,SvgCached,_rect$3,_g$4,SvgCustomize,_rect$2,_g$3,SvgElectricBolt,_g$2,_defs,SvgFeatureAction,_path$8,SvgItems,_path$7,SvgList,_path$6,_path2$2,SvgListTh,_path$5,SvgMagic,_rect$1,_g$1,SvgMaterials,_path$4,SvgMobileDevice,_path$3,_path2$1,_line,SvgReplayDisabled,_path$2,SvgRestart,_path$1,SvgRocket,_rect,_g,SvgStackedEmail,_path,_path2,SvgChatDisabledOld,index$2,styles$o,styles$n,styles$m,styles$l,CHECKBOX_NAME,Checkbox$1,INDICATOR_NAME$3,CheckboxIndicator,BubbleInput$3,Root$7,Indicator$2,NAME$3,Label$2,Root$6,styles$k_label,styles$k_semiBold,styles$k_regular,styles$j_container,styles$j_root,styles$j_label,styles$i_root,styles$i_error,styles$h,styles$g_root,styles$g_input,styles$g_button,styles$g_inputWrapper,_populated,_ie,_firefox,_opera,_webkit,_chrome,_ie_real_version,_osx,_windows,_linux,_android,_win64,_iphone,_ipad,_native,_mobile,UserAgent_DEPRECATED$1,UserAgent_DEPRECATED_1,canUseDOM$1,ExecutionEnvironment,useHasFeature,UserAgent_DEPRECATED,isEventSupported,PIXEL_STEP,LINE_HEIGHT,PAGE_HEIGHT,normalizeWheel$1,css_248z,MIN_ZOOM,MAX_ZOOM,KEYBOARD_STEP,Cropper,DirectionContext,PAGE_KEYS,ARROW_KEYS$1,BACK_KEYS,SLIDER_NAME,Slider,SliderHorizontal,SliderVertical,SliderImpl,TRACK_NAME,SliderTrack,RANGE_NAME,SliderRange,THUMB_NAME$1,SliderThumb,SliderThumbImpl,BubbleInput$2,Root$5,Track,Range,Thumb$1,style$6_container,style$6_track,style$6_range,style$6_thumb,style$6_thumbArea,style$5_root,style$5_wrapper,style$5_slider,css$5_toast,css$5_noCloseBtn,css$5_icon,css$5_success,css$5_warning,css$5_error,css$5_info,css$5_message,css$5_description,css$5_noMessage,css$5_closeButton,css$5_closeIcon,css$4_toastList,style$4_container,style$4_isDraggedOver,styles$f_overlay,styles$f_header,styles$f_isTitleHidden,styles$f_close,styles$f_title,styles$f_titleCentered,styles$f_content,styles$f_body,styles$e,index$1,NAME$2,Arrow$1,Root$4,POPPER_NAME,Popper,ANCHOR_NAME$2,PopperAnchor,CONTENT_NAME$6,PopperContent,ARROW_NAME$5,OPPOSITE_SIDE,PopperArrow,transformOrigin,Root2$5,Anchor,Content$1,Arrow,ENTRY_FOCUS,EVENT_OPTIONS,GROUP_NAME$3,RovingFocusGroup,RovingFocusGroupImpl,ITEM_NAME$4,RovingFocusGroupItem,MAP_KEY_TO_FOCUS_INTENT,Root$3,Item$1,SELECTION_KEYS$1,LAST_KEYS,FIRST_LAST_KEYS,SUB_OPEN_KEYS,SUB_CLOSE_KEYS,MENU_NAME,usePopperScope$3,useRovingFocusGroupScope$2,Menu$2,ANCHOR_NAME$1,MenuAnchor,PORTAL_NAME$4,MenuPortal$1,CONTENT_NAME$5,MenuContent,MenuRootContentModal,MenuRootContentNonModal,MenuContentImpl,GROUP_NAME$2,MenuGroup,LABEL_NAME$2,MenuLabel,ITEM_NAME$3,ITEM_SELECT,MenuItem,MenuItemImpl,CHECKBOX_ITEM_NAME$1,MenuCheckboxItem,RADIO_GROUP_NAME$2,MenuRadioGroup,RADIO_ITEM_NAME$1,MenuRadioItem,ITEM_INDICATOR_NAME$1,MenuItemIndicator,SEPARATOR_NAME$2,MenuSeparator,ARROW_NAME$4,MenuArrow,SUB_NAME,SUB_TRIGGER_NAME$1,MenuSubTrigger,SUB_CONTENT_NAME$1,MenuSubContent,Root3$1,Anchor2,Portal$3,Content2$4,Group$2,Label,Item2$2,CheckboxItem,RadioGroup$2,RadioItem,ItemIndicator,Separator,Arrow2$2,SubTrigger,SubContent,DROPDOWN_MENU_NAME,useMenuScope,DropdownMenu,TRIGGER_NAME$4,DropdownMenuTrigger$1,DropdownMenuPortal$1,CONTENT_NAME$4,DropdownMenuContent$1,GROUP_NAME$1,DropdownMenuGroup$1,LABEL_NAME$1,DropdownMenuLabel$1,ITEM_NAME$2,DropdownMenuItem$1,CHECKBOX_ITEM_NAME,RADIO_GROUP_NAME$1,RADIO_ITEM_NAME,INDICATOR_NAME$2,SEPARATOR_NAME$1,DropdownMenuSeparator$1,ARROW_NAME$3,SUB_TRIGGER_NAME,SUB_CONTENT_NAME,Root2$4,Trigger$4,Portal2,Content2$3,Group2,Label2,Item2$1,Separator2,styles$d_content,styles$d_scrollableArea,styles$d_item,styles$d_label,styles$d_warning,styles$d_separator,styles$c,styles$b_infoBanner,styles$b_infoBannerWrapper,styles$b_contentWrapper,styles$b_title,styles$b_iconWrapper,css$3_overlay,css$3_closeBtn,css$3_isHidden,css$3_title,css$3_withHeader,css$3_header,css$3_noTitle,css$3_content,css$3_body,css$3_footer,css$3_footerButtonsContainer,css$3_withFooter,css$3_btn,css$3_cancelButton,_excluded$6,StyleSheet,MS,MOZ,WEBKIT,COMMENT,RULESET,DECLARATION,IMPORT,KEYFRAMES,LAYER,abs,from,assign,line,column,length,position,character,characters,weakMemoize,isBrowser$3,identifierWithPointTracking,toRules,getRules,fixedElements,compat,removeLabel,prefixer,getServerStylisCache,defaultStylisPlugins,createCache,isBrowser$2,registerStyles,insertStyles,unitlessKeys,hyphenateRegex,animationRegex,isCustomProperty,isProcessableValue,processStyleName,processStyleValue,labelPattern,cursor,isBrowser$1,syncFallback,useInsertionEffect,useInsertionEffectAlwaysWithSyncFallback,isBrowser,EmotionCacheContext,withEmotionCache,ThemeContext,hasOwn,typePropName,createEmotionProps,Insertion,Emotion,Emotion$1,jsx,isClient,index,_excluded$4,noop,cleanValue,cleanCommonProps,getStyleProps,passiveOptionAccessed,options,w,supportsPassiveEvents,removeProps,_excluded$3,_excluded2$1,coercePlacement,menuCSS,PortalPlacementContext,MenuPlacer,Menu$1,menuListCSS,MenuList,noticeCSS,noOptionsMessageCSS,loadingMessageCSS,NoOptionsMessage,LoadingMessage,menuPortalCSS,MenuPortal,containerCSS,SelectContainer,valueContainerCSS,ValueContainer,indicatorsContainerCSS,IndicatorsContainer,_templateObject,_excluded$2,_excluded2,_ref2$2,Svg,CrossIcon,DownChevron,baseCSS,dropdownIndicatorCSS,DropdownIndicator,clearIndicatorCSS,ClearIndicator,indicatorSeparatorCSS,IndicatorSeparator,loadingDotAnimations,loadingIndicatorCSS,LoadingDot,LoadingIndicator,css$1,Control$1,_excluded$1,groupCSS,Group,groupHeadingCSS,GroupHeading,Group$1,_excluded$5,inputCSS,spacingStyle,containerStyle,inputStyle,Input,multiValueCSS,multiValueLabelCSS,multiValueRemoveCSS,MultiValueGeneric,MultiValue,optionCSS,placeholderCSS,css,components,defaultComponents,safeIsNaN,_ref,A11yText$1,defaultAriaLiveMessages,LiveRegion,LiveRegion$1,diacritics,anyDiacritic,diacriticToBase,i,diacritic,j,stripDiacritics,memoizedStripDiacriticsForInput,trimString,defaultStringify,createFilter,_excluded,cancelScroll,STYLE_KEYS,LOCK_STYLES,canUseDOM,activeScrollLocks,listenerOptions,blurSelectInput,_ref2$1,_ref2,RequiredInput,RequiredInput$1,formatGroupLabel,getOptionLabel$1,getOptionValue$1,isOptionDisabled,defaultStyles,baseUnit,defaultTheme,defaultProps,getFocusedOptionId,getOptionLabel,getOptionValue,shouldHideSelectedOptions,instanceId,Select$2,StateManagedSelect,StateManagedSelect$1,styles$a_menuPortal,styles$a_container,styles$a_menu,styles$a_menuList,styles$a_option,styles$a_optionFocused,styles$a_optionSelected,styles$a_optionDisabled,styles$a_input,styles$a_control,styles$a_controlIsFocused,styles$a_isDisabled,styles$a_placeholder,styles$a_multiValue,styles$a_indicator,styles$a_indicatorIsDisabled,styles$a_controlIsOpened,styles$a_multiValueIsDisabled,styles$a_multiValueLabel,styles$a_multiValueLabelIsDisabled,styles$a_multiValueRemove,styles$a_multiValueRemoveIsDisabled,styles$a_valueContainer,styles$a_singleValue,styles$a_noOptionMessage,styles$a_errorMessage,styles$a_wrapper,styles$a_label,styles$a_optional,style$3_note,style$3_error,style$3_info,style$3_icon,style$3_blue,styles$9_container,styles$9_button,styles$9_selected,styles$9_rotated,styles$9_disabled,POPOVER_NAME,usePopperScope$2,Popover$1,ANCHOR_NAME,TRIGGER_NAME$3,PopoverTrigger,PORTAL_NAME$2,PopoverPortal,CONTENT_NAME$3,PopoverContent,PopoverContentModal,PopoverContentNonModal,PopoverContentImpl,CLOSE_NAME,ARROW_NAME$2,PopoverArrow,Root2$3,Trigger$3,Portal$2,Content2$2,Arrow2$1,styles$8_popoverContent,styles$8_popoverTrigger,styles$8_arrow,PROGRESS_NAME,DEFAULT_MAX,Progress$1,INDICATOR_NAME$1,ProgressIndicator,Root$2,Indicator$1,styles$7_root,styles$7_indicator,RADIO_NAME,Radio,INDICATOR_NAME,RadioIndicator,BubbleInput$1,ARROW_KEYS,RADIO_GROUP_NAME,useRovingFocusGroupScope$1,useRadioScope,RadioGroup$1,ITEM_NAME$1,RadioGroupItem,INDICATOR_NAME2,RadioGroupIndicator,Root2$2,Item2,Indicator,styles$6,NAME$1,VisuallyHidden$1,OPEN_KEYS,SELECTION_KEYS,SELECT_NAME,usePopperScope$1,Select$1,TRIGGER_NAME$2,SelectTrigger,VALUE_NAME,SelectValue,ICON_NAME,SelectIcon,SelectPortal,CONTENT_NAME$2,SelectContent,CONTENT_MARGIN,CONTENT_IMPL_NAME,SelectContentImpl,ITEM_ALIGNED_POSITION_NAME,SelectItemAlignedPosition,POPPER_POSITION_NAME,SelectPopperPosition,VIEWPORT_NAME,SelectViewport,GROUP_NAME,LABEL_NAME,ITEM_NAME,SelectItem$1,ITEM_TEXT_NAME,SelectItemText$1,ITEM_INDICATOR_NAME,SCROLL_UP_BUTTON_NAME,SCROLL_DOWN_BUTTON_NAME,SelectScrollButtonImpl,SEPARATOR_NAME,ARROW_NAME$1,BubbleSelect,Root2$1,Trigger$2,Value,Icon,Portal$1,Content2$1,Viewport,Item,ItemText,styles$5_trigger,styles$5_icon,styles$5_startIcon,styles$5_value,styles$5_content,styles$5_item,SWITCH_NAME,Switch$1,THUMB_NAME,SwitchThumb,BubbleInput,Root$1,Thumb,styles$4_root,styles$4_thumb,TABS_NAME,useRovingFocusGroupScope,Tabs,TAB_LIST_NAME,TabsList$1,TRIGGER_NAME$1,TabsTrigger,CONTENT_NAME$1,TabsContent$1,Root2,List,Trigger$1,Content,styles$3_root,styles$3_list,styles$3_tab,styles$3_content,styles$2_default,styles$2_deleteButton,NAME,VisuallyHidden,Root,usePopperScope,PROVIDER_NAME,DEFAULT_DELAY_DURATION,TOOLTIP_OPEN,TooltipProvider,TOOLTIP_NAME,Tooltip$1,TRIGGER_NAME,TooltipTrigger,PORTAL_NAME,TooltipPortal,CONTENT_NAME,TooltipContent,TooltipContentHoverable,TooltipContentImpl,ARROW_NAME,TooltipArrow,Provider,Root3,Trigger,Portal,Content2,Arrow2,styles$1_content,styles$1_tooltipTrigger,styles$1_arrow,styles,style$2_root,style$2_image,style$2_row,style$2_iconContainer,style$2_icon,style$2_percent,style$2_fileData,style$2_isUploadMode,style$2_noMenu,style$2_fileName,style$2_duration,style$1_root,style$1_croppedImageContainer,style$1_croppedImageWrapper,style$1_croppedImage,style$1_uploadLabel,style$1_uploadInput,style$1_icon,style$1_header,style$1_text,style$1_uploadTextFormat,style$1_modalContent,style$1_modalBody,style$1_modalFooter,style_triggerButton,style_triggerButtonIcon,style_menuContent,style_menuItem,style_menuItemDisabled,module,exported,React=require("react"),jsxRuntime=require("react/jsx-runtime"),ReactDOM=require("react-dom"),client=require("react-dom/client"),React__namespace=_interopNamespaceDefault(React),ReactDOM__namespace=_interopNamespaceDefault(ReactDOM),classnames={exports:{}};if(module=classnames,function(){function e(){var e,o,a="";for(e=0;e<arguments.length;e++)(o=arguments[e])&&(a=n(a,t(o)));return a}function t(t){var a,r;if("string"==typeof t||"number"==typeof t)return t;if("object"!=typeof t)return"";if(Array.isArray(t))return e.apply(null,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]"))return t.toString();for(r in a="",t)o.call(t,r)&&t[r]&&(a=n(a,r));return a}function n(e,t){return t?e?e+" "+t:e+t:e}var o={}.hasOwnProperty;module.exports?(e.default=e,module.exports=e):window.classNames=e}(),classnamesExports=classnames.exports,cn=getDefaultExportFromCjs(classnamesExports),useLayoutEffect2=Boolean(globalThis?.document)?React__namespace.useLayoutEffect:()=>{},useReactId=React__namespace["useId".toString()]||(()=>{}),count$1=0,(Slot=React__namespace.forwardRef(((e,t)=>{const{children:n,...o}=e,a=React__namespace.Children.toArray(n),r=a.find(isSlottable);if(r){const e=r.props.children,n=a.map((t=>t===r?React__namespace.Children.count(e)>1?React__namespace.Children.only(null):React__namespace.isValidElement(e)?e.props.children:null:t));return jsxRuntime.jsx(SlotClone,{...o,ref:t,children:React__namespace.isValidElement(e)?React__namespace.cloneElement(e,void 0,n):null})}return jsxRuntime.jsx(SlotClone,{...o,ref:t,children:n})}))).displayName="Slot",(SlotClone=React__namespace.forwardRef(((e,t)=>{const{children:n,...o}=e;if(React__namespace.isValidElement(n)){const e=function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}(n),a=function(e,t){const n={...t};for(const o in t){const a=e[o],r=t[o];/^on[A-Z]/.test(o)?a&&r?n[o]=(...e)=>{r(...e),a(...e)}:a&&(n[o]=a):"style"===o?n[o]={...a,...r}:"className"===o&&(n[o]=[a,r].filter(Boolean).join(" "))}return{...e,...n}}(o,n.props);return n.type!==React__namespace.Fragment&&(a.ref=t?composeRefs(t,e):e),React__namespace.cloneElement(n,a)}return React__namespace.Children.count(n)>1?React__namespace.Children.only(null):null}))).displayName="SlotClone",Slottable=({children:e})=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:e}),Primitive=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,t)=>{const n=React__namespace.forwardRef(((e,n)=>{const{asChild:o,...a}=e,r=o?Slot:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),jsxRuntime.jsx(r,{...a,ref:n})}));return n.displayName=`Primitive.${t}`,{...e,[t]:n}}),{}),DISMISSABLE_LAYER_NAME="DismissableLayer",CONTEXT_UPDATE="dismissableLayer.update",POINTER_DOWN_OUTSIDE="dismissableLayer.pointerDownOutside",FOCUS_OUTSIDE="dismissableLayer.focusOutside",DismissableLayerContext=React__namespace.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),DismissableLayer=React__namespace.forwardRef(((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:r,onInteractOutside:i,onDismiss:s,...c}=e,l=React__namespace.useContext(DismissableLayerContext),[u,d]=React__namespace.useState(null),p=u?.ownerDocument??globalThis?.document,[,m]=React__namespace.useState({}),g=useComposedRefs(t,(e=>d(e))),_=Array.from(l.layers),[f]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),C=_.indexOf(f),h=u?_.indexOf(u):-1,v=l.layersWithOutsidePointerEventsDisabled.size>0,b=h>=C,R=function(e,t=globalThis?.document){const n=useCallbackRef$1(e),o=React__namespace.useRef(!1),a=React__namespace.useRef((()=>{}));return React__namespace.useEffect((()=>{const e=e=>{if(e.target&&!o.current){let o=function(){handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE,n,r,{discrete:!0})};const r={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",a.current),a.current=o,t.addEventListener("click",a.current,{once:!0})):o()}else t.removeEventListener("click",a.current);o.current=!1},r=window.setTimeout((()=>{t.addEventListener("pointerdown",e)}),0);return()=>{window.clearTimeout(r),t.removeEventListener("pointerdown",e),t.removeEventListener("click",a.current)}}),[t,n]),{onPointerDownCapture:()=>o.current=!0}}((e=>{const t=e.target,n=[...l.branches].some((e=>e.contains(t)));b&&!n&&(a?.(e),i?.(e),e.defaultPrevented||s?.())}),p),y=function(e,t=globalThis?.document){const n=useCallbackRef$1(e),o=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=e=>{e.target&&!o.current&&handleAndDispatchCustomEvent(FOCUS_OUTSIDE,n,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)}),[t,n]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}((e=>{const t=e.target;[...l.branches].some((e=>e.contains(t)))||(r?.(e),i?.(e),e.defaultPrevented||s?.())}),p);return function(e,t=globalThis?.document){const n=useCallbackRef$1(e);React__namespace.useEffect((()=>{const e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})}),[n,t])}((e=>{h===l.layers.size-1&&(o?.(e),!e.defaultPrevented&&s&&(e.preventDefault(),s()))}),p),React__namespace.useEffect((()=>{if(u)return n&&(0===l.layersWithOutsidePointerEventsDisabled.size&&(originalBodyPointerEvents=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(u)),l.layers.add(u),dispatchUpdate(),()=>{n&&1===l.layersWithOutsidePointerEventsDisabled.size&&(p.body.style.pointerEvents=originalBodyPointerEvents)}}),[u,p,n,l]),React__namespace.useEffect((()=>()=>{u&&(l.layers.delete(u),l.layersWithOutsidePointerEventsDisabled.delete(u),dispatchUpdate())}),[u,l]),React__namespace.useEffect((()=>{const e=()=>m({});return document.addEventListener(CONTEXT_UPDATE,e),()=>document.removeEventListener(CONTEXT_UPDATE,e)}),[]),jsxRuntime.jsx(Primitive.div,{...c,ref:g,style:{pointerEvents:v?b?"auto":"none":void 0,...e.style},onFocusCapture:composeEventHandlers(e.onFocusCapture,y.onFocusCapture),onBlurCapture:composeEventHandlers(e.onBlurCapture,y.onBlurCapture),onPointerDownCapture:composeEventHandlers(e.onPointerDownCapture,R.onPointerDownCapture)})})),DismissableLayer.displayName=DISMISSABLE_LAYER_NAME,BRANCH_NAME="DismissableLayerBranch",DismissableLayerBranch=React__namespace.forwardRef(((e,t)=>{const n=React__namespace.useContext(DismissableLayerContext),o=React__namespace.useRef(null),a=useComposedRefs(t,o);return React__namespace.useEffect((()=>{const e=o.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}}),[n.branches]),jsxRuntime.jsx(Primitive.div,{...e,ref:a})})),DismissableLayerBranch.displayName=BRANCH_NAME,AUTOFOCUS_ON_MOUNT="focusScope.autoFocusOnMount",AUTOFOCUS_ON_UNMOUNT="focusScope.autoFocusOnUnmount",EVENT_OPTIONS$1={bubbles:!1,cancelable:!0},FOCUS_SCOPE_NAME="FocusScope",FocusScope=React__namespace.forwardRef(((e,t)=>{const{loop:n=!1,trapped:o=!1,onMountAutoFocus:a,onUnmountAutoFocus:r,...i}=e,[s,c]=React__namespace.useState(null),l=useCallbackRef$1(a),u=useCallbackRef$1(r),d=React__namespace.useRef(null),p=useComposedRefs(t,(e=>c(e))),m=React__namespace.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;React__namespace.useEffect((()=>{if(o){let e=function(e){if(m.paused||!s)return;const t=e.target;s.contains(t)?d.current=t:focus(d.current,{select:!0})},t=function(e){if(m.paused||!s)return;const t=e.relatedTarget;null!==t&&(s.contains(t)||focus(d.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(const t of e)t.removedNodes.length>0&&focus(s)};document.addEventListener("focusin",e),document.addEventListener("focusout",t);const o=new MutationObserver(n);return s&&o.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),o.disconnect()}}}),[o,s,m.paused]),React__namespace.useEffect((()=>{if(s){focusScopesStack.add(m);const t=document.activeElement;if(!s.contains(t)){const n=new CustomEvent(AUTOFOCUS_ON_MOUNT,EVENT_OPTIONS$1);s.addEventListener(AUTOFOCUS_ON_MOUNT,l),s.dispatchEvent(n),n.defaultPrevented||(!function(e,{select:t=!1}={}){const n=document.activeElement;for(const o of e)if(focus(o,{select:t}),document.activeElement!==n)return}((e=getTabbableCandidates(s),e.filter((e=>"A"!==e.tagName))),{select:!0}),document.activeElement===t&&focus(s))}return()=>{s.removeEventListener(AUTOFOCUS_ON_MOUNT,l),setTimeout((()=>{const e=new CustomEvent(AUTOFOCUS_ON_UNMOUNT,EVENT_OPTIONS$1);s.addEventListener(AUTOFOCUS_ON_UNMOUNT,u),s.dispatchEvent(e),e.defaultPrevented||focus(t??document.body,{select:!0}),s.removeEventListener(AUTOFOCUS_ON_UNMOUNT,u),focusScopesStack.remove(m)}),0)}}var e}),[s,l,u,m]);const g=React__namespace.useCallback((e=>{if(!n&&!o)return;if(m.paused)return;const t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,a=document.activeElement;if(t&&a){const t=e.currentTarget,[o,r]=function(e){const t=getTabbableCandidates(e);return[findVisible(t,e),findVisible(t.reverse(),e)]}(t);o&&r?e.shiftKey||a!==r?e.shiftKey&&a===o&&(e.preventDefault(),n&&focus(r,{select:!0})):(e.preventDefault(),n&&focus(o,{select:!0})):a===t&&e.preventDefault()}}),[n,o,m.paused]);return jsxRuntime.jsx(Primitive.div,{tabIndex:-1,...i,ref:p,onKeyDown:g})})),FocusScope.displayName=FOCUS_SCOPE_NAME,focusScopesStack=function(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=arrayRemove(e,t),e.unshift(t)},remove(t){e=arrayRemove(e,t),e[0]?.resume()}}}(),PORTAL_NAME$7="Portal",(Portal$5=React__namespace.forwardRef(((e,t)=>{const{container:n,...o}=e,[a,r]=React__namespace.useState(!1);useLayoutEffect2((()=>r(!0)),[]);const i=n||a&&globalThis?.document?.body;return i?ReactDOM.createPortal(jsxRuntime.jsx(Primitive.div,{...o,ref:t}),i):null}))).displayName=PORTAL_NAME$7,(Presence=e=>{const{present:t,children:n}=e,o=usePresence(t),a="function"==typeof n?n({present:o.isPresent}):React__namespace.Children.only(n),r=useComposedRefs(o.ref,function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}(a));return"function"==typeof n||o.isPresent?React__namespace.cloneElement(a,{ref:r}):null}).displayName="Presence",count=0,extendStatics=function(e,t){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},extendStatics(e,t)},__assign=function(){return __assign=Object.assign||function(e){var t,n,o,a;for(n=1,o=arguments.length;n<o;n++)for(a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},__assign.apply(this,arguments)},"function"==typeof SuppressedError&&SuppressedError,zeroRightClassName="right-scroll-bar-position",fullWidthClassName="width-before-scroll-bar",noScrollbarsClassName="with-scroll-bars-hidden",removedBarSizeVariable="--removed-body-scroll-bar-size",useIsomorphicLayoutEffect="undefined"!=typeof window?React__namespace.useLayoutEffect:React__namespace.useEffect,currentValues=new WeakMap,(SideCar$1=function(e){var t,n=e.sideCar,o=__rest(e,["sideCar"]);if(!n)throw new Error("Sidecar: please provide `sideCar` property to import the right car");if(!(t=n.read()))throw new Error("Sidecar medium not found");return React__namespace.createElement(t,__assign({},o))}).isSideCarExport=!0,effectCar=function(e){void 0===e&&(e={});var t=function(e,t){var n,o;return void 0===t&&(t=ItoI),n=[],o=!1,{read:function(){if(o)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var a=t(e,o);return n.push(a),function(){n=n.filter((function(e){return e!==a}))}},assignSyncMedium:function(e){for(o=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){var t,a,r,i;o=!0,t=[],n.length&&(a=n,n=[],a.forEach(e),t=n),r=function(){var n=t;t=[],n.forEach(e)},(i=function(){return Promise.resolve().then(r)})(),n={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),n}}}}}(null);return t.options=__assign({async:!0,ssr:!1},e),t}(),nothing=function(){},RemoveScroll=React__namespace.forwardRef((function(e,t){var n=React__namespace.useRef(null),o=React__namespace.useState({onScrollCapture:nothing,onWheelCapture:nothing,onTouchMoveCapture:nothing}),a=o[0],r=o[1],i=e.forwardProps,s=e.children,c=e.className,l=e.removeScrollBar,u=e.enabled,d=e.shards,p=e.sideCar,m=e.noIsolation,g=e.inert,_=e.allowPinchZoom,f=e.as,C=void 0===f?"div":f,h=e.gapMode,v=__rest(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as","gapMode"]),b=p,R=useMergeRefs([n,t]),y=__assign(__assign({},v),a);return React__namespace.createElement(React__namespace.Fragment,null,u&&React__namespace.createElement(b,{sideCar:effectCar,removeScrollBar:l,shards:d,noIsolation:m,inert:g,setCallbacks:r,allowPinchZoom:!!_,lockRef:n,gapMode:h}),i?React__namespace.cloneElement(React__namespace.Children.only(s),__assign(__assign({},y),{ref:R})):React__namespace.createElement(C,__assign({},y,{className:c,ref:R}),s))})),RemoveScroll.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},RemoveScroll.classNames={fullWidth:fullWidthClassName,zeroRight:zeroRightClassName},getNonce=function(){if("undefined"!=typeof __webpack_nonce__)return __webpack_nonce__},stylesheetSingleton=function(){var e=0,t=null;return{add:function(n){var o,a;0==e&&(t=document?((o=document.createElement("style")).type="text/css",(a=getNonce())&&o.setAttribute("nonce",a),o):null)&&(function(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}(t,n),function(e){(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}(t)),e++},remove:function(){! --e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},styleHookSingleton=function(){var e=stylesheetSingleton();return function(t,n){React__namespace.useEffect((function(){return e.add(t),function(){e.remove()}}),[t&&n])}},styleSingleton=function(){var e=styleHookSingleton(),t=function(t){var n=t.styles,o=t.dynamic;return e(n,o),null};return t},zeroGap={left:0,top:0,right:0,gap:0},parse$1=function(e){return parseInt(e||"",10)||0},getOffset=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],o=t["padding"===e?"paddingTop":"marginTop"],a=t["padding"===e?"paddingRight":"marginRight"];return[parse$1(n),parse$1(o),parse$1(a)]},getGapWidth=function(e){var t,n,o;return void 0===e&&(e="margin"),"undefined"==typeof window?zeroGap:(t=getOffset(e),n=document.documentElement.clientWidth,o=window.innerWidth,{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-n+t[2]-t[0])})},Style=styleSingleton(),lockAttribute="data-scroll-locked",getStyles=function(e,t,n,o){var a=e.left,r=e.top,i=e.right,s=e.gap;return void 0===n&&(n="margin"),"\n .".concat(noScrollbarsClassName," {\n overflow: hidden ").concat(o,";\n padding-right: ").concat(s,"px ").concat(o,";\n }\n body[").concat(lockAttribute,"] {\n overflow: hidden ").concat(o,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(o,";"),"margin"===n&&"\n padding-left: ".concat(a,"px;\n padding-top: ").concat(r,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(s,"px ").concat(o,";\n "),"padding"===n&&"padding-right: ".concat(s,"px ").concat(o,";")].filter(Boolean).join(""),"\n }\n \n .").concat(zeroRightClassName," {\n right: ").concat(s,"px ").concat(o,";\n }\n \n .").concat(fullWidthClassName," {\n margin-right: ").concat(s,"px ").concat(o,";\n }\n \n .").concat(zeroRightClassName," .").concat(zeroRightClassName," {\n right: 0 ").concat(o,";\n }\n \n .").concat(fullWidthClassName," .").concat(fullWidthClassName," {\n margin-right: 0 ").concat(o,";\n }\n \n body[").concat(lockAttribute,"] {\n ").concat(removedBarSizeVariable,": ").concat(s,"px;\n }\n")},getCurrentUseCounter=function(){var e=parseInt(document.body.getAttribute(lockAttribute)||"0",10);return isFinite(e)?e:0},useLockAttribute=function(){React__namespace.useEffect((function(){return document.body.setAttribute(lockAttribute,(getCurrentUseCounter()+1).toString()),function(){var e=getCurrentUseCounter()-1;e<=0?document.body.removeAttribute(lockAttribute):document.body.setAttribute(lockAttribute,e.toString())}}),[])},RemoveScrollBar=function(e){var t,n=e.noRelative,o=e.noImportant,a=e.gapMode,r=void 0===a?"margin":a;return useLockAttribute(),t=React__namespace.useMemo((function(){return getGapWidth(r)}),[r]),React__namespace.createElement(Style,{styles:getStyles(t,!n,r,o?"":"!important")})},passiveSupported=!1,"undefined"!=typeof window)try{options$1=Object.defineProperty({},"passive",{get:function(){return passiveSupported=!0,!0}}),window.addEventListener("test",options$1,options$1),window.removeEventListener("test",options$1,options$1)}catch(err){passiveSupported=!1}nonPassive=!!passiveSupported&&{passive:!1},alwaysContainsScroll=function(e){return"TEXTAREA"===e.tagName},elementCanBeScrolled=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&!alwaysContainsScroll(e)&&"visible"===n[t])},elementCouldBeVScrolled=function(e){return elementCanBeScrolled(e,"overflowY")},elementCouldBeHScrolled=function(e){return elementCanBeScrolled(e,"overflowX")},locationCouldBeScrolled=function(e,t){var n,o=t.ownerDocument,a=t;do{if("undefined"!=typeof ShadowRoot&&a instanceof ShadowRoot&&(a=a.host),elementCouldBeScrolled(e,a)&&(n=getScrollVariables(e,a))[1]>n[2])return!0;a=a.parentNode}while(a&&a!==o.body);return!1},getVScrollVariables=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},getHScrollVariables=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},elementCouldBeScrolled=function(e,t){return"v"===e?elementCouldBeVScrolled(t):elementCouldBeHScrolled(t)},getScrollVariables=function(e,t){return"v"===e?getVScrollVariables(t):getHScrollVariables(t)},getDirectionFactor=function(e,t){return"h"===e&&"rtl"===t?-1:1},handleScroll=function(e,t,n,o,a){var r,i,s,c=getDirectionFactor(e,window.getComputedStyle(t).direction),l=c*o,u=n.target,d=t.contains(u),p=!1,m=l>0,g=0,_=0;do{i=(r=getScrollVariables(e,u))[0],s=r[1]-r[2]-c*i,(i||s)&&elementCouldBeScrolled(e,u)&&(g+=s,_+=i),u=u instanceof ShadowRoot?u.host:u.parentNode}while(!d&&u!==document.body||d&&(t.contains(u)||t===u));return(m&&Math.abs(g)<1||!m&&Math.abs(_)<1)&&(p=!0),p},getTouchXY=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},getDeltaXY=function(e){return[e.deltaX,e.deltaY]},extractRef=function(e){return e&&"current"in e?e.current:e},deltaCompare=function(e,t){return e[0]===t[0]&&e[1]===t[1]},generateStyle=function(e){return"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")},idCounter=0,lockStack=[],exported=function(e){var t,n,o,a,r,i,s,c,l=React__namespace.useRef([]),u=React__namespace.useRef([0,0]),d=React__namespace.useRef(),p=React__namespace.useState(idCounter++)[0],m=React__namespace.useState(styleSingleton)[0],g=React__namespace.useRef(e);return React__namespace.useEffect((function(){g.current=e}),[e]),React__namespace.useEffect((function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(p));var t=function(e,t,n){if(n||2===arguments.length)for(var o,a=0,r=t.length;a<r;a++)!o&&a in t||(o||(o=Array.prototype.slice.call(t,0,a)),o[a]=t[a]);return e.concat(o||Array.prototype.slice.call(t))}([e.lockRef.current],(e.shards||[]).map(extractRef),!0).filter(Boolean);return t.forEach((function(e){return e.classList.add("allow-interactivity-".concat(p))})),function(){document.body.classList.remove("block-interactivity-".concat(p)),t.forEach((function(e){return e.classList.remove("allow-interactivity-".concat(p))}))}}}),[e.inert,e.lockRef.current,e.shards]),t=React__namespace.useCallback((function(e,t){var n,o,a,r,i,s,c,l,p;return"touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey?!g.current.allowPinchZoom:(n=getTouchXY(e),o=u.current,a="deltaX"in e?e.deltaX:o[0]-n[0],r="deltaY"in e?e.deltaY:o[1]-n[1],s=e.target,c=Math.abs(a)>Math.abs(r)?"h":"v",(!("touches"in e)||"h"!==c||"range"!==s.type)&&(!(l=locationCouldBeScrolled(c,s))||(l?i=c:(i="v"===c?"h":"v",l=locationCouldBeScrolled(c,s)),!!l&&(!d.current&&"changedTouches"in e&&(a||r)&&(d.current=i),!i||(p=d.current||i,handleScroll(p,t,e,"h"===p?a:r))))))}),[]),n=React__namespace.useCallback((function(e){var n,o,a,r=e;lockStack.length&&lockStack[lockStack.length-1]===m&&(n="deltaY"in r?getDeltaXY(r):getTouchXY(r),(o=l.current.filter((function(e){return e.name===r.type&&(e.target===r.target||r.target===e.shadowParent)&&deltaCompare(e.delta,n)}))[0])&&o.should?r.cancelable&&r.preventDefault():o||(a=(g.current.shards||[]).map(extractRef).filter(Boolean).filter((function(e){return e.contains(r.target)})),(a.length>0?t(r,a[0]):!g.current.noIsolation)&&r.cancelable&&r.preventDefault()))}),[]),o=React__namespace.useCallback((function(e,t,n,o){var a={name:e,delta:t,target:n,should:o,shadowParent:getOutermostShadowParent(n)};l.current.push(a),setTimeout((function(){l.current=l.current.filter((function(e){return e!==a}))}),1)}),[]),a=React__namespace.useCallback((function(e){u.current=getTouchXY(e),d.current=void 0}),[]),r=React__namespace.useCallback((function(n){o(n.type,getDeltaXY(n),n.target,t(n,e.lockRef.current))}),[]),i=React__namespace.useCallback((function(n){o(n.type,getTouchXY(n),n.target,t(n,e.lockRef.current))}),[]),React__namespace.useEffect((function(){return lockStack.push(m),e.setCallbacks({onScrollCapture:r,onWheelCapture:r,onTouchMoveCapture:i}),document.addEventListener("wheel",n,nonPassive),document.addEventListener("touchmove",n,nonPassive),document.addEventListener("touchstart",a,nonPassive),function(){lockStack=lockStack.filter((function(e){return e!==m})),document.removeEventListener("wheel",n,nonPassive),document.removeEventListener("touchmove",n,nonPassive),document.removeEventListener("touchstart",a,nonPassive)}}),[]),s=e.removeScrollBar,c=e.inert,React__namespace.createElement(React__namespace.Fragment,null,c?React__namespace.createElement(m,{styles:generateStyle(p)}):null,s?React__namespace.createElement(RemoveScrollBar,{gapMode:e.gapMode}):null)},effectCar.useMedium(exported),SideCar=SideCar$1,(ReactRemoveScroll=React__namespace.forwardRef((function(e,t){return React__namespace.createElement(RemoveScroll,__assign({},e,{ref:t,sideCar:SideCar}))}))).classNames=RemoveScroll.classNames,getDefaultParent=function(e){return"undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={},lockCount=0,unwrapHost=function(e){return e&&(e.host||unwrapHost(e.parentNode))},correctTargets=function(e,t){return t.map((function(t){if(e.contains(t))return t;var n=unwrapHost(t);return n&&e.contains(n)?n:(console.error("aria-hidden",t,"in not contained inside",e,". Doing nothing"),null)})).filter((function(e){return Boolean(e)}))},applyAttributeToOthers=function(t,n,o,a){var r,i,s,c,l,u,d=correctTargets(n,Array.isArray(t)?t:[t]);return markerMap[o]||(markerMap[o]=new WeakMap),r=markerMap[o],i=[],s=new Set,c=new Set(d),l=function(e){e&&!s.has(e)&&(s.add(e),l(e.parentNode))},d.forEach(l),u=function(t){t&&!c.has(t)&&Array.prototype.forEach.call(t.children,(function(t){var n,c,l,d;if(s.has(t))u(t);else try{c=null!==(n=t.getAttribute(a))&&"false"!==n,l=(counterMap.get(t)||0)+1,d=(r.get(t)||0)+1,counterMap.set(t,l),r.set(t,d),i.push(t),1===l&&c&&uncontrolledNodes.set(t,!0),1===d&&t.setAttribute(o,"true"),c||t.setAttribute(a,"true")}catch(e){console.error("aria-hidden: cannot operate on ",t,e)}}))},u(n),s.clear(),lockCount++,function(){i.forEach((function(e){var t=counterMap.get(e)-1,n=r.get(e)-1;counterMap.set(e,t),r.set(e,n),t||(uncontrolledNodes.has(e)||e.removeAttribute(a),uncontrolledNodes.delete(e)),n||e.removeAttribute(o)})),--lockCount||(counterMap=new WeakMap,counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={})}},hideOthers=function(e,t,n){var o,a;return void 0===n&&(n="data-aria-hidden"),o=Array.from(Array.isArray(e)?e:[e]),(a=getDefaultParent(e))?(o.push.apply(o,Array.from(a.querySelectorAll("[aria-live]"))),applyAttributeToOthers(o,a,n,"aria-hidden")):function(){return null}},DIALOG_NAME="Dialog";var[createDialogContext,createDialogScope]=createContextScope(DIALOG_NAME),[DialogProvider,useDialogContext]=createDialogContext(DIALOG_NAME);(Dialog=e=>{const{__scopeDialog:t,children:n,open:o,defaultOpen:a,onOpenChange:r,modal:i=!0}=e,s=React__namespace.useRef(null),c=React__namespace.useRef(null),[l=!1,u]=useControllableState({prop:o,defaultProp:a,onChange:r});return jsxRuntime.jsx(DialogProvider,{scope:t,triggerRef:s,contentRef:c,contentId:useId(),titleId:useId(),descriptionId:useId(),open:l,onOpenChange:u,onOpenToggle:React__namespace.useCallback((()=>u((e=>!e))),[u]),modal:i,children:n})}).displayName=DIALOG_NAME,TRIGGER_NAME$6="DialogTrigger",(DialogTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopeDialog:n,...o}=e,a=useDialogContext(TRIGGER_NAME$6,n),r=useComposedRefs(t,a.triggerRef);return jsxRuntime.jsx(Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":getState$4(a.open),...o,ref:r,onClick:composeEventHandlers(e.onClick,a.onOpenToggle)})}))).displayName=TRIGGER_NAME$6,PORTAL_NAME$6="DialogPortal";var[PortalProvider$3,usePortalContext$3]=createDialogContext(PORTAL_NAME$6,{forceMount:void 0});(DialogPortal=e=>{const{__scopeDialog:t,forceMount:n,children:o,container:a}=e,r=useDialogContext(PORTAL_NAME$6,t);return jsxRuntime.jsx(PortalProvider$3,{scope:t,forceMount:n,children:React__namespace.Children.map(o,(e=>jsxRuntime.jsx(Presence,{present:n||r.open,children:jsxRuntime.jsx(Portal$5,{asChild:!0,container:a,children:e})})))})}).displayName=PORTAL_NAME$6,OVERLAY_NAME$1="DialogOverlay",(DialogOverlay=React__namespace.forwardRef(((e,t)=>{const n=usePortalContext$3(OVERLAY_NAME$1,e.__scopeDialog),{forceMount:o=n.forceMount,...a}=e,r=useDialogContext(OVERLAY_NAME$1,e.__scopeDialog);return r.modal?jsxRuntime.jsx(Presence,{present:o||r.open,children:jsxRuntime.jsx(DialogOverlayImpl,{...a,ref:t})}):null}))).displayName=OVERLAY_NAME$1,DialogOverlayImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeDialog:n,...o}=e,a=useDialogContext(OVERLAY_NAME$1,n);return jsxRuntime.jsx(ReactRemoveScroll,{as:Slot,allowPinchZoom:!0,shards:[a.contentRef],children:jsxRuntime.jsx(Primitive.div,{"data-state":getState$4(a.open),...o,ref:t,style:{pointerEvents:"auto",...o.style}})})})),CONTENT_NAME$8="DialogContent",(DialogContent=React__namespace.forwardRef(((e,t)=>{const n=usePortalContext$3(CONTENT_NAME$8,e.__scopeDialog),{forceMount:o=n.forceMount,...a}=e,r=useDialogContext(CONTENT_NAME$8,e.__scopeDialog);return jsxRuntime.jsx(Presence,{present:o||r.open,children:r.modal?jsxRuntime.jsx(DialogContentModal,{...a,ref:t}):jsxRuntime.jsx(DialogContentNonModal,{...a,ref:t})})}))).displayName=CONTENT_NAME$8,DialogContentModal=React__namespace.forwardRef(((e,t)=>{const n=useDialogContext(CONTENT_NAME$8,e.__scopeDialog),o=React__namespace.useRef(null),a=useComposedRefs(t,n.contentRef,o);return React__namespace.useEffect((()=>{const e=o.current;if(e)return hideOthers(e)}),[]),jsxRuntime.jsx(DialogContentImpl,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:composeEventHandlers(e.onCloseAutoFocus,(e=>{e.preventDefault(),n.triggerRef.current?.focus()})),onPointerDownOutside:composeEventHandlers(e.onPointerDownOutside,(e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()})),onFocusOutside:composeEventHandlers(e.onFocusOutside,(e=>e.preventDefault()))})})),DialogContentNonModal=React__namespace.forwardRef(((e,t)=>{const n=useDialogContext(CONTENT_NAME$8,e.__scopeDialog),o=React__namespace.useRef(!1),a=React__namespace.useRef(!1);return jsxRuntime.jsx(DialogContentImpl,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||n.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(a.current=!0));const r=t.target,i=n.triggerRef.current?.contains(r);i&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})})),DialogContentImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:r,...i}=e,s=useDialogContext(CONTENT_NAME$8,n),c=React__namespace.useRef(null),l=useComposedRefs(t,c);return useFocusGuards(),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:a,onUnmountAutoFocus:r,children:jsxRuntime.jsx(DismissableLayer,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":getState$4(s.open),...i,ref:l,onDismiss:()=>s.onOpenChange(!1)})}),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleWarning,{titleId:s.titleId}),jsxRuntime.jsx(DescriptionWarning$1,{contentRef:c,descriptionId:s.descriptionId})]})]})})),TITLE_NAME$1="DialogTitle",(DialogTitle=React__namespace.forwardRef(((e,t)=>{const{__scopeDialog:n,...o}=e,a=useDialogContext(TITLE_NAME$1,n);return jsxRuntime.jsx(Primitive.h2,{id:a.titleId,...o,ref:t})}))).displayName=TITLE_NAME$1,DESCRIPTION_NAME$1="DialogDescription",(DialogDescription=React__namespace.forwardRef(((e,t)=>{const{__scopeDialog:n,...o}=e,a=useDialogContext(DESCRIPTION_NAME$1,n);return jsxRuntime.jsx(Primitive.p,{id:a.descriptionId,...o,ref:t})}))).displayName=DESCRIPTION_NAME$1,CLOSE_NAME$1="DialogClose",(DialogClose=React__namespace.forwardRef(((e,t)=>{const{__scopeDialog:n,...o}=e,a=useDialogContext(CLOSE_NAME$1,n);return jsxRuntime.jsx(Primitive.button,{type:"button",...o,ref:t,onClick:composeEventHandlers(e.onClick,(()=>a.onOpenChange(!1)))})}))).displayName=CLOSE_NAME$1,TITLE_WARNING_NAME="DialogTitleWarning";var[WarningProvider,useWarningContext]=function(e,t){const n=React__namespace.createContext(t),o=e=>{const{children:t,...o}=e,a=React__namespace.useMemo((()=>o),Object.values(o));return jsxRuntime.jsx(n.Provider,{value:a,children:t})};return o.displayName=e+"Provider",[o,function(o){const a=React__namespace.useContext(n);if(a)return a;if(void 0!==t)return t;throw new Error(`\`${o}\` must be used within \`${e}\``)}]}(TITLE_WARNING_NAME,{contentName:CONTENT_NAME$8,titleName:TITLE_NAME$1,docsSlug:"dialog"});TitleWarning=({titleId:e})=>{const t=useWarningContext(TITLE_WARNING_NAME),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return React__namespace.useEffect((()=>{if(e){document.getElementById(e)||console.error(n)}}),[n,e]),null},DESCRIPTION_WARNING_NAME="DialogDescriptionWarning",DescriptionWarning$1=({contentRef:e,descriptionId:t})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${useWarningContext(DESCRIPTION_WARNING_NAME).contentName}}.`;return React__namespace.useEffect((()=>{const o=e.current?.getAttribute("aria-describedby");if(t&&o){document.getElementById(t)||console.warn(n)}}),[n,e,t]),null},Root$9=Dialog,Trigger$5=DialogTrigger,Portal$4=DialogPortal,Overlay=DialogOverlay,Content$2=DialogContent,Title=DialogTitle,Description=DialogDescription,Close=DialogClose,ROOT_NAME="AlertDialog";var[createAlertDialogContext,createAlertDialogScope]=createContextScope(ROOT_NAME,[createDialogScope]);useDialogScope=createDialogScope(),(AlertDialog=e=>{const{__scopeAlertDialog:t,...n}=e,o=useDialogScope(t);return jsxRuntime.jsx(Root$9,{...o,...n,modal:!0})}).displayName=ROOT_NAME,TRIGGER_NAME$5="AlertDialogTrigger",React__namespace.forwardRef(((e,t)=>{const{__scopeAlertDialog:n,...o}=e,a=useDialogScope(n);return jsxRuntime.jsx(Trigger$5,{...a,...o,ref:t})})).displayName=TRIGGER_NAME$5,(AlertDialogPortal=e=>{const{__scopeAlertDialog:t,...n}=e,o=useDialogScope(t);return jsxRuntime.jsx(Portal$4,{...o,...n})}).displayName="AlertDialogPortal",OVERLAY_NAME="AlertDialogOverlay",(AlertDialogOverlay=React__namespace.forwardRef(((e,t)=>{const{__scopeAlertDialog:n,...o}=e,a=useDialogScope(n);return jsxRuntime.jsx(Overlay,{...a,...o,ref:t})}))).displayName=OVERLAY_NAME,CONTENT_NAME$7="AlertDialogContent";var[AlertDialogContentProvider,useAlertDialogContentContext]=createAlertDialogContext(CONTENT_NAME$7);(AlertDialogContent=React__namespace.forwardRef(((e,t)=>{const{__scopeAlertDialog:n,children:o,...a}=e,r=useDialogScope(n),i=React__namespace.useRef(null),s=useComposedRefs(t,i),c=React__namespace.useRef(null);return jsxRuntime.jsx(WarningProvider,{contentName:CONTENT_NAME$7,titleName:TITLE_NAME,docsSlug:"alert-dialog",children:jsxRuntime.jsx(AlertDialogContentProvider,{scope:n,cancelRef:c,children:jsxRuntime.jsxs(Content$2,{role:"alertdialog",...r,...a,ref:s,onOpenAutoFocus:composeEventHandlers(a.onOpenAutoFocus,(e=>{e.preventDefault(),c.current?.focus({preventScroll:!0})})),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[jsxRuntime.jsx(Slottable,{children:o}),jsxRuntime.jsx(DescriptionWarning,{contentRef:i})]})})})}))).displayName=CONTENT_NAME$7,TITLE_NAME="AlertDialogTitle",(AlertDialogTitle=React__namespace.forwardRef(((e,t)=>{const{__scopeAlertDialog:n,...o}=e,a=useDialogScope(n);return jsxRuntime.jsx(Title,{...a,...o,ref:t})}))).displayName=TITLE_NAME,DESCRIPTION_NAME="AlertDialogDescription",(AlertDialogDescription=React__namespace.forwardRef(((e,t)=>{const{__scopeAlertDialog:n,...o}=e,a=useDialogScope(n);return jsxRuntime.jsx(Description,{...a,...o,ref:t})}))).displayName=DESCRIPTION_NAME,ACTION_NAME="AlertDialogAction",(AlertDialogAction=React__namespace.forwardRef(((e,t)=>{const{__scopeAlertDialog:n,...o}=e,a=useDialogScope(n);return jsxRuntime.jsx(Close,{...a,...o,ref:t})}))).displayName=ACTION_NAME,CANCEL_NAME="AlertDialogCancel",(AlertDialogCancel=React__namespace.forwardRef(((e,t)=>{const{__scopeAlertDialog:n,...o}=e,{cancelRef:a}=useAlertDialogContentContext(CANCEL_NAME,n),r=useDialogScope(n),i=useComposedRefs(t,a);return jsxRuntime.jsx(Close,{...r,...o,ref:i})}))).displayName=CANCEL_NAME,DescriptionWarning=({contentRef:e})=>{const t=`\`${CONTENT_NAME$7}\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \`${CONTENT_NAME$7}\` by passing a \`${DESCRIPTION_NAME}\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${CONTENT_NAME$7}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return React__namespace.useEffect((()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)}),[t,e]),null},Root2$6=AlertDialog,Portal2$1=AlertDialogPortal,Overlay2=AlertDialogOverlay,Content2$5=AlertDialogContent,Action=AlertDialogAction,Cancel=AlertDialogCancel,Title2=AlertDialogTitle,Description2=AlertDialogDescription,SvgClose=function(e){return React__namespace.createElement("svg",_extends$1F({viewBox:"0 0 24 24",fill:"none"},e),_path$1f||(_path$1f=React__namespace.createElement("path",{d:"M11.9998 13.4008L7.0998 18.3008C6.91647 18.4841 6.68314 18.5758 6.3998 18.5758C6.11647 18.5758 5.88314 18.4841 5.6998 18.3008C5.51647 18.1174 5.4248 17.8841 5.4248 17.6008C5.4248 17.3174 5.51647 17.0841 5.6998 16.9008L10.5998 12.0008L5.6998 7.10078C5.51647 6.91745 5.4248 6.68411 5.4248 6.40078C5.4248 6.11745 5.51647 5.88411 5.6998 5.70078C5.88314 5.51745 6.11647 5.42578 6.3998 5.42578C6.68314 5.42578 6.91647 5.51745 7.0998 5.70078L11.9998 10.6008L16.8998 5.70078C17.0831 5.51745 17.3165 5.42578 17.5998 5.42578C17.8831 5.42578 18.1165 5.51745 18.2998 5.70078C18.4831 5.88411 18.5748 6.11745 18.5748 6.40078C18.5748 6.68411 18.4831 6.91745 18.2998 7.10078L13.3998 12.0008L18.2998 16.9008C18.4831 17.0841 18.5748 17.3174 18.5748 17.6008C18.5748 17.8841 18.4831 18.1174 18.2998 18.3008C18.1165 18.4841 17.8831 18.5758 17.5998 18.5758C17.3165 18.5758 17.0831 18.4841 16.8998 18.3008L11.9998 13.4008Z",fill:"#5D676B"})))},styles$r={loader:"Loader-modules_loader__waPdv",rotate:"Loader-modules_rotate__vBNW3",spin:"Loader-modules_spin__i7TnV",small:"Loader-modules_small__ACDdJ",inheritColor:"Loader-modules_inheritColor__4aWvb"},styles$q={button:"Button-modules_button__tpJr3",secondary:"Button-modules_secondary__JGOIF",outline:"Button-modules_outline__R9gjd",danger:"Button-modules_danger__eTzli",small:"Button-modules_small__dNTOw",large:"Button-modules_large__5tvgy",prefix:"Button-modules_prefix__86hpR",suffix:"Button-modules_suffix__5uHiO",fullWidth:"Button-modules_fullWidth__3ET8J"};const Button$1=React.forwardRef((({disabled:e=!1,children:t,onClick:n,size:o="medium",variant:a="primary",type:r="button",prefix:i="",suffix:s="",className:c="",fullWidth:l=!1,showLoader:u=!1,...d},p)=>React.createElement("button",{ref:p,type:r,disabled:e,className:cn("demio-ui-button",styles$q.button,{[c]:c,[styles$q[o]]:o,[styles$q[a]]:a,[styles$q.fullWidth]:l}),onClick:n,...d},(i||u)&&React.createElement("span",{className:cn("demio-ui-button-prefix",styles$q.prefix)},u?React.createElement(Loader,{size:"small",inheritColor:!0}):i),t,s&&React.createElement("span",{className:cn("demio-ui-button-suffix",styles$q.suffix)},s))));styles$p_overlay="Alert-modules_overlay__4XRHj",styles$p_close="Alert-modules_close__dyL0l",styles$p_content="Alert-modules_content__Y7nMS",styles$p_title="Alert-modules_title__e8UHT",styles$p_description="Alert-modules_description__wyWR-",styles$p_buttons="Alert-modules_buttons__cOEDw",AVATAR_NAME="Avatar";var[createAvatarContext,createAvatarScope]=createContextScope(AVATAR_NAME),[AvatarProvider,useAvatarContext]=createAvatarContext(AVATAR_NAME);(Avatar$1=React__namespace.forwardRef(((e,t)=>{const{__scopeAvatar:n,...o}=e,[a,r]=React__namespace.useState("idle");return jsxRuntime.jsx(AvatarProvider,{scope:n,imageLoadingStatus:a,onImageLoadingStatusChange:r,children:jsxRuntime.jsx(Primitive.span,{...o,ref:t})})}))).displayName=AVATAR_NAME,IMAGE_NAME="AvatarImage",(AvatarImage=React__namespace.forwardRef(((e,t)=>{const{__scopeAvatar:n,src:o,onLoadingStatusChange:a=()=>{},...r}=e,i=useAvatarContext(IMAGE_NAME,n),s=function(e,t){const[n,o]=React__namespace.useState("idle");return useLayoutEffect2((()=>{if(!e)return void o("error");let n=!0;const a=new window.Image,r=e=>()=>{n&&o(e)};return o("loading"),a.onload=r("loaded"),a.onerror=r("error"),a.src=e,t&&(a.referrerPolicy=t),()=>{n=!1}}),[e,t]),n}(o,r.referrerPolicy),c=useCallbackRef$1((e=>{a(e),i.onImageLoadingStatusChange(e)}));return useLayoutEffect2((()=>{"idle"!==s&&c(s)}),[s,c]),"loaded"===s?jsxRuntime.jsx(Primitive.img,{...r,ref:t,src:o}):null}))).displayName=IMAGE_NAME,FALLBACK_NAME="AvatarFallback",(AvatarFallback=React__namespace.forwardRef(((e,t)=>{const{__scopeAvatar:n,delayMs:o,...a}=e,r=useAvatarContext(FALLBACK_NAME,n),[i,s]=React__namespace.useState(void 0===o);return React__namespace.useEffect((()=>{if(void 0!==o){const e=window.setTimeout((()=>s(!0)),o);return()=>window.clearTimeout(e)}}),[o]),i&&"loaded"!==r.imageLoadingStatus?jsxRuntime.jsx(Primitive.span,{...a,ref:t}):null}))).displayName=FALLBACK_NAME,Root$8=Avatar$1,Image$1=AvatarImage,Fallback=AvatarFallback,SvgAdd=function(e){return React__namespace.createElement("svg",_extends$1E({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("mask",{id:"mask0_6_3085",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$m||(_rect$m=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$v||(_g$v=React__namespace.createElement("g",{mask:"url(#mask0_6_3085)"},React__namespace.createElement("path",{d:"M11.9997 18.75C11.7871 18.75 11.609 18.6781 11.4654 18.5344C11.3218 18.3906 11.25 18.2125 11.25 18V12.75H5.99997C5.78747 12.75 5.60936 12.678 5.46563 12.5342C5.32188 12.3904 5.25 12.2122 5.25 11.9997C5.25 11.7871 5.32188 11.609 5.46563 11.4654C5.60936 11.3218 5.78747 11.25 5.99997 11.25H11.25V5.99997C11.25 5.78747 11.3219 5.60935 11.4657 5.4656C11.6095 5.32187 11.7877 5.25 12.0003 5.25C12.2129 5.25 12.391 5.32187 12.5346 5.4656C12.6782 5.60935 12.7499 5.78747 12.7499 5.99997V11.25H18C18.2125 11.25 18.3906 11.3219 18.5344 11.4657C18.6781 11.6095 18.75 11.7877 18.75 12.0003C18.75 12.2129 18.6781 12.391 18.5344 12.5346C18.3906 12.6782 18.2125 12.75 18 12.75H12.7499V18C12.7499 18.2125 12.678 18.3906 12.5342 18.5344C12.3904 18.6781 12.2122 18.75 11.9997 18.75Z",fill:"#2C3336"}))))},SvgArrowLeft=function(e){return React__namespace.createElement("svg",_extends$1D({viewBox:"0 0 24 24",fill:"none"},e),_path$1e||(_path$1e=React__namespace.createElement("path",{d:"M12.2765 22.0928L13.2046 21.1647C13.4243 20.945 13.4243 20.5889 13.2046 20.3692L5.9329 13.0975H21.9375C22.2481 13.0975 22.5 12.8456 22.5 12.535V11.2225C22.5 10.9119 22.2481 10.66 21.9375 10.66H5.9329L13.2046 3.38829C13.4243 3.16863 13.4243 2.81247 13.2046 2.59277L12.2765 1.66474C12.0569 1.44509 11.7007 1.44509 11.481 1.66474L1.66474 11.481C1.44509 11.7007 1.44509 12.0568 1.66474 12.2765L11.481 22.0928C11.7007 22.3125 12.0568 22.3125 12.2765 22.0928Z",fill:"#2C3336"})))},SvgCheck=function(e){return React__namespace.createElement("svg",_extends$1C({fill:"currentColor","aria-hidden":"true","data-icon":"check",viewBox:"64 64 896 896"},e),_path$1d||(_path$1d=React__namespace.createElement("path",{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"})))},SvgDelete=function(e){return React__namespace.createElement("svg",_extends$1B({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},_path$1c||(_path$1c=React__namespace.createElement("path",{fill:"#D9D9D9",d:"M0 0h24v24H0z"}))),_g$u||(_g$u=React__namespace.createElement("g",{mask:"url(#a)"},React__namespace.createElement("path",{fill:"#2C3336",d:"M7.308 20.5c-.505 0-.933-.175-1.283-.525a1.745 1.745 0 0 1-.525-1.283V6h-.25a.726.726 0 0 1-.535-.215.726.726 0 0 1-.215-.535.73.73 0 0 1 .215-.535.726.726 0 0 1 .535-.215H9a.84.84 0 0 1 .263-.63.889.889 0 0 1 .64-.255h4.193c.251 0 .465.085.64.254A.84.84 0 0 1 15 4.5h3.75a.73.73 0 0 1 .535.215.726.726 0 0 1 .215.535.726.726 0 0 1-.215.535.726.726 0 0 1-.535.215h-.25v12.692c0 .506-.175.933-.525 1.283-.35.35-.778.525-1.283.525H7.308ZM7 6v12.692a.3.3 0 0 0 .087.221.3.3 0 0 0 .22.087h9.385a.3.3 0 0 0 .221-.087.3.3 0 0 0 .087-.22V6H7Zm2.404 10.25a.73.73 0 0 0 .215.535.726.726 0 0 0 .535.215.726.726 0 0 0 .534-.215.726.726 0 0 0 .216-.535v-7.5a.726.726 0 0 0-.216-.535.726.726 0 0 0-.534-.215.726.726 0 0 0-.535.215.726.726 0 0 0-.215.535v7.5Zm3.692 0c0 .213.072.391.216.535a.726.726 0 0 0 .534.215.726.726 0 0 0 .535-.215.726.726 0 0 0 .215-.535v-7.5a.726.726 0 0 0-.215-.535.726.726 0 0 0-.535-.215.726.726 0 0 0-.534.215.726.726 0 0 0-.216.535v7.5ZM7 6v12.692a.3.3 0 0 0 .087.221.3.3 0 0 0 .22.087H7V6Z"}))))},SvgEdit=function(e){return React__namespace.createElement("svg",_extends$1A({viewBox:"0 0 24 24",fill:"none"},e),_path$1b||(_path$1b=React__namespace.createElement("path",{d:"M4 21C3.71667 21 3.47917 20.9042 3.2875 20.7125C3.09583 20.5208 3 20.2833 3 20V17.575C3 17.3083 3.05 17.0542 3.15 16.8125C3.25 16.5708 3.39167 16.3583 3.575 16.175L16.2 3.575C16.4 3.39167 16.6208 3.25 16.8625 3.15C17.1042 3.05 17.3583 3 17.625 3C17.8917 3 18.15 3.05 18.4 3.15C18.65 3.25 18.8667 3.4 19.05 3.6L20.425 5C20.625 5.18333 20.7708 5.4 20.8625 5.65C20.9542 5.9 21 6.15 21 6.4C21 6.66667 20.9542 6.92083 20.8625 7.1625C20.7708 7.40417 20.625 7.625 20.425 7.825L7.825 20.425C7.64167 20.6083 7.42917 20.75 7.1875 20.85C6.94583 20.95 6.69167 21 6.425 21H4ZM17.6 7.8L19 6.4L17.6 5L16.2 6.4L17.6 7.8Z",fill:"#1C1B1F"})))},SvgKeyboardArrowDown=function(e){return React__namespace.createElement("svg",_extends$1z({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},_path$1a||(_path$1a=React__namespace.createElement("path",{fill:"#D9D9D9",d:"M0 0h24v24H0z"}))),_g$t||(_g$t=React__namespace.createElement("g",{mask:"url(#a)"},React__namespace.createElement("path",{fill:"#2C3336",d:"M12 14.677a.93.93 0 0 1-.34-.066.84.84 0 0 1-.293-.19L6.873 9.927a.717.717 0 0 1-.217-.527c0-.206.072-.382.217-.527a.717.717 0 0 1 .527-.217c.206 0 .382.072.527.217L12 12.946l4.073-4.073a.717.717 0 0 1 .527-.217c.206 0 .382.072.527.217.145.145.217.32.217.527a.717.717 0 0 1-.217.527l-4.494 4.494a.83.83 0 0 1-.633.256Z"}))))},SvgPlus=function(e){return React__namespace.createElement("svg",_extends$1y({viewBox:"0 0 24 24",fill:"none"},e),_path$19||(_path$19=React__namespace.createElement("path",{d:"M20.625 10.875H13.125V3.375C13.125 3.16781 12.9572 3 12.75 3H11.25C11.0428 3 10.875 3.16781 10.875 3.375V10.875H3.375C3.16781 10.875 3 11.0428 3 11.25V12.75C3 12.9572 3.16781 13.125 3.375 13.125H10.875V20.625C10.875 20.8322 11.0428 21 11.25 21H12.75C12.9572 21 13.125 20.8322 13.125 20.625V13.125H20.625C20.8322 13.125 21 12.9572 21 12.75V11.25C21 11.0428 20.8322 10.875 20.625 10.875Z",fill:"#2C3336"})))},SvgSearch=function(e){return React__namespace.createElement("svg",_extends$1x({viewBox:"0 0 24 24",fill:"currentColor"},e),_path$18||(_path$18=React__namespace.createElement("path",{d:"M23.8348 21.9786L18.1444 16.2883C18.0366 16.1805 17.896 16.1242 17.746 16.1242H17.1273C18.6038 14.4134 19.499 12.1869 19.499 9.74952C19.499 4.36385 15.1352 0 9.74952 0C4.36385 0 0 4.36385 0 9.74952C0 15.1352 4.36385 19.499 9.74952 19.499C12.1869 19.499 14.4134 18.6038 16.1242 17.1273V17.746C16.1242 17.896 16.1851 18.0366 16.2883 18.1444L21.9786 23.8348C22.1989 24.0551 22.5551 24.0551 22.7754 23.8348L23.8348 22.7754C24.0551 22.5551 24.0551 22.1989 23.8348 21.9786ZM9.74952 17.2492C5.60598 17.2492 2.24989 13.8931 2.24989 9.74952C2.24989 5.60598 5.60598 2.24989 9.74952 2.24989C13.8931 2.24989 17.2492 5.60598 17.2492 9.74952C17.2492 13.8931 13.8931 17.2492 9.74952 17.2492Z",fill:"#2C3336"})))},SvgArrowFromLeft=function(e){return React__namespace.createElement("svg",_extends$1w({viewBox:"0 0 24 24"},e),_path$17||(_path$17=React__namespace.createElement("path",{d:"m15.38 4.664 6.956 6.938c.22.22.22.576 0 .796l-6.956 6.938a.563.563 0 0 1-.797 0l-.919-.919a.556.556 0 0 1 .01-.801l4.551-4.393H6.562A.564.564 0 0 1 6 12.661v-1.313c0-.309.253-.562.563-.562h11.662l-4.552-4.392a.565.565 0 0 1-.009-.802l.919-.919c.22-.23.576-.23.797-.009ZM3.937 20.438V3.563A.564.564 0 0 0 3.375 3H2.062a.564.564 0 0 0-.562.563v16.875c0 .309.253.562.563.562h1.312c.31 0 .563-.253.563-.563Z"})))},SvgArrowLeftDouble=function(e){return React__namespace.createElement("svg",_extends$1v({viewBox:"0 0 24 24",fill:"none"},e),_path$16||(_path$16=React__namespace.createElement("path",{d:"M3.1664 11.6016L10.0964 4.66407C10.3183 4.44376 10.677 4.44376 10.8989 4.66407L11.8336 5.5922C12.0555 5.81251 12.0555 6.16876 11.8336 6.38907L6.23958 12L11.8336 17.6109C12.0555 17.8313 12.0555 18.1875 11.8336 18.4078L10.8989 19.3359C10.677 19.5563 10.3183 19.5563 10.0964 19.3359L3.1664 12.3984C2.94453 12.1781 2.94453 11.8219 3.1664 11.6016Z",fill:"#2C3336"})),_path2$6||(_path2$6=React__namespace.createElement("path",{d:"M12.1664 11.6016L19.0964 4.66407C19.3183 4.44376 19.677 4.44376 19.8989 4.66407L20.8336 5.5922C21.0555 5.81251 21.0555 6.16876 20.8336 6.38907L15.2396 12L20.8336 17.6109C21.0555 17.8313 21.0555 18.1875 20.8336 18.4078L19.8989 19.3359C19.677 19.5563 19.3183 19.5563 19.0964 19.3359L12.1664 12.3984C11.9445 12.1781 11.9445 11.8219 12.1664 11.6016Z",fill:"#2C3336"})))},SvgArrowLeftSingle=function(e){return React__namespace.createElement("svg",_extends$1u({viewBox:"0 0 24 24",fill:"none"},e),_path$15||(_path$15=React__namespace.createElement("path",{d:"M7.69685 11.6016L14.5781 4.66407C14.7984 4.44376 15.1547 4.44376 15.375 4.66407L16.3031 5.5922C16.5234 5.81251 16.5234 6.16876 16.3031 6.38907L10.7484 12L16.3031 17.6109C16.5234 17.8313 16.5234 18.1875 16.3031 18.4078L15.375 19.3359C15.1547 19.5563 14.7984 19.5563 14.5781 19.3359L7.69685 12.3984C7.47654 12.1781 7.47654 11.8219 7.69685 11.6016Z",fill:"#2C3336"})))},SvgCompress=function(e){return React__namespace.createElement("svg",_extends$1t({viewBox:"0 0 24 24"},e),_path$14||(_path$14=React__namespace.createElement("path",{d:"M12 10.875V6.422c0-1.003 1.212-1.505 1.92-.796l1.3 1.299 5.26-5.26c.219-.22.575-.22.795 0l1.06 1.06c.22.22.22.576 0 .796l-5.26 5.26 1.299 1.298c.709.71.207 1.921-.796 1.921h-4.453A1.125 1.125 0 0 1 12 10.875Zm-8.48 11.46 5.26-5.26 1.3 1.299c.708.709 1.92.207 1.92-.796v-4.453c0-.621-.504-1.125-1.125-1.125H6.422c-1.003 0-1.505 1.212-.796 1.92l1.299 1.3-5.26 5.26a.563.563 0 0 0 0 .795l1.06 1.06c.22.22.576.22.796 0Z"})))},SvgExpand=function(e){return React__namespace.createElement("svg",_extends$1s({viewBox:"0 0 24 24"},e),_path$13||(_path$13=React__namespace.createElement("path",{d:"M22.5 2.625v4.453c0 1.003-1.212 1.505-1.92.796l-1.3-1.299-5.026 5.027a.563.563 0 0 1-.796 0l-1.06-1.06a.563.563 0 0 1 0-.796l5.027-5.027-1.299-1.299c-.709-.708-.207-1.92.796-1.92h4.453c.621 0 1.125.504 1.125 1.125ZM9.746 12.398 4.72 17.425 3.42 16.126c-.708-.709-1.92-.207-1.92.796v4.453c0 .621.504 1.125 1.125 1.125h4.453c1.003 0 1.505-1.212.796-1.92l-1.299-1.3 5.027-5.026a.563.563 0 0 0 0-.796l-1.06-1.06a.563.563 0 0 0-.796 0Z"})))},SvgAt=function(e){return React__namespace.createElement("svg",_extends$1r({fill:"none",viewBox:"0 0 24 24"},e),_path$12||(_path$12=React__namespace.createElement("path",{fill:"#2C3336",d:"M23.626 10.875c0-6.387-5.154-10.5-11.625-10.5C5.576.375.376 5.575.376 12s5.2 11.625 11.625 11.625c2.481 0 4.907-.8 6.895-2.265a.561.561 0 0 0 .098-.807l-.713-.872a.564.564 0 0 0-.77-.095A9.397 9.397 0 0 1 12 21.375c-5.17 0-9.375-4.206-9.375-9.375 0-5.17 4.206-9.375 9.375-9.375 5.132 0 9.375 3.048 9.375 8.25 0 2.958-1.991 4.607-3.891 4.607-.915 0-.944-.591-.768-1.474l1.342-6.964a.562.562 0 0 0-.552-.669H15.67a.563.563 0 0 0-.552.456c-.052.269-.078.391-.107.656-.559-.916-1.682-1.456-3.056-1.456-3.356 0-6.329 2.93-6.329 7.166 0 2.867 1.541 4.786 4.368 4.786 1.397 0 2.876-.789 3.738-1.98.195 1.446 1.336 1.782 2.783 1.782 4.649 0 7.111-2.982 7.111-6.91Zm-12.839 4.563c-1.335 0-2.131-.912-2.131-2.44 0-2.695 1.854-4.378 3.497-4.378 1.412 0 2.131 1.01 2.131 2.418 0 2.196-1.555 4.4-3.497 4.4Z"})))},SvgCheckCircle=function(e){return React__namespace.createElement("svg",_extends$1q({fill:"none",viewBox:"0 0 24 24"},e),_path$11||(_path$11=React__namespace.createElement("path",{fill:"#2C3336",d:"m10.58 14.146-2.322-2.323a.724.724 0 0 0-.522-.212.707.707 0 0 0-.532.212.717.717 0 0 0-.217.527c0 .206.072.382.217.527l2.744 2.744a.87.87 0 0 0 .633.271c.24 0 .452-.09.632-.27l5.564-5.564a.725.725 0 0 0 .212-.522.707.707 0 0 0-.212-.532.718.718 0 0 0-.527-.217.717.717 0 0 0-.527.217l-5.142 5.142Zm1.422 7.354a9.255 9.255 0 0 1-3.705-.748 9.598 9.598 0 0 1-3.018-2.03 9.591 9.591 0 0 1-2.03-3.016 9.245 9.245 0 0 1-.749-3.704c0-1.314.25-2.55.748-3.705a9.597 9.597 0 0 1 2.03-3.018 9.592 9.592 0 0 1 3.016-2.03 9.245 9.245 0 0 1 3.704-.749c1.314 0 2.55.25 3.705.748a9.597 9.597 0 0 1 3.018 2.03 9.592 9.592 0 0 1 2.03 3.016 9.245 9.245 0 0 1 .749 3.704c0 1.314-.25 2.55-.748 3.705a9.598 9.598 0 0 1-2.03 3.018 9.592 9.592 0 0 1-3.016 2.03 9.245 9.245 0 0 1-3.704.749Z"})))},SvgCheckCircleSolid=function(e){return React__namespace.createElement("svg",_extends$1p({viewBox:"0 0 24 24",fill:"none"},e),_path$10||(_path$10=React__namespace.createElement("path",{d:"M23.9375 12C23.9375 18.4203 18.7328 23.625 12.3125 23.625C5.89217 23.625 0.6875 18.4203 0.6875 12C0.6875 5.57967 5.89217 0.375 12.3125 0.375C18.7328 0.375 23.9375 5.57967 23.9375 12ZM10.9678 18.1553L19.5928 9.53034C19.8857 9.23747 19.8857 8.76258 19.5928 8.4697L18.5322 7.40906C18.2393 7.11614 17.7644 7.11614 17.4715 7.40906L10.4375 14.443L7.15348 11.159C6.86061 10.8661 6.38572 10.8661 6.0928 11.159L5.03216 12.2197C4.73928 12.5125 4.73928 12.9874 5.03216 13.2803L9.90716 18.1553C10.2001 18.4482 10.6749 18.4482 10.9678 18.1553Z",fill:"#2C3336"})))},SvgCheckbox=function(e){return React__namespace.createElement("svg",_extends$1o({viewBox:"0 0 24 24",fill:"none"},e),_path$$||(_path$$=React__namespace.createElement("path",{d:"M10.6 13.4L8.45 11.25C8.26667 11.0667 8.03333 10.975 7.75 10.975C7.46667 10.975 7.23333 11.0667 7.05 11.25C6.86667 11.4333 6.775 11.6667 6.775 11.95C6.775 12.2333 6.86667 12.4667 7.05 12.65L9.9 15.5C10.1 15.7 10.3333 15.8 10.6 15.8C10.8667 15.8 11.1 15.7 11.3 15.5L16.95 9.85C17.1333 9.66667 17.225 9.43333 17.225 9.15C17.225 8.86667 17.1333 8.63333 16.95 8.45C16.7667 8.26667 16.5333 8.175 16.25 8.175C15.9667 8.175 15.7333 8.26667 15.55 8.45L10.6 13.4ZM5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H19C19.55 3 20.0208 3.19583 20.4125 3.5875C20.8042 3.97917 21 4.45 21 5V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8042 19.55 21 19 21H5Z",fill:"#02BF6F"})))},SvgCheckboxUncheck=function(e){return React__namespace.createElement("svg",_extends$1n({viewBox:"0 0 24 24",fill:"none"},e),_path$_||(_path$_=React__namespace.createElement("path",{d:"M5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H19C19.55 3 20.0208 3.19583 20.4125 3.5875C20.8042 3.97917 21 4.45 21 5V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8042 19.55 21 19 21H5ZM5 19H19V5H5V19Z",fill:"#838B97"})))},SvgExclamation=function(e){return React__namespace.createElement("svg",_extends$1m({fill:"none",viewBox:"0 0 24 24"},e),_path$Z||(_path$Z=React__namespace.createElement("path",{fill:"#EDC121",d:"M23.625 12c0 6.422-5.205 11.625-11.625 11.625S.375 18.422.375 12C.375 5.582 5.58.375 12 .375S23.625 5.582 23.625 12ZM12 14.344a2.156 2.156 0 1 0 0 4.312 2.156 2.156 0 0 0 0-4.312Zm-2.047-7.75.348 6.374a.563.563 0 0 0 .561.532h2.276a.563.563 0 0 0 .562-.532l.347-6.375A.563.563 0 0 0 13.485 6h-2.97c-.323 0-.58.27-.562.593Z"})))},SvgPasswordEye=function(e){return React__namespace.createElement("svg",_extends$1l({viewBox:"0 0 22 16",fill:"none"},e),_path$Y||(_path$Y=React__namespace.createElement("path",{d:"M11 2.335a9.77 9.77 0 018.82 5.5 9.76 9.76 0 01-8.82 5.5 9.76 9.76 0 01-8.82-5.5 9.77 9.77 0 018.82-5.5zm0-2c-5 0-9.27 3.11-11 7.5 1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zm0 5a2.5 2.5 0 010 5 2.5 2.5 0 010-5zm0-2c-2.48 0-4.5 2.02-4.5 4.5s2.02 4.5 4.5 4.5 4.5-2.02 4.5-4.5-2.02-4.5-4.5-4.5z",fill:"#838B97"})))},SvgPasswordEyeCrossed=function(e){return React__namespace.createElement("svg",_extends$1k({viewBox:"0 0 24 20",fill:"none"},e),_path$X||(_path$X=React__namespace.createElement("path",{d:"M23.775 17.898L1.35.367A.6.6 0 00.507.46L.132.93a.6.6 0 00.093.844l22.425 17.53a.6.6 0 00.843-.093l.375-.468a.6.6 0 00-.093-.844zM11.13 5.728l5.054 3.952a4.189 4.189 0 00-5.055-3.952zm1.74 8.215L7.816 9.99a4.19 4.19 0 005.054 3.952zM12 4.435c3.7 0 7.09 2.063 8.922 5.4a10.71 10.71 0 01-1.65 2.258l1.416 1.106a12.518 12.518 0 001.983-2.817 1.214 1.214 0 000-1.094C20.636 5.32 16.61 2.635 12 2.635c-1.376 0-2.69.263-3.924.706l1.74 1.36A9.843 9.843 0 0112 4.435zm0 10.8c-3.7 0-7.09-2.062-8.922-5.4.45-.821 1.004-1.58 1.651-2.257L3.314 6.472a12.51 12.51 0 00-1.983 2.816 1.213 1.213 0 000 1.095C3.364 14.35 7.39 17.035 12 17.035c1.376 0 2.689-.264 3.924-.705l-1.74-1.36a9.86 9.86 0 01-2.184.265z",fill:"#838B97"})))},SvgCamera=function(e){return React__namespace.createElement("svg",_extends$1j({viewBox:"0 0 20 20"},e),_path$W||(_path$W=React__namespace.createElement("path",{d:"M11.674 3.223H1.66A1.67 1.67 0 0 0 0 4.903v10.14c0 .927.743 1.68 1.66 1.68h10.014a1.67 1.67 0 0 0 1.66-1.68V4.902a1.67 1.67 0 0 0-1.66-1.68Zm6.576 1.325-3.806 2.658v5.533l3.806 2.655c.736.513 1.75-.01 1.75-.907V5.455c0-.893-1.01-1.42-1.75-.907Z"})))},SvgCameraOutlined=function(e){return React__namespace.createElement("svg",_extends$1i({fill:"none"},e),_g$s||(_g$s=React__namespace.createElement("g",{clipPath:"url(#a)"},React__namespace.createElement("path",{fill:"#98A2B3",d:"M3.25 3A3.25 3.25 0 0 0 0 6.25v7.5A3.25 3.25 0 0 0 3.25 17h7.5A3.25 3.25 0 0 0 14 13.75v-.312l3.258 2.25c1.16.8 2.744-.03 2.744-1.44V5.751c0-1.41-1.584-2.242-2.744-1.44L14 6.562V6.25A3.25 3.25 0 0 0 10.75 3h-7.5ZM14 8.384l4.11-2.838a.25.25 0 0 1 .392.206v8.495a.25.25 0 0 1-.392.206L14 11.615V8.384ZM1.5 6.25c0-.966.784-1.75 1.75-1.75h7.5c.966 0 1.75.784 1.75 1.75v7.5a1.75 1.75 0 0 1-1.75 1.75h-7.5a1.75 1.75 0 0 1-1.75-1.75v-7.5Z"}))),_defs$1||(_defs$1=React__namespace.createElement("defs",null,React__namespace.createElement("clipPath",{id:"a"},React__namespace.createElement("path",{fill:"#fff",d:"M0 0h20v20H0z"})))))},SvgChatIcon=function(e){return React__namespace.createElement("svg",_extends$1h({viewBox:"0 0 24 24"},e),_path$V||(_path$V=React__namespace.createElement("path",{d:"M17.333 10.333V3.667A2.67 2.67 0 0 0 14.667 1h-12A2.67 2.67 0 0 0 0 3.667v6.666A2.67 2.67 0 0 0 2.667 13v2.258c0 .334.379.525.646.325l3.45-2.587h7.904a2.663 2.663 0 0 0 2.666-2.663Zm4-2.666h-2.666v2.666c0 2.204-1.796 4-4 4H8V17a2.67 2.67 0 0 0 2.667 2.667h5.237l3.45 2.587c.267.2.646.008.646-.325v-2.262h1.333A2.67 2.67 0 0 0 24 17v-6.667a2.67 2.67 0 0 0-2.667-2.666Z"})))},SvgChatDisabled=function(e){return React__namespace.createElement("svg",_extends$1g({viewBox:"0 0 24 24",fill:"none"},e),_path$U||(_path$U=React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0 15.5999V2.39999H2.4V15.5999H0Z",fill:"#02BF6F"})),_path2$5||(_path2$5=React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M21.6 15.5999V2.39999H24V15.5999H21.6Z",fill:"#02BF6F"})),_path3||(_path3=React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M21.6 2.39999H2.4V0H21.6V2.39999Z",fill:"#02BF6F"})),_path4||(_path4=React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.2 17.9999H2.4V15.5999H7.2V17.9999Z",fill:"#02BF6F"})),_path5||(_path5=React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M21.6 17.9999H16.8V15.5999H21.6V17.9999Z",fill:"#02BF6F"})),_path6||(_path6=React__namespace.createElement("path",{d:"M24 2.39999C24 2.08482 23.9379 1.77273 23.8173 1.48155C23.6967 1.19037 23.5199 0.925801 23.2971 0.702941C23.0742 0.480081 22.8096 0.303299 22.5184 0.182688C22.2273 0.0620776 21.9152 -1.37763e-08 21.6 0V2.39999H24Z",fill:"#02BF6F"})),_path7||(_path7=React__namespace.createElement("path",{d:"M24 15.5999C24 15.9151 23.9379 16.2272 23.8173 16.5184C23.6967 16.8096 23.5199 17.0741 23.2971 17.297C23.0742 17.5198 22.8096 17.6966 22.5184 17.8172C22.2273 17.9379 21.9152 17.9999 21.6 17.9999V15.5999H24Z",fill:"#02BF6F"})),_path8||(_path8=React__namespace.createElement("path",{d:"M0 2.39999C2.75533e-08 2.08482 0.0620779 1.77273 0.182689 1.48155C0.303301 1.19037 0.480083 0.9258 0.702944 0.70294C0.925805 0.480081 1.19038 0.303299 1.48156 0.182688C1.77274 0.0620773 2.08483 -1.54043e-07 2.4 0V2.39999H0Z",fill:"#02BF6F"})),_path9||(_path9=React__namespace.createElement("path",{d:"M0 15.5999C-2.75532e-08 15.9151 0.0620778 16.2272 0.182689 16.5184C0.3033 16.8096 0.480083 17.0741 0.702944 17.297C0.925804 17.5198 1.19038 17.6966 1.48156 17.8172C1.77274 17.9379 2.08483 17.9999 2.4 17.9999V15.5999H0Z",fill:"#02BF6F"})),_path10||(_path10=React__namespace.createElement("path",{d:"M7.2 15.5999C7.51517 15.5999 7.82726 15.662 8.11844 15.7826C8.40962 15.9032 8.6742 16.08 8.89706 16.3029C9.11992 16.5257 9.2967 16.7903 9.41731 17.0815C9.53792 17.3727 9.6 17.6848 9.6 17.9999H7.2V15.5999Z",fill:"#02BF6F"})),_path11||(_path11=React__namespace.createElement("path",{d:"M7.2 22.7999C7.2 23.1182 7.32643 23.4234 7.55147 23.6484C7.77652 23.8735 8.08174 23.9999 8.4 23.9999C8.71826 23.9999 9.02348 23.8735 9.24853 23.6484C9.47357 23.4234 9.6 23.1182 9.6 22.7999H7.2Z",fill:"#02BF6F"})),_path12||(_path12=React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.2 22.7999V17.9999H9.6V22.7999H7.2Z",fill:"#02BF6F"})),_path13||(_path13=React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M17.7765 16.1025C18.1617 16.6417 18.0368 17.3912 17.4975 17.7764L9.09747 23.7764C8.55818 24.1616 7.80872 24.0367 7.4235 23.4974C7.03829 22.9581 7.1632 22.2086 7.7025 21.8234L16.1025 15.8235C16.6418 15.4383 17.3913 15.5632 17.7765 16.1025Z",fill:"#02BF6F"})),_path14||(_path14=React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 5.99998C10.0118 5.99998 8.4 7.61174 8.4 9.59996C8.4 11.5882 10.0118 13.1999 12 13.1999C13.9882 13.1999 15.6 11.5882 15.6 9.59996C15.6 7.61174 13.9882 5.99998 12 5.99998ZM6 9.59996C6 6.28627 8.68629 3.59999 12 3.59999C15.3137 3.59999 18 6.28627 18 9.59996C18 12.9137 15.3137 15.5999 12 15.5999C8.68629 15.5999 6 12.9137 6 9.59996Z",fill:"#02BF6F"})),_path15||(_path15=React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.19998 11.5619L15.0246 5.99998L16.4151 7.95614L8.59046 13.518L7.19998 11.5619Z",fill:"#02BF6F"})))},SvgMic=function(e){return React__namespace.createElement("svg",_extends$1f({viewBox:"0 0 24 24",fill:"none"},e),React__namespace.createElement("mask",{id:"mask0_6_3061",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$l||(_rect$l=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$r||(_g$r=React__namespace.createElement("g",{mask:"url(#mask0_6_3061)"},React__namespace.createElement("path",{d:"M11.9998 13.5C11.3011 13.5 10.7098 13.258 10.2258 12.774C9.74181 12.29 9.49983 11.6987 9.49983 11V4.99997C9.49983 4.30127 9.74181 3.70993 10.2258 3.22595C10.7098 2.74198 11.3011 2.5 11.9998 2.5C12.6985 2.5 13.2898 2.74198 13.7738 3.22595C14.2578 3.70993 14.4998 4.30127 14.4998 4.99997V11C14.4998 11.6987 14.2578 12.29 13.7738 12.774C13.2898 13.258 12.6985 13.5 11.9998 13.5ZM11.9998 20.75C11.787 20.75 11.6088 20.6782 11.4652 20.5346C11.3216 20.391 11.2498 20.2128 11.2498 20V17.4538C9.7383 17.2756 8.45368 16.6592 7.39598 15.6047C6.3383 14.5503 5.72164 13.2807 5.546 11.7961C5.51522 11.5833 5.57419 11.3974 5.7229 11.2384C5.87162 11.0795 6.06777 11 6.31135 11C6.48699 11 6.64404 11.0666 6.7825 11.2C6.92095 11.3333 7.00877 11.4961 7.04595 11.6884C7.21134 12.9064 7.76198 13.9295 8.69788 14.7577C9.63378 15.5859 10.7344 16 11.9998 16C13.2652 16 14.3658 15.5859 15.3017 14.7577C16.2376 13.9295 16.7883 12.9064 16.9537 11.6884C16.9908 11.4961 17.0796 11.3333 17.22 11.2C17.3604 11.0666 17.5216 11 17.7036 11C17.937 11 18.128 11.0795 18.2767 11.2384C18.4254 11.3974 18.4844 11.5833 18.4536 11.7961C18.278 13.2807 17.6613 14.5503 16.6036 15.6047C15.5459 16.6592 14.2613 17.2756 12.7498 17.4538V20C12.7498 20.2128 12.678 20.391 12.5344 20.5346C12.3908 20.6782 12.2126 20.75 11.9998 20.75ZM11.9998 12C12.2831 12 12.5206 11.9041 12.7123 11.7125C12.904 11.5208 12.9998 11.2833 12.9998 11V4.99997C12.9998 4.71664 12.904 4.47914 12.7123 4.28747C12.5206 4.09581 12.2831 3.99997 11.9998 3.99997C11.7165 3.99997 11.479 4.09581 11.2873 4.28747C11.0956 4.47914 10.9998 4.71664 10.9998 4.99997V11C10.9998 11.2833 11.0956 11.5208 11.2873 11.7125C11.479 11.9041 11.7165 12 11.9998 12Z",fill:"currentColor"}))))},SvgMicOff=function(e){return React__namespace.createElement("svg",_extends$1e({viewBox:"0 0 24 24",fill:"none"},e),React__namespace.createElement("mask",{id:"mask0_6_3067",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$k||(_rect$k=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$q||(_g$q=React__namespace.createElement("g",{mask:"url(#mask0_6_3067)"},React__namespace.createElement("path",{d:"M17.2403 14.1807L16.1365 13.0576C16.2417 12.8653 16.3356 12.6535 16.4182 12.4221C16.5009 12.1907 16.5609 11.9461 16.598 11.6884C16.6352 11.4961 16.724 11.3333 16.8644 11.2C17.0048 11.0666 17.166 11 17.348 11C17.5814 11 17.7724 11.0795 17.9211 11.2384C18.0698 11.3974 18.1288 11.5833 18.098 11.7961C18.0403 12.2525 17.9371 12.6765 17.7884 13.0682C17.6397 13.4599 17.457 13.8307 17.2403 14.1807ZM14.0211 10.9307L9.14424 6.03457V4.99997C9.14424 4.30128 9.38623 3.70993 9.87019 3.22595C10.3542 2.74198 10.9455 2.5 11.6442 2.5C12.3429 2.5 12.9343 2.74198 13.4182 3.22595C13.9022 3.70993 14.1442 4.30128 14.1442 4.99997V10.3461C14.1442 10.4589 14.1313 10.5615 14.1057 10.6538C14.0801 10.7461 14.0519 10.8384 14.0211 10.9307ZM19.3404 21.1884L2.20577 4.05375C2.06732 3.9153 1.99648 3.74127 1.99327 3.53165C1.99007 3.32205 2.0609 3.14482 2.20577 2.99995C2.35063 2.85507 2.52627 2.78262 2.73267 2.78262C2.93908 2.78262 3.11473 2.85507 3.25959 2.99995L20.3942 20.1346C20.5327 20.273 20.6035 20.4471 20.6067 20.6567C20.6099 20.8663 20.5391 21.0435 20.3942 21.1884C20.2493 21.3333 20.0737 21.4057 19.8673 21.4057C19.6609 21.4057 19.4853 21.3333 19.3404 21.1884ZM10.8942 20V17.4576C9.38268 17.2833 8.09807 16.6673 7.04037 15.6096C5.98268 14.5519 5.36603 13.2807 5.19039 11.7961C5.15963 11.5833 5.2186 11.3974 5.36732 11.2384C5.51602 11.0795 5.71216 11 5.95574 11C6.13139 11 6.28844 11.0666 6.42689 11.2C6.56536 11.3333 6.65318 11.4961 6.69034 11.6884C6.85573 12.9064 7.40637 13.9295 8.34227 14.7577C9.27817 15.5859 10.3788 16 11.6442 16C12.2878 16 12.8926 15.8852 13.4586 15.6557C14.0247 15.4262 14.5256 15.1083 14.9615 14.7019L16.0307 15.7711C15.5474 16.2249 14.9974 16.5986 14.3807 16.8922C13.7641 17.1858 13.1019 17.3743 12.3942 17.4576V20C12.3942 20.2128 12.3224 20.391 12.1788 20.5346C12.0352 20.6782 11.857 20.75 11.6442 20.75C11.4314 20.75 11.2532 20.6782 11.1096 20.5346C10.966 20.391 10.8942 20.2128 10.8942 20Z",fill:"currentColor"}))))},SvgMicOff1=function(e){return React__namespace.createElement("svg",_extends$1d({viewBox:"0 0 24 24",fill:"none"},e),React__namespace.createElement("mask",{id:"mask0_6_3073",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$j||(_rect$j=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$p||(_g$p=React__namespace.createElement("g",{mask:"url(#mask0_6_3073)"},React__namespace.createElement("path",{d:"M17.2403 14.1807L16.1365 13.0576C16.2417 12.8653 16.3356 12.6535 16.4182 12.4221C16.5009 12.1907 16.5609 11.9461 16.598 11.6884C16.6352 11.4961 16.724 11.3333 16.8644 11.2C17.0048 11.0666 17.166 11 17.348 11C17.5814 11 17.7724 11.0795 17.9211 11.2384C18.0698 11.3974 18.1288 11.5833 18.098 11.7961C18.0403 12.2525 17.9371 12.6765 17.7884 13.0682C17.6397 13.4599 17.457 13.8307 17.2403 14.1807ZM14.0211 10.9307L12.6442 9.55378V4.99997C12.6442 4.71664 12.5484 4.47914 12.3567 4.28747C12.165 4.09581 11.9275 3.99997 11.6442 3.99997C11.3609 3.99997 11.1234 4.09581 10.9317 4.28747C10.74 4.47914 10.6442 4.71664 10.6442 4.99997V7.53455L9.14424 6.03457V4.99997C9.14424 4.30128 9.38623 3.70993 9.87019 3.22595C10.3542 2.74198 10.9455 2.5 11.6442 2.5C12.3429 2.5 12.9343 2.74198 13.4182 3.22595C13.9022 3.70993 14.1442 4.30128 14.1442 4.99997V10.3461C14.1442 10.4589 14.1313 10.5615 14.1057 10.6538C14.0801 10.7461 14.0519 10.8384 14.0211 10.9307ZM19.3404 21.1884L2.20577 4.05375C2.06732 3.9153 1.99648 3.74127 1.99327 3.53165C1.99007 3.32205 2.0609 3.14482 2.20577 2.99995C2.35063 2.85507 2.52627 2.78262 2.73267 2.78262C2.93908 2.78262 3.11473 2.85507 3.25959 2.99995L20.3942 20.1346C20.5327 20.273 20.6035 20.4471 20.6067 20.6567C20.6099 20.8663 20.5391 21.0435 20.3942 21.1884C20.2493 21.3333 20.0737 21.4057 19.8673 21.4057C19.6609 21.4057 19.4853 21.3333 19.3404 21.1884ZM10.8942 20V17.4538C9.38268 17.2756 8.09807 16.6592 7.04037 15.6047C5.98268 14.5503 5.36603 13.2807 5.19039 11.7961C5.15963 11.5833 5.2186 11.3974 5.36732 11.2384C5.51602 11.0795 5.71216 11 5.95574 11C6.13139 11 6.28844 11.0666 6.42689 11.2C6.56536 11.3333 6.65318 11.4961 6.69034 11.6884C6.85573 12.9064 7.40637 13.9295 8.34227 14.7577C9.27817 15.5859 10.3788 16 11.6442 16C12.2878 16 12.8926 15.8852 13.4586 15.6557C14.0247 15.4262 14.5256 15.1083 14.9615 14.7019L16.0307 15.7711C15.5474 16.2249 14.9974 16.6012 14.3807 16.9C13.7641 17.1987 13.1019 17.3833 12.3942 17.4538V20C12.3942 20.2128 12.3224 20.391 12.1788 20.5346C12.0352 20.6782 11.857 20.75 11.6442 20.75C11.4314 20.75 11.2532 20.6782 11.1096 20.5346C10.966 20.391 10.8942 20.2128 10.8942 20Z",fill:"currentColor"}))))},SvgMicOutlined=function(e){return React__namespace.createElement("svg",_extends$1c({fill:"none"},e),_path$T||(_path$T=React__namespace.createElement("path",{fill:"#98A2B3",d:"M16.25 9a.75.75 0 0 1 .743.648L17 9.75v.5a6.75 6.75 0 0 1-6.249 6.732l-.001 2.268a.75.75 0 0 1-1.493.102l-.007-.102v-2.268a6.75 6.75 0 0 1-6.246-6.496L3 10.25v-.5a.75.75 0 0 1 1.493-.102l.007.102v.5a5.25 5.25 0 0 0 5.034 5.246l.216.004h.5a5.25 5.25 0 0 0 5.246-5.034l.004-.216v-.5a.75.75 0 0 1 .75-.75ZM10 0a4 4 0 0 1 4 4v6a4 4 0 0 1-8 0V4a4 4 0 0 1 4-4Zm0 1.5A2.5 2.5 0 0 0 7.5 4v6a2.5 2.5 0 0 0 5 0V4A2.5 2.5 0 0 0 10 1.5Z"})))},SvgMic1=function(e){return React__namespace.createElement("svg",_extends$1b({viewBox:"0 0 24 24",fill:"none"},e),React__namespace.createElement("mask",{id:"mask0_6_3064",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$i||(_rect$i=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$o||(_g$o=React__namespace.createElement("g",{mask:"url(#mask0_6_3064)"},React__namespace.createElement("path",{d:"M11.9998 13.5C11.3011 13.5 10.7098 13.258 10.2258 12.774C9.74181 12.29 9.49983 11.6987 9.49983 11V4.99997C9.49983 4.30127 9.74181 3.70993 10.2258 3.22595C10.7098 2.74198 11.3011 2.5 11.9998 2.5C12.6985 2.5 13.2898 2.74198 13.7738 3.22595C14.2578 3.70993 14.4998 4.30127 14.4998 4.99997V11C14.4998 11.6987 14.2578 12.29 13.7738 12.774C13.2898 13.258 12.6985 13.5 11.9998 13.5ZM11.9998 20.75C11.787 20.75 11.6088 20.6782 11.4652 20.5346C11.3216 20.391 11.2498 20.2128 11.2498 20V17.4576C9.7383 17.2833 8.45368 16.6673 7.39598 15.6096C6.3383 14.5519 5.72164 13.2807 5.546 11.7961C5.51522 11.5833 5.57419 11.3974 5.7229 11.2384C5.87162 11.0795 6.06777 11 6.31135 11C6.48699 11 6.64404 11.0666 6.7825 11.2C6.92095 11.3333 7.00877 11.4961 7.04595 11.6884C7.21134 12.9064 7.76198 13.9295 8.69788 14.7577C9.63378 15.5859 10.7344 16 11.9998 16C13.2652 16 14.3658 15.5859 15.3017 14.7577C16.2376 13.9295 16.7883 12.9064 16.9537 11.6884C16.9908 11.4961 17.0796 11.3333 17.22 11.2C17.3604 11.0666 17.5216 11 17.7036 11C17.937 11 18.128 11.0795 18.2767 11.2384C18.4254 11.3974 18.4844 11.5833 18.4536 11.7961C18.278 13.2807 17.6613 14.5519 16.6036 15.6096C15.5459 16.6673 14.2613 17.2833 12.7498 17.4576V20C12.7498 20.2128 12.678 20.391 12.5344 20.5346C12.3908 20.6782 12.2126 20.75 11.9998 20.75Z",fill:"currentColor"}))))},SvgMicBold=function(e){return React__namespace.createElement("svg",_extends$1a({viewBox:"0 0 20 20"},e),_path$S||(_path$S=React__namespace.createElement("path",{d:"M7.215 19.986a2.118 2.118 0 0 1 1.488-2.044v-2.045a6.473 6.473 0 0 1-3.412-1.84 6.624 6.624 0 0 1-1.406-2.134 6.809 6.809 0 0 1-.525-2.624v-.9a1.736 1.736 0 0 1 1.726-1.758v2.658a4.957 4.957 0 0 0 1.44 3.524 4.852 4.852 0 0 0 5.284 1.117 4.853 4.853 0 0 0 1.589-1.035l.075-.082a4.96 4.96 0 0 0 1.44-3.524V6.64a1.743 1.743 0 0 1 1.726 1.758v.907c0 .9-.176 1.791-.518 2.624a6.816 6.816 0 0 1-1.427 2.14 6.473 6.473 0 0 1-3.412 1.84v2.045A2.122 2.122 0 0 1 12.771 20l-5.556-.014ZM6.39 9.3V3.887A3.601 3.601 0 0 1 8.493.324a3.614 3.614 0 0 1 4.863 1.981c.178.459.26.948.24 1.439v5.555a3.604 3.604 0 0 1-1.006 2.57 3.614 3.614 0 0 1-6.214-2.427l.014-.143Z"})))},SvgVideocam=function(e){return React__namespace.createElement("svg",_extends$19({viewBox:"0 0 24 24",fill:"none",preserveAspectRatio:"xMidYMid meet"},e),React__namespace.createElement("mask",{id:"mask0_6_3034",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$h||(_rect$h=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$n||(_g$n=React__namespace.createElement("g",{mask:"url(#mask0_6_3034)"},React__namespace.createElement("path",{d:"M4.54791 19.5C4.04278 19.5 3.61521 19.325 3.26521 18.975C2.91523 18.625 2.74023 18.1974 2.74023 17.6922V6.3077C2.74023 5.80257 2.91523 5.375 3.26521 5.025C3.61521 4.675 4.04278 4.5 4.54791 4.5H15.9325C16.4376 4.5 16.8652 4.675 17.2152 5.025C17.5652 5.375 17.7402 5.80257 17.7402 6.3077V10.8846L20.4767 8.1481C20.6305 7.99427 20.7994 7.95741 20.9834 8.03753C21.1674 8.11766 21.2593 8.26477 21.2593 8.47887V15.5211C21.2593 15.7352 21.1674 15.8823 20.9834 15.9624C20.7994 16.0425 20.6305 16.0057 20.4767 15.8519L17.7402 13.1153V17.6922C17.7402 18.1974 17.5652 18.625 17.2152 18.975C16.8652 19.325 16.4376 19.5 15.9325 19.5H4.54791ZM4.54791 18H15.9325C16.0222 18 16.096 17.9711 16.1536 17.9134C16.2113 17.8557 16.2402 17.782 16.2402 17.6922V6.3077C16.2402 6.21795 16.2113 6.14423 16.1536 6.08652C16.096 6.02882 16.0222 5.99997 15.9325 5.99997H4.54791C4.45816 5.99997 4.38443 6.02882 4.32673 6.08652C4.26903 6.14423 4.24018 6.21795 4.24018 6.3077V17.6922C4.24018 17.782 4.26903 17.8557 4.32673 17.9134C4.38443 17.9711 4.45816 18 4.54791 18Z",fill:"#2C3336"}))))},SvgVideocamOff=function(e){return React__namespace.createElement("svg",_extends$18({viewBox:"0 0 24 24",fill:"none",preserveAspectRatio:"xMidYMid meet"},e),React__namespace.createElement("mask",{id:"mask0_6_3037",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$g||(_rect$g=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$m||(_g$m=React__namespace.createElement("g",{mask:"url(#mask0_6_3037)"},React__namespace.createElement("path",{d:"M20.5059 15.8518L17.7694 13.1153V15.0115L16.2695 13.5115V6.30768C16.2695 6.21793 16.2406 6.1442 16.1829 6.0865C16.1252 6.0288 16.0515 5.99995 15.9617 5.99995H8.75788L7.25793 4.49998H15.9617C16.4669 4.49998 16.8944 4.67498 17.2444 5.02498C17.5944 5.37498 17.7694 5.80254 17.7694 6.30768V10.8846L20.5059 8.14808C20.6598 7.99424 20.8287 7.95738 21.0127 8.0375C21.1966 8.11763 21.2886 8.26475 21.2886 8.47885V15.5211C21.2886 15.7352 21.1966 15.8823 21.0127 15.9624C20.8287 16.0425 20.6598 16.0057 20.5059 15.8518ZM19.4463 21.6307L2.0368 4.2211C1.89833 4.08265 1.8291 3.91535 1.8291 3.7192C1.8291 3.52305 1.90667 3.34742 2.0618 3.1923C2.20667 3.04742 2.3823 2.97498 2.5887 2.97498C2.7951 2.97498 2.97073 3.04742 3.1156 3.1923L20.5252 20.6018C20.6636 20.7403 20.7328 20.9076 20.7328 21.1037C20.7328 21.2999 20.6553 21.4755 20.5002 21.6307C20.3553 21.7755 20.178 21.8479 19.9684 21.8479C19.7588 21.8479 19.5848 21.7755 19.4463 21.6307ZM4.44255 4.51923L5.92328 5.99995H4.57718C4.48743 5.99995 4.4137 6.0288 4.356 6.0865C4.2983 6.1442 4.26945 6.21793 4.26945 6.30768V17.6922C4.26945 17.782 4.2983 17.8557 4.356 17.9134C4.4137 17.9711 4.48743 18 4.57718 18H15.9617C16.0515 18 16.1252 17.9711 16.1829 17.9134C16.2406 17.8557 16.2695 17.782 16.2695 17.6922V16.3461L17.7502 17.8268C17.7181 18.2935 17.5319 18.689 17.1915 19.0134C16.8511 19.3377 16.4412 19.4999 15.9617 19.4999H4.57718C4.07204 19.4999 3.64448 19.3249 3.29448 18.9749C2.94448 18.6249 2.76948 18.1974 2.76948 17.6922V6.30768C2.76948 5.82819 2.93166 5.41826 3.25603 5.07788C3.58038 4.73749 3.97589 4.55128 4.44255 4.51923Z",fill:"#2C3336"}))))},SvgVideocamOff1=function(e){return React__namespace.createElement("svg",_extends$17({viewBox:"0 0 24 24",fill:"none",preserveAspectRatio:"xMidYMid meet"},e),React__namespace.createElement("mask",{id:"mask0_6_3043",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$f||(_rect$f=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$l||(_g$l=React__namespace.createElement("g",{mask:"url(#mask0_6_3043)"},React__namespace.createElement("path",{d:"M19.4712 21.6307L2.0617 4.2211C1.92324 4.08265 1.854 3.91535 1.854 3.7192C1.854 3.52305 1.93157 3.34742 2.0867 3.1923C2.23157 3.04742 2.4072 2.97498 2.6136 2.97498C2.82 2.97498 2.99564 3.04742 3.1405 3.1923L20.5501 20.6018C20.6885 20.7403 20.7577 20.9076 20.7577 21.1037C20.7577 21.2999 20.6802 21.4755 20.5251 21.6307C20.3802 21.7755 20.2045 21.8464 19.9981 21.8432C19.7917 21.8399 19.6161 21.7691 19.4712 21.6307ZM17.7943 15.0115L7.28283 4.49998H15.9866C16.4918 4.49998 16.9193 4.67498 17.2693 5.02498C17.6193 5.37498 17.7943 5.80254 17.7943 6.30768V10.8846L20.5308 8.14808C20.6744 8.00449 20.8408 7.9702 21.0299 8.0452C21.219 8.1202 21.3135 8.26475 21.3135 8.47885V15.5211C21.3135 15.7352 21.219 15.8797 21.0299 15.9547C20.8408 16.0297 20.6744 15.9954 20.5308 15.8518L17.7943 13.1153V15.0115ZM4.46745 4.51923L17.7751 17.8268C17.7584 18.2833 17.5661 18.6762 17.1982 19.0057C16.8302 19.3352 16.418 19.4999 15.9616 19.4999H4.57708C4.07195 19.4999 3.64438 19.3249 3.29438 18.9749C2.94438 18.6249 2.76938 18.1974 2.76938 17.6922V6.30768C2.76938 5.85126 2.93669 5.43908 3.2713 5.07115C3.60592 4.7032 4.00464 4.51923 4.46745 4.51923Z",fill:"#2C3336"}))))},SvgVideocam1=function(e){return React__namespace.createElement("svg",_extends$16({viewBox:"0 0 24 24",fill:"none",preserveAspectRatio:"xMidYMid meet"},e),React__namespace.createElement("mask",{id:"mask0_6_3040",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$e||(_rect$e=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$k||(_g$k=React__namespace.createElement("g",{mask:"url(#mask0_6_3040)"},React__namespace.createElement("path",{d:"M4.54791 19.5C4.04278 19.5 3.61521 19.325 3.26521 18.975C2.91523 18.625 2.74023 18.1974 2.74023 17.6922V6.3077C2.74023 5.80257 2.91523 5.375 3.26521 5.025C3.61521 4.675 4.04278 4.5 4.54791 4.5H15.9325C16.4376 4.5 16.8652 4.675 17.2152 5.025C17.5652 5.375 17.7402 5.80257 17.7402 6.3077V10.8846L20.4767 8.1481C20.6202 8.00452 20.7866 7.97022 20.9757 8.04522C21.1648 8.12022 21.2593 8.26477 21.2593 8.47887V15.5211C21.2593 15.7352 21.1648 15.8797 20.9757 15.9547C20.7866 16.0297 20.6202 15.9954 20.4767 15.8519L17.7402 13.1153V17.6922C17.7402 18.1974 17.5652 18.625 17.2152 18.975C16.8652 19.325 16.4376 19.5 15.9325 19.5H4.54791Z",fill:"#2C3336"}))))},SvgVolumeOff=function(e){return React__namespace.createElement("svg",_extends$15({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("mask",{id:"mask0_6_3052",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$d||(_rect$d=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$j||(_g$j=React__namespace.createElement("g",{mask:"url(#mask0_6_3052)"},React__namespace.createElement("path",{d:"M18.9462 21.6115L16.4577 19.1231C16.25 19.2436 16.0439 19.3583 15.8394 19.4673C15.635 19.5762 15.4206 19.6775 15.1962 19.7711C14.9462 19.8724 14.7132 19.8419 14.4972 19.6798C14.2812 19.5176 14.1732 19.2929 14.1732 19.0058C14.1732 18.8673 14.2145 18.7465 14.2972 18.6433C14.3799 18.5401 14.4821 18.4615 14.6039 18.4077C14.7372 18.3577 14.868 18.3019 14.9962 18.2404C15.1244 18.1789 15.2501 18.1115 15.3731 18.0385L11.7885 14.4538V16.6038C11.7885 17.0089 11.6036 17.2893 11.2337 17.4451C10.8638 17.6009 10.5366 17.5365 10.252 17.2519L7.50008 14.5H4.6924C4.43472 14.5 4.21966 14.4138 4.04723 14.2413C3.87479 14.0689 3.78858 13.8538 3.78858 13.5961V10.4039C3.78858 10.1462 3.87479 9.93114 4.04723 9.75871C4.21966 9.58626 4.43472 9.50003 4.6924 9.50003H6.8347L2.52315 5.18848C2.3847 5.05003 2.31387 4.876 2.31065 4.66638C2.30745 4.45678 2.37828 4.27954 2.52315 4.13466C2.66802 3.98979 2.84366 3.91736 3.05008 3.91736C3.25648 3.91736 3.43211 3.98979 3.57698 4.13466L20 20.5577C20.1385 20.6962 20.2093 20.8702 20.2125 21.0798C20.2157 21.2894 20.1449 21.4667 20 21.6115C19.8551 21.7564 19.6795 21.8288 19.4731 21.8288C19.2667 21.8288 19.0911 21.7564 18.9462 21.6115ZM15.1962 4.17888C16.7872 4.83658 18.0657 5.86575 19.0318 7.26638C19.9978 8.66702 20.4808 10.2366 20.4808 11.975C20.4808 12.8519 20.3503 13.6939 20.0894 14.501C19.8285 15.308 19.4603 16.0519 18.9846 16.7327L17.9096 15.6577C18.2571 15.1154 18.5225 14.5337 18.7058 13.9125C18.8892 13.2914 18.9808 12.6455 18.9808 11.975C18.9808 10.534 18.5815 9.23496 17.7828 8.07791C16.984 6.92086 15.9244 6.07567 14.6039 5.54233C14.4654 5.48848 14.359 5.40579 14.2847 5.29426C14.2103 5.18272 14.1732 5.05772 14.1732 4.91926C14.1732 4.64234 14.2812 4.4244 14.4972 4.26543C14.7132 4.10647 14.9462 4.07762 15.1962 4.17888ZM15.9231 13.6712L14.1732 11.9212V8.29618C14.8475 8.66285 15.3686 9.17919 15.7366 9.84521C16.1045 10.5112 16.2885 11.2295 16.2885 12C16.2885 12.2949 16.258 12.5824 16.1972 12.8625C16.1363 13.1426 16.0449 13.4122 15.9231 13.6712ZM11.7885 9.53658L9.63083 7.36928L10.252 6.74816C10.5366 6.46354 10.8638 6.39912 11.2337 6.55488C11.6036 6.71067 11.7885 6.99112 11.7885 7.39623V9.53658Z",fill:"#2C3336"}))))},SvgVolumeOff1=function(e){return React__namespace.createElement("svg",_extends$14({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("mask",{id:"mask0_6_3055",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$c||(_rect$c=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$i||(_g$i=React__namespace.createElement("g",{mask:"url(#mask0_6_3055)"},React__namespace.createElement("path",{d:"M18.9462 21.6115L16.4577 19.1231C16.25 19.2436 16.0439 19.3583 15.8394 19.4673C15.635 19.5762 15.4206 19.6775 15.1962 19.7711C14.9462 19.8724 14.7132 19.8419 14.4972 19.6798C14.2812 19.5176 14.1732 19.2929 14.1732 19.0058C14.1732 18.8673 14.2145 18.7465 14.2972 18.6433C14.3799 18.5401 14.4821 18.4615 14.6039 18.4077C14.7372 18.3577 14.868 18.3019 14.9962 18.2404C15.1244 18.1789 15.2501 18.1115 15.3731 18.0385L11.7885 14.4538V16.6038C11.7885 17.0089 11.6036 17.2893 11.2337 17.4451C10.8638 17.6009 10.5366 17.5365 10.252 17.2519L7.50008 14.5H4.6924C4.43472 14.5 4.21966 14.4138 4.04723 14.2413C3.87479 14.0689 3.78858 13.8538 3.78858 13.5961V10.4039C3.78858 10.1462 3.87479 9.93114 4.04723 9.75871C4.21966 9.58626 4.43472 9.50003 4.6924 9.50003H6.8347L2.52315 5.18848C2.3847 5.05003 2.31387 4.876 2.31065 4.66638C2.30745 4.45678 2.37828 4.27954 2.52315 4.13466C2.66802 3.98979 2.84366 3.91736 3.05008 3.91736C3.25648 3.91736 3.43211 3.98979 3.57698 4.13466L20 20.5577C20.1385 20.6962 20.2093 20.8702 20.2125 21.0798C20.2157 21.2894 20.1449 21.4667 20 21.6115C19.8551 21.7564 19.6795 21.8288 19.4731 21.8288C19.2667 21.8288 19.0911 21.7564 18.9462 21.6115ZM15.1962 4.17888C16.7872 4.83658 18.0657 5.86575 19.0318 7.26638C19.9978 8.66702 20.4808 10.2366 20.4808 11.975C20.4808 12.8519 20.3503 13.6939 20.0894 14.501C19.8285 15.308 19.4603 16.0519 18.9846 16.7327L17.9096 15.6577C18.2571 15.1154 18.5225 14.5337 18.7058 13.9125C18.8892 13.2914 18.9808 12.6455 18.9808 11.975C18.9808 10.534 18.5815 9.23496 17.7828 8.07791C16.984 6.92086 15.9244 6.07567 14.6039 5.54233C14.4654 5.48848 14.359 5.40579 14.2847 5.29426C14.2103 5.18272 14.1732 5.05772 14.1732 4.91926C14.1732 4.64234 14.2812 4.4244 14.4972 4.26543C14.7132 4.10647 14.9462 4.07762 15.1962 4.17888ZM15.9231 13.6712L14.1732 11.9212V8.29618C14.8475 8.66285 15.3686 9.17919 15.7366 9.84521C16.1045 10.5112 16.2885 11.2295 16.2885 12C16.2885 12.2949 16.258 12.5824 16.1972 12.8625C16.1363 13.1426 16.0449 13.4122 15.9231 13.6712ZM11.7885 9.53658L9.63083 7.36928L10.252 6.74816C10.5366 6.46354 10.8638 6.39912 11.2337 6.55488C11.6036 6.71067 11.7885 6.99112 11.7885 7.39623V9.53658ZM10.2885 15.15V12.9539L8.33468 11H5.28853V13H8.13853L10.2885 15.15Z",fill:"#2C3336"}))))},SvgVolumeUp=function(e){return React__namespace.createElement("svg",_extends$13({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("mask",{id:"mask0_6_3046",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$b||(_rect$b=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$h||(_g$h=React__namespace.createElement("g",{mask:"url(#mask0_6_3046)"},React__namespace.createElement("path",{d:"M15.0614 19.7711C14.8114 19.8724 14.5784 19.8419 14.3624 19.6798C14.1464 19.5176 14.0384 19.2929 14.0384 19.0057C14.0384 18.8673 14.0797 18.7464 14.1624 18.6432C14.2451 18.54 14.3473 18.4615 14.4691 18.4077C15.7896 17.8743 16.8493 17.0291 17.648 15.8721C18.4467 14.715 18.8461 13.416 18.8461 11.975C18.8461 10.534 18.4467 9.23494 17.648 8.07789C16.8493 6.92084 15.7896 6.07564 14.4691 5.54231C14.3307 5.48846 14.2243 5.40577 14.1499 5.29424C14.0756 5.1827 14.0384 5.0577 14.0384 4.91924C14.0384 4.64232 14.1464 4.42438 14.3624 4.26541C14.5784 4.10644 14.8114 4.07759 15.0614 4.17886C16.646 4.83656 17.9229 5.86573 18.8922 7.26636C19.8614 8.66699 20.346 10.2365 20.346 11.975C20.346 13.7134 19.8614 15.283 18.8922 16.6836C17.9229 18.0842 16.646 19.1134 15.0614 19.7711ZM4.55763 14.5C4.29995 14.5 4.08489 14.4137 3.91246 14.2413C3.74003 14.0689 3.65381 13.8538 3.65381 13.5961V10.4039C3.65381 10.1462 3.74003 9.93112 3.91246 9.75869C4.08489 9.58624 4.29995 9.50001 4.55763 9.50001H7.36531L10.1172 6.74814C10.4018 6.46352 10.7291 6.39909 11.0989 6.55486C11.4688 6.71064 11.6537 6.99109 11.6537 7.39621V16.6038C11.6537 17.0089 11.4688 17.2893 11.0989 17.4451C10.7291 17.6009 10.4018 17.5365 10.1172 17.2518L7.36531 14.5H4.55763ZM14.0384 15.6538V8.29616C14.6858 8.64616 15.2002 9.15417 15.5816 9.82019C15.963 10.4862 16.1537 11.2128 16.1537 12C16.1537 12.7872 15.963 13.5054 15.5816 14.1548C15.2002 14.8041 14.6858 15.3038 14.0384 15.6538Z",fill:"#2C3336"}))))},SvgVolumeUp1=function(e){return React__namespace.createElement("svg",_extends$12({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("mask",{id:"mask0_6_3058",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$a||(_rect$a=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$g||(_g$g=React__namespace.createElement("g",{mask:"url(#mask0_6_3058)"},React__namespace.createElement("path",{d:"M15.0614 19.7711C14.8114 19.8724 14.5784 19.8418 14.3624 19.6793C14.1464 19.5168 14.0384 19.2918 14.0384 19.0043C14.0384 18.8668 14.0797 18.7464 14.1624 18.6432C14.2451 18.54 14.3473 18.4615 14.4691 18.4077C15.7896 17.8743 16.8493 17.0291 17.648 15.8721C18.4467 14.715 18.8461 13.416 18.8461 11.975C18.8461 10.534 18.4467 9.23494 17.648 8.07789C16.8493 6.92084 15.7896 6.07564 14.4691 5.54231C14.3307 5.48846 14.2243 5.4052 14.1499 5.29254C14.0756 5.17987 14.0384 5.05469 14.0384 4.91699C14.0384 4.64157 14.1464 4.42438 14.3624 4.26541C14.5784 4.10644 14.8114 4.07759 15.0614 4.17886C16.646 4.83656 17.9229 5.86503 18.8922 7.26426C19.8614 8.66348 20.346 10.2337 20.346 11.975C20.346 13.7163 19.8614 15.2865 18.8922 16.6857C17.9229 18.0849 16.646 19.1134 15.0614 19.7711ZM4.55763 14.5C4.30155 14.5 4.08689 14.4133 3.91366 14.2401C3.74043 14.0669 3.65381 13.8522 3.65381 13.5961V10.4039C3.65381 10.1478 3.74043 9.93312 3.91366 9.75989C4.08689 9.58664 4.30155 9.50001 4.55763 9.50001H7.36531L10.1172 6.74814C10.4018 6.46352 10.7291 6.39959 11.0989 6.55636C11.4688 6.71314 11.6537 6.99309 11.6537 7.39621V16.6038C11.6537 17.0069 11.4688 17.2868 11.0989 17.4436C10.7291 17.6004 10.4018 17.5365 10.1172 17.2518L7.36531 14.5H4.55763ZM14.0384 15.6538V8.29616C14.6858 8.64616 15.2002 9.15417 15.5816 9.82019C15.963 10.4862 16.1537 11.2128 16.1537 12C16.1537 12.7872 15.963 13.5054 15.5816 14.1548C15.2002 14.8041 14.6858 15.3038 14.0384 15.6538ZM10.1538 8.84999L8.00376 11H5.15376V13H8.00376L10.1538 15.15V8.84999Z",fill:"#2C3336"}))))},SvgClock=function(e){return React__namespace.createElement("svg",_extends$11({viewBox:"0 0 24 24",fill:"none"},e),_path$R||(_path$R=React__namespace.createElement("path",{id:"schedule",d:"M13 11.6V8C13 7.71667 12.9042 7.47917 12.7125 7.2875C12.5208 7.09583 12.2833 7 12 7C11.7167 7 11.4792 7.09583 11.2875 7.2875C11.0958 7.47917 11 7.71667 11 8V11.975C11 12.1083 11.025 12.2375 11.075 12.3625C11.125 12.4875 11.2 12.6 11.3 12.7L14.6 16C14.7833 16.1833 15.0167 16.275 15.3 16.275C15.5833 16.275 15.8167 16.1833 16 16C16.1833 15.8167 16.275 15.5833 16.275 15.3C16.275 15.0167 16.1833 14.7833 16 14.6L13 11.6ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C14.2167 20 16.1042 19.2208 17.6625 17.6625C19.2208 16.1042 20 14.2167 20 12C20 9.78333 19.2208 7.89583 17.6625 6.3375C16.1042 4.77917 14.2167 4 12 4C9.78333 4 7.89583 4.77917 6.3375 6.3375C4.77917 7.89583 4 9.78333 4 12C4 14.2167 4.77917 16.1042 6.3375 17.6625C7.89583 19.2208 9.78333 20 12 20Z",fill:"#02BF6F"})))},SvgCopy=function(e){return React__namespace.createElement("svg",_extends$10({viewBox:"0 0 24 24",fill:"none"},e),_path$Q||(_path$Q=React__namespace.createElement("path",{d:"M21.841 3.09098L19.409 0.659016C18.9871 0.237058 18.4148 3.12036e-06 17.818 0L9.75 0C8.50734 0 7.5 1.00734 7.5 2.25V4.5H3.75C2.50734 4.5 1.5 5.50734 1.5 6.75V21.75C1.5 22.9927 2.50734 24 3.75 24H14.25C15.4927 24 16.5 22.9927 16.5 21.75V19.5H20.25C21.4927 19.5 22.5 18.4927 22.5 17.25V4.68197C22.5 4.08523 22.2629 3.51294 21.841 3.09098ZM18 1.52302C18.1319 1.55555 18.2523 1.62356 18.3483 1.71966L20.7803 4.15167C20.8764 4.24767 20.9444 4.36813 20.9769 4.5H18V1.52302ZM15 21.75C15 22.1635 14.6635 22.5 14.25 22.5H3.75C3.33647 22.5 3 22.1635 3 21.75V6.75C3 6.33647 3.33647 6 3.75 6H7.5V17.25C7.5 18.4927 8.50734 19.5 9.75 19.5H15V21.75ZM21 17.25C21 17.6635 20.6635 18 20.25 18H9.75C9.33647 18 9 17.6635 9 17.25V2.25C9 1.83647 9.33647 1.5 9.75 1.5H16.5V4.875C16.5 5.49375 17.0063 6 17.625 6H21V17.25Z",fill:"#2C3336"})))},SvgDots=function(e){return React__namespace.createElement("svg",_extends$$({viewBox:"0 0 24 24",fill:"none"},e),_path$P||(_path$P=React__namespace.createElement("path",{id:"more_horiz",d:"M6 14C5.45 14 4.97917 13.8042 4.5875 13.4125C4.19583 13.0208 4 12.55 4 12C4 11.45 4.19583 10.9792 4.5875 10.5875C4.97917 10.1958 5.45 10 6 10C6.55 10 7.02083 10.1958 7.4125 10.5875C7.80417 10.9792 8 11.45 8 12C8 12.55 7.80417 13.0208 7.4125 13.4125C7.02083 13.8042 6.55 14 6 14ZM12 14C11.45 14 10.9792 13.8042 10.5875 13.4125C10.1958 13.0208 10 12.55 10 12C10 11.45 10.1958 10.9792 10.5875 10.5875C10.9792 10.1958 11.45 10 12 10C12.55 10 13.0208 10.1958 13.4125 10.5875C13.8042 10.9792 14 11.45 14 12C14 12.55 13.8042 13.0208 13.4125 13.4125C13.0208 13.8042 12.55 14 12 14ZM18 14C17.45 14 16.9792 13.8042 16.5875 13.4125C16.1958 13.0208 16 12.55 16 12C16 11.45 16.1958 10.9792 16.5875 10.5875C16.9792 10.1958 17.45 10 18 10C18.55 10 19.0208 10.1958 19.4125 10.5875C19.8042 10.9792 20 11.45 20 12C20 12.55 19.8042 13.0208 19.4125 13.4125C19.0208 13.8042 18.55 14 18 14Z",fill:"#838B97"})))},SvgDownload=function(e){return React__namespace.createElement("svg",_extends$_({viewBox:"0 0 24 24",fill:"none"},e),_path$O||(_path$O=React__namespace.createElement("path",{d:"M22 13.3333H18.1625L20.0833 11.4125C21.3375 10.1583 20.45 7.99998 18.6708 7.99998H16.0042V3.33331C16.0042 2.22915 15.1083 1.33331 14.0042 1.33331H10.0042C8.9 1.33331 8.00417 2.22915 8.00417 3.33331V7.99998H5.3375C3.5625 7.99998 2.6625 10.1541 3.925 11.4125L5.84583 13.3333H2C0.895833 13.3333 0 14.2291 0 15.3333V20.6666C0 21.7708 0.895833 22.6666 2 22.6666H22C23.1042 22.6666 24 21.7708 24 20.6666V15.3333C24 14.2291 23.1042 13.3333 22 13.3333ZM5.33333 9.99998H10V3.33331H14V9.99998H18.6667L12 16.6666L5.33333 9.99998ZM22 20.6666H2V15.3333H7.8375L10.5833 18.0791C11.3667 18.8625 12.6292 18.8583 13.4125 18.0791L16.1583 15.3333H22V20.6666ZM18.3333 18C18.3333 17.4458 18.7792 17 19.3333 17C19.8875 17 20.3333 17.4458 20.3333 18C20.3333 18.5541 19.8875 19 19.3333 19C18.7792 19 18.3333 18.5541 18.3333 18Z",fill:"#2C3336"})))},SvgExternalLink=function(e){return React__namespace.createElement("svg",_extends$Z({fill:"none",viewBox:"0 0 12 12"},e),_path$N||(_path$N=React__namespace.createElement("path",{fill:"#02BF6F",d:"m12 .8-.004 3.4a.3.3 0 0 1-.3.3h-.694a.3.3 0 0 1-.3-.306l.057-1.534-.043-.043-5.81 5.81a.25.25 0 0 1-.353 0l-.48-.48a.25.25 0 0 1 0-.354l5.81-5.81-.043-.042-1.534.056a.3.3 0 0 1-.306-.3V.804a.3.3 0 0 1 .3-.3L11.7.5a.3.3 0 0 1 .3.3ZM8.907 5.37l-.5.5a.25.25 0 0 0-.074.176v3.996a.125.125 0 0 1-.125.125H1.125A.125.125 0 0 1 1 10.042V2.958a.125.125 0 0 1 .125-.125h6.291a.25.25 0 0 0 .177-.426l-.5-.5a.25.25 0 0 0-.177-.074H1a1 1 0 0 0-1 1v7.334a1 1 0 0 0 1 1h7.333a1 1 0 0 0 1-1v-4.62a.25.25 0 0 0-.426-.177Z"})))},SvgFile=function(e){return React__namespace.createElement("svg",_extends$Y({viewBox:"0 0 24 24",fill:"none"},e),_path$M||(_path$M=React__namespace.createElement("path",{id:"path",d:"M16.5 11.625V12.9375C16.5 13.2469 16.2469 13.5 15.9375 13.5H8.0625C7.75313 13.5 7.5 13.2469 7.5 12.9375V11.625C7.5 11.3156 7.75313 11.0625 8.0625 11.0625H15.9375C16.2469 11.0625 16.5 11.3156 16.5 11.625ZM15.9375 15H8.0625C7.75313 15 7.5 15.2531 7.5 15.5625V16.875C7.5 17.1844 7.75313 17.4375 8.0625 17.4375H15.9375C16.2469 17.4375 16.5 17.1844 16.5 16.875V15.5625C16.5 15.2531 16.2469 15 15.9375 15ZM21 6.18281V21.75C21 22.9922 19.9922 24 18.75 24H5.25C4.00781 24 3 22.9922 3 21.75V2.25C3 1.00781 4.00781 0 5.25 0H14.8172C15.4125 0 15.9844 0.239063 16.4062 0.660938L20.3391 4.59375C20.7609 5.01094 21 5.5875 21 6.18281ZM15 2.43281V6H18.5672L15 2.43281ZM18.75 21.75V8.25H13.875C13.2516 8.25 12.75 7.74844 12.75 7.125V2.25H5.25V21.75H18.75Z",fill:"#2C3336"})))},SvgFilterList=function(e){return React__namespace.createElement("svg",_extends$X({viewBox:"0 0 24 24",fill:"none"},e),_path$L||(_path$L=React__namespace.createElement("path",{d:"M11 18C10.7167 18 10.4792 17.9042 10.2875 17.7125C10.0958 17.5208 10 17.2833 10 17C10 16.7167 10.0958 16.4792 10.2875 16.2875C10.4792 16.0958 10.7167 16 11 16H13C13.2833 16 13.5208 16.0958 13.7125 16.2875C13.9042 16.4792 14 16.7167 14 17C14 17.2833 13.9042 17.5208 13.7125 17.7125C13.5208 17.9042 13.2833 18 13 18H11ZM7 13C6.71667 13 6.47917 12.9042 6.2875 12.7125C6.09583 12.5208 6 12.2833 6 12C6 11.7167 6.09583 11.4792 6.2875 11.2875C6.47917 11.0958 6.71667 11 7 11H17C17.2833 11 17.5208 11.0958 17.7125 11.2875C17.9042 11.4792 18 11.7167 18 12C18 12.2833 17.9042 12.5208 17.7125 12.7125C17.5208 12.9042 17.2833 13 17 13H7ZM4 8C3.71667 8 3.47917 7.90417 3.2875 7.7125C3.09583 7.52083 3 7.28333 3 7C3 6.71667 3.09583 6.47917 3.2875 6.2875C3.47917 6.09583 3.71667 6 4 6H20C20.2833 6 20.5208 6.09583 20.7125 6.2875C20.9042 6.47917 21 6.71667 21 7C21 7.28333 20.9042 7.52083 20.7125 7.7125C20.5208 7.90417 20.2833 8 20 8H4Z",fill:"#1C1B1F"})))},SvgFlipCamera=function(e){return React__namespace.createElement("svg",_extends$W({viewBox:"0 0 24 24"},e),_path$K||(_path$K=React__namespace.createElement("path",{d:"M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m-8 13c-2.76 0-5-2.24-5-5H5l2.5-2.5L10 13H8c0 2.21 1.79 4 4 4 .58 0 1.13-.13 1.62-.35l.74.74c-.71.37-1.5.61-2.36.61m4.5-2.5L14 13h2c0-2.21-1.79-4-4-4-.58 0-1.13.13-1.62.35l-.74-.73C10.35 8.24 11.14 8 12 8c2.76 0 5 2.24 5 5h2z"})))},SvgGear=function(e){return React__namespace.createElement("svg",_extends$V({viewBox:"0 0 24 24"},e),_path$J||(_path$J=React__namespace.createElement("path",{d:"m22.846 14.798-1.997-1.153a9.027 9.027 0 0 0 0-3.29L22.846 9.2a.566.566 0 0 0 .258-.656 11.673 11.673 0 0 0-2.564-4.434.564.564 0 0 0-.694-.108l-1.997 1.153A8.846 8.846 0 0 0 15 3.511V1.209a.562.562 0 0 0-.44-.548 11.784 11.784 0 0 0-5.12 0 .562.562 0 0 0-.44.548v2.307A9.126 9.126 0 0 0 6.15 5.16L4.157 4.008a.557.557 0 0 0-.694.108A11.604 11.604 0 0 0 .9 8.55a.56.56 0 0 0 .258.656l1.997 1.153a9.03 9.03 0 0 0 0 3.29l-1.997 1.154a.566.566 0 0 0-.258.656 11.675 11.675 0 0 0 2.564 4.435.564.564 0 0 0 .694.108l1.997-1.154a8.847 8.847 0 0 0 2.85 1.646V22.8c0 .262.183.492.44.548 1.72.385 3.483.366 5.12 0a.562.562 0 0 0 .44-.548v-2.306a9.125 9.125 0 0 0 2.85-1.646l1.997 1.154c.23.13.515.089.693-.108a11.605 11.605 0 0 0 2.564-4.435.579.579 0 0 0-.262-.66Zm-10.847.952A3.755 3.755 0 0 1 8.25 12 3.755 3.755 0 0 1 12 8.25 3.755 3.755 0 0 1 15.75 12 3.755 3.755 0 0 1 12 15.75Z"})))},SvgLock=function(e){return React__namespace.createElement("svg",_extends$U({viewBox:"0 0 24 24",fill:"none"},e),_path$I||(_path$I=React__namespace.createElement("path",{id:"path",d:"M12 19.3125C11.2734 19.3125 10.6875 18.7266 10.6875 18V15C10.6875 14.2735 11.2734 13.6875 12 13.6875C12.7266 13.6875 13.3125 14.2735 13.3125 15V18C13.3125 18.7266 12.7266 19.3125 12 19.3125ZM22.5 11.25V21.75C22.5 22.9922 21.4922 24 20.25 24H3.75C2.50781 24 1.5 22.9922 1.5 21.75V11.25C1.5 10.0078 2.50781 9.00002 3.75 9.00002H5.25V6.75002C5.25 3.02346 8.2875 -0.00935332 12.0187 2.16765e-05C15.75 0.00939668 18.75 3.0844 18.75 6.81565V9.00002H20.25C21.4922 9.00002 22.5 10.0078 22.5 11.25ZM7.5 9.00002H16.5V6.75002C16.5 4.27033 14.4797 2.25002 12 2.25002C9.52031 2.25002 7.5 4.27033 7.5 6.75002V9.00002ZM20.25 11.25H3.75V21.75H20.25V11.25Z",fill:"#2C3336"})))},SvgMail=function(e){return React__namespace.createElement("svg",_extends$T({viewBox:"0 0 24 24",fill:"none"},e),_path$H||(_path$H=React__namespace.createElement("path",{d:"M4 20C3.45 20 2.97917 19.8042 2.5875 19.4125C2.19583 19.0208 2 18.55 2 18V6C2 5.45 2.19583 4.97917 2.5875 4.5875C2.97917 4.19583 3.45 4 4 4H20C20.55 4 21.0208 4.19583 21.4125 4.5875C21.8042 4.97917 22 5.45 22 6V18C22 18.55 21.8042 19.0208 21.4125 19.4125C21.0208 19.8042 20.55 20 20 20H4ZM20 8L12.525 12.675C12.4417 12.725 12.3542 12.7625 12.2625 12.7875C12.1708 12.8125 12.0833 12.825 12 12.825C11.9167 12.825 11.8292 12.8125 11.7375 12.7875C11.6458 12.7625 11.5583 12.725 11.475 12.675L4 8V18H20V8ZM12 11L20 6H4L12 11ZM4 8.25V6.775V6.8V6.7875V8.25Z",fill:"#1C1B1F"})))},SvgPlay=function(e){return React__namespace.createElement("svg",_extends$S({fill:"none",viewBox:"0 0 16 16"},e),_path$G||(_path$G=React__namespace.createElement("path",{fill:"#42454B",d:"m15.262 6.708-11-6.503C3.37-.323 2 .19 2 1.495V14.5c0 1.172 1.272 1.878 2.263 1.29l11-6.5c.98-.578.984-2.002 0-2.58Z"})))},SvgSync=function(e){return React__namespace.createElement("svg",_extends$R({viewBox:"0 0 24 24",fill:"none"},e),_path$F||(_path$F=React__namespace.createElement("path",{d:"M23.4375 0.375H22.1385C21.8227 0.375 21.5687 0.635062 21.5762 0.950906L21.6862 5.57161C19.6037 2.43952 16.0432 0.375 12 0.375C6.31936 0.375 1.59061 4.44956 0.576375 9.8355C0.511312 10.1809 0.778313 10.5 1.12983 10.5H2.46933C2.7353 10.5 2.96348 10.3133 3.0195 10.0533C3.9113 5.91225 7.58986 2.8125 12 2.8125C15.7287 2.8125 18.9348 5.02884 20.3754 8.21728L14.4509 8.07623C14.1351 8.06873 13.875 8.32266 13.875 8.63859V9.9375C13.875 10.2481 14.1269 10.5 14.4375 10.5H23.4375C23.7481 10.5 24 10.2481 24 9.9375V0.9375C24 0.626859 23.7481 0.375 23.4375 0.375ZM22.8702 13.5H21.5307C21.2647 13.5 21.0365 13.6867 20.9805 13.9467C20.0887 18.0877 16.4101 21.1875 12 21.1875C8.27128 21.1875 5.06522 18.9712 3.62456 15.7827L9.54909 15.9238C9.86489 15.9313 10.125 15.6773 10.125 15.3614V14.0625C10.125 13.7519 9.87314 13.5 9.5625 13.5H0.5625C0.251859 13.5 0 13.7519 0 14.0625V23.0625C0 23.3731 0.251859 23.625 0.5625 23.625H1.86145C2.17734 23.625 2.43131 23.3649 2.42381 23.0491L2.3138 18.4284C4.39631 21.5605 7.95675 23.625 12 23.625C17.6806 23.625 22.4094 19.5504 23.4236 14.1645C23.4887 13.8191 23.2217 13.5 22.8702 13.5Z",fill:"#2C3336"})))},SvgTimesCircle=function(e){return React__namespace.createElement("svg",_extends$Q({viewBox:"0 0 24 24",fill:"none"},e),_path$E||(_path$E=React__namespace.createElement("path",{d:"M12.3125 0.375C5.89062 0.375 0.6875 5.57812 0.6875 12C0.6875 18.4219 5.89062 23.625 12.3125 23.625C18.7344 23.625 23.9375 18.4219 23.9375 12C23.9375 5.57812 18.7344 0.375 12.3125 0.375ZM18.0125 15.0516C18.2328 15.2719 18.2328 15.6281 18.0125 15.8484L16.1562 17.7C15.9359 17.9203 15.5797 17.9203 15.3594 17.7L12.3125 14.625L9.26094 17.7C9.04062 17.9203 8.68437 17.9203 8.46406 17.7L6.6125 15.8438C6.39219 15.6234 6.39219 15.2672 6.6125 15.0469L9.6875 12L6.6125 8.94844C6.39219 8.72812 6.39219 8.37187 6.6125 8.15156L8.46875 6.29531C8.68906 6.075 9.04531 6.075 9.26562 6.29531L12.3125 9.375L15.3641 6.3C15.5844 6.07969 15.9406 6.07969 16.1609 6.3L18.0172 8.15625C18.2375 8.37656 18.2375 8.73281 18.0172 8.95312L14.9375 12L18.0125 15.0516Z",fill:"#2C3336"})))},SvgTrash=function(e){return React__namespace.createElement("svg",_extends$P({viewBox:"0 0 24 24",fill:"none"},e),_path$D||(_path$D=React__namespace.createElement("path",{d:"M21.75 3.75H17.8875L16.2938 1.09219C16.0937 0.758778 15.8106 0.482914 15.4721 0.291499C15.1336 0.100085 14.7513 -0.000346232 14.3625 8.96813e-07H9.6375C9.24866 -0.000346232 8.86636 0.100085 8.52789 0.291499C8.18943 0.482914 7.90634 0.758778 7.70625 1.09219L6.1125 3.75H2.25C2.05109 3.75 1.86032 3.82902 1.71967 3.96967C1.57902 4.11032 1.5 4.30109 1.5 4.5L1.5 5.25C1.5 5.44892 1.57902 5.63968 1.71967 5.78033C1.86032 5.92099 2.05109 6 2.25 6H3L3.99375 21.8906C4.02952 22.4619 4.28164 22.998 4.69878 23.3899C5.11591 23.7818 5.66672 23.9999 6.23906 24H17.7609C18.3333 23.9999 18.8841 23.7818 19.3012 23.3899C19.7184 22.998 19.9705 22.4619 20.0062 21.8906L21 6H21.75C21.9489 6 22.1397 5.92099 22.2803 5.78033C22.421 5.63968 22.5 5.44892 22.5 5.25V4.5C22.5 4.30109 22.421 4.11032 22.2803 3.96967C22.1397 3.82902 21.9489 3.75 21.75 3.75ZM9.6375 2.25H14.3625L15.2625 3.75H8.7375L9.6375 2.25ZM17.7609 21.75H6.23953L5.25516 6H18.7458L17.7609 21.75Z",fill:"#2C3336"})))},SvgUndo=function(e){return React__namespace.createElement("svg",_extends$O({viewBox:"0 0 24 24",fill:"none"},e),_path$C||(_path$C=React__namespace.createElement("path",{d:"M0.75 0.375011H2.04895C2.36484 0.375011 2.61881 0.635074 2.61131 0.950918L2.5013 5.57129C4.59023 2.42973 8.16619 0.362355 12.2247 0.375058C18.6178 0.395074 23.8225 5.62543 23.8125 12.0186C23.8025 18.4304 18.6016 23.625 12.1875 23.625C9.19097 23.625 6.45928 22.4912 4.39791 20.6293C4.15823 20.4129 4.14694 20.0405 4.37531 19.8122L5.30053 18.8869C5.51138 18.6761 5.85145 18.6626 6.07402 18.8611C7.69748 20.3084 9.83883 21.1875 12.1875 21.1875C17.2651 21.1875 21.375 17.0784 21.375 12C21.375 6.92242 17.2658 2.81251 12.1875 2.81251C8.45883 2.81251 5.25277 5.02886 3.81211 8.21729L9.7366 8.07625C10.0524 8.06875 10.3125 8.32267 10.3125 8.63861V9.93751C10.3125 10.2482 10.0606 10.5 9.75 10.5H0.75C0.439359 10.5 0.1875 10.2482 0.1875 9.93751V0.937511C0.1875 0.626871 0.439359 0.375011 0.75 0.375011Z",fill:"#2C3336"})))},SvgHelp=function(e){return React__namespace.createElement("svg",_extends$N({viewBox:"0 0 24 24",fill:"none"},e),React__namespace.createElement("mask",{id:"a",x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},_path$B||(_path$B=React__namespace.createElement("path",{fill:"#D9D9D9",d:"M0 0h24v24H0z"}))),_g$f||(_g$f=React__namespace.createElement("g",{mask:"url(#a)"},React__namespace.createElement("path",{fill:"#1C1B1F",d:"M11.95 18c.35 0 .646-.12.888-.363.241-.241.362-.537.362-.887s-.12-.646-.362-.887a1.207 1.207 0 0 0-.888-.363 1.2 1.2 0 0 0-.887.363 1.207 1.207 0 0 0-.363.887c0 .35.12.646.363.887.241.242.537.363.887.363Zm.05 4a9.738 9.738 0 0 1-3.9-.788 10.099 10.099 0 0 1-3.175-2.137c-.9-.9-1.612-1.958-2.137-3.175A9.738 9.738 0 0 1 2 12a9.74 9.74 0 0 1 .788-3.9 10.099 10.099 0 0 1 2.137-3.175c.9-.9 1.958-1.612 3.175-2.137A9.738 9.738 0 0 1 12 2a9.74 9.74 0 0 1 3.9.788 10.098 10.098 0 0 1 3.175 2.137c.9.9 1.613 1.958 2.137 3.175A9.738 9.738 0 0 1 22 12a9.738 9.738 0 0 1-.788 3.9 10.098 10.098 0 0 1-2.137 3.175c-.9.9-1.958 1.613-3.175 2.137A9.738 9.738 0 0 1 12 22Zm0-2c2.233 0 4.125-.775 5.675-2.325C19.225 16.125 20 14.233 20 12c0-2.233-.775-4.125-2.325-5.675C16.125 4.775 14.233 4 12 4c-2.233 0-4.125.775-5.675 2.325C4.775 7.875 4 9.767 4 12c0 2.233.775 4.125 2.325 5.675C7.875 19.225 9.767 20 12 20Zm.1-12.3c.417 0 .78.133 1.088.4.308.267.462.6.462 1 0 .367-.113.692-.338.975-.224.283-.479.55-.762.8a6.7 6.7 0 0 0-1.013 1.1c-.291.4-.437.85-.437 1.35 0 .233.088.43.263.588a.885.885 0 0 0 .612.237.89.89 0 0 0 .638-.25c.175-.167.287-.375.337-.625a2.02 2.02 0 0 1 .45-.938c.233-.274.483-.537.75-.787.383-.367.713-.767.987-1.2a2.65 2.65 0 0 0 .413-1.45c0-.85-.346-1.546-1.038-2.088C13.821 6.271 13.017 6 12.1 6a4.26 4.26 0 0 0-1.813.4 2.796 2.796 0 0 0-1.312 1.225.902.902 0 0 0-.112.637.739.739 0 0 0 .337.513c.233.133.475.175.725.125a.996.996 0 0 0 .625-.425c.183-.25.412-.442.688-.575.274-.133.562-.2.862-.2Z"}))))},SvgHelpSolid=function(e){return React__namespace.createElement("svg",_extends$M({viewBox:"0 0 24 24",fill:"none"},e),_path$A||(_path$A=React__namespace.createElement("path",{d:"M11.95 18C12.3 18 12.5958 17.8792 12.8375 17.6375C13.0792 17.3958 13.2 17.1 13.2 16.75C13.2 16.4 13.0792 16.1042 12.8375 15.8625C12.5958 15.6208 12.3 15.5 11.95 15.5C11.6 15.5 11.3042 15.6208 11.0625 15.8625C10.8208 16.1042 10.7 16.4 10.7 16.75C10.7 17.1 10.8208 17.3958 11.0625 17.6375C11.3042 17.8792 11.6 18 11.95 18ZM11.05 14.15H12.9C12.9 13.6 12.9625 13.1667 13.0875 12.85C13.2125 12.5333 13.5667 12.1 14.15 11.55C14.5833 11.1167 14.925 10.7042 15.175 10.3125C15.425 9.92083 15.55 9.45 15.55 8.9C15.55 7.96667 15.2083 7.25 14.525 6.75C13.8417 6.25 13.0333 6 12.1 6C11.15 6 10.3792 6.25 9.7875 6.75C9.19583 7.25 8.78333 7.85 8.55 8.55L10.2 9.2C10.2833 8.9 10.4708 8.575 10.7625 8.225C11.0542 7.875 11.5 7.7 12.1 7.7C12.6333 7.7 13.0333 7.84583 13.3 8.1375C13.5667 8.42917 13.7 8.75 13.7 9.1C13.7 9.43333 13.6 9.74583 13.4 10.0375C13.2 10.3292 12.95 10.6 12.65 10.85C11.9167 11.5 11.4667 11.9917 11.3 12.325C11.1333 12.6583 11.05 13.2667 11.05 14.15ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22Z",fill:"#1C1B1F"})))},SvgInfo=function(e){return React__namespace.createElement("svg",_extends$L({viewBox:"0 0 24 24",fill:"none"},e),_path$z||(_path$z=React__namespace.createElement("path",{d:"M12 17C12.2833 17 12.5208 16.9042 12.7125 16.7125C12.9042 16.5208 13 16.2833 13 16V12C13 11.7167 12.9042 11.4792 12.7125 11.2875C12.5208 11.0958 12.2833 11 12 11C11.7167 11 11.4792 11.0958 11.2875 11.2875C11.0958 11.4792 11 11.7167 11 12V16C11 16.2833 11.0958 16.5208 11.2875 16.7125C11.4792 16.9042 11.7167 17 12 17ZM12 9C12.2833 9 12.5208 8.90417 12.7125 8.7125C12.9042 8.52083 13 8.28333 13 8C13 7.71667 12.9042 7.47917 12.7125 7.2875C12.5208 7.09583 12.2833 7 12 7C11.7167 7 11.4792 7.09583 11.2875 7.2875C11.0958 7.47917 11 7.71667 11 8C11 8.28333 11.0958 8.52083 11.2875 8.7125C11.4792 8.90417 11.7167 9 12 9ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20Z",fill:"#2C3336"})))},SvgInfo1=function(e){return React__namespace.createElement("svg",_extends$K({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},_path$y||(_path$y=React__namespace.createElement("path",{fill:"#D9D9D9",d:"M0 0h24v24H0z"}))),_g$e||(_g$e=React__namespace.createElement("g",{mask:"url(#a)"},React__namespace.createElement("path",{fill:"#2C3336",d:"M12 17a.97.97 0 0 0 .713-.288A.968.968 0 0 0 13 16v-4a.968.968 0 0 0-.287-.713A.968.968 0 0 0 12 11a.968.968 0 0 0-.713.287A.968.968 0 0 0 11 12v4c0 .283.096.52.287.712.192.192.43.288.713.288Zm0-8c.283 0 .52-.096.713-.287A.967.967 0 0 0 13 8a.967.967 0 0 0-.287-.713A.968.968 0 0 0 12 7a.968.968 0 0 0-.713.287A.967.967 0 0 0 11 8c0 .283.096.52.287.713.192.191.43.287.713.287Zm0 13a9.738 9.738 0 0 1-3.9-.788 10.099 10.099 0 0 1-3.175-2.137c-.9-.9-1.612-1.958-2.137-3.175A9.738 9.738 0 0 1 2 12a9.74 9.74 0 0 1 .788-3.9 10.099 10.099 0 0 1 2.137-3.175c.9-.9 1.958-1.612 3.175-2.137A9.738 9.738 0 0 1 12 2a9.74 9.74 0 0 1 3.9.788 10.098 10.098 0 0 1 3.175 2.137c.9.9 1.613 1.958 2.137 3.175A9.738 9.738 0 0 1 22 12a9.738 9.738 0 0 1-.788 3.9 10.098 10.098 0 0 1-2.137 3.175c-.9.9-1.958 1.613-3.175 2.137A9.738 9.738 0 0 1 12 22Z"}))))},SvgInfoCircle=function(e){return React__namespace.createElement("svg",_extends$J({viewBox:"0 0 24 24",fill:"none"},e),_path$x||(_path$x=React__namespace.createElement("path",{d:"M12 1.875C17.5604 1.875 22.125 6.37852 22.125 12C22.125 17.5918 17.5964 22.125 12 22.125C6.41044 22.125 1.875 17.5987 1.875 12C1.875 6.41236 6.40322 1.875 12 1.875ZM12 0.375C5.58014 0.375 0.375 5.58202 0.375 12C0.375 18.4217 5.58014 23.625 12 23.625C18.4199 23.625 23.625 18.4217 23.625 12C23.625 5.58202 18.4199 0.375 12 0.375ZM10.3125 16.5H10.875V10.875H10.3125C10.0019 10.875 9.75 10.6231 9.75 10.3125V9.9375C9.75 9.62686 10.0019 9.375 10.3125 9.375H12.5625C12.8731 9.375 13.125 9.62686 13.125 9.9375V16.5H13.6875C13.9981 16.5 14.25 16.7519 14.25 17.0625V17.4375C14.25 17.7481 13.9981 18 13.6875 18H10.3125C10.0019 18 9.75 17.7481 9.75 17.4375V17.0625C9.75 16.7519 10.0019 16.5 10.3125 16.5ZM12 5.25C11.1716 5.25 10.5 5.92158 10.5 6.75C10.5 7.57842 11.1716 8.25 12 8.25C12.8284 8.25 13.5 7.57842 13.5 6.75C13.5 5.92158 12.8284 5.25 12 5.25Z",fill:"#2C3336"})))},SvgInfoCircleSolid=function(e){return React__namespace.createElement("svg",_extends$I({viewBox:"0 0 24 24",fill:"none"},e),_path$w||(_path$w=React__namespace.createElement("path",{d:"M12 0.375C5.58014 0.375 0.375 5.58202 0.375 12C0.375 18.4217 5.58014 23.625 12 23.625C18.4199 23.625 23.625 18.4217 23.625 12C23.625 5.58202 18.4199 0.375 12 0.375ZM12 5.53125C13.0873 5.53125 13.9688 6.41269 13.9688 7.5C13.9688 8.58731 13.0873 9.46875 12 9.46875C10.9127 9.46875 10.0312 8.58731 10.0312 7.5C10.0312 6.41269 10.9127 5.53125 12 5.53125ZM14.625 17.4375C14.625 17.7481 14.3731 18 14.0625 18H9.9375C9.62686 18 9.375 17.7481 9.375 17.4375V16.3125C9.375 16.0019 9.62686 15.75 9.9375 15.75H10.5V12.75H9.9375C9.62686 12.75 9.375 12.4981 9.375 12.1875V11.0625C9.375 10.7519 9.62686 10.5 9.9375 10.5H12.9375C13.2481 10.5 13.5 10.7519 13.5 11.0625V15.75H14.0625C14.3731 15.75 14.625 16.0019 14.625 16.3125V17.4375Z",fill:"#2C3336"})))},SvgWarning=function(e){return React__namespace.createElement("svg",_extends$H({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},_path$v||(_path$v=React__namespace.createElement("path",{fill:"#D9D9D9",d:"M0 0h24v24H0z"}))),_g$d||(_g$d=React__namespace.createElement("g",{mask:"url(#a)"},React__namespace.createElement("path",{fill:"#2C3336",d:"M2.725 21a.973.973 0 0 1-.85-.5 1.098 1.098 0 0 1-.138-.488.898.898 0 0 1 .138-.512l9.25-16a.98.98 0 0 1 .387-.375C11.671 3.042 11.833 3 12 3c.166 0 .329.042.487.125a.983.983 0 0 1 .388.375l9.25 16c.1.167.146.337.137.512a1.098 1.098 0 0 1-.137.488.973.973 0 0 1-.85.5H2.725ZM12 18c.283 0 .52-.096.712-.288A.968.968 0 0 0 13 17a.968.968 0 0 0-.288-.712A.968.968 0 0 0 12 16a.968.968 0 0 0-.713.288A.968.968 0 0 0 11 17c0 .283.096.52.287.712.192.192.43.288.713.288Zm0-3a.97.97 0 0 0 .712-.287A.968.968 0 0 0 13 14v-3a.968.968 0 0 0-.288-.713A.968.968 0 0 0 12 10a.968.968 0 0 0-.713.287A.968.968 0 0 0 11 11v3c0 .283.096.52.287.713.192.191.43.287.713.287Z"}))))},SvgWarning1=function(e){return React__namespace.createElement("svg",_extends$G({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("mask",{id:"mask0_555_3367",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$9||(_rect$9=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$c||(_g$c=React__namespace.createElement("g",{mask:"url(#mask0_555_3367)"},React__namespace.createElement("path",{d:"M3.42555 20.5C3.25605 20.5 3.10382 20.4586 2.96887 20.3757C2.83392 20.2929 2.72897 20.1836 2.654 20.0481C2.57602 19.9135 2.53312 19.7676 2.52532 19.6106C2.51752 19.4535 2.5599 19.298 2.65245 19.144L11.2132 4.35616C11.3057 4.20212 11.4216 4.08825 11.5607 4.01453C11.6998 3.9408 11.8462 3.90393 12.0001 3.90393C12.1539 3.90393 12.3004 3.9408 12.4395 4.01453C12.5786 4.08825 12.6944 4.20212 12.787 4.35616L21.3477 19.144C21.4403 19.298 21.4827 19.4535 21.4749 19.6106C21.4671 19.7676 21.4242 19.9135 21.3462 20.0481C21.2712 20.1836 21.1663 20.2929 21.0313 20.3757C20.8964 20.4586 20.7441 20.5 20.5746 20.5H3.42555ZM4.4501 19H19.5501L12.0001 6.00003L4.4501 19ZM12.0001 17.8077C12.2289 17.8077 12.4208 17.7303 12.5756 17.5755C12.7304 17.4207 12.8078 17.2289 12.8078 17C12.8078 16.7712 12.7304 16.5794 12.5756 16.4246C12.4208 16.2698 12.2289 16.1924 12.0001 16.1924C11.7712 16.1924 11.5794 16.2698 11.4246 16.4246C11.2698 16.5794 11.1924 16.7712 11.1924 17C11.1924 17.2289 11.2698 17.4207 11.4246 17.5755C11.5794 17.7303 11.7712 17.8077 12.0001 17.8077ZM12.0004 15.1924C12.213 15.1924 12.3911 15.1205 12.5347 14.9767C12.6783 14.833 12.7501 14.6549 12.7501 14.4424V10.9423C12.7501 10.7298 12.6782 10.5517 12.5344 10.408C12.3906 10.2642 12.2124 10.1924 11.9998 10.1924C11.7872 10.1924 11.6091 10.2642 11.4655 10.408C11.3219 10.5517 11.2501 10.7298 11.2501 10.9423V14.4424C11.2501 14.6549 11.322 14.833 11.4658 14.9767C11.6096 15.1205 11.7878 15.1924 12.0004 15.1924Z",fill:"#2C3336"}))))},SvgBarChart=function(e){return React__namespace.createElement("svg",_extends$F({viewBox:"0 0 24 24",fill:"none"},e),_path$u||(_path$u=React__namespace.createElement("path",{d:"M3 21C2.71667 21 2.47917 20.9042 2.2875 20.7125C2.09583 20.5208 2 20.2833 2 20C2 19.7167 2.09583 19.4792 2.2875 19.2875C2.47917 19.0958 2.71667 19 3 19H21C21.2833 19 21.5208 19.0958 21.7125 19.2875C21.9042 19.4792 22 19.7167 22 20C22 20.2833 21.9042 20.5208 21.7125 20.7125C21.5208 20.9042 21.2833 21 21 21H3ZM4.5 18C4.08333 18 3.72917 17.8542 3.4375 17.5625C3.14583 17.2708 3 16.9167 3 16.5V12.5C3 12.0833 3.14583 11.7292 3.4375 11.4375C3.72917 11.1458 4.08333 11 4.5 11C4.91667 11 5.27083 11.1458 5.5625 11.4375C5.85417 11.7292 6 12.0833 6 12.5V16.5C6 16.9167 5.85417 17.2708 5.5625 17.5625C5.27083 17.8542 4.91667 18 4.5 18ZM9.5 18C9.08333 18 8.72917 17.8542 8.4375 17.5625C8.14583 17.2708 8 16.9167 8 16.5V7.5C8 7.08333 8.14583 6.72917 8.4375 6.4375C8.72917 6.14583 9.08333 6 9.5 6C9.91667 6 10.2708 6.14583 10.5625 6.4375C10.8542 6.72917 11 7.08333 11 7.5V16.5C11 16.9167 10.8542 17.2708 10.5625 17.5625C10.2708 17.8542 9.91667 18 9.5 18ZM14.5 18C14.0833 18 13.7292 17.8542 13.4375 17.5625C13.1458 17.2708 13 16.9167 13 16.5V10.5C13 10.0833 13.1458 9.72917 13.4375 9.4375C13.7292 9.14583 14.0833 9 14.5 9C14.9167 9 15.2708 9.14583 15.5625 9.4375C15.8542 9.72917 16 10.0833 16 10.5V16.5C16 16.9167 15.8542 17.2708 15.5625 17.5625C15.2708 17.8542 14.9167 18 14.5 18ZM19.5 18C19.0833 18 18.7292 17.8542 18.4375 17.5625C18.1458 17.2708 18 16.9167 18 16.5V4.5C18 4.08333 18.1458 3.72917 18.4375 3.4375C18.7292 3.14583 19.0833 3 19.5 3C19.9167 3 20.2708 3.14583 20.5625 3.4375C20.8542 3.72917 21 4.08333 21 4.5V16.5C21 16.9167 20.8542 17.2708 20.5625 17.5625C20.2708 17.8542 19.9167 18 19.5 18Z",fill:"#000000"})))},SvgPoll=function(e){return React__namespace.createElement("svg",_extends$E({viewBox:"0 0 24 24",fill:"none"},e),_path$t||(_path$t=React__namespace.createElement("path",{id:"path",d:"M1.5 3.75V20.25C1.5 20.8467 1.73705 21.419 2.15901 21.841C2.58097 22.2629 3.15326 22.5 3.75 22.5H20.25C20.8467 22.5 21.419 22.2629 21.841 21.841C22.2629 21.419 22.5 20.8467 22.5 20.25V3.75C22.5 3.15326 22.2629 2.58097 21.841 2.15901C21.419 1.73705 20.8467 1.5 20.25 1.5H3.75C3.15326 1.5 2.58097 1.73705 2.15901 2.15901C1.73705 2.58097 1.5 3.15326 1.5 3.75H1.5ZM6.75 18C6.55109 18 6.36032 17.921 6.21967 17.7803C6.07902 17.6397 6 17.4489 6 17.25V11.25C6 11.0511 6.07902 10.8603 6.21967 10.7197C6.36032 10.579 6.55109 10.5 6.75 10.5H8.25C8.44891 10.5 8.63968 10.579 8.78033 10.7197C8.92098 10.8603 9 11.0511 9 11.25V17.25C9 17.4489 8.92098 17.6397 8.78033 17.7803C8.63968 17.921 8.44891 18 8.25 18H6.75ZM17.25 13.5C17.4489 13.5 17.6397 13.579 17.7803 13.7197C17.921 13.8603 18 14.0511 18 14.25V17.25C18 17.4489 17.921 17.6397 17.7803 17.7803C17.6397 17.921 17.4489 18 17.25 18H15.75C15.5511 18 15.3603 17.921 15.2197 17.7803C15.079 17.6397 15 17.4489 15 17.25V14.25C15 14.0511 15.079 13.8603 15.2197 13.7197C15.3603 13.579 15.5511 13.5 15.75 13.5H17.25ZM12.75 6C12.9489 6 13.1397 6.07902 13.2803 6.21967C13.421 6.36032 13.5 6.55109 13.5 6.75V17.25C13.5 17.4489 13.421 17.6397 13.2803 17.7803C13.1397 17.921 12.9489 18 12.75 18H11.25C11.0511 18 10.8603 17.921 10.7197 17.7803C10.579 17.6397 10.5 17.4489 10.5 17.25V6.75C10.5 6.55109 10.579 6.36032 10.7197 6.21967C10.8603 6.07902 11.0511 6 11.25 6H12.75Z",fill:"#2C3336"})),_path2$4||(_path2$4=React__namespace.createElement("path",{id:"path_2",d:"M9 17.25V11.25C9 11.0511 8.92098 10.8603 8.78033 10.7197C8.63968 10.579 8.44891 10.5 8.25 10.5H6.75C6.55109 10.5 6.36032 10.579 6.21967 10.7197C6.07902 10.8603 6 11.0511 6 11.25V17.25C6 17.4489 6.07902 17.6397 6.21967 17.7803C6.36032 17.921 6.55109 18 6.75 18H8.25C8.44891 18 8.63968 17.921 8.78033 17.7803C8.92098 17.6397 9 17.4489 9 17.25ZM15 14.25V17.25C15 17.4489 15.079 17.6397 15.2197 17.7803C15.3603 17.921 15.5511 18 15.75 18H17.25C17.4489 18 17.6397 17.921 17.7803 17.7803C17.921 17.6397 18 17.4489 18 17.25V14.25C18 14.0511 17.921 13.8603 17.7803 13.7197C17.6397 13.579 17.4489 13.5 17.25 13.5H15.75C15.5511 13.5 15.3603 13.579 15.2197 13.7197C15.079 13.8603 15 14.0511 15 14.25ZM10.5 6.75V17.25C10.5 17.4489 10.579 17.6397 10.7197 17.7803C10.8603 17.921 11.0511 18 11.25 18H12.75C12.9489 18 13.1397 17.921 13.2803 17.7803C13.421 17.6397 13.5 17.4489 13.5 17.25V6.75C13.5 6.55109 13.421 6.36032 13.2803 6.21967C13.1397 6.07902 12.9489 6 12.75 6H11.25C11.0511 6 10.8603 6.07902 10.7197 6.21967C10.579 6.36032 10.5 6.55109 10.5 6.75Z",fill:"#2C3336"})))},SvgProgress=function(e){return React__namespace.createElement("svg",_extends$D({id:"demio-ui-progress-icon",viewBox:"0 0 24 24",fill:"none"},e),_path$s||(_path$s=React__namespace.createElement("path",{d:"M12 0C14.3734 2.83022e-08 16.6935 0.703788 18.6668 2.02236C20.6402 3.34094 22.1783 5.21509 23.0866 7.4078C23.9948 9.60051 24.2324 12.0133 23.7694 14.3411C23.3064 16.6689 22.1635 18.8071 20.4853 20.4853C18.8071 22.1635 16.6689 23.3064 14.3411 23.7694C12.0133 24.2324 9.60051 23.9948 7.4078 23.0866C5.21509 22.1783 3.34094 20.6402 2.02236 18.6668C0.703788 16.6935 -5.66044e-08 14.3734 0 12H2.64C2.64 13.8512 3.18895 15.6609 4.21744 17.2001C5.24593 18.7394 6.70777 19.9391 8.41808 20.6475C10.1284 21.3559 12.0104 21.5413 13.826 21.1801C15.6417 20.819 17.3095 19.9275 18.6185 18.6185C19.9275 17.3095 20.819 15.6417 21.1801 13.826C21.5413 12.0104 21.3559 10.1284 20.6475 8.41808C19.9391 6.70777 18.7394 5.24593 17.2001 4.21744C15.6609 3.18895 13.8512 2.64 12 2.64V0Z",fill:"#DEE4E8"})))},SvgTrendingDown=function(e){return React__namespace.createElement("svg",_extends$C({viewBox:"0 0 24 24",fill:"none"},e),_path$r||(_path$r=React__namespace.createElement("path",{d:"M18.6 16L13.4 10.85L10.825 13.425C10.4417 13.8083 9.96665 14 9.39999 14C8.83332 14 8.35832 13.8083 7.97499 13.425L2.69999 8.09999C2.51665 7.91665 2.42082 7.68749 2.41249 7.41249C2.40415 7.13749 2.49999 6.89999 2.69999 6.69999C2.88332 6.51665 3.11665 6.42499 3.39999 6.42499C3.68332 6.42499 3.91665 6.51665 4.09999 6.69999L9.39999 12L11.975 9.42499C12.3583 9.04165 12.8333 8.84999 13.4 8.84999C13.9667 8.84999 14.4417 9.04165 14.825 9.42499L20 14.6V13C20 12.7167 20.0958 12.4792 20.2875 12.2875C20.4792 12.0958 20.7167 12 21 12C21.2833 12 21.5208 12.0958 21.7125 12.2875C21.9042 12.4792 22 12.7167 22 13V17C22 17.2833 21.9042 17.5208 21.7125 17.7125C21.5208 17.9042 21.2833 18 21 18H17C16.7167 18 16.4792 17.9042 16.2875 17.7125C16.0958 17.5208 16 17.2833 16 17C16 16.7167 16.0958 16.4792 16.2875 16.2875C16.4792 16.0958 16.7167 16 17 16H18.6Z",fill:"#1C1B1F"})))},SvgTrendingUp=function(e){return React__namespace.createElement("svg",_extends$B({viewBox:"0 0 24 24",fill:"none"},e),_path$q||(_path$q=React__namespace.createElement("path",{d:"M2.69999 17.625C2.49999 17.425 2.40415 17.1875 2.41249 16.9125C2.42082 16.6375 2.51665 16.4083 2.69999 16.225L7.97499 10.875C8.35832 10.4917 8.83332 10.3 9.39999 10.3C9.96665 10.3 10.4417 10.4917 10.825 10.875L13.4 13.475L18.6 8.32501H17C16.7167 8.32501 16.4792 8.22918 16.2875 8.03751C16.0958 7.84585 16 7.60835 16 7.32501C16 7.04168 16.0958 6.80418 16.2875 6.61251C16.4792 6.42085 16.7167 6.32501 17 6.32501H21C21.2833 6.32501 21.5208 6.42085 21.7125 6.61251C21.9042 6.80418 22 7.04168 22 7.32501V11.325C22 11.6083 21.9042 11.8458 21.7125 12.0375C21.5208 12.2292 21.2833 12.325 21 12.325C20.7167 12.325 20.4792 12.2292 20.2875 12.0375C20.0958 11.8458 20 11.6083 20 11.325V9.72501L14.825 14.9C14.4417 15.2833 13.9667 15.475 13.4 15.475C12.8333 15.475 12.3583 15.2833 11.975 14.9L9.39999 12.325L4.09999 17.625C3.91665 17.8083 3.68332 17.9 3.39999 17.9C3.11665 17.9 2.88332 17.8083 2.69999 17.625Z",fill:"#1C1B1F"})))},SvgCalendar=function(e){return React__namespace.createElement("svg",_extends$A({viewBox:"0 0 32 32",fill:"none"},e),React__namespace.createElement("g",{id:"calendar_month_fill"},React__namespace.createElement("mask",{id:"mask0_725_11363",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:32,height:32},_rect$8||(_rect$8=React__namespace.createElement("rect",{id:"Bounding box",width:32,height:32,fill:"#D9D9D9"}))),_g$b||(_g$b=React__namespace.createElement("g",{mask:"url(#mask0_725_11363)"},React__namespace.createElement("path",{id:"calendar_month",d:"M6.66667 29.3332C5.93333 29.3332 5.30556 29.0721 4.78333 28.5498C4.26111 28.0276 4 27.3998 4 26.6665V7.99984C4 7.2665 4.26111 6.63873 4.78333 6.1165C5.30556 5.59428 5.93333 5.33317 6.66667 5.33317H8V3.99984C8 3.62206 8.12778 3.30539 8.38333 3.04984C8.63889 2.79428 8.95556 2.6665 9.33333 2.6665C9.71111 2.6665 10.0278 2.79428 10.2833 3.04984C10.5389 3.30539 10.6667 3.62206 10.6667 3.99984V5.33317H21.3333V3.99984C21.3333 3.62206 21.4611 3.30539 21.7167 3.04984C21.9722 2.79428 22.2889 2.6665 22.6667 2.6665C23.0444 2.6665 23.3611 2.79428 23.6167 3.04984C23.8722 3.30539 24 3.62206 24 3.99984V5.33317H25.3333C26.0667 5.33317 26.6944 5.59428 27.2167 6.1165C27.7389 6.63873 28 7.2665 28 7.99984V26.6665C28 27.3998 27.7389 28.0276 27.2167 28.5498C26.6944 29.0721 26.0667 29.3332 25.3333 29.3332H6.66667ZM6.66667 26.6665H25.3333V13.3332H6.66667V26.6665ZM16 18.6665C15.6222 18.6665 15.3056 18.5387 15.05 18.2832C14.7944 18.0276 14.6667 17.7109 14.6667 17.3332C14.6667 16.9554 14.7944 16.6387 15.05 16.3832C15.3056 16.1276 15.6222 15.9998 16 15.9998C16.3778 15.9998 16.6944 16.1276 16.95 16.3832C17.2056 16.6387 17.3333 16.9554 17.3333 17.3332C17.3333 17.7109 17.2056 18.0276 16.95 18.2832C16.6944 18.5387 16.3778 18.6665 16 18.6665ZM10.6667 18.6665C10.2889 18.6665 9.97222 18.5387 9.71667 18.2832C9.46111 18.0276 9.33333 17.7109 9.33333 17.3332C9.33333 16.9554 9.46111 16.6387 9.71667 16.3832C9.97222 16.1276 10.2889 15.9998 10.6667 15.9998C11.0444 15.9998 11.3611 16.1276 11.6167 16.3832C11.8722 16.6387 12 16.9554 12 17.3332C12 17.7109 11.8722 18.0276 11.6167 18.2832C11.3611 18.5387 11.0444 18.6665 10.6667 18.6665ZM21.3333 18.6665C20.9556 18.6665 20.6389 18.5387 20.3833 18.2832C20.1278 18.0276 20 17.7109 20 17.3332C20 16.9554 20.1278 16.6387 20.3833 16.3832C20.6389 16.1276 20.9556 15.9998 21.3333 15.9998C21.7111 15.9998 22.0278 16.1276 22.2833 16.3832C22.5389 16.6387 22.6667 16.9554 22.6667 17.3332C22.6667 17.7109 22.5389 18.0276 22.2833 18.2832C22.0278 18.5387 21.7111 18.6665 21.3333 18.6665ZM16 23.9998C15.6222 23.9998 15.3056 23.8721 15.05 23.6165C14.7944 23.361 14.6667 23.0443 14.6667 22.6665C14.6667 22.2887 14.7944 21.9721 15.05 21.7165C15.3056 21.4609 15.6222 21.3332 16 21.3332C16.3778 21.3332 16.6944 21.4609 16.95 21.7165C17.2056 21.9721 17.3333 22.2887 17.3333 22.6665C17.3333 23.0443 17.2056 23.361 16.95 23.6165C16.6944 23.8721 16.3778 23.9998 16 23.9998ZM10.6667 23.9998C10.2889 23.9998 9.97222 23.8721 9.71667 23.6165C9.46111 23.361 9.33333 23.0443 9.33333 22.6665C9.33333 22.2887 9.46111 21.9721 9.71667 21.7165C9.97222 21.4609 10.2889 21.3332 10.6667 21.3332C11.0444 21.3332 11.3611 21.4609 11.6167 21.7165C11.8722 21.9721 12 22.2887 12 22.6665C12 23.0443 11.8722 23.361 11.6167 23.6165C11.3611 23.8721 11.0444 23.9998 10.6667 23.9998ZM21.3333 23.9998C20.9556 23.9998 20.6389 23.8721 20.3833 23.6165C20.1278 23.361 20 23.0443 20 22.6665C20 22.2887 20.1278 21.9721 20.3833 21.7165C20.6389 21.4609 20.9556 21.3332 21.3333 21.3332C21.7111 21.3332 22.0278 21.4609 22.2833 21.7165C22.5389 21.9721 22.6667 22.2887 22.6667 22.6665C22.6667 23.0443 22.5389 23.361 22.2833 23.6165C22.0278 23.8721 21.7111 23.9998 21.3333 23.9998Z",fill:"#11B06E"})))))},SvgCalendarStar=function(e){return React__namespace.createElement("svg",_extends$z({viewBox:"0 0 24 24",fill:"none"},e),_path$p||(_path$p=React__namespace.createElement("path",{id:"path",opacity:.4,d:"M1.19995 9V21.75C1.19995 22.3467 1.437 22.919 1.85896 23.341C2.28092 23.7629 2.85321 24 3.44995 24H19.95C20.5467 24 21.119 23.7629 21.5409 23.341C21.9629 22.919 22.2 22.3467 22.2 21.75V9H1.19995ZM16.3935 15.652C16.3759 15.7751 16.3176 15.8888 16.2281 15.975L14.3718 17.7844L14.8125 20.3438C14.8296 20.4469 14.8176 20.5529 14.7779 20.6497C14.7381 20.7464 14.6722 20.8302 14.5875 20.8915C14.5027 20.9529 14.4026 20.9894 14.2982 20.997C14.1939 21.0045 14.0895 20.9829 13.9968 20.9344L11.7 19.725L9.40776 20.9344C9.31507 20.9829 9.21069 21.0045 9.10635 20.997C9.00201 20.9894 8.90185 20.9529 8.81712 20.8915C8.73239 20.8302 8.66645 20.7464 8.6267 20.6497C8.58696 20.5529 8.57499 20.4469 8.59214 20.3438L9.03276 17.7844L7.17651 15.975C7.10096 15.902 7.04739 15.8092 7.02186 15.7073C6.99633 15.6053 6.99987 15.4983 7.03207 15.3982C7.06428 15.2982 7.12386 15.2092 7.20407 15.1413C7.28428 15.0734 7.38191 15.0293 7.48589 15.0141L10.05 14.6391L11.1984 12.3141C11.2449 12.2202 11.3168 12.1412 11.4058 12.086C11.4948 12.0308 11.5975 12.0015 11.7023 12.0015C11.8071 12.0015 11.9097 12.0308 11.9988 12.086C12.0878 12.1412 12.1596 12.2202 12.2062 12.3141L13.3546 14.6391L15.9187 15.0141C16.0663 15.0357 16.1992 15.1151 16.2882 15.2347C16.3772 15.3544 16.4151 15.5045 16.3935 15.652ZM15.45 6H16.95C17.1489 6 17.3396 5.92098 17.4803 5.78033C17.6209 5.63968 17.7 5.44891 17.7 5.25V0.75C17.7 0.551088 17.6209 0.360322 17.4803 0.21967C17.3396 0.0790176 17.1489 0 16.95 0L15.45 0C15.251 0 15.0603 0.0790176 14.9196 0.21967C14.779 0.360322 14.7 0.551088 14.7 0.75V5.25C14.7 5.44891 14.779 5.63968 14.9196 5.78033C15.0603 5.92098 15.251 6 15.45 6ZM6.44995 6H7.94995C8.14886 6 8.33963 5.92098 8.48028 5.78033C8.62093 5.63968 8.69995 5.44891 8.69995 5.25V0.75C8.69995 0.551088 8.62093 0.360322 8.48028 0.21967C8.33963 0.0790176 8.14886 0 7.94995 0L6.44995 0C6.25104 0 6.06027 0.0790176 5.91962 0.21967C5.77897 0.360322 5.69995 0.551088 5.69995 0.75V5.25C5.69995 5.44891 5.77897 5.63968 5.91962 5.78033C6.06027 5.92098 6.25104 6 6.44995 6Z",fill:"#2C3336"})),_path2$3||(_path2$3=React__namespace.createElement("path",{id:"path_2",d:"M15.9187 15.0141L13.3546 14.6391L12.2062 12.3141C12.1596 12.2202 12.0878 12.1412 11.9988 12.086C11.9097 12.0308 11.8071 12.0015 11.7023 12.0015C11.5975 12.0015 11.4948 12.0308 11.4058 12.086C11.3168 12.1412 11.2449 12.2202 11.1984 12.3141L10.05 14.6391L7.48589 15.0141C7.38191 15.0293 7.28428 15.0734 7.20407 15.1413C7.12386 15.2092 7.06428 15.2982 7.03207 15.3982C6.99987 15.4983 6.99633 15.6053 7.02186 15.7073C7.04739 15.8092 7.10096 15.902 7.17651 15.975L9.03276 17.7844L8.59214 20.3438C8.57499 20.4469 8.58696 20.5529 8.6267 20.6497C8.66645 20.7464 8.73239 20.8302 8.81712 20.8915C8.90185 20.9529 9.00201 20.9894 9.10635 20.997C9.21069 21.0045 9.31507 20.9829 9.40776 20.9344L11.7 19.725L13.9968 20.9344C14.0895 20.9829 14.1939 21.0045 14.2982 20.997C14.4026 20.9894 14.5027 20.9529 14.5875 20.8915C14.6722 20.8302 14.7381 20.7464 14.7779 20.6497C14.8176 20.5529 14.8296 20.4469 14.8125 20.3438L14.3718 17.7844L16.2281 15.975C16.3036 15.902 16.3572 15.8092 16.3827 15.7073C16.4083 15.6053 16.4047 15.4983 16.3725 15.3982C16.3403 15.2982 16.2807 15.2092 16.2005 15.1413C16.1203 15.0734 16.0227 15.0293 15.9187 15.0141ZM19.95 3H17.7V5.25C17.7 5.44891 17.6209 5.63968 17.4803 5.78033C17.3396 5.92098 17.1489 6 16.95 6H15.45C15.251 6 15.0603 5.92098 14.9196 5.78033C14.779 5.63968 14.7 5.44891 14.7 5.25V3H8.69995V5.25C8.69995 5.44891 8.62093 5.63968 8.48028 5.78033C8.33963 5.92098 8.14886 6 7.94995 6H6.44995C6.25104 6 6.06027 5.92098 5.91962 5.78033C5.77897 5.63968 5.69995 5.44891 5.69995 5.25V3H3.44995C2.85321 3 2.28092 3.23705 1.85896 3.65901C1.437 4.08097 1.19995 4.65326 1.19995 5.25L1.19995 9H22.2V5.25C22.2 4.65326 21.9629 4.08097 21.5409 3.65901C21.119 3.23705 20.5467 3 19.95 3Z",fill:"#2C3336"})))},SvgEventDetails=function(e){return React__namespace.createElement("svg",_extends$y({viewBox:"0 0 32 32",fill:"none"},e),React__namespace.createElement("g",{id:"event_details"},React__namespace.createElement("mask",{id:"mask0_4_1726",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:32,height:32},_rect$7||(_rect$7=React__namespace.createElement("rect",{id:"Bounding box",width:32,height:32,fill:"#D9D9D9"}))),_g$a||(_g$a=React__namespace.createElement("g",{mask:"url(#mask0_4_1726)"},React__namespace.createElement("path",{id:"text_ad",d:"M5.33333 26.6667C4.6 26.6667 3.97222 26.4056 3.45 25.8833C2.92778 25.3611 2.66667 24.7333 2.66667 24V8C2.66667 7.26667 2.92778 6.63889 3.45 6.11667C3.97222 5.59444 4.6 5.33333 5.33333 5.33333H26.6667C27.4 5.33333 28.0278 5.59444 28.55 6.11667C29.0722 6.63889 29.3333 7.26667 29.3333 8V24C29.3333 24.7333 29.0722 25.3611 28.55 25.8833C28.0278 26.4056 27.4 26.6667 26.6667 26.6667H5.33333ZM5.33333 24H26.6667V8H5.33333V24ZM8 22.6667H24C24.3778 22.6667 24.6944 22.5389 24.95 22.2833C25.2056 22.0278 25.3333 21.7111 25.3333 21.3333C25.3333 20.9556 25.2056 20.6389 24.95 20.3833C24.6944 20.1278 24.3778 20 24 20H8C7.62222 20 7.30556 20.1278 7.05 20.3833C6.79444 20.6389 6.66667 20.9556 6.66667 21.3333C6.66667 21.7111 6.79444 22.0278 7.05 22.2833C7.30556 22.5389 7.62222 22.6667 8 22.6667ZM8 17.3333H24C24.3778 17.3333 24.6944 17.2056 24.95 16.95C25.2056 16.6944 25.3333 16.3778 25.3333 16C25.3333 15.6222 25.2056 15.3056 24.95 15.05C24.6944 14.7944 24.3778 14.6667 24 14.6667H8C7.62222 14.6667 7.30556 14.7944 7.05 15.05C6.79444 15.3056 6.66667 15.6222 6.66667 16C6.66667 16.3778 6.79444 16.6944 7.05 16.95C7.30556 17.2056 7.62222 17.3333 8 17.3333ZM8 12H18.6667C19.0444 12 19.3611 11.8722 19.6167 11.6167C19.8722 11.3611 20 11.0444 20 10.6667C20 10.2889 19.8722 9.97222 19.6167 9.71667C19.3611 9.46111 19.0444 9.33333 18.6667 9.33333H8C7.62222 9.33333 7.30556 9.46111 7.05 9.71667C6.79444 9.97222 6.66667 10.2889 6.66667 10.6667C6.66667 11.0444 6.79444 11.3611 7.05 11.6167C7.30556 11.8722 7.62222 12 8 12Z",fill:"#11B06E"})))))},SvgEventRepeat=function(e){return React__namespace.createElement("svg",_extends$x({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("g",{id:"event_repeat"},React__namespace.createElement("mask",{id:"mask0_4_1974",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$6||(_rect$6=React__namespace.createElement("rect",{id:"Bounding box",width:24,height:24,fill:"#D9D9D9"}))),_g$9||(_g$9=React__namespace.createElement("g",{mask:"url(#mask0_4_1974)"},React__namespace.createElement("path",{id:"event_repeat_2",d:"M5 22C4.45 22 3.97917 21.8042 3.5875 21.4125C3.19583 21.0208 3 20.55 3 20V6C3 5.45 3.19583 4.97917 3.5875 4.5875C3.97917 4.19583 4.45 4 5 4H6V3C6 2.71667 6.09583 2.47917 6.2875 2.2875C6.47917 2.09583 6.71667 2 7 2C7.28333 2 7.52083 2.09583 7.7125 2.2875C7.90417 2.47917 8 2.71667 8 3V4H16V3C16 2.71667 16.0958 2.47917 16.2875 2.2875C16.4792 2.09583 16.7167 2 17 2C17.2833 2 17.5208 2.09583 17.7125 2.2875C17.9042 2.47917 18 2.71667 18 3V4H19C19.55 4 20.0208 4.19583 20.4125 4.5875C20.8042 4.97917 21 5.45 21 6V11C21 11.2833 20.9042 11.5208 20.7125 11.7125C20.5208 11.9042 20.2833 12 20 12C19.7167 12 19.4792 11.9042 19.2875 11.7125C19.0958 11.5208 19 11.2833 19 11V10H5V20H11C11.2833 20 11.5208 20.0958 11.7125 20.2875C11.9042 20.4792 12 20.7167 12 21C12 21.2833 11.9042 21.5208 11.7125 21.7125C11.5208 21.9042 11.2833 22 11 22H5ZM19 24C17.9333 24 16.9792 23.7042 16.1375 23.1125C15.2958 22.5208 14.6917 21.75 14.325 20.8C14.2417 20.6167 14.2625 20.4375 14.3875 20.2625C14.5125 20.0875 14.675 20 14.875 20C15.1083 20 15.3208 20.0708 15.5125 20.2125C15.7042 20.3542 15.8583 20.5333 15.975 20.75C16.275 21.2833 16.6917 21.7083 17.225 22.025C17.7583 22.3417 18.35 22.5 19 22.5C19.9667 22.5 20.7917 22.1583 21.475 21.475C22.1583 20.7917 22.5 19.9667 22.5 19C22.5 18.0333 22.1583 17.2083 21.475 16.525C20.7917 15.8417 19.9667 15.5 19 15.5C18.5167 15.5 18.0667 15.5875 17.65 15.7625C17.2333 15.9375 16.8667 16.1833 16.55 16.5H17.25C17.4667 16.5 17.6458 16.5708 17.7875 16.7125C17.9292 16.8542 18 17.0333 18 17.25C18 17.4667 17.9292 17.6458 17.7875 17.7875C17.6458 17.9292 17.4667 18 17.25 18H15C14.7167 18 14.4792 17.9042 14.2875 17.7125C14.0958 17.5208 14 17.2833 14 17V14.75C14 14.5333 14.0708 14.3542 14.2125 14.2125C14.3542 14.0708 14.5333 14 14.75 14C14.9667 14 15.1458 14.0708 15.2875 14.2125C15.4292 14.3542 15.5 14.5333 15.5 14.75V15.425C15.95 14.9917 16.475 14.6458 17.075 14.3875C17.675 14.1292 18.3167 14 19 14C20.3833 14 21.5625 14.4875 22.5375 15.4625C23.5125 16.4375 24 17.6167 24 19C24 20.3833 23.5125 21.5625 22.5375 22.5375C21.5625 23.5125 20.3833 24 19 24ZM5 8H19V6H5V8Z",fill:"#6C737A"})))))},SvgToday=function(e){return React__namespace.createElement("svg",_extends$w({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("g",{id:"today"},React__namespace.createElement("mask",{id:"mask0_4_1966",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$5||(_rect$5=React__namespace.createElement("rect",{id:"Bounding box",width:24,height:24,fill:"#D9D9D9"}))),_g$8||(_g$8=React__namespace.createElement("g",{mask:"url(#mask0_4_1966)"},React__namespace.createElement("path",{id:"today_2",d:"M9 16.5C8.3 16.5 7.70833 16.2583 7.225 15.775C6.74167 15.2917 6.5 14.7 6.5 14C6.5 13.3 6.74167 12.7083 7.225 12.225C7.70833 11.7417 8.3 11.5 9 11.5C9.7 11.5 10.2917 11.7417 10.775 12.225C11.2583 12.7083 11.5 13.3 11.5 14C11.5 14.7 11.2583 15.2917 10.775 15.775C10.2917 16.2583 9.7 16.5 9 16.5ZM5 22C4.45 22 3.97917 21.8042 3.5875 21.4125C3.19583 21.0208 3 20.55 3 20V6C3 5.45 3.19583 4.97917 3.5875 4.5875C3.97917 4.19583 4.45 4 5 4H6V3C6 2.71667 6.09583 2.47917 6.2875 2.2875C6.47917 2.09583 6.71667 2 7 2C7.28333 2 7.52083 2.09583 7.7125 2.2875C7.90417 2.47917 8 2.71667 8 3V4H16V3C16 2.71667 16.0958 2.47917 16.2875 2.2875C16.4792 2.09583 16.7167 2 17 2C17.2833 2 17.5208 2.09583 17.7125 2.2875C17.9042 2.47917 18 2.71667 18 3V4H19C19.55 4 20.0208 4.19583 20.4125 4.5875C20.8042 4.97917 21 5.45 21 6V20C21 20.55 20.8042 21.0208 20.4125 21.4125C20.0208 21.8042 19.55 22 19 22H5ZM5 20H19V10H5V20ZM5 8H19V6H5V8Z",fill:"#02BF6F"})))))},SvgPeople=function(e){return React__namespace.createElement("svg",_extends$v({viewBox:"0 0 24 18"},e),_path$o||(_path$o=React__namespace.createElement("path",{d:"M7.2 9c2.321 0 4.2-1.879 4.2-4.2S9.521.6 7.2.6A4.198 4.198 0 0 0 3 4.8C3 7.121 4.879 9 7.2 9Zm2.88 1.2h-.311c-.78.375-1.646.6-2.569.6a5.92 5.92 0 0 1-2.569-.6H4.32A4.321 4.321 0 0 0 0 14.52v1.08a1.8 1.8 0 0 0 1.8 1.8h10.8a1.8 1.8 0 0 0 1.8-1.8v-1.08a4.321 4.321 0 0 0-4.32-4.32ZM18 9a3.6 3.6 0 0 0 0-7.2A3.6 3.6 0 0 0 18 9Zm1.8 1.2h-.143c-.52.18-1.072.3-1.657.3s-1.136-.12-1.657-.3H16.2c-.765 0-1.47.221-2.089.578A5.488 5.488 0 0 1 15.6 14.52v1.44c0 .082-.019.161-.022.24H22.2a1.8 1.8 0 0 0 1.8-1.8c0-2.321-1.879-4.2-4.2-4.2Z",fill:"#BBB"})))},SvgPeopleCommunity=function(e){return React__namespace.createElement("svg",_extends$u({fill:"#FFF",viewBox:"0 0 24 18"},e),_path$n||(_path$n=React__namespace.createElement("path",{d:"M3.6 7.799a2.4 2.4 0 1 0 0-4.8 2.4 2.4 0 0 0 0 4.8Zm8.4 1.2a3.6 3.6 0 0 0 3.6-3.6v-.6H8.4v.6a3.6 3.6 0 0 0 3.6 3.6Zm9.6 0h-2.4c-.66 0-1.256.266-1.69.697a5.496 5.496 0 0 1 2.817 4.103H22.8a1.2 1.2 0 0 0 1.2-1.2v-1.2a2.4 2.4 0 0 0-2.4-2.4Zm-15.11.697a2.392 2.392 0 0 0-1.69-.697H2.4a2.4 2.4 0 0 0-2.4 2.4v1.2a1.2 1.2 0 0 0 1.2 1.2h2.473A5.495 5.495 0 0 1 6.49 9.696ZM20.4 7.799a2.4 2.4 0 1 0 0-4.8 2.4 2.4 0 0 0 0 4.8Zm-5.52 2.4h-.312c-.781.373-1.646.6-2.568.6a5.933 5.933 0 0 1-2.568-.6H9.12a4.32 4.32 0 0 0-4.32 4.32v1.08a1.8 1.8 0 0 0 1.8 1.8h10.8a1.8 1.8 0 0 0 1.8-1.8v-1.08a4.32 4.32 0 0 0-4.32-4.32Zm.72-9.6-1.8.9-1.8-.9-1.8.9-1.8-.9v3h7.2v-3Z"})))},SvgPerson=function(e){return React__namespace.createElement("svg",_extends$t({viewBox:"0 0 24 24",fill:"none"},e),_path$m||(_path$m=React__namespace.createElement("path",{id:"person_2",d:"M12 12C10.9 12 9.95833 11.6083 9.175 10.825C8.39167 10.0417 8 9.1 8 8C8 6.9 8.39167 5.95833 9.175 5.175C9.95833 4.39167 10.9 4 12 4C13.1 4 14.0417 4.39167 14.825 5.175C15.6083 5.95833 16 6.9 16 8C16 9.1 15.6083 10.0417 14.825 10.825C14.0417 11.6083 13.1 12 12 12ZM18 20H6C5.45 20 4.97917 19.8042 4.5875 19.4125C4.19583 19.0208 4 18.55 4 18V17.2C4 16.6333 4.14583 16.1125 4.4375 15.6375C4.72917 15.1625 5.11667 14.8 5.6 14.55C6.63333 14.0333 7.68333 13.6458 8.75 13.3875C9.81667 13.1292 10.9 13 12 13C13.1 13 14.1833 13.1292 15.25 13.3875C16.3167 13.6458 17.3667 14.0333 18.4 14.55C18.8833 14.8 19.2708 15.1625 19.5625 15.6375C19.8542 16.1125 20 16.6333 20 17.2V18C20 18.55 19.8042 19.0208 19.4125 19.4125C19.0208 19.8042 18.55 20 18 20ZM6 18H18V17.2C18 17.0167 17.9542 16.85 17.8625 16.7C17.7708 16.55 17.65 16.4333 17.5 16.35C16.6 15.9 15.6917 15.5625 14.775 15.3375C13.8583 15.1125 12.9333 15 12 15C11.0667 15 10.1417 15.1125 9.225 15.3375C8.30833 15.5625 7.4 15.9 6.5 16.35C6.35 16.4333 6.22917 16.55 6.1375 16.7C6.04583 16.85 6 17.0167 6 17.2V18ZM12 10C12.55 10 13.0208 9.80417 13.4125 9.4125C13.8042 9.02083 14 8.55 14 8C14 7.45 13.8042 6.97917 13.4125 6.5875C13.0208 6.19583 12.55 6 12 6C11.45 6 10.9792 6.19583 10.5875 6.5875C10.1958 6.97917 10 7.45 10 8C10 8.55 10.1958 9.02083 10.5875 9.4125C10.9792 9.80417 11.45 10 12 10Z",fill:"#2C3336"})))},SvgPersonDelete=function(e){return React__namespace.createElement("svg",_extends$s({viewBox:"0 0 24 24"},e),_path$l||(_path$l=React__namespace.createElement("path",{fill:"#212121",d:"M17.5 12a5.5 5.5 0 1 1 0 11 5.5 5.5 0 0 1 0-11Zm-5.478 2a6.47 6.47 0 0 0-.708 1.5h-7.06a.75.75 0 0 0-.75.75v.907c0 .656.286 1.279.783 1.706C5.545 19.945 7.44 20.501 10 20.501c.599 0 1.161-.03 1.688-.09.25.5.563.963.93 1.38-.803.14-1.676.21-2.618.21-2.89 0-5.128-.657-6.691-2a3.75 3.75 0 0 1-1.305-2.844v-.907A2.25 2.25 0 0 1 4.254 14h7.768Zm3.071.966-.07.058-.057.07a.5.5 0 0 0 0 .568l.058.07 1.77 1.769-1.768 1.766-.057.07a.5.5 0 0 0 0 .568l.057.07.07.057a.5.5 0 0 0 .568 0l.07-.057 1.766-1.767 1.77 1.769.069.058a.5.5 0 0 0 .568 0l.07-.058.057-.07a.5.5 0 0 0 0-.568l-.057-.07-1.77-1.768 1.772-1.77.058-.069a.5.5 0 0 0 0-.569l-.058-.069-.069-.058a.5.5 0 0 0-.569 0l-.069.058-1.772 1.77-1.77-1.77-.068-.058a.5.5 0 0 0-.493-.043l-.076.043ZM10 2.005a5 5 0 1 1 0 10 5 5 0 0 1 0-10Zm0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7Z"})))},SvgSmile=function(e){return React__namespace.createElement("svg",_extends$r({viewBox:"0 0 20 20",fill:"none"},e),_path$k||(_path$k=React__namespace.createElement("path",{id:"path",d:"M10 0.3125C4.64844 0.3125 0.3125 4.64844 0.3125 10C0.3125 15.3516 4.64844 19.6875 10 19.6875C15.3516 19.6875 19.6875 15.3516 19.6875 10C19.6875 4.64844 15.3516 0.3125 10 0.3125ZM10 17.8125C5.69141 17.8125 2.1875 14.3086 2.1875 10C2.1875 5.69141 5.69141 2.1875 10 2.1875C14.3086 2.1875 17.8125 5.69141 17.8125 10C17.8125 14.3086 14.3086 17.8125 10 17.8125ZM6.875 9.375C7.56641 9.375 8.125 8.81641 8.125 8.125C8.125 7.43359 7.56641 6.875 6.875 6.875C6.18359 6.875 5.625 7.43359 5.625 8.125C5.625 8.81641 6.18359 9.375 6.875 9.375ZM13.125 9.375C13.8164 9.375 14.375 8.81641 14.375 8.125C14.375 7.43359 13.8164 6.875 13.125 6.875C12.4336 6.875 11.875 7.43359 11.875 8.125C11.875 8.81641 12.4336 9.375 13.125 9.375ZM13.2812 12.2109C12.4688 13.1875 11.2695 13.75 10 13.75C8.73047 13.75 7.53125 13.1914 6.71875 12.2109C6.38672 11.8125 5.79297 11.7617 5.39844 12.0898C5 12.4219 4.94922 13.0117 5.27734 13.4102C6.44922 14.8164 8.17188 15.6211 10 15.6211C11.8281 15.6211 13.5508 14.8164 14.7227 13.4102C15.0547 13.0117 15 12.4219 14.6016 12.0898C14.207 11.7617 13.6133 11.8125 13.2812 12.2109Z",fill:"#9FA6AD"})))},SvgLocation=function(e){return React__namespace.createElement("svg",_extends$q({viewBox:"0 0 24 24",fill:"none"},e),_path$j||(_path$j=React__namespace.createElement("path",{d:"M12 19.35C14.0333 17.4833 15.5417 15.7875 16.525 14.2625C17.5083 12.7375 18 11.3833 18 10.2C18 8.38333 17.4208 6.89583 16.2625 5.7375C15.1042 4.57917 13.6833 4 12 4C10.3167 4 8.89583 4.57917 7.7375 5.7375C6.57917 6.89583 6 8.38333 6 10.2C6 11.3833 6.49167 12.7375 7.475 14.2625C8.45833 15.7875 9.96667 17.4833 12 19.35ZM12 21.325C11.7667 21.325 11.5333 21.2833 11.3 21.2C11.0667 21.1167 10.8583 20.9917 10.675 20.825C9.59167 19.825 8.63333 18.85 7.8 17.9C6.96667 16.95 6.27083 16.0292 5.7125 15.1375C5.15417 14.2458 4.72917 13.3875 4.4375 12.5625C4.14583 11.7375 4 10.95 4 10.2C4 7.7 4.80417 5.70833 6.4125 4.225C8.02083 2.74167 9.88333 2 12 2C14.1167 2 15.9792 2.74167 17.5875 4.225C19.1958 5.70833 20 7.7 20 10.2C20 10.95 19.8542 11.7375 19.5625 12.5625C19.2708 13.3875 18.8458 14.2458 18.2875 15.1375C17.7292 16.0292 17.0333 16.95 16.2 17.9C15.3667 18.85 14.4083 19.825 13.325 20.825C13.1417 20.9917 12.9333 21.1167 12.7 21.2C12.4667 21.2833 12.2333 21.325 12 21.325ZM12 12C12.55 12 13.0208 11.8042 13.4125 11.4125C13.8042 11.0208 14 10.55 14 10C14 9.45 13.8042 8.97917 13.4125 8.5875C13.0208 8.19583 12.55 8 12 8C11.45 8 10.9792 8.19583 10.5875 8.5875C10.1958 8.97917 10 9.45 10 10C10 10.55 10.1958 11.0208 10.5875 11.4125C10.9792 11.8042 11.45 12 12 12Z",fill:"#1C1B1F"})))},SvgSidebar=function(e){return React__namespace.createElement("svg",_extends$p({viewBox:"0 0 24 24",fill:"none"},e),_path$i||(_path$i=React__namespace.createElement("path",{d:"M8.85719 3H15.1428C16.2266 2.99999 17.1007 2.99998 17.8086 3.05782C18.5375 3.11737 19.1777 3.24318 19.77 3.54497C20.7108 4.02433 21.4757 4.78924 21.955 5.73005C22.2568 6.32234 22.3826 6.96253 22.4422 7.69138C22.5 8.39925 22.5 9.27339 22.5 10.3572V13.6428C22.5 14.7266 22.5 15.6008 22.4422 16.3086C22.3826 17.0375 22.2568 17.6777 21.955 18.27C21.4757 19.2108 20.7108 19.9757 19.77 20.455C19.1777 20.7568 18.5375 20.8826 17.8086 20.9422C17.1008 21 16.2266 21 15.1428 21H8.85717C7.77339 21 6.89925 21 6.19138 20.9422C5.46253 20.8826 4.82234 20.7568 4.23005 20.455C3.28924 19.9757 2.52433 19.2108 2.04497 18.27C1.74318 17.6777 1.61737 17.0375 1.55782 16.3086C1.49998 15.6007 1.49999 14.7266 1.5 13.6428V10.3572C1.49999 9.27341 1.49998 8.39926 1.55782 7.69138C1.61737 6.96253 1.74318 6.32234 2.04497 5.73005C2.52433 4.78924 3.28924 4.02433 4.23005 3.54497C4.82234 3.24318 5.46253 3.11737 6.19138 3.05782C6.89926 2.99998 7.77341 2.99999 8.85719 3ZM6.35424 5.05118C5.74907 5.10062 5.40138 5.19279 5.13803 5.32698C4.57354 5.6146 4.1146 6.07354 3.82698 6.63803C3.69279 6.90138 3.60062 7.24907 3.55118 7.85424C3.50078 8.47108 3.5 9.26339 3.5 10.4V13.6C3.5 14.7366 3.50078 15.5289 3.55118 16.1458C3.60062 16.7509 3.69279 17.0986 3.82698 17.362C4.1146 17.9265 4.57354 18.3854 5.13803 18.673C5.40138 18.8072 5.74907 18.8994 6.35424 18.9488C6.97108 18.9992 7.76339 19 8.9 19H9.5V5H8.9C7.76339 5 6.97108 5.00078 6.35424 5.05118ZM11.5 5V19H15.1C16.2366 19 17.0289 18.9992 17.6458 18.9488C18.2509 18.8994 18.5986 18.8072 18.862 18.673C19.4265 18.3854 19.8854 17.9265 20.173 17.362C20.3072 17.0986 20.3994 16.7509 20.4488 16.1458C20.4992 15.5289 20.5 14.7366 20.5 13.6V10.4C20.5 9.26339 20.4992 8.47108 20.4488 7.85424C20.3994 7.24907 20.3072 6.90138 20.173 6.63803C19.8854 6.07354 19.4265 5.6146 18.862 5.32698C18.5986 5.19279 18.2509 5.10062 17.6458 5.05118C17.0289 5.00078 16.2366 5 15.1 5H11.5ZM5 8.5C5 7.94772 5.44772 7.5 6 7.5H7C7.55229 7.5 8 7.94772 8 8.5C8 9.05229 7.55229 9.5 7 9.5H6C5.44772 9.5 5 9.05229 5 8.5ZM5 12C5 11.4477 5.44772 11 6 11H7C7.55229 11 8 11.4477 8 12C8 12.5523 7.55229 13 7 13H6C5.44772 13 5 12.5523 5 12Z",fill:"currentColor"})))},SvgSpotlight=function(e){return React__namespace.createElement("svg",_extends$o({fill:"none",viewBox:"0 0 17 16"},e),_path$h||(_path$h=React__namespace.createElement("path",{fill:"#5D676B",d:"M2.004 0A1.877 1.877 0 0 0 .9.314l-.02.02H.858c-.835.65-1.15 1.858-.542 2.77v.022l.812 1.125.375.541.542-.375 2.208-1.541.542-.375-.375-.542L3.69.897 3.67.876V.855A2.266 2.266 0 0 0 2.379.042a2.008 2.008 0 0 0-.375-.041Zm3.73 3.396-1.126.73L2.942 5.27 1.796 6l2.23 7.79c.047.458.333.817.666 1.063.363.269.804.46 1.333.625 1.057.33 2.45.521 3.979.521s2.922-.19 3.979-.52c.528-.166.97-.357 1.333-.626.363-.268.688-.669.688-1.187 0-.519-.325-.92-.688-1.188a2.855 2.855 0 0 0-.292-.187l-9.29-8.896Zm4.27 9.27c1.416 0 2.69.186 3.562.46.437.136.782.306.959.437a.852.852 0 0 1 .124.104.861.861 0 0 1-.124.104c-.177.13-.522.301-.959.437-.873.273-2.146.459-3.562.459s-2.69-.186-3.562-.459c-.437-.136-.782-.307-.959-.437a.86.86 0 0 1-.125-.104.852.852 0 0 1 .125-.104c.177-.13.522-.302.959-.438.873-.273 2.146-.458 3.562-.458Z"})))},SvgOutStage=function(e){return React__namespace.createElement("svg",_extends$n({fill:"#BBB",viewBox:"0 0 33 24"},e),_path$g||(_path$g=React__namespace.createElement("path",{d:"M6 0h5.25c.412 0 .75.338.75.75v1.5c0 .413-.338.75-.75.75H6a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h5.25c.412 0 .75.337.75.75v1.5c0 .413-.338.75-.75.75H6c-3.313 0-6-2.688-6-6V6c0-3.313 2.688-6 6-6Zm14.444 1.219-1.225 1.225c-.3.3-.294.781.012 1.069l7.069 6.862H10.75a.752.752 0 0 0-.75.75v1.75c0 .412.338.75.75.75H26.3l-7.069 6.856a.753.753 0 0 0-.012 1.069l1.225 1.225a.75.75 0 0 0 1.062 0l10.275-10.25a.75.75 0 0 0 0-1.063L21.506 1.213a.756.756 0 0 0-1.062.007Z"})))},SvgPresentation=function(e){return React__namespace.createElement("svg",_extends$m({viewBox:"0 0 12 12"},e),_path$f||(_path$f=React__namespace.createElement("path",{d:"M11.667.667H.333A.333.333 0 0 0 0 1v.333c0 .184.15.334.333.334h.334v5.666c0 .368.298.667.666.667H5.5v.91l-1.618 1.618a.333.333 0 0 0 0 .472l.236.236c.13.13.341.13.471 0L6 9.825l1.41 1.41c.131.13.342.13.472 0L8.118 11a.333.333 0 0 0 0-.472L6.5 8.911V8h4.167a.667.667 0 0 0 .666-.667V1.666h.334A.333.333 0 0 0 12 1.333V1a.333.333 0 0 0-.333-.333ZM10.333 7H1.667V1.667h8.666V7Z"})))},SvgScreenPerson=function(e){return React__namespace.createElement("svg",_extends$l({viewBox:"0 0 20 20"},e),_path$e||(_path$e=React__namespace.createElement("path",{fill:"#D0D5DD",d:"M17.745 2a2.25 2.25 0 0 1 2.25 2.25v11.505a2.25 2.25 0 0 1-2.25 2.25H2.25A2.25 2.25 0 0 1 0 15.755V4.25A2.25 2.25 0 0 1 2.25 2h15.495Zm0 1.5H2.25a.75.75 0 0 0-.75.75v11.505c0 .414.336.75.75.75l2.749-.001L5 13.75a1.75 1.75 0 0 1 1.606-1.744L6.75 12h6.495a1.75 1.75 0 0 1 1.744 1.607l.006.143-.001 2.754h2.751a.75.75 0 0 0 .75-.75V4.25a.75.75 0 0 0-.75-.75Zm-4.5 10H6.75a.25.25 0 0 0-.243.193l-.007.057-.001 2.754h6.995V13.75a.25.25 0 0 0-.192-.243l-.057-.007ZM10 5a3 3 0 1 1 0 6 3 3 0 0 1 0-6Zm0 1.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z"})))},SvgScreenScareWindows=function(e){return React__namespace.createElement("svg",_extends$k({fill:"none",viewBox:"0 0 24 24"},e),_path$d||(_path$d=React__namespace.createElement("path",{fill:"#2C3336",d:"M21.75 0h-15A2.25 2.25 0 0 0 4.5 2.25V4.5H2.25A2.25 2.25 0 0 0 0 6.75v15A2.25 2.25 0 0 0 2.25 24h15a2.25 2.25 0 0 0 2.25-2.25V19.5h2.25A2.25 2.25 0 0 0 24 17.25v-15A2.25 2.25 0 0 0 21.75 0Zm-4.5 21.75h-15V12h15v9.75Zm4.5-4.5H19.5V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75V2.25h15v15Z"})))},SvgScreenSharing=function(e){return React__namespace.createElement("svg",_extends$j({fill:"#BBB",className:"demio-icon",style:{fontSize:20},viewBox:"0 0 20 18"},e),_path$c||(_path$c=React__namespace.createElement("path",{d:"M18.333 0H1.667C.747 0 0 .756 0 1.688v11.25c0 .931.747 1.687 1.667 1.687h6.666l-.555 1.688h-2.5a.837.837 0 0 0-.834.843c0 .468.372.844.834.844h9.444a.837.837 0 0 0 .834-.844.837.837 0 0 0-.834-.843h-2.5l-.555-1.688h6.666c.92 0 1.667-.756 1.667-1.688V1.688C20 .756 19.253 0 18.333 0Zm-.555 12.375H2.222V2.25h15.556v10.125Z"})))},SvgStage=function(e){return React__namespace.createElement("svg",_extends$i({viewBox:"0 0 20 20",fill:"none"},e),_path$b||(_path$b=React__namespace.createElement("path",{fill:"#98A2B3",d:"M18.245 10.997c.709 0 1.022.892.469 1.335l-4.718 3.778v1.644a2.25 2.25 0 0 1-2.25 2.25H8.25A2.25 2.25 0 0 1 6 17.754V16.11l-4.72-3.778c-.553-.443-.24-1.335.47-1.335h16.495Zm-2.137 1.5H3.887l3.332 2.667a.75.75 0 0 1 .281.585v2.005c0 .414.336.75.75.75h3.496a.75.75 0 0 0 .75-.75V15.75a.75.75 0 0 1 .281-.585l3.331-2.667ZM6.75 7h6.495a1.75 1.75 0 0 1 1.744 1.606l.006.144V10h-1.5V8.75a.25.25 0 0 0-.192-.244l-.058-.006H6.75a.25.25 0 0 0-.243.192L6.5 8.75V10H5V8.75a1.75 1.75 0 0 1 1.607-1.745L6.75 7h6.495H6.75ZM10 0a3 3 0 1 1 0 6 3 3 0 0 1 0-6Zm0 1.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z"})))},SvgBlock=function(e){return React__namespace.createElement("svg",_extends$h({viewBox:"0 0 24 24",fill:"none"},e),React__namespace.createElement("mask",{id:"a",maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},_path$a||(_path$a=React__namespace.createElement("path",{fill:"#D9D9D9",d:"M0 0h24v24H0z"}))),_g$7||(_g$7=React__namespace.createElement("g",{mask:"url(#a)"},React__namespace.createElement("path",{fill:"#42454B",d:"M12.002 21.5a9.255 9.255 0 0 1-3.705-.748 9.598 9.598 0 0 1-3.018-2.03 9.591 9.591 0 0 1-2.03-3.016 9.245 9.245 0 0 1-.749-3.704c0-1.314.25-2.55.748-3.705a9.597 9.597 0 0 1 2.03-3.018 9.592 9.592 0 0 1 3.016-2.03 9.245 9.245 0 0 1 3.704-.749c1.314 0 2.55.25 3.705.748a9.597 9.597 0 0 1 3.018 2.03 9.592 9.592 0 0 1 2.03 3.016 9.245 9.245 0 0 1 .749 3.704c0 1.314-.25 2.55-.748 3.705a9.598 9.598 0 0 1-2.03 3.018 9.592 9.592 0 0 1-3.016 2.03 9.245 9.245 0 0 1-3.704.749ZM12 20c2.233 0 4.125-.775 5.675-2.325C19.225 16.125 20 14.233 20 12c0-.938-.16-1.842-.48-2.71a8.124 8.124 0 0 0-1.374-2.382L6.908 18.146a7.93 7.93 0 0 0 2.382 1.378A7.839 7.839 0 0 0 12 20Zm-6.146-2.908L17.092 5.854a7.62 7.62 0 0 0-2.375-1.383A7.947 7.947 0 0 0 12 4c-2.233 0-4.125.775-5.675 2.325C4.775 7.875 4 9.767 4 12c0 .938.159 1.842.476 2.71a7.93 7.93 0 0 0 1.378 2.382Z"}))))},SvgBlurOn=function(e){return React__namespace.createElement("svg",_extends$g({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("mask",{id:"mask0_6_3070",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$4||(_rect$4=React__namespace.createElement("rect",{width:24,height:24,fill:"#D9D9D9"}))),_g$6||(_g$6=React__namespace.createElement("g",{mask:"url(#mask0_6_3070)"},React__namespace.createElement("path",{d:"M3 14.5C2.86667 14.5 2.75 14.45 2.65 14.35C2.55 14.25 2.5 14.1333 2.5 14C2.5 13.8667 2.55 13.75 2.65 13.65C2.75 13.55 2.86667 13.5 3 13.5C3.13333 13.5 3.25 13.55 3.35 13.65C3.45 13.75 3.5 13.8667 3.5 14C3.5 14.1333 3.45 14.25 3.35 14.35C3.25 14.45 3.13333 14.5 3 14.5ZM3 10.5C2.86667 10.5 2.75 10.45 2.65 10.35C2.55 10.25 2.5 10.1333 2.5 10C2.5 9.86667 2.55 9.75 2.65 9.65C2.75 9.55 2.86667 9.5 3 9.5C3.13333 9.5 3.25 9.55 3.35 9.65C3.45 9.75 3.5 9.86667 3.5 10C3.5 10.1333 3.45 10.25 3.35 10.35C3.25 10.45 3.13333 10.5 3 10.5ZM6 18.9231C5.73847 18.9231 5.51923 18.8346 5.3423 18.6577C5.16538 18.4808 5.07693 18.2615 5.07693 18C5.07693 17.7385 5.16538 17.5192 5.3423 17.3423C5.51923 17.1654 5.73847 17.0769 6 17.0769C6.26153 17.0769 6.48077 17.1654 6.6577 17.3423C6.83462 17.5192 6.92308 17.7385 6.92308 18C6.92308 18.2615 6.83462 18.4808 6.6577 18.6577C6.48077 18.8346 6.26153 18.9231 6 18.9231ZM6 14.9231C5.73847 14.9231 5.51923 14.8346 5.3423 14.6577C5.16538 14.4808 5.07693 14.2615 5.07693 14C5.07693 13.7385 5.16538 13.5192 5.3423 13.3423C5.51923 13.1654 5.73847 13.0769 6 13.0769C6.26153 13.0769 6.48077 13.1654 6.6577 13.3423C6.83462 13.5192 6.92308 13.7385 6.92308 14C6.92308 14.2615 6.83462 14.4808 6.6577 14.6577C6.48077 14.8346 6.26153 14.9231 6 14.9231ZM6 10.9231C5.73847 10.9231 5.51923 10.8346 5.3423 10.6577C5.16538 10.4808 5.07693 10.2615 5.07693 10C5.07693 9.73847 5.16538 9.51924 5.3423 9.34232C5.51923 9.16539 5.73847 9.07692 6 9.07692C6.26153 9.07692 6.48077 9.16539 6.6577 9.34232C6.83462 9.51924 6.92308 9.73847 6.92308 10C6.92308 10.2615 6.83462 10.4808 6.6577 10.6577C6.48077 10.8346 6.26153 10.9231 6 10.9231ZM6 6.92308C5.73847 6.92308 5.51923 6.83461 5.3423 6.65768C5.16538 6.48076 5.07693 6.26153 5.07693 6C5.07693 5.73847 5.16538 5.51924 5.3423 5.34232C5.51923 5.16539 5.73847 5.07693 6 5.07693C6.26153 5.07693 6.48077 5.16539 6.6577 5.34232C6.83462 5.51924 6.92308 5.73847 6.92308 6C6.92308 6.26153 6.83462 6.48076 6.6577 6.65768C6.48077 6.83461 6.26153 6.92308 6 6.92308ZM10.0023 15.3462C9.62897 15.3462 9.31091 15.2155 9.04808 14.9542C8.78526 14.6929 8.65385 14.3756 8.65385 14.0023C8.65385 13.629 8.78451 13.3109 9.04583 13.0481C9.30714 12.7853 9.62444 12.6538 9.99773 12.6538C10.371 12.6538 10.6891 12.7845 10.9519 13.0458C11.2147 13.3071 11.3462 13.6244 11.3462 13.9977C11.3462 14.371 11.2155 14.6891 10.9542 14.9519C10.6929 15.2147 10.3756 15.3462 10.0023 15.3462ZM10.0023 11.3462C9.62897 11.3462 9.31091 11.2155 9.04808 10.9542C8.78526 10.6929 8.65385 10.3756 8.65385 10.0023C8.65385 9.62897 8.78451 9.31091 9.04583 9.04808C9.30714 8.78526 9.62444 8.65385 9.99773 8.65385C10.371 8.65385 10.6891 8.78451 10.9519 9.04583C11.2147 9.30713 11.3462 9.62442 11.3462 9.99773C11.3462 10.371 11.2155 10.6891 10.9542 10.9519C10.6929 11.2147 10.3756 11.3462 10.0023 11.3462ZM10 18.9231C9.73847 18.9231 9.51923 18.8346 9.3423 18.6577C9.16538 18.4808 9.07692 18.2615 9.07692 18C9.07692 17.7385 9.16538 17.5192 9.3423 17.3423C9.51923 17.1654 9.73847 17.0769 10 17.0769C10.2615 17.0769 10.4808 17.1654 10.6577 17.3423C10.8346 17.5192 10.9231 17.7385 10.9231 18C10.9231 18.2615 10.8346 18.4808 10.6577 18.6577C10.4808 18.8346 10.2615 18.9231 10 18.9231ZM10 6.92308C9.73847 6.92308 9.51923 6.83461 9.3423 6.65768C9.16538 6.48076 9.07692 6.26153 9.07692 6C9.07692 5.73847 9.16538 5.51924 9.3423 5.34232C9.51923 5.16539 9.73847 5.07693 10 5.07693C10.2615 5.07693 10.4808 5.16539 10.6577 5.34232C10.8346 5.51924 10.9231 5.73847 10.9231 6C10.9231 6.26153 10.8346 6.48076 10.6577 6.65768C10.4808 6.83461 10.2615 6.92308 10 6.92308ZM10 21.5C9.86667 21.5 9.75 21.45 9.65 21.35C9.55 21.25 9.5 21.1333 9.5 21C9.5 20.8667 9.55 20.75 9.65 20.65C9.75 20.55 9.86667 20.5 10 20.5C10.1333 20.5 10.25 20.55 10.35 20.65C10.45 20.75 10.5 20.8667 10.5 21C10.5 21.1333 10.45 21.25 10.35 21.35C10.25 21.45 10.1333 21.5 10 21.5ZM10 3.5C9.86667 3.5 9.75 3.45 9.65 3.35C9.55 3.25 9.5 3.13333 9.5 3C9.5 2.86667 9.55 2.75 9.65 2.65C9.75 2.55 9.86667 2.5 10 2.5C10.1333 2.5 10.25 2.55 10.35 2.65C10.45 2.75 10.5 2.86667 10.5 3C10.5 3.13333 10.45 3.25 10.35 3.35C10.25 3.45 10.1333 3.5 10 3.5ZM14.0023 15.3462C13.629 15.3462 13.3109 15.2155 13.0481 14.9542C12.7853 14.6929 12.6538 14.3756 12.6538 14.0023C12.6538 13.629 12.7845 13.3109 13.0458 13.0481C13.3071 12.7853 13.6244 12.6538 13.9977 12.6538C14.371 12.6538 14.6891 12.7845 14.9519 13.0458C15.2147 13.3071 15.3462 13.6244 15.3462 13.9977C15.3462 14.371 15.2155 14.6891 14.9542 14.9519C14.6929 15.2147 14.3756 15.3462 14.0023 15.3462ZM14.0023 11.3462C13.629 11.3462 13.3109 11.2155 13.0481 10.9542C12.7853 10.6929 12.6538 10.3756 12.6538 10.0023C12.6538 9.62897 12.7845 9.31091 13.0458 9.04808C13.3071 8.78526 13.6244 8.65385 13.9977 8.65385C14.371 8.65385 14.6891 8.78451 14.9519 9.04583C15.2147 9.30713 15.3462 9.62442 15.3462 9.99773C15.3462 10.371 15.2155 10.6891 14.9542 10.9519C14.6929 11.2147 14.3756 11.3462 14.0023 11.3462ZM14 18.9231C13.7385 18.9231 13.5192 18.8346 13.3423 18.6577C13.1654 18.4808 13.0769 18.2615 13.0769 18C13.0769 17.7385 13.1654 17.5192 13.3423 17.3423C13.5192 17.1654 13.7385 17.0769 14 17.0769C14.2615 17.0769 14.4808 17.1654 14.6577 17.3423C14.8346 17.5192 14.9231 17.7385 14.9231 18C14.9231 18.2615 14.8346 18.4808 14.6577 18.6577C14.4808 18.8346 14.2615 18.9231 14 18.9231ZM14 6.92308C13.7385 6.92308 13.5192 6.83461 13.3423 6.65768C13.1654 6.48076 13.0769 6.26153 13.0769 6C13.0769 5.73847 13.1654 5.51924 13.3423 5.34232C13.5192 5.16539 13.7385 5.07693 14 5.07693C14.2615 5.07693 14.4808 5.16539 14.6577 5.34232C14.8346 5.51924 14.9231 5.73847 14.9231 6C14.9231 6.26153 14.8346 6.48076 14.6577 6.65768C14.4808 6.83461 14.2615 6.92308 14 6.92308ZM14 21.5C13.8667 21.5 13.75 21.45 13.65 21.35C13.55 21.25 13.5 21.1333 13.5 21C13.5 20.8667 13.55 20.75 13.65 20.65C13.75 20.55 13.8667 20.5 14 20.5C14.1333 20.5 14.25 20.55 14.35 20.65C14.45 20.75 14.5 20.8667 14.5 21C14.5 21.1333 14.45 21.25 14.35 21.35C14.25 21.45 14.1333 21.5 14 21.5ZM14 3.5C13.8667 3.5 13.75 3.45 13.65 3.35C13.55 3.25 13.5 3.13333 13.5 3C13.5 2.86667 13.55 2.75 13.65 2.65C13.75 2.55 13.8667 2.5 14 2.5C14.1333 2.5 14.25 2.55 14.35 2.65C14.45 2.75 14.5 2.86667 14.5 3C14.5 3.13333 14.45 3.25 14.35 3.35C14.25 3.45 14.1333 3.5 14 3.5ZM18 18.9231C17.7385 18.9231 17.5192 18.8346 17.3423 18.6577C17.1654 18.4808 17.0769 18.2615 17.0769 18C17.0769 17.7385 17.1654 17.5192 17.3423 17.3423C17.5192 17.1654 17.7385 17.0769 18 17.0769C18.2615 17.0769 18.4808 17.1654 18.6577 17.3423C18.8346 17.5192 18.9231 17.7385 18.9231 18C18.9231 18.2615 18.8346 18.4808 18.6577 18.6577C18.4808 18.8346 18.2615 18.9231 18 18.9231ZM18 14.9231C17.7385 14.9231 17.5192 14.8346 17.3423 14.6577C17.1654 14.4808 17.0769 14.2615 17.0769 14C17.0769 13.7385 17.1654 13.5192 17.3423 13.3423C17.5192 13.1654 17.7385 13.0769 18 13.0769C18.2615 13.0769 18.4808 13.1654 18.6577 13.3423C18.8346 13.5192 18.9231 13.7385 18.9231 14C18.9231 14.2615 18.8346 14.4808 18.6577 14.6577C18.4808 14.8346 18.2615 14.9231 18 14.9231ZM18 10.9231C17.7385 10.9231 17.5192 10.8346 17.3423 10.6577C17.1654 10.4808 17.0769 10.2615 17.0769 10C17.0769 9.73847 17.1654 9.51924 17.3423 9.34232C17.5192 9.16539 17.7385 9.07692 18 9.07692C18.2615 9.07692 18.4808 9.16539 18.6577 9.34232C18.8346 9.51924 18.9231 9.73847 18.9231 10C18.9231 10.2615 18.8346 10.4808 18.6577 10.6577C18.4808 10.8346 18.2615 10.9231 18 10.9231ZM18 6.92308C17.7385 6.92308 17.5192 6.83461 17.3423 6.65768C17.1654 6.48076 17.0769 6.26153 17.0769 6C17.0769 5.73847 17.1654 5.51924 17.3423 5.34232C17.5192 5.16539 17.7385 5.07693 18 5.07693C18.2615 5.07693 18.4808 5.16539 18.6577 5.34232C18.8346 5.51924 18.9231 5.73847 18.9231 6C18.9231 6.26153 18.8346 6.48076 18.6577 6.65768C18.4808 6.83461 18.2615 6.92308 18 6.92308ZM21 14.5C20.8667 14.5 20.75 14.45 20.65 14.35C20.55 14.25 20.5 14.1333 20.5 14C20.5 13.8667 20.55 13.75 20.65 13.65C20.75 13.55 20.8667 13.5 21 13.5C21.1333 13.5 21.25 13.55 21.35 13.65C21.45 13.75 21.5 13.8667 21.5 14C21.5 14.1333 21.45 14.25 21.35 14.35C21.25 14.45 21.1333 14.5 21 14.5ZM21 10.5C20.8667 10.5 20.75 10.45 20.65 10.35C20.55 10.25 20.5 10.1333 20.5 10C20.5 9.86667 20.55 9.75 20.65 9.65C20.75 9.55 20.8667 9.5 21 9.5C21.1333 9.5 21.25 9.55 21.35 9.65C21.45 9.75 21.5 9.86667 21.5 10C21.5 10.1333 21.45 10.25 21.35 10.35C21.25 10.45 21.1333 10.5 21 10.5Z",fill:"#2C3336"}))))},SvgCached=function(e){return React__namespace.createElement("svg",_extends$f({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("mask",{id:"a",x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},_path$9||(_path$9=React__namespace.createElement("path",{fill:"#D9D9D9",d:"M0 0h24v24H0z"}))),_g$5||(_g$5=React__namespace.createElement("g",{mask:"url(#a)"},React__namespace.createElement("path",{fill:"#2C3336",d:"M12.05 19.75c-2.163 0-4.004-.753-5.522-2.258C5.009 15.987 4.25 14.156 4.25 12v-.78l-1.323 1.322a.725.725 0 0 1-.522.213.707.707 0 0 1-.532-.213.718.718 0 0 1-.217-.527c0-.206.072-.382.217-.527l2.494-2.494A.867.867 0 0 1 5 8.724c.241 0 .452.09.633.27l2.494 2.495c.138.138.21.312.212.521a.707.707 0 0 1-.212.532.718.718 0 0 1-.527.218.718.718 0 0 1-.527-.218L5.75 11.22V12c0 1.737.612 3.213 1.835 4.428 1.223 1.215 2.711 1.822 4.465 1.822.292 0 .584-.02.874-.06.29-.04.577-.107.859-.204a.879.879 0 0 1 .603.02.81.81 0 0 1 .426.396.678.678 0 0 1 .018.585.664.664 0 0 1-.444.388c-.376.133-.762.23-1.155.288a8.049 8.049 0 0 1-1.181.087Zm-.1-14c-.292 0-.584.02-.874.06-.29.04-.577.107-.859.203a.901.901 0 0 1-.61-.02.808.808 0 0 1-.434-.395.655.655 0 0 1-.023-.57.646.646 0 0 1 .423-.388c.387-.133.78-.231 1.176-.295a7.593 7.593 0 0 1 1.201-.095c2.163 0 4.004.753 5.522 2.258C18.991 8.013 19.75 9.844 19.75 12v.78l1.323-1.322a.725.725 0 0 1 .522-.213.707.707 0 0 1 .532.213c.145.144.217.32.217.527a.717.717 0 0 1-.217.527l-2.494 2.494a.867.867 0 0 1-.633.27.867.867 0 0 1-.633-.27l-2.494-2.495a.724.724 0 0 1-.212-.522.707.707 0 0 1 .212-.531.717.717 0 0 1 .527-.218c.206 0 .382.073.527.218l1.323 1.323V12c0-1.737-.611-3.213-1.835-4.428-1.223-1.215-2.711-1.822-4.465-1.822Z"}))))},SvgCustomize=function(e){return React__namespace.createElement("svg",_extends$e({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("g",{id:"customize"},React__namespace.createElement("mask",{id:"mask0_4_1844",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:25,height:24},_rect$3||(_rect$3=React__namespace.createElement("rect",{id:"Bounding box",x:.5,width:24,height:24,fill:"#D9D9D9"}))),_g$4||(_g$4=React__namespace.createElement("g",{mask:"url(#mask0_4_1844)"},React__namespace.createElement("path",{id:"draw",d:"M14.5 21C14.2167 21 13.9792 20.9042 13.7875 20.7125C13.5958 20.5208 13.5 20.2833 13.5 20C13.5 19.7167 13.5958 19.4792 13.7875 19.2875C13.9792 19.0958 14.2167 19 14.5 19C15.2833 19 15.9792 18.8458 16.5875 18.5375C17.1958 18.2292 17.5 17.8833 17.5 17.5C17.5 17.2667 17.3917 17.05 17.175 16.85C16.9583 16.65 16.6583 16.4667 16.275 16.3L17.75 14.825C18.2833 15.1417 18.7083 15.5167 19.025 15.95C19.3417 16.3833 19.5 16.9 19.5 17.5C19.5 18.6 18.975 19.4583 17.925 20.075C16.875 20.6917 15.7333 21 14.5 21ZM5.075 13.35C4.59167 13.0667 4.20833 12.7375 3.925 12.3625C3.64167 11.9875 3.5 11.5333 3.5 11C3.5 10.3 3.75833 9.7125 4.275 9.2375C4.79167 8.7625 5.71667 8.23333 7.05 7.65C8.1 7.16667 8.77083 6.82917 9.0625 6.6375C9.35417 6.44583 9.5 6.23333 9.5 6C9.5 5.73333 9.3375 5.5 9.0125 5.3C8.6875 5.1 8.18333 5 7.5 5C7.08333 5 6.73333 5.05 6.45 5.15C6.16667 5.25 5.90833 5.41667 5.675 5.65C5.49167 5.83333 5.26667 5.94167 5 5.975C4.73333 6.00833 4.49167 5.93333 4.275 5.75C4.05833 5.58333 3.93333 5.36667 3.9 5.1C3.86667 4.83333 3.94167 4.59167 4.125 4.375C4.44167 3.99167 4.89583 3.66667 5.4875 3.4C6.07917 3.13333 6.75 3 7.5 3C8.7 3 9.66667 3.27083 10.4 3.8125C11.1333 4.35417 11.5 5.08333 11.5 6C11.5 6.65 11.2583 7.23333 10.775 7.75C10.2917 8.26667 9.31667 8.84167 7.85 9.475C6.88333 9.89167 6.25 10.2 5.95 10.4C5.65 10.6 5.5 10.8 5.5 11C5.5 11.15 5.59583 11.2958 5.7875 11.4375C5.97917 11.5792 6.24167 11.7167 6.575 11.85L5.075 13.35ZM19.35 10.4L15.1 6.15L16.15 5.1C16.55 4.7 17.0292 4.5 17.5875 4.5C18.1458 4.5 18.6167 4.7 19 5.1L20.4 6.5C20.8 6.88333 21 7.35417 21 7.9125C21 8.47083 20.8 8.95 20.4 9.35L19.35 10.4ZM6.5 19H7.9L15.1 11.8L13.7 10.4L6.5 17.6V19ZM5 21C4.86667 21 4.75 20.95 4.65 20.85C4.55 20.75 4.5 20.6333 4.5 20.5V16.95C4.5 16.9167 4.55 16.8 4.65 16.6L13.7 7.55L17.95 11.8L8.9 20.85C8.86667 20.8833 8.75 20.9333 8.55 21H5Z",fill:"#02BF6F"})))))},SvgElectricBolt=function(e){return React__namespace.createElement("svg",_extends$d({fill:"none",viewBox:"0 0 20 20"},e),React__namespace.createElement("g",{id:"electric_bolt"},React__namespace.createElement("mask",{id:"mask0_276_10129",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:20,height:20},_rect$2||(_rect$2=React__namespace.createElement("rect",{id:"Bounding box",width:20,height:20,fill:"#D9D9D9"}))),_g$3||(_g$3=React__namespace.createElement("g",{mask:"url(#mask0_276_10129)"},React__namespace.createElement("path",{id:"electric_bolt_2",d:"M9.16667 12.0834L4.22917 11.4584C3.88194 11.4167 3.65625 11.2292 3.55208 10.8959C3.44792 10.5625 3.52083 10.2778 3.77083 10.0417L12.2917 1.87502C12.3611 1.80558 12.4444 1.75349 12.5417 1.71877C12.6389 1.68405 12.7708 1.66669 12.9375 1.66669C13.2153 1.66669 13.4271 1.78474 13.5729 2.02085C13.7187 2.25696 13.7222 2.50002 13.5833 2.75002L10.8333 7.91669L15.7708 8.54169C16.1181 8.58335 16.3437 8.77085 16.4479 9.10419C16.5521 9.43752 16.4792 9.72224 16.2292 9.95835L7.70833 18.125C7.63889 18.1945 7.55555 18.2465 7.45833 18.2813C7.36111 18.316 7.22917 18.3334 7.0625 18.3334C6.78472 18.3334 6.57292 18.2153 6.42708 17.9792C6.28125 17.7431 6.27778 17.5 6.41667 17.25L9.16667 12.0834Z",fill:"#F19241"})))))},SvgFeatureAction=function(e){return React__namespace.createElement("svg",_extends$c({viewBox:"0 0 24 24"},e),_g$2||(_g$2=React__namespace.createElement("g",{clipPath:"url(#a)"},React__namespace.createElement("circle",{cx:12.125,cy:12.005,r:11.625,fill:"#fff"}),React__namespace.createElement("path",{fill:"#9FA6AD",d:"M12.125.375C5.705.375.5 5.58.5 12s5.205 11.625 11.625 11.625S23.75 18.421 23.75 12C23.75 5.58 18.546.375 12.125.375Zm0 20.25A8.62 8.62 0 0 1 3.5 12a8.62 8.62 0 0 1 8.625-8.625A8.62 8.62 0 0 1 20.75 12a8.62 8.62 0 0 1-8.625 8.625Zm0-14.625a6 6 0 1 0 0 12 6 6 0 0 0 0-12Zm0 9c-1.654 0-3-1.346-3-3s1.346-3 3-3 3 1.346 3 3-1.346 3-3 3Z"}))),_defs||(_defs=React__namespace.createElement("defs",null,React__namespace.createElement("clipPath",{id:"a"},React__namespace.createElement("path",{fill:"#fff",d:"M0 0h24v24H0z"})))))},SvgItems=function(e){return React__namespace.createElement("svg",_extends$b({fill:"none",viewBox:"0 0 24 24"},e),_path$8||(_path$8=React__namespace.createElement("path",{d:"M4.99997 11C4.59101 11 4.23877 10.8522 3.94327 10.5567C3.64776 10.2612 3.5 9.90897 3.5 9.5V4.99998C3.5 4.59101 3.64776 4.23878 3.94327 3.94328C4.23877 3.64776 4.59101 3.5 4.99997 3.5H9.5C9.90897 3.5 10.2612 3.64776 10.5567 3.94328C10.8522 4.23878 11 4.59101 11 4.99998V9.5C11 9.90897 10.8522 10.2612 10.5567 10.5567C10.2612 10.8522 9.90897 11 9.5 11H4.99997ZM4.99997 20.5C4.59101 20.5 4.23877 20.3522 3.94327 20.0567C3.64776 19.7612 3.5 19.4089 3.5 19V14.5C3.5 14.091 3.64776 13.7387 3.94327 13.4432C4.23877 13.1477 4.59101 13 4.99997 13H9.5C9.90897 13 10.2612 13.1477 10.5567 13.4432C10.8522 13.7387 11 14.091 11 14.5V19C11 19.4089 10.8522 19.7612 10.5567 20.0567C10.2612 20.3522 9.90897 20.5 9.5 20.5H4.99997ZM14.5 11C14.091 11 13.7387 10.8522 13.4432 10.5567C13.1477 10.2612 13 9.90897 13 9.5V4.99998C13 4.59101 13.1477 4.23878 13.4432 3.94328C13.7387 3.64776 14.091 3.5 14.5 3.5H19C19.4089 3.5 19.7612 3.64776 20.0567 3.94328C20.3522 4.23878 20.5 4.59101 20.5 4.99998V9.5C20.5 9.90897 20.3522 10.2612 20.0567 10.5567C19.7612 10.8522 19.4089 11 19 11H14.5ZM14.5 20.5C14.091 20.5 13.7387 20.3522 13.4432 20.0567C13.1477 19.7612 13 19.4089 13 19V14.5C13 14.091 13.1477 13.7387 13.4432 13.4432C13.7387 13.1477 14.091 13 14.5 13H19C19.4089 13 19.7612 13.1477 20.0567 13.4432C20.3522 13.7387 20.5 14.091 20.5 14.5V19C20.5 19.4089 20.3522 19.7612 20.0567 20.0567C19.7612 20.3522 19.4089 20.5 19 20.5H14.5ZM4.99997 9.5H9.5V4.99998H4.99997V9.5ZM14.5 9.5H19V4.99998H14.5V9.5ZM14.5 19H19V14.5H14.5V19ZM4.99997 19H9.5V14.5H4.99997V19Z",fill:"#5D676B"})))},SvgList=function(e){return React__namespace.createElement("svg",_extends$a({fill:"none",viewBox:"0 0 24 24"},e),_path$7||(_path$7=React__namespace.createElement("path",{d:"M4.25 6.99998C4.0375 6.99998 3.85938 6.92807 3.71563 6.78425C3.57188 6.64045 3.5 6.46225 3.5 6.24965C3.5 6.03707 3.57188 5.85898 3.71563 5.7154C3.85938 5.5718 4.0375 5.5 4.25 5.5H19.75C19.9625 5.5 20.1406 5.57191 20.2843 5.71573C20.4281 5.85954 20.5 6.03774 20.5 6.25033C20.5 6.46293 20.4281 6.64102 20.2843 6.7846C20.1406 6.92818 19.9625 6.99998 19.75 6.99998H4.25ZM4.25 18.5C4.0375 18.5 3.85938 18.428 3.71563 18.2842C3.57188 18.1404 3.5 17.9622 3.5 17.7496C3.5 17.537 3.57188 17.3589 3.71563 17.2154C3.85938 17.0718 4.0375 17 4.25 17H19.75C19.9625 17 20.1406 17.0719 20.2843 17.2157C20.4281 17.3595 20.5 17.5377 20.5 17.7503C20.5 17.9629 20.4281 18.141 20.2843 18.2846C20.1406 18.4282 19.9625 18.5 19.75 18.5H4.25ZM4.25 12.75C4.0375 12.75 3.85938 12.6781 3.71563 12.5343C3.57188 12.3904 3.5 12.2122 3.5 11.9997C3.5 11.7871 3.57188 11.609 3.71563 11.4654C3.85938 11.3218 4.0375 11.25 4.25 11.25H19.75C19.9625 11.25 20.1406 11.3219 20.2843 11.4657C20.4281 11.6095 20.5 11.7877 20.5 12.0003C20.5 12.2129 20.4281 12.391 20.2843 12.5346C20.1406 12.6782 19.9625 12.75 19.75 12.75H4.25Z",fill:"#5D676B"})))},SvgListTh=function(e){return React__namespace.createElement("svg",_extends$9({viewBox:"0 0 24 24",fill:"none"},e),_path$6||(_path$6=React__namespace.createElement("path",{id:"path",opacity:.4,d:"M22.8749 16.5H9.62476C9.32639 16.5 9.04024 16.6185 8.82926 16.8295C8.61828 17.0405 8.49976 17.3266 8.49976 17.625V21.375C8.49976 21.6734 8.61828 21.9595 8.82926 22.1705C9.04024 22.3815 9.32639 22.5 9.62476 22.5H22.8749C23.1733 22.5 23.4594 22.3815 23.6704 22.1705C23.8814 21.9595 23.9999 21.6734 23.9999 21.375V17.625C23.9999 17.3266 23.8814 17.0405 23.6704 16.8295C23.4594 16.6185 23.1733 16.5 22.8749 16.5ZM22.8749 1.5H9.62476C9.32639 1.5 9.04024 1.61853 8.82926 1.8295C8.61828 2.04048 8.49976 2.32663 8.49976 2.625V6.375C8.49976 6.67337 8.61828 6.95952 8.82926 7.1705C9.04024 7.38147 9.32639 7.5 9.62476 7.5H22.8749C23.1733 7.5 23.4594 7.38147 23.6704 7.1705C23.8814 6.95952 23.9999 6.67337 23.9999 6.375V2.625C23.9999 2.32663 23.8814 2.04048 23.6704 1.8295C23.4594 1.61853 23.1733 1.5 22.8749 1.5ZM22.8749 9H9.62476C9.32639 9 9.04024 9.11853 8.82926 9.3295C8.61828 9.54048 8.49976 9.82663 8.49976 10.125V13.875C8.49976 14.1734 8.61828 14.4595 8.82926 14.6705C9.04024 14.8815 9.32639 15 9.62476 15H22.8749C23.1733 15 23.4594 14.8815 23.6704 14.6705C23.8814 14.4595 23.9999 14.1734 23.9999 13.875V10.125C23.9999 9.82663 23.8814 9.54048 23.6704 9.3295C23.4594 9.11853 23.1733 9 22.8749 9Z",fill:"#2C3336"})),_path2$2||(_path2$2=React__namespace.createElement("path",{id:"path_2",d:"M5.87484 9H1.125C0.826631 9 0.540483 9.11853 0.329505 9.3295C0.118526 9.54048 0 9.82663 0 10.125L0 13.875C0 14.1734 0.118526 14.4595 0.329505 14.6705C0.540483 14.8815 0.826631 15 1.125 15H5.87484C6.17321 15 6.45936 14.8815 6.67034 14.6705C6.88132 14.4595 6.99984 14.1734 6.99984 13.875V10.125C6.99984 9.82663 6.88132 9.54048 6.67034 9.3295C6.45936 9.11853 6.17321 9 5.87484 9ZM5.87484 1.5H1.125C0.826631 1.5 0.540483 1.61853 0.329505 1.8295C0.118526 2.04048 0 2.32663 0 2.625L0 6.375C0 6.67337 0.118526 6.95952 0.329505 7.1705C0.540483 7.38147 0.826631 7.5 1.125 7.5H5.87484C6.17321 7.5 6.45936 7.38147 6.67034 7.1705C6.88132 6.95952 6.99984 6.67337 6.99984 6.375V2.625C6.99984 2.32663 6.88132 2.04048 6.67034 1.8295C6.45936 1.61853 6.17321 1.5 5.87484 1.5ZM5.87484 16.5H1.125C0.826631 16.5 0.540483 16.6185 0.329505 16.8295C0.118526 17.0405 0 17.3266 0 17.625L0 21.375C0 21.6734 0.118526 21.9595 0.329505 22.1705C0.540483 22.3815 0.826631 22.5 1.125 22.5H5.87484C6.17321 22.5 6.45936 22.3815 6.67034 22.1705C6.88132 21.9595 6.99984 21.6734 6.99984 21.375V17.625C6.99984 17.3266 6.88132 17.0405 6.67034 16.8295C6.45936 16.6185 6.17321 16.5 5.87484 16.5Z",fill:"#2C3336"})))},SvgMagic=function(e){return React__namespace.createElement("svg",_extends$8({fill:"none",viewBox:"0 0 24 24"},e),_path$5||(_path$5=React__namespace.createElement("path",{id:"path",d:"M23.3411 3.57562L20.4245 0.659063C19.9848 0.219844 19.4092 0 18.8336 0C18.2575 0 17.6818 0.219844 17.2426 0.659063L0.65918 17.2425C-0.219727 18.1214 -0.219727 19.5459 0.65918 20.4244L3.57574 23.3409C4.01496 23.7802 4.59105 24 5.16668 24C5.7423 24 6.3184 23.7802 6.75762 23.3409L23.3406 6.7575C24.22 5.87906 24.22 4.45453 23.3411 3.57562ZM5.16715 21.75L2.25012 18.8334L12.7454 8.33672L15.6629 11.2542L5.16715 21.75ZM17.2539 9.66281L14.3364 6.74531L18.8312 2.25H18.8336L21.7501 5.16656L17.2539 9.66281ZM20.2501 13.5L19.0004 15.9998L16.5001 17.25L19.0004 18.5002L20.2501 21L21.4998 18.5002L24.0001 17.25L21.4998 15.9998L20.2501 13.5ZM10.5001 4.5L11.2501 3L12.7501 2.25L11.2501 1.5L10.5001 0L9.75012 1.5L8.25012 2.25L9.75012 3L10.5001 4.5ZM3.75012 7.5L4.9998 5.00016L7.50012 3.75L4.9998 2.49984L3.75012 0L2.50043 2.49984L0.000117168 3.75L2.50043 5.00016L3.75012 7.5Z",fill:"#02BF6F"})))},SvgMaterials=function(e){return React__namespace.createElement("svg",_extends$7({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("g",{id:"materials"},React__namespace.createElement("mask",{id:"mask0_4_1838",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect$1||(_rect$1=React__namespace.createElement("rect",{id:"Bounding box",width:24,height:24,fill:"#D9D9D9"}))),_g$1||(_g$1=React__namespace.createElement("g",{mask:"url(#mask0_4_1838)"},React__namespace.createElement("path",{id:"media_link",d:"M10.825 17.425L8.275 19.025C8.10833 19.125 7.9375 19.1292 7.7625 19.0375C7.5875 18.9458 7.5 18.8 7.5 18.6V15.4C7.5 15.2 7.5875 15.0542 7.7625 14.9625C7.9375 14.8708 8.10833 14.875 8.275 14.975L10.825 16.575C10.9917 16.675 11.075 16.8167 11.075 17C11.075 17.1833 10.9917 17.325 10.825 17.425ZM13 10C12.1667 10 11.4583 9.70833 10.875 9.125C10.2917 8.54167 10 7.83333 10 7C10 6.16667 10.2917 5.45833 10.875 4.875C11.4583 4.29167 12.1667 4 13 4H13.5C13.7167 4 13.8958 4.07083 14.0375 4.2125C14.1792 4.35417 14.25 4.53333 14.25 4.75C14.25 4.96667 14.1792 5.14583 14.0375 5.2875C13.8958 5.42917 13.7167 5.5 13.5 5.5H13C12.5833 5.5 12.2292 5.64583 11.9375 5.9375C11.6458 6.22917 11.5 6.58333 11.5 7C11.5 7.41667 11.6458 7.77083 11.9375 8.0625C12.2292 8.35417 12.5833 8.5 13 8.5H13.5C13.7167 8.5 13.8958 8.57083 14.0375 8.7125C14.1792 8.85417 14.25 9.03333 14.25 9.25C14.25 9.46667 14.1792 9.64583 14.0375 9.7875C13.8958 9.92917 13.7167 10 13.5 10H13ZM17 10H16.5C16.2833 10 16.1042 9.92917 15.9625 9.7875C15.8208 9.64583 15.75 9.46667 15.75 9.25C15.75 9.03333 15.8208 8.85417 15.9625 8.7125C16.1042 8.57083 16.2833 8.5 16.5 8.5H17C17.4167 8.5 17.7708 8.35417 18.0625 8.0625C18.3542 7.77083 18.5 7.41667 18.5 7C18.5 6.58333 18.3542 6.22917 18.0625 5.9375C17.7708 5.64583 17.4167 5.5 17 5.5H16.5C16.2833 5.5 16.1042 5.42917 15.9625 5.2875C15.8208 5.14583 15.75 4.96667 15.75 4.75C15.75 4.53333 15.8208 4.35417 15.9625 4.2125C16.1042 4.07083 16.2833 4 16.5 4H17C17.8333 4 18.5417 4.29167 19.125 4.875C19.7083 5.45833 20 6.16667 20 7C20 7.83333 19.7083 8.54167 19.125 9.125C18.5417 9.70833 17.8333 10 17 10ZM16.25 7.75H13.75C13.5333 7.75 13.3542 7.67917 13.2125 7.5375C13.0708 7.39583 13 7.21667 13 7C13 6.78333 13.0708 6.60417 13.2125 6.4625C13.3542 6.32083 13.5333 6.25 13.75 6.25H16.25C16.4667 6.25 16.6458 6.32083 16.7875 6.4625C16.9292 6.60417 17 6.78333 17 7C17 7.21667 16.9292 7.39583 16.7875 7.5375C16.6458 7.67917 16.4667 7.75 16.25 7.75ZM16.1 14V12H21V3H9V12H7V3C7 2.45 7.19583 1.97917 7.5875 1.5875C7.97917 1.19583 8.45 1 9 1H21C21.55 1 22.0208 1.19583 22.4125 1.5875C22.8042 1.97917 23 2.45 23 3V12C23 12.55 22.8042 13.0208 22.4125 13.4125C22.0208 13.8042 21.55 14 21 14H16.1ZM3 23C2.45 23 1.97917 22.8042 1.5875 22.4125C1.19583 22.0208 1 21.55 1 21V13C1 12.45 1.19583 11.9792 1.5875 11.5875C1.97917 11.1958 2.45 11 3 11H15C15.55 11 16.0208 11.1958 16.4125 11.5875C16.8042 11.9792 17 12.45 17 13V21C17 21.55 16.8042 22.0208 16.4125 22.4125C16.0208 22.8042 15.55 23 15 23H3ZM3 21H15V13H3V21Z",fill:"#02BF6F"})))))},SvgMobileDevice=function(e){return React__namespace.createElement("svg",_extends$6({fill:"#2C3336",className:"demio-icon",style:{fontSize:16},viewBox:"0 0 16 16"},e),_path$4||(_path$4=React__namespace.createElement("path",{d:"M11.5 0h-7A1.5 1.5 0 0 0 3 1.5v13A1.5 1.5 0 0 0 4.5 16h7a1.5 1.5 0 0 0 1.5-1.5v-13A1.5 1.5 0 0 0 11.5 0ZM8 15a.999.999 0 1 1 0-2 .999.999 0 1 1 0 2Zm3.5-3.375a.376.376 0 0 1-.375.375h-6.25a.376.376 0 0 1-.375-.375v-9.75c0-.206.169-.375.375-.375h6.25c.206 0 .375.169.375.375v9.75Z"})))},SvgReplayDisabled=function(e){return React__namespace.createElement("svg",_extends$5({fill:"none",viewBox:"0 0 24 24"},e),_path$3||(_path$3=React__namespace.createElement("path",{opacity:.8,d:"M12 0.375C5.57812 0.375 0.375 5.57812 0.375 12C0.375 18.4219 5.57812 23.625 12 23.625C18.4219 23.625 23.625 18.4219 23.625 12C23.625 5.57812 18.4219 0.375 12 0.375ZM17.4234 13.125L9.17344 17.8594C8.43281 18.2719 7.5 17.7422 7.5 16.875V7.125C7.5 6.2625 8.42812 5.72813 9.17344 6.14062L17.4234 11.1562C18.1922 11.5875 18.1922 12.6984 17.4234 13.125Z",fill:"#DEE4E8"})),_path2$1||(_path2$1=React__namespace.createElement("path",{opacity:.8,d:"M17.4235 13.1254L9.17344 17.8597C8.43281 18.2722 7.5 17.7426 7.5 16.8754V7.12537C7.5 6.26287 8.42813 5.72849 9.17344 6.141L17.4235 11.1566C18.1922 11.5879 18.1922 12.6988 17.4235 13.1254Z",fill:"white"})),_line||(_line=React__namespace.createElement("line",{x1:3.16061,y1:20.1328,x2:20.1312,y2:3.16221,stroke:"white"})))},SvgRestart=function(e){return React__namespace.createElement("svg",_extends$4({fill:"none",viewBox:"0 0 24 24"},e),_path$2||(_path$2=React__namespace.createElement("path",{fill:"#2C3336",d:"M23.625 11.979a11.586 11.586 0 0 0-3.22-8.01l1.674-1.673c.71-.71.207-1.921-.795-1.921H15c-.621 0-1.125.504-1.125 1.125v6.284c0 1.002 1.212 1.504 1.92.796l1.958-1.958a7.818 7.818 0 0 1 2.122 5.308c.037 4.331-3.468 7.982-7.943 7.945-4.245-.036-7.807-3.477-7.807-7.875 0-1.928.688-3.75 1.948-5.186a.562.562 0 0 0-.026-.767l-1.86-1.86a.564.564 0 0 0-.816.023A11.582 11.582 0 0 0 .375 12C.375 18.42 5.58 23.625 12 23.625c6.413 0 11.637-5.233 11.625-11.646Z"})))},SvgRocket=function(e){return React__namespace.createElement("svg",_extends$3({viewBox:"0 0 24 24",fill:"none"},e),_path$1||(_path$1=React__namespace.createElement("path",{d:"M7.10005 11.35C7.33338 10.8833 7.57505 10.4333 7.82505 9.99999C8.07505 9.56666 8.35005 9.13332 8.65005 8.69999L7.25005 8.42499L5.15005 10.525L7.10005 11.35ZM19.15 4.47499C17.9834 4.50832 16.7375 4.84999 15.4125 5.49999C14.0875 6.14999 12.8834 7.01666 11.8 8.09999C11.1 8.79999 10.475 9.54999 9.92505 10.35C9.37505 11.15 8.96672 11.9 8.70005 12.6L11.55 15.425C12.25 15.1583 13 14.75 13.8 14.2C14.6 13.65 15.35 13.025 16.05 12.325C17.1334 11.2417 18 10.0417 18.65 8.72499C19.3 7.40832 19.6417 6.16666 19.675 4.99999C19.675 4.93332 19.6625 4.86666 19.6375 4.79999C19.6125 4.73332 19.575 4.67499 19.525 4.62499C19.475 4.57499 19.4167 4.53749 19.35 4.51249C19.2834 4.48749 19.2167 4.47499 19.15 4.47499ZM13.65 10.475C13.2667 10.0917 13.075 9.62082 13.075 9.06249C13.075 8.50416 13.2667 8.03332 13.65 7.64999C14.0334 7.26666 14.5084 7.07499 15.075 7.07499C15.6417 7.07499 16.1167 7.26666 16.5 7.64999C16.8834 8.03332 17.075 8.50416 17.075 9.06249C17.075 9.62082 16.8834 10.0917 16.5 10.475C16.1167 10.8583 15.6417 11.05 15.075 11.05C14.5084 11.05 14.0334 10.8583 13.65 10.475ZM12.8 17.025L13.625 19L15.725 16.9L15.45 15.5C15.0167 15.8 14.5834 16.0708 14.15 16.3125C13.7167 16.5542 13.2667 16.7917 12.8 17.025ZM21.575 3.67499C21.7084 5.50832 21.4084 7.29582 20.675 9.03749C19.9417 10.7792 18.7834 12.4417 17.2 14.025L17.7 16.5C17.7667 16.8333 17.75 17.1583 17.65 17.475C17.55 17.7917 17.3834 18.0667 17.15 18.3L14 21.45C13.75 21.7 13.45 21.7958 13.1 21.7375C12.75 21.6792 12.5084 21.4833 12.375 21.15L10.85 17.575L6.57505 13.3L3.00005 11.775C2.66672 11.6417 2.46672 11.4 2.40005 11.05C2.33338 10.7 2.42505 10.4 2.67505 10.15L5.82505 6.99999C6.05838 6.76666 6.33755 6.59999 6.66255 6.49999C6.98755 6.39999 7.31672 6.38332 7.65005 6.44999L10.125 6.94999C11.7084 5.36666 13.3709 4.20832 15.1125 3.47499C16.8542 2.74166 18.6417 2.44166 20.475 2.57499C20.6084 2.59166 20.7417 2.62916 20.875 2.68749C21.0084 2.74582 21.125 2.82499 21.225 2.92499C21.3251 3.02499 21.4042 3.14166 21.4625 3.27499C21.5209 3.40832 21.5584 3.54166 21.575 3.67499ZM3.92505 15.975C4.50838 15.3917 5.22088 15.0958 6.06255 15.0875C6.90422 15.0792 7.61672 15.3667 8.20005 15.95C8.78338 16.5333 9.07088 17.2458 9.06255 18.0875C9.05422 18.9292 8.75838 19.6417 8.17505 20.225C7.75838 20.6417 7.06255 21 6.08755 21.3C5.11255 21.6 3.76672 21.8667 2.05005 22.1C2.28338 20.3833 2.55005 19.0375 2.85005 18.0625C3.15005 17.0875 3.50838 16.3917 3.92505 15.975ZM5.35005 17.375C5.18338 17.5417 5.01672 17.8458 4.85005 18.2875C4.68338 18.7292 4.56672 19.175 4.50005 19.625C4.95005 19.5583 5.39588 19.4458 5.83755 19.2875C6.27922 19.1292 6.58338 18.9667 6.75005 18.8C6.95005 18.6 7.05838 18.3583 7.07505 18.075C7.09172 17.7917 7.00005 17.55 6.80005 17.35C6.60005 17.15 6.35838 17.0542 6.07505 17.0625C5.79172 17.0708 5.55005 17.175 5.35005 17.375Z"})))},SvgStackedEmail=function(e){return React__namespace.createElement("svg",_extends$2({fill:"none",viewBox:"0 0 24 24"},e),React__namespace.createElement("g",{id:"stacked_email"},React__namespace.createElement("mask",{id:"mask0_4_1850",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:0,y:0,width:24,height:24},_rect||(_rect=React__namespace.createElement("rect",{id:"Bounding box",width:24,height:24,fill:"#D9D9D9"}))),_g||(_g=React__namespace.createElement("g",{mask:"url(#mask0_4_1850)"},React__namespace.createElement("path",{id:"stacked_email_2",d:"M7 17C6.45 17 5.97917 16.8042 5.5875 16.4125C5.19583 16.0208 5 15.55 5 15V5C5 4.45 5.19583 3.97917 5.5875 3.5875C5.97917 3.19583 6.45 3 7 3H21C21.55 3 22.0208 3.19583 22.4125 3.5875C22.8042 3.97917 23 4.45 23 5V15C23 15.55 22.8042 16.0208 22.4125 16.4125C22.0208 16.8042 21.55 17 21 17H7ZM13.425 11.9L7 7.425V15H21V7.425L14.575 11.9C14.3917 12.0333 14.2 12.1 14 12.1C13.8 12.1 13.6083 12.0333 13.425 11.9ZM14 9.85L21 5H7L14 9.85ZM3 21C2.45 21 1.97917 20.8042 1.5875 20.4125C1.19583 20.0208 1 19.55 1 19V7.5C1 7.21667 1.09583 6.97917 1.2875 6.7875C1.47917 6.59583 1.71667 6.5 2 6.5C2.28333 6.5 2.52083 6.59583 2.7125 6.7875C2.90417 6.97917 3 7.21667 3 7.5V19H18.5C18.7833 19 19.0208 19.0958 19.2125 19.2875C19.4042 19.4792 19.5 19.7167 19.5 20C19.5 20.2833 19.4042 20.5208 19.2125 20.7125C19.0208 20.9042 18.7833 21 18.5 21H3Z",fill:"#02BF6F"})))))},SvgChatDisabledOld=function(e){return React__namespace.createElement("svg",_extends$1({viewBox:"0 0 64 64"},e),_path||(_path=React__namespace.createElement("path",{d:"M58.5858 2.58579C59.3668 1.80474 60.6332 1.80474 61.4142 2.58579C62.1953 3.36683 62.1953 4.63316 61.4142 5.41421L59.2128 7.61566C60.9632 9.95282 62 12.8553 62 16V60C62 60.7523 61.5779 61.4409 60.9076 61.7822C60.2372 62.1236 59.432 62.0599 58.8237 61.6175L48.3496 54H16C15.0143 54 14.0523 53.8981 13.1241 53.7043L5.41422 61.4142C4.63316 62.1953 3.36684 62.1953 2.58579 61.4142C1.80474 60.6332 1.80474 59.3668 2.58579 58.5858L58.5858 2.58579ZM16.8284 50H49C49.4227 50 49.8345 50.1339 50.1763 50.3825L58 56.0725V16C58 13.9618 57.3902 12.0661 56.3432 10.4852L16.8284 50Z",fill:"#02BF6F"})),_path2||(_path2=React__namespace.createElement("path",{d:"M48 2C49.8304 2 51.5788 2.35129 53.1815 2.99012L49.9763 6.19526C49.3374 6.06719 48.6766 6 48 6H16C10.4772 6 6 10.4772 6 16V40C6 42.8051 7.15494 45.3404 9.01524 47.1563L6.18666 49.9849C3.60258 47.445 2 43.9096 2 40V16C2 8.26801 8.26802 2 16 2H48Z",fill:"#02BF6F"})))},index$2=Object.freeze({__proto__:null,AddIcon:SvgAdd,ArrowDownIcon:SvgKeyboardArrowDown,ArrowFromLeftIcon:SvgArrowFromLeft,ArrowLeftDoubleIcon:SvgArrowLeftDouble,ArrowLeftIcon:SvgArrowLeft,ArrowLeftSingleIcon:SvgArrowLeftSingle,AtIcon:SvgAt,BarChartIcon:SvgBarChart,BlockIcon:SvgBlock,BlurOnIcon:SvgBlurOn,CachedIcon:SvgCached,CalendarIcon:SvgCalendar,CalendarStarIcon:SvgCalendarStar,CameraIcon:SvgCamera,CameraOutlinedIcon:SvgCameraOutlined,ChatDisabledIcon:SvgChatDisabled,ChatDisabledOldIcon:SvgChatDisabledOld,ChatIcon:SvgChatIcon,CheckCircleIcon:SvgCheckCircle,CheckCircleSolidIcon:SvgCheckCircleSolid,CheckIcon:SvgCheck,CheckboxIcon:SvgCheckbox,CheckboxUncheckIcon:SvgCheckboxUncheck,ClockIcon:SvgClock,CloseIcon:SvgClose,CompressIcon:SvgCompress,CopyIcon:SvgCopy,CustomizeIcon:SvgCustomize,DeleteIcon:SvgDelete,DotsIcon:SvgDots,DownloadIcon:SvgDownload,EditIcon:SvgEdit,ElectricBoltIcon:SvgElectricBolt,EventDetailsIcon:SvgEventDetails,EventRepeatIcon:SvgEventRepeat,ExclamationIcon:SvgExclamation,ExpandIcon:SvgExpand,ExternalLinkIcon:SvgExternalLink,FeatureActionIcon:SvgFeatureAction,FileIcon:SvgFile,FilterListIcon:SvgFilterList,FlipCameraIcon:SvgFlipCamera,GearIcon:SvgGear,HelpIcon:SvgHelp,HelpSolidIcon:SvgHelpSolid,InfoCircleIcon:SvgInfoCircle,InfoCircleSolidIcon:SvgInfoCircleSolid,InfoIcon:SvgInfo,InfoSolidIcon:SvgInfo1,ItemsIcon:SvgItems,ListIcon:SvgList,ListThIcon:SvgListTh,LocationIcon:SvgLocation,LockIcon:SvgLock,MagicIcon:SvgMagic,MailIcon:SvgMail,MaterialsIcon:SvgMaterials,MicBoldIcon:SvgMicBold,MicOffIcon:SvgMicOff1,MicOffSolidIcon:SvgMicOff,MicOnSolidIcon:SvgMic1,MicOnfIcon:SvgMic,MicOutlinedIcon:SvgMicOutlined,MobileDeviceIcon:SvgMobileDevice,OutStageIcon:SvgOutStage,PasswordEyeCrossedIcon:SvgPasswordEyeCrossed,PasswordEyeIcon:SvgPasswordEye,PeopleCommunityIcon:SvgPeopleCommunity,PeopleIcon:SvgPeople,Person:SvgPerson,PersonDeleteIcon:SvgPersonDelete,PersonIcon:SvgPerson,PlayIcon:SvgPlay,PlusIcon:SvgPlus,PollIcon:SvgPoll,PresentationIcon:SvgPresentation,ProgressIcon:SvgProgress,ReplayDisabledIcon:SvgReplayDisabled,RestartIcon:SvgRestart,RocketIcon:SvgRocket,ScreenPersonIcon:SvgScreenPerson,ScreenShareIcon:SvgScreenSharing,ScreenShareWindowIcon:SvgScreenScareWindows,SearchIcon:SvgSearch,SideBarIcon:SvgSidebar,SmileIcon:SvgSmile,SpotlightIcon:SvgSpotlight,StackedEmailIcon:SvgStackedEmail,StageIcon:SvgStage,SyncIcon:SvgSync,TimesCircleIcon:SvgTimesCircle,TodayIcon:SvgToday,TrashIcon:SvgTrash,TrendingDownIcon:SvgTrendingDown,TrendingUpIcon:SvgTrendingUp,UndoIcon:SvgUndo,VideoCamOffIcon:SvgVideocamOff,VideoCamOffSolidIcon:SvgVideocamOff1,VideoCamOnIcon:SvgVideocam,VideoCamOnSolidIcon:SvgVideocam1,VolumeOffIcon:SvgVolumeOff1,VolumeOffSolidIcon:SvgVolumeOff,VolumeUpIcon:SvgVolumeUp,VolumeUpSolidIcon:SvgVolumeUp1,WarningIcon:SvgWarning,WarningSolidIcon:SvgWarning1}),styles$o={avatarRoot:"Avatar-modules_avatarRoot__-f6qf",avatarImage:"Avatar-modules_avatarImage__zceNY",avatarFallback:"Avatar-modules_avatarFallback__q-QHl",size16:"Avatar-modules_size16__G8gqA",size24:"Avatar-modules_size24__mfBv9",size32:"Avatar-modules_size32__B21z8",size40:"Avatar-modules_size40__ixjf7",size48:"Avatar-modules_size48__l5CtN",size64:"Avatar-modules_size64__2kbdu",size80:"Avatar-modules_size80__MjWsy",size96:"Avatar-modules_size96__GRUKB",size128:"Avatar-modules_size128__STzjL"};const AVATAR_SIZES=[16,24,32,40,48,64,80,96,128];styles$n={badge:"Badge-modules_badge__Q3gMy",title:"Badge-modules_title__ldcxW",icon:"Badge-modules_icon__PuMGj",orange:"Badge-modules_orange__KUE8y",gray:"Badge-modules_gray__gyQRh",purple:"Badge-modules_purple__0r-Ep",blue:"Badge-modules_blue__gLy09",outlined:"Badge-modules_outlined__6J7Qy",contained:"Badge-modules_contained__iOqhq",green:"Badge-modules_green__az-Sp"};styles$m={button:"Button-modules_button__aG-rx",primary:"Button-modules_primary__4wFpG",red:"Button-modules_red__kzhcS",dark:"Button-modules_dark__y2K4o",secondary:"Button-modules_secondary__BxoW-",green:"Button-modules_green__XduFJ",tertiary:"Button-modules_tertiary__atvmK",quarter:"Button-modules_quarter__X0oiw",fullWidth:"Button-modules_fullWidth__K1YM1",prefix:"Button-modules_prefix__5QA-K",suffix:"Button-modules_suffix__alHaW"};const Button=React.forwardRef((({disabled:e=!1,children:t,onClick:n,variant:o="primary",color:a="green",type:r="button",prefix:i="",suffix:s="",className:c="",fullWidth:l=!1,showLoader:u=!1,...d},p)=>React.createElement("button",{ref:p,type:r,disabled:e,className:cn("demio-ui-button",styles$m.button,{[c]:c,[styles$m[o]]:o,[styles$m.fullWidth]:l,[styles$m[a]]:!!a}),onClick:n,...d},(i||u)&&React.createElement("span",{className:cn("demio-ui-button-prefix",styles$m.prefix)},u?React.createElement(Loader,{size:"small",inheritColor:!0}):i),React.createElement("span",null,t),s&&React.createElement("span",{className:cn("demio-ui-button-suffix",styles$m.suffix)},s))));styles$l={Card:"Card-modules_Card__z6Ana",shadowElevation1:"Card-modules_shadowElevation1__W-OBt",shadowElevation2:"Card-modules_shadowElevation2__wi10x",shadowElevation3:"Card-modules_shadowElevation3__PhQ67",shadowElevation4:"Card-modules_shadowElevation4__Gw1NR",shadowElevation5:"Card-modules_shadowElevation5__1dyXB",shadowElevation6:"Card-modules_shadowElevation6__d6Bwl",shadowElevation7:"Card-modules_shadowElevation7__IKuo-",shadowElevation8:"Card-modules_shadowElevation8__fboRY",shadowElevation9:"Card-modules_shadowElevation9__hpxHG",emptyState:"Card-modules_emptyState__NPe3g"};const Card=React.memo((({children:e=null,className:t="",isEmptyStateAvailable:n=!0,isLoading:o=!1,emptyStateIcon:a=null,emptyStateText:r="",shadowElevation:i=1})=>{const s=null===a,c=""===r,l=styles$l[`shadowElevation${i}`];return React.createElement("div",{className:cn(styles$l.Card,l,"demio-ui-card",t)},o&&React.createElement(Loader,{className:"demio-ui-card-loader"}),!o&&(e||React.createElement("div",{className:cn(styles$l.emptyState,"demio-ui-card-empty-state")},n&&React.createElement(React.Fragment,null,React.createElement("div",{className:cn({"demio-ui-card-empty-state-icon":s,"demio-ui-card-custom-state-icon":!s})},a||React.createElement(SvgBarChart,null)),React.createElement("div",{className:cn({"demio-ui-card-empty-state-text":c,"demio-ui-card-custom-state-text":!c})},r||"No Data Available")))))}));CHECKBOX_NAME="Checkbox";var[createCheckboxContext,createCheckboxScope]=createContextScope(CHECKBOX_NAME),[CheckboxProvider,useCheckboxContext]=createCheckboxContext(CHECKBOX_NAME);Checkbox$1=React__namespace.forwardRef(((e,t)=>{const{__scopeCheckbox:n,name:o,checked:a,defaultChecked:r,required:i,disabled:s,value:c="on",onCheckedChange:l,form:u,...d}=e,[p,m]=React__namespace.useState(null),g=useComposedRefs(t,(e=>m(e))),_=React__namespace.useRef(!1),f=!p||(u||!!p.closest("form")),[C=!1,h]=useControllableState({prop:a,defaultProp:r,onChange:l}),v=React__namespace.useRef(C);return React__namespace.useEffect((()=>{const e=p?.form;if(e){const t=()=>h(v.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}}),[p,h]),jsxRuntime.jsxs(CheckboxProvider,{scope:n,state:C,disabled:s,children:[jsxRuntime.jsx(Primitive.button,{type:"button",role:"checkbox","aria-checked":isIndeterminate$1(C)?"mixed":C,"aria-required":i,"data-state":getState$3(C),"data-disabled":s?"":void 0,disabled:s,value:c,...d,ref:g,onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:composeEventHandlers(e.onClick,(e=>{h((e=>!!isIndeterminate$1(e)||!e)),f&&(_.current=e.isPropagationStopped(),_.current||e.stopPropagation())}))}),f&&jsxRuntime.jsx(BubbleInput$3,{control:p,bubbles:!_.current,name:o,value:c,checked:C,required:i,disabled:s,form:u,style:{transform:"translateX(-100%)"},defaultChecked:!isIndeterminate$1(r)&&r})]})})),Checkbox$1.displayName=CHECKBOX_NAME,INDICATOR_NAME$3="CheckboxIndicator",(CheckboxIndicator=React__namespace.forwardRef(((e,t)=>{const{__scopeCheckbox:n,forceMount:o,...a}=e,r=useCheckboxContext(INDICATOR_NAME$3,n);return jsxRuntime.jsx(Presence,{present:o||isIndeterminate$1(r.state)||!0===r.state,children:jsxRuntime.jsx(Primitive.span,{"data-state":getState$3(r.state),"data-disabled":r.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})}))).displayName=INDICATOR_NAME$3,BubbleInput$3=e=>{const{control:t,checked:n,bubbles:o=!0,defaultChecked:a,...r}=e,i=React__namespace.useRef(null),s=usePrevious(n),c=useSize(t);React__namespace.useEffect((()=>{const e=i.current,t=window.HTMLInputElement.prototype,a=Object.getOwnPropertyDescriptor(t,"checked").set;if(s!==n&&a){const t=new Event("click",{bubbles:o});e.indeterminate=isIndeterminate$1(n),a.call(e,!isIndeterminate$1(n)&&n),e.dispatchEvent(t)}}),[s,n,o]);const l=React__namespace.useRef(!isIndeterminate$1(n)&&n);return jsxRuntime.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:a??l.current,...r,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})},Root$7=Checkbox$1,Indicator$2=CheckboxIndicator,NAME$3="Label",(Label$2=React__namespace.forwardRef(((e,t)=>jsxRuntime.jsx(Primitive.label,{...e,ref:t,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}})))).displayName=NAME$3,Root$6=Label$2,styles$k_label="Label-modules_label__rXO6J",styles$k_semiBold="Label-modules_semiBold__vTm1B",styles$k_regular="Label-modules_regular__F9gNE";const getWeightClass=(e="regular")=>"semiBold"===e?styles$k_semiBold:styles$k_regular;styles$j_container="Checkbox-modules_container__psQsQ",styles$j_root="Checkbox-modules_root__iysyc",styles$j_label="Checkbox-modules_label__4TV-f";const Checkbox=React.memo(React.forwardRef((({children:e=null,disabled:t=!1,id:n,...o},a)=>React.createElement("div",{className:cn("demio-ui-checkbox",styles$j_container),ref:a},React.createElement(Root$7,{...o,className:cn("demio-ui-checkbox-button",styles$j_root),disabled:t,id:n},React.createElement(Indicator$2,{className:"demio-ui-checkbox-button"},React.createElement(SvgCheckbox,null))),e&&React.createElement(Label$1,{className:cn("demio-ui-checkbox-label",styles$j_label),htmlFor:n,weight:"regular"},e)))));styles$i_root="InputHint-modules_root__bJTnj",styles$i_error="InputHint-modules_error__HZnQD",styles$h={root:"Input-modules_root__vdxX5",label:"Input-modules_label__2RN8-",optional:"Input-modules_optional__M78yJ",static:"Input-modules_static__cpwFU",correctedTop:"Input-modules_correctedTop__I3y-S",inputWrapper:"Input-modules_inputWrapper__KPYyg",input:"Input-modules_input__y9hSj",startAdornment:"Input-modules_startAdornment__Xs8xw",endAdornment:"Input-modules_endAdornment__z04mP",footer:"Input-modules_footer__R8J8U",togglePasswordButton:"Input-modules_togglePasswordButton__KGieB",footerMessage:"Input-modules_footerMessage__akEOh",counter:"Input-modules_counter__HFA5P",isDisabled:"Input-modules_isDisabled__bHf8L",hint:"Input-modules_hint__e-KNY",isError:"Input-modules_isError__1B8e9",isFocused:"Input-modules_isFocused__Oa1Re",isLabelStatic:"Input-modules_isLabelStatic__iF0-s"};const Input$2=React.forwardRef(((e,t)=>{const{autoComplete:n="off",className:o="",counterVisibilityLimit:a=.8,defaultValue:r="",disabled:i=!1,endAdornment:s=null,endAdornmentClassName:c="",errorMessage:l="",hint:u="",id:d,inputWrapperClass:p="",isLabelStatic:m=!1,label:g="",maxLength:_=150,name:f="",onBlur:C,onChange:h,onFocus:v,optionalText:b="Optional",placeholder:R="",required:y=!1,startAdornment:x=null,type:E="text",value:I,...S}=e,[A,w]=React.useState(!1),[M,$]=React.useState(r||""),[N,T]=React.useState(!1),O=void 0!==I,P="password"===E,D=P?A?"text":"password":E,L=O?I:M,V=L.length,B=V>=_*a;return React.createElement("div",{className:cn("demio-ui-input",`demio-ui-input-${E}`,styles$h.root,{[o]:!!o,[styles$h.isDisabled]:i,[styles$h.isFocused]:N||L,[styles$h.hasStartAdornment]:!!x,[styles$h.isError]:!!l,[styles$h.isLabelStatic]:!!m,"demio-ui-input-has-error":!!l}),"data-html":"container","data-state":N?"focused":""},g&&React.createElement("label",{htmlFor:d,className:cn("demio-ui-input-label",styles$h.label,{[styles$h.static]:m}),"data-html":"label"},g),!y&&React.createElement("span",{className:cn("demio-ui-input-optional",styles$h.optional,{[styles$h.correctedTop]:m}),"data-html":"optional"},b),React.createElement("div",{className:cn("demio-ui-input-wrapper",styles$h.inputWrapper,p),"data-html":"wrapper"},x&&React.createElement("div",{className:styles$h.startAdornment,"data-html":"start-adornment"},x),React.createElement("input",{...S,type:D,id:d,ref:t,name:f||d,className:styles$h.input,placeholder:R,required:y,"data-html":"input",disabled:i,autoComplete:n,maxLength:_,onChange:e=>{h?.(e),O||$(e.target.value)},value:L,onFocus:e=>{v?.(e),T(!0)},onBlur:e=>{C?.(e),T(!1)}}),s&&React.createElement("div",{className:cn(styles$h.endAdornment,{[c]:!!c}),"data-html":"end-adornment"},s)),React.createElement("div",{className:cn("demio-ui-input-footer",styles$h.footer,{[styles$h.footerWithEndAdornment]:!!s}),"data-html":"footer"},React.createElement("div",{className:cn("demio-ui-input-footer-message",styles$h.footerMessage)},l&&React.createElement(InputHint,{type:"error"},l),u&&!l&&React.createElement(InputHint,{className:styles$h.hint},u)),React.createElement(InputHint,{className:cn("demio-ui-input-counter",styles$h.counter)},B&&`(${V} / ${_})`)),P&&React.createElement("button",{type:"button",className:cn("demio-ui-input-toggle-password-button",styles$h.togglePasswordButton),onClick:()=>{w(!A)}},A?React.createElement(SvgPasswordEye,null):React.createElement(SvgPasswordEyeCrossed,null)))}));styles$g_root="CopyLinkInput-module_root__oxVd0",styles$g_input="CopyLinkInput-module_input__MQztq",styles$g_button="CopyLinkInput-module_button__J5F9v",styles$g_inputWrapper="CopyLinkInput-module_inputWrapper__m0PMy";const CopyButton=({onCopy:e})=>React.createElement("button",{type:"button",className:styles$g_button,onClick:e,"aria-label":"Copy to clipboard"},React.createElement(SvgCopy,{width:16,height:16}));_populated=!1,UserAgent_DEPRECATED_1=UserAgent_DEPRECATED$1={ie:function(){return _populate()||_ie},ieCompatibilityMode:function(){return _populate()||_ie_real_version>_ie},ie64:function(){return UserAgent_DEPRECATED$1.ie()&&_win64},firefox:function(){return _populate()||_firefox},opera:function(){return _populate()||_opera},webkit:function(){return _populate()||_webkit},safari:function(){return UserAgent_DEPRECATED$1.webkit()},chrome:function(){return _populate()||_chrome},windows:function(){return _populate()||_windows},osx:function(){return _populate()||_osx},linux:function(){return _populate()||_linux},iphone:function(){return _populate()||_iphone},mobile:function(){return _populate()||_iphone||_ipad||_android||_mobile},nativeApp:function(){return _populate()||_native},android:function(){return _populate()||_android},ipad:function(){return _populate()||_ipad}},canUseDOM$1=!("undefined"==typeof window||!window.document||!window.document.createElement),(ExecutionEnvironment={canUseDOM:canUseDOM$1}).canUseDOM&&(useHasFeature=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),UserAgent_DEPRECATED=UserAgent_DEPRECATED_1,isEventSupported=function(e,t){var n,o,a;return!(!ExecutionEnvironment.canUseDOM||t&&!("addEventListener"in document))&&((o=(n="on"+e)in document)||((a=document.createElement("div")).setAttribute(n,"return;"),o="function"==typeof a[n]),!o&&useHasFeature&&"wheel"===e&&(o=document.implementation.hasFeature("Events.wheel","3.0")),o)},PIXEL_STEP=10,LINE_HEIGHT=40,PAGE_HEIGHT=800,normalizeWheel$2.getEventType=function(){return UserAgent_DEPRECATED.firefox()?"DOMMouseScroll":isEventSupported("wheel")?"wheel":"mousewheel"},normalizeWheel$1=getDefaultExportFromCjs(normalizeWheel$2),css_248z=".reactEasyCrop_Container {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n user-select: none;\n touch-action: none;\n cursor: move;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.reactEasyCrop_Image,\n.reactEasyCrop_Video {\n will-change: transform; /* this improves performances and prevent painting issues on iOS Chrome */\n}\n\n.reactEasyCrop_Contain {\n max-width: 100%;\n max-height: 100%;\n margin: auto;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.reactEasyCrop_Cover_Horizontal {\n width: 100%;\n height: auto;\n}\n.reactEasyCrop_Cover_Vertical {\n width: auto;\n height: 100%;\n}\n\n.reactEasyCrop_CropArea {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n border: 1px solid rgba(255, 255, 255, 0.5);\n box-sizing: border-box;\n box-shadow: 0 0 0 9999em;\n color: rgba(0, 0, 0, 0.5);\n overflow: hidden;\n}\n\n.reactEasyCrop_CropAreaRound {\n border-radius: 50%;\n}\n\n.reactEasyCrop_CropAreaGrid::before {\n content: ' ';\n box-sizing: border-box;\n position: absolute;\n border: 1px solid rgba(255, 255, 255, 0.5);\n top: 0;\n bottom: 0;\n left: 33.33%;\n right: 33.33%;\n border-top: 0;\n border-bottom: 0;\n}\n\n.reactEasyCrop_CropAreaGrid::after {\n content: ' ';\n box-sizing: border-box;\n position: absolute;\n border: 1px solid rgba(255, 255, 255, 0.5);\n top: 33.33%;\n bottom: 33.33%;\n left: 0;\n right: 0;\n border-left: 0;\n border-right: 0;\n}\n",MIN_ZOOM=1,MAX_ZOOM=3,KEYBOARD_STEP=1,Cropper=function(e){function t(){var n=null!==e&&e.apply(this,arguments)||this;return n.cropperRef=React__namespace.createRef(),n.imageRef=React__namespace.createRef(),n.videoRef=React__namespace.createRef(),n.containerPosition={x:0,y:0},n.containerRef=null,n.styleRef=null,n.containerRect=null,n.mediaSize={width:0,height:0,naturalWidth:0,naturalHeight:0},n.dragStartPosition={x:0,y:0},n.dragStartCrop={x:0,y:0},n.gestureZoomStart=0,n.gestureRotationStart=0,n.isTouching=!1,n.lastPinchDistance=0,n.lastPinchRotation=0,n.rafDragTimeout=null,n.rafPinchTimeout=null,n.wheelTimer=null,n.currentDoc="undefined"!=typeof document?document:null,n.currentWindow="undefined"!=typeof window?window:null,n.resizeObserver=null,n.state={cropSize:null,hasWheelJustStarted:!1,mediaObjectFit:void 0},n.initResizeObserver=function(){if(void 0!==window.ResizeObserver&&n.containerRef){var e=!0;n.resizeObserver=new window.ResizeObserver((function(t){e?e=!1:n.computeSizes()})),n.resizeObserver.observe(n.containerRef)}},n.preventZoomSafari=function(e){return e.preventDefault()},n.cleanEvents=function(){n.currentDoc&&(n.currentDoc.removeEventListener("mousemove",n.onMouseMove),n.currentDoc.removeEventListener("mouseup",n.onDragStopped),n.currentDoc.removeEventListener("touchmove",n.onTouchMove),n.currentDoc.removeEventListener("touchend",n.onDragStopped),n.currentDoc.removeEventListener("gesturemove",n.onGestureMove),n.currentDoc.removeEventListener("gestureend",n.onGestureEnd),n.currentDoc.removeEventListener("scroll",n.onScroll))},n.clearScrollEvent=function(){n.containerRef&&n.containerRef.removeEventListener("wheel",n.onWheel),n.wheelTimer&&clearTimeout(n.wheelTimer)},n.onMediaLoad=function(){var e=n.computeSizes();e&&(n.emitCropData(),n.setInitialCrop(e)),n.props.onMediaLoaded&&n.props.onMediaLoaded(n.mediaSize)},n.setInitialCrop=function(e){var t,o,a,r;n.props.initialCroppedAreaPercentages?(t=function(e,t,n,o,a,r){var i=rotateSize$1(t.width,t.height,n),s=clamp$2(o.width/i.width*(100/e.width),a,r),c={x:s*i.width/2-o.width/2-i.width*s*(e.x/100),y:s*i.height/2-o.height/2-i.height*s*(e.y/100)};return{crop:c,zoom:s}}(n.props.initialCroppedAreaPercentages,n.mediaSize,n.props.rotation,e,n.props.minZoom,n.props.maxZoom),o=t.crop,a=t.zoom,n.props.onCropChange(o),n.props.onZoomChange&&n.props.onZoomChange(a)):n.props.initialCroppedAreaPixels&&(r=function(e,t,n,o,a,r){var i,s,c;return void 0===n&&(n=0),i=rotateSize$1(t.naturalWidth,t.naturalHeight,n),s=clamp$2(function(e,t,n){var o=function(e){return e.width>e.height?e.width/e.naturalWidth:e.height/e.naturalHeight}(t);return n.height>n.width?n.height/(e.height*o):n.width/(e.width*o)}(e,t,o),a,r),c=o.height>o.width?o.height/e.height:o.width/e.width,{crop:{x:((i.width-e.width)/2-e.x)*c,y:((i.height-e.height)/2-e.y)*c},zoom:s}}(n.props.initialCroppedAreaPixels,n.mediaSize,n.props.rotation,e,n.props.minZoom,n.props.maxZoom),o=r.crop,a=r.zoom,n.props.onCropChange(o),n.props.onZoomChange&&n.props.onZoomChange(a))},n.computeSizes=function(){var e,t,o,a,r,i,s,c,l,u,d,p,m=n.imageRef.current||n.videoRef.current;if(m&&n.containerRef){if(n.containerRect=n.containerRef.getBoundingClientRect(),n.saveContainerPosition(),s=n.containerRect.width/n.containerRect.height,u=(c=(null===(e=n.imageRef.current)||void 0===e?void 0:e.naturalWidth)||(null===(t=n.videoRef.current)||void 0===t?void 0:t.videoWidth)||0)/(l=(null===(o=n.imageRef.current)||void 0===o?void 0:o.naturalHeight)||(null===(a=n.videoRef.current)||void 0===a?void 0:a.videoHeight)||0),d=void 0,m.offsetWidth<c||m.offsetHeight<l)switch(n.state.mediaObjectFit){default:case"contain":d=s>u?{width:n.containerRect.height*u,height:n.containerRect.height}:{width:n.containerRect.width,height:n.containerRect.width/u};break;case"horizontal-cover":d={width:n.containerRect.width,height:n.containerRect.width/u};break;case"vertical-cover":d={width:n.containerRect.height*u,height:n.containerRect.height}}else d={width:m.offsetWidth,height:m.offsetHeight};return n.mediaSize=__assign(__assign({},d),{naturalWidth:c,naturalHeight:l}),n.props.setMediaSize&&n.props.setMediaSize(n.mediaSize),p=n.props.cropSize?n.props.cropSize:function(e,t,n,o,a,r){var i,s,c,l,u;return void 0===r&&(r=0),s=(i=rotateSize$1(e,t,r)).width,c=i.height,(l=Math.min(s,n))>(u=Math.min(c,o))*a?{width:u*a,height:u}:{width:l,height:l/a}}(n.mediaSize.width,n.mediaSize.height,n.containerRect.width,n.containerRect.height,n.props.aspect,n.props.rotation),(null===(r=n.state.cropSize)||void 0===r?void 0:r.height)===p.height&&(null===(i=n.state.cropSize)||void 0===i?void 0:i.width)===p.width||n.props.onCropSizeChange&&n.props.onCropSizeChange(p),n.setState({cropSize:p},n.recomputeCropPosition),n.props.setCropSize&&n.props.setCropSize(p),p}},n.saveContainerPosition=function(){if(n.containerRef){var e=n.containerRef.getBoundingClientRect();n.containerPosition={x:e.left,y:e.top}}},n.onMouseDown=function(e){n.currentDoc&&(e.preventDefault(),n.currentDoc.addEventListener("mousemove",n.onMouseMove),n.currentDoc.addEventListener("mouseup",n.onDragStopped),n.saveContainerPosition(),n.onDragStart(t.getMousePoint(e)))},n.onMouseMove=function(e){return n.onDrag(t.getMousePoint(e))},n.onScroll=function(e){n.currentDoc&&(e.preventDefault(),n.saveContainerPosition())},n.onTouchStart=function(e){n.currentDoc&&(n.isTouching=!0,n.props.onTouchRequest&&!n.props.onTouchRequest(e)||(n.currentDoc.addEventListener("touchmove",n.onTouchMove,{passive:!1}),n.currentDoc.addEventListener("touchend",n.onDragStopped),n.saveContainerPosition(),2===e.touches.length?n.onPinchStart(e):1===e.touches.length&&n.onDragStart(t.getTouchPoint(e.touches[0]))))},n.onTouchMove=function(e){e.preventDefault(),2===e.touches.length?n.onPinchMove(e):1===e.touches.length&&n.onDrag(t.getTouchPoint(e.touches[0]))},n.onGestureStart=function(e){n.currentDoc&&(e.preventDefault(),n.currentDoc.addEventListener("gesturechange",n.onGestureMove),n.currentDoc.addEventListener("gestureend",n.onGestureEnd),n.gestureZoomStart=n.props.zoom,n.gestureRotationStart=n.props.rotation)},n.onGestureMove=function(e){var o,a,r;e.preventDefault(),n.isTouching||(o=t.getMousePoint(e),a=n.gestureZoomStart-1+e.scale,n.setNewZoom(a,o,{shouldUpdatePosition:!0}),n.props.onRotationChange&&(r=n.gestureRotationStart+e.rotation,n.props.onRotationChange(r)))},n.onGestureEnd=function(e){n.cleanEvents()},n.onDragStart=function(e){var t,o,a=e.x,r=e.y;n.dragStartPosition={x:a,y:r},n.dragStartCrop=__assign({},n.props.crop),null===(o=(t=n.props).onInteractionStart)||void 0===o||o.call(t)},n.onDrag=function(e){var t=e.x,o=e.y;n.currentWindow&&(n.rafDragTimeout&&n.currentWindow.cancelAnimationFrame(n.rafDragTimeout),n.rafDragTimeout=n.currentWindow.requestAnimationFrame((function(){var e,a,r,i;n.state.cropSize&&void 0!==t&&void 0!==o&&(e=t-n.dragStartPosition.x,a=o-n.dragStartPosition.y,r={x:n.dragStartCrop.x+e,y:n.dragStartCrop.y+a},i=n.props.restrictPosition?restrictPosition(r,n.mediaSize,n.state.cropSize,n.props.zoom,n.props.rotation):r,n.props.onCropChange(i))})))},n.onDragStopped=function(){var e,t;n.isTouching=!1,n.cleanEvents(),n.emitCropData(),null===(t=(e=n.props).onInteractionEnd)||void 0===t||t.call(e)},n.onWheel=function(e){var o,a,r;n.currentWindow&&(n.props.onWheelRequest&&!n.props.onWheelRequest(e)||(e.preventDefault(),o=t.getMousePoint(e),a=normalizeWheel$1(e).pixelY,r=n.props.zoom-a*n.props.zoomSpeed/200,n.setNewZoom(r,o,{shouldUpdatePosition:!0}),n.state.hasWheelJustStarted||n.setState({hasWheelJustStarted:!0},(function(){var e,t;return null===(t=(e=n.props).onInteractionStart)||void 0===t?void 0:t.call(e)})),n.wheelTimer&&clearTimeout(n.wheelTimer),n.wheelTimer=n.currentWindow.setTimeout((function(){return n.setState({hasWheelJustStarted:!1},(function(){var e,t;return null===(t=(e=n.props).onInteractionEnd)||void 0===t?void 0:t.call(e)}))}),250)))},n.getPointOnContainer=function(e,t){var o=e.x,a=e.y;if(!n.containerRect)throw new Error("The Cropper is not mounted");return{x:n.containerRect.width/2-(o-t.x),y:n.containerRect.height/2-(a-t.y)}},n.getPointOnMedia=function(e){var t=e.x,o=e.y,a=n.props,r=a.crop,i=a.zoom;return{x:(t+r.x)/i,y:(o+r.y)/i}},n.setNewZoom=function(e,t,o){var a,r,i,s,c,l=void 0===o?{}:o,u=l.shouldUpdatePosition,d=void 0===u||u;n.state.cropSize&&n.props.onZoomChange&&(a=clamp$2(e,n.props.minZoom,n.props.maxZoom),d&&(r=n.getPointOnContainer(t,n.containerPosition),s={x:(i=n.getPointOnMedia(r)).x*a-r.x,y:i.y*a-r.y},c=n.props.restrictPosition?restrictPosition(s,n.mediaSize,n.state.cropSize,a,n.props.rotation):s,n.props.onCropChange(c)),n.props.onZoomChange(a))},n.getCropData=function(){return n.state.cropSize?function(e,t,n,o,a,r,i){var s,c,l,u,d,p,m;return void 0===r&&(r=0),void 0===i&&(i=!0),s=i?limitArea:noOp,c=rotateSize$1(t.width,t.height,r),l=rotateSize$1(t.naturalWidth,t.naturalHeight,r),u={x:s(100,((c.width-n.width/a)/2-e.x/a)/c.width*100),y:s(100,((c.height-n.height/a)/2-e.y/a)/c.height*100),width:s(100,n.width/c.width*100/a),height:s(100,n.height/c.height*100/a)},d=Math.round(s(l.width,u.width*l.width/100)),p=Math.round(s(l.height,u.height*l.height/100)),m=l.width>=l.height*o?{width:Math.round(p*o),height:p}:{width:d,height:Math.round(d/o)},{croppedAreaPercentages:u,croppedAreaPixels:__assign(__assign({},m),{x:Math.round(s(l.width-m.width,u.x*l.width/100)),y:Math.round(s(l.height-m.height,u.y*l.height/100))})}}(n.props.restrictPosition?restrictPosition(n.props.crop,n.mediaSize,n.state.cropSize,n.props.zoom,n.props.rotation):n.props.crop,n.mediaSize,n.state.cropSize,n.getAspect(),n.props.zoom,n.props.rotation,n.props.restrictPosition):null},n.emitCropData=function(){var e,t,o=n.getCropData();o&&(e=o.croppedAreaPercentages,t=o.croppedAreaPixels,n.props.onCropComplete&&n.props.onCropComplete(e,t),n.props.onCropAreaChange&&n.props.onCropAreaChange(e,t))},n.emitCropAreaChange=function(){var e,t,o=n.getCropData();o&&(e=o.croppedAreaPercentages,t=o.croppedAreaPixels,n.props.onCropAreaChange&&n.props.onCropAreaChange(e,t))},n.recomputeCropPosition=function(){if(n.state.cropSize){var e=n.props.restrictPosition?restrictPosition(n.props.crop,n.mediaSize,n.state.cropSize,n.props.zoom,n.props.rotation):n.props.crop;n.props.onCropChange(e),n.emitCropData()}},n.onKeyDown=function(e){var t,o,a,r=n.props,i=r.crop,s=r.onCropChange,c=r.keyboardStep,l=r.zoom,u=r.rotation,d=c;if(n.state.cropSize){switch(e.shiftKey&&(d*=.2),a=__assign({},i),e.key){case"ArrowUp":a.y-=d,e.preventDefault();break;case"ArrowDown":a.y+=d,e.preventDefault();break;case"ArrowLeft":a.x-=d,e.preventDefault();break;case"ArrowRight":a.x+=d,e.preventDefault();break;default:return}n.props.restrictPosition&&(a=restrictPosition(a,n.mediaSize,n.state.cropSize,l,u)),e.repeat||null===(o=(t=n.props).onInteractionStart)||void 0===o||o.call(t),s(a)}},n.onKeyUp=function(e){var t,o;switch(e.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":e.preventDefault();break;default:return}n.emitCropData(),null===(o=(t=n.props).onInteractionEnd)||void 0===o||o.call(t)},n}return function(e,t){function n(){this.constructor=e}if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");extendStatics(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}(t,e),t.prototype.componentDidMount=function(){this.currentDoc&&this.currentWindow&&(this.containerRef&&(this.containerRef.ownerDocument&&(this.currentDoc=this.containerRef.ownerDocument),this.currentDoc.defaultView&&(this.currentWindow=this.currentDoc.defaultView),this.initResizeObserver(),void 0===window.ResizeObserver&&this.currentWindow.addEventListener("resize",this.computeSizes),this.props.zoomWithScroll&&this.containerRef.addEventListener("wheel",this.onWheel,{passive:!1}),this.containerRef.addEventListener("gesturestart",this.onGestureStart)),this.currentDoc.addEventListener("scroll",this.onScroll),this.props.disableAutomaticStylesInjection||(this.styleRef=this.currentDoc.createElement("style"),this.styleRef.setAttribute("type","text/css"),this.props.nonce&&this.styleRef.setAttribute("nonce",this.props.nonce),this.styleRef.innerHTML=css_248z,this.currentDoc.head.appendChild(this.styleRef)),this.imageRef.current&&this.imageRef.current.complete&&this.onMediaLoad(),this.props.setImageRef&&this.props.setImageRef(this.imageRef),this.props.setVideoRef&&this.props.setVideoRef(this.videoRef),this.props.setCropperRef&&this.props.setCropperRef(this.cropperRef))},t.prototype.componentWillUnmount=function(){var e,t;this.currentDoc&&this.currentWindow&&(void 0===window.ResizeObserver&&this.currentWindow.removeEventListener("resize",this.computeSizes),null===(e=this.resizeObserver)||void 0===e||e.disconnect(),this.containerRef&&this.containerRef.removeEventListener("gesturestart",this.preventZoomSafari),this.styleRef&&(null===(t=this.styleRef.parentNode)||void 0===t||t.removeChild(this.styleRef)),this.cleanEvents(),this.props.zoomWithScroll&&this.clearScrollEvent())},t.prototype.componentDidUpdate=function(e){var t,n,o,a,r,i,s,c,l,u;e.rotation!==this.props.rotation?(this.computeSizes(),this.recomputeCropPosition()):e.aspect!==this.props.aspect||e.objectFit!==this.props.objectFit?this.computeSizes():e.zoom!==this.props.zoom?this.recomputeCropPosition():(null===(t=e.cropSize)||void 0===t?void 0:t.height)!==(null===(n=this.props.cropSize)||void 0===n?void 0:n.height)||(null===(o=e.cropSize)||void 0===o?void 0:o.width)!==(null===(a=this.props.cropSize)||void 0===a?void 0:a.width)?this.computeSizes():(null===(r=e.crop)||void 0===r?void 0:r.x)===(null===(i=this.props.crop)||void 0===i?void 0:i.x)&&(null===(s=e.crop)||void 0===s?void 0:s.y)===(null===(c=this.props.crop)||void 0===c?void 0:c.y)||this.emitCropAreaChange(),e.zoomWithScroll!==this.props.zoomWithScroll&&this.containerRef&&(this.props.zoomWithScroll?this.containerRef.addEventListener("wheel",this.onWheel,{passive:!1}):this.clearScrollEvent()),e.video!==this.props.video&&(null===(l=this.videoRef.current)||void 0===l||l.load()),(u=this.getObjectFit())!==this.state.mediaObjectFit&&this.setState({mediaObjectFit:u},this.computeSizes)},t.prototype.getAspect=function(){var e=this.props,t=e.cropSize,n=e.aspect;return t?t.width/t.height:n},t.prototype.getObjectFit=function(){var e,t,n,o,a;return"cover"===this.props.objectFit?(this.imageRef.current||this.videoRef.current)&&this.containerRef?(this.containerRect=this.containerRef.getBoundingClientRect(),a=this.containerRect.width/this.containerRect.height,((null===(e=this.imageRef.current)||void 0===e?void 0:e.naturalWidth)||(null===(t=this.videoRef.current)||void 0===t?void 0:t.videoWidth)||0)/((null===(n=this.imageRef.current)||void 0===n?void 0:n.naturalHeight)||(null===(o=this.videoRef.current)||void 0===o?void 0:o.videoHeight)||0)<a?"horizontal-cover":"vertical-cover"):"horizontal-cover":this.props.objectFit},t.prototype.onPinchStart=function(e){var n=t.getTouchPoint(e.touches[0]),o=t.getTouchPoint(e.touches[1]);this.lastPinchDistance=getDistanceBetweenPoints(n,o),this.lastPinchRotation=getRotationBetweenPoints(n,o),this.onDragStart(getCenter(n,o))},t.prototype.onPinchMove=function(e){var n,o,a,r=this;this.currentDoc&&this.currentWindow&&(n=t.getTouchPoint(e.touches[0]),o=t.getTouchPoint(e.touches[1]),a=getCenter(n,o),this.onDrag(a),this.rafPinchTimeout&&this.currentWindow.cancelAnimationFrame(this.rafPinchTimeout),this.rafPinchTimeout=this.currentWindow.requestAnimationFrame((function(){var e,t,i=getDistanceBetweenPoints(n,o),s=r.props.zoom*(i/r.lastPinchDistance);r.setNewZoom(s,a,{shouldUpdatePosition:!1}),r.lastPinchDistance=i,e=getRotationBetweenPoints(n,o),t=r.props.rotation+(e-r.lastPinchRotation),r.props.onRotationChange&&r.props.onRotationChange(t),r.lastPinchRotation=e})))},t.prototype.render=function(){var e,t=this,n=this.props,o=n.image,a=n.video,r=n.mediaProps,i=n.cropperProps,s=n.transform,c=n.crop,l=c.x,u=c.y,d=n.rotation,p=n.zoom,m=n.cropShape,g=n.showGrid,_=n.style,f=_.containerStyle,C=_.cropAreaStyle,h=_.mediaStyle,v=n.classes,b=v.containerClassName,R=v.cropAreaClassName,y=v.mediaClassName,x=null!==(e=this.state.mediaObjectFit)&&void 0!==e?e:this.getObjectFit();return React__namespace.createElement("div",{onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,ref:function(e){return t.containerRef=e},"data-testid":"container",style:f,className:classNames$1("reactEasyCrop_Container",b)},o?React__namespace.createElement("img",__assign({alt:"",className:classNames$1("reactEasyCrop_Image","contain"===x&&"reactEasyCrop_Contain","horizontal-cover"===x&&"reactEasyCrop_Cover_Horizontal","vertical-cover"===x&&"reactEasyCrop_Cover_Vertical",y)},r,{src:o,ref:this.imageRef,style:__assign(__assign({},h),{transform:s||"translate(".concat(l,"px, ").concat(u,"px) rotate(").concat(d,"deg) scale(").concat(p,")")}),onLoad:this.onMediaLoad})):a&&React__namespace.createElement("video",__assign({autoPlay:!0,playsInline:!0,loop:!0,muted:!0,className:classNames$1("reactEasyCrop_Video","contain"===x&&"reactEasyCrop_Contain","horizontal-cover"===x&&"reactEasyCrop_Cover_Horizontal","vertical-cover"===x&&"reactEasyCrop_Cover_Vertical",y)},r,{ref:this.videoRef,onLoadedMetadata:this.onMediaLoad,style:__assign(__assign({},h),{transform:s||"translate(".concat(l,"px, ").concat(u,"px) rotate(").concat(d,"deg) scale(").concat(p,")")}),controls:!1}),(Array.isArray(a)?a:[{src:a}]).map((function(e){return React__namespace.createElement("source",__assign({key:e.src},e))}))),this.state.cropSize&&React__namespace.createElement("div",__assign({ref:this.cropperRef,style:__assign(__assign({},C),{width:this.state.cropSize.width,height:this.state.cropSize.height}),tabIndex:0,onKeyDown:this.onKeyDown,onKeyUp:this.onKeyUp,"data-testid":"cropper",className:classNames$1("reactEasyCrop_CropArea","round"===m&&"reactEasyCrop_CropAreaRound",g&&"reactEasyCrop_CropAreaGrid",R)},i)))},t.defaultProps={zoom:1,rotation:0,aspect:4/3,maxZoom:MAX_ZOOM,minZoom:MIN_ZOOM,cropShape:"rect",objectFit:"contain",showGrid:!0,style:{},classes:{},mediaProps:{},cropperProps:{},zoomSpeed:1,restrictPosition:!0,zoomWithScroll:!0,keyboardStep:KEYBOARD_STEP},t.getMousePoint=function(e){return{x:Number(e.clientX),y:Number(e.clientY)}},t.getTouchPoint=function(e){return{x:Number(e.clientX),y:Number(e.clientY)}},t}(React__namespace.Component),DirectionContext=React__namespace.createContext(void 0),PAGE_KEYS=["PageUp","PageDown"],ARROW_KEYS$1=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],BACK_KEYS={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},SLIDER_NAME="Slider";var[Collection$3,useCollection$3,createCollectionScope$3]=createCollection(SLIDER_NAME),[createSliderContext,createSliderScope]=createContextScope(SLIDER_NAME,[createCollectionScope$3]),[SliderProvider,useSliderContext]=createSliderContext(SLIDER_NAME);Slider=React__namespace.forwardRef(((e,t)=>{function n(e,t,{commit:n}={commit:!1}){const o=function(e){return(String(e).split(".")[1]||"").length}(i),s=function(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}(Math.round((e-a)/i)*i+a,o),c=clamp$1(s,[a,r]);R(((e=[])=>{const o=function(e=[],t,n){const o=[...e];return o[n]=t,o.sort(((e,t)=>e-t))}(e,c,t);if(function(e,t){if(t>0){const n=function(e){return e.slice(0,-1).map(((t,n)=>e[n+1]-t))}(e);return Math.min(...n)>=t}return!0}(o,l*i)){h.current=o.indexOf(c);const t=String(o)!==String(e);return t&&n&&m(o),t?o:e}return e}))}const{name:o,min:a=0,max:r=100,step:i=1,orientation:s="horizontal",disabled:c=!1,minStepsBetweenThumbs:l=0,defaultValue:u=[a],value:d,onValueChange:p=()=>{},onValueCommit:m=()=>{},inverted:g=!1,form:_,...f}=e,C=React__namespace.useRef(new Set),h=React__namespace.useRef(0),v="horizontal"===s?SliderHorizontal:SliderVertical,[b=[],R]=useControllableState({prop:d,defaultProp:u,onChange:e=>{const t=[...C.current];t[h.current]?.focus(),p(e)}}),y=React__namespace.useRef(b);return jsxRuntime.jsx(SliderProvider,{scope:e.__scopeSlider,name:o,disabled:c,min:a,max:r,valueIndexToChangeRef:h,thumbs:C.current,values:b,orientation:s,form:_,children:jsxRuntime.jsx(Collection$3.Provider,{scope:e.__scopeSlider,children:jsxRuntime.jsx(Collection$3.Slot,{scope:e.__scopeSlider,children:jsxRuntime.jsx(v,{"aria-disabled":c,"data-disabled":c?"":void 0,...f,ref:t,onPointerDown:composeEventHandlers(f.onPointerDown,(()=>{c||(y.current=b)})),min:a,max:r,inverted:g,onSlideStart:c?void 0:function(e){const t=function(e,t){if(1===e.length)return 0;const n=e.map((e=>Math.abs(e-t))),o=Math.min(...n);return n.indexOf(o)}(b,e);n(e,t)},onSlideMove:c?void 0:function(e){n(e,h.current)},onSlideEnd:c?void 0:function(){const e=y.current[h.current];b[h.current]!==e&&m(b)},onHomeKeyDown:()=>!c&&n(a,0,{commit:!0}),onEndKeyDown:()=>!c&&n(r,b.length-1,{commit:!0}),onStepKeyDown:({event:e,direction:t})=>{if(!c){const o=PAGE_KEYS.includes(e.key)||e.shiftKey&&ARROW_KEYS$1.includes(e.key)?10:1,a=h.current;n(b[a]+i*o*t,a,{commit:!0})}}})})})})})),Slider.displayName=SLIDER_NAME;var[SliderOrientationProvider,useSliderOrientationContext]=createSliderContext(SLIDER_NAME,{startEdge:"left",endEdge:"right",size:"width",direction:1});SliderHorizontal=React__namespace.forwardRef(((e,t)=>{function n(e){const t=_.current||p.getBoundingClientRect(),n=linearScale([0,t.width],h?[o,a]:[a,o]);return _.current=t,n(e-t.left)}const{min:o,max:a,dir:r,inverted:i,onSlideStart:s,onSlideMove:c,onSlideEnd:l,onStepKeyDown:u,...d}=e,[p,m]=React__namespace.useState(null),g=useComposedRefs(t,(e=>m(e))),_=React__namespace.useRef(void 0),f=useDirection(r),C="ltr"===f,h=C&&!i||!C&&i;return jsxRuntime.jsx(SliderOrientationProvider,{scope:e.__scopeSlider,startEdge:h?"left":"right",endEdge:h?"right":"left",direction:h?1:-1,size:"width",children:jsxRuntime.jsx(SliderImpl,{dir:f,"data-orientation":"horizontal",...d,ref:g,style:{...d.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:e=>{const t=n(e.clientX);s?.(t)},onSlideMove:e=>{const t=n(e.clientX);c?.(t)},onSlideEnd:()=>{_.current=void 0,l?.()},onStepKeyDown:e=>{const t=BACK_KEYS[h?"from-left":"from-right"].includes(e.key);u?.({event:e,direction:t?-1:1})}})})})),SliderVertical=React__namespace.forwardRef(((e,t)=>{function n(e){const t=m.current||d.current.getBoundingClientRect(),n=linearScale([0,t.height],g?[a,o]:[o,a]);return m.current=t,n(e-t.top)}const{min:o,max:a,inverted:r,onSlideStart:i,onSlideMove:s,onSlideEnd:c,onStepKeyDown:l,...u}=e,d=React__namespace.useRef(null),p=useComposedRefs(t,d),m=React__namespace.useRef(void 0),g=!r;return jsxRuntime.jsx(SliderOrientationProvider,{scope:e.__scopeSlider,startEdge:g?"bottom":"top",endEdge:g?"top":"bottom",size:"height",direction:g?1:-1,children:jsxRuntime.jsx(SliderImpl,{"data-orientation":"vertical",...u,ref:p,style:{...u.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:e=>{const t=n(e.clientY);i?.(t)},onSlideMove:e=>{const t=n(e.clientY);s?.(t)},onSlideEnd:()=>{m.current=void 0,c?.()},onStepKeyDown:e=>{const t=BACK_KEYS[g?"from-bottom":"from-top"].includes(e.key);l?.({event:e,direction:t?-1:1})}})})})),SliderImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeSlider:n,onSlideStart:o,onSlideMove:a,onSlideEnd:r,onHomeKeyDown:i,onEndKeyDown:s,onStepKeyDown:c,...l}=e,u=useSliderContext(SLIDER_NAME,n);return jsxRuntime.jsx(Primitive.span,{...l,ref:t,onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{"Home"===e.key?(i(e),e.preventDefault()):"End"===e.key?(s(e),e.preventDefault()):PAGE_KEYS.concat(ARROW_KEYS$1).includes(e.key)&&(c(e),e.preventDefault())})),onPointerDown:composeEventHandlers(e.onPointerDown,(e=>{const t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),u.thumbs.has(t)?t.focus():o(e)})),onPointerMove:composeEventHandlers(e.onPointerMove,(e=>{e.target.hasPointerCapture(e.pointerId)&&a(e)})),onPointerUp:composeEventHandlers(e.onPointerUp,(e=>{const t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),r(e))}))})})),TRACK_NAME="SliderTrack",(SliderTrack=React__namespace.forwardRef(((e,t)=>{const{__scopeSlider:n,...o}=e,a=useSliderContext(TRACK_NAME,n);return jsxRuntime.jsx(Primitive.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...o,ref:t})}))).displayName=TRACK_NAME,RANGE_NAME="SliderRange",(SliderRange=React__namespace.forwardRef(((e,t)=>{const{__scopeSlider:n,...o}=e,a=useSliderContext(RANGE_NAME,n),r=useSliderOrientationContext(RANGE_NAME,n),i=useComposedRefs(t,React__namespace.useRef(null)),s=a.values.length,c=a.values.map((e=>convertValueToPercentage(e,a.min,a.max))),l=s>1?Math.min(...c):0,u=100-Math.max(...c);return jsxRuntime.jsx(Primitive.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,...o,ref:i,style:{...e.style,[r.startEdge]:l+"%",[r.endEdge]:u+"%"}})}))).displayName=RANGE_NAME,THUMB_NAME$1="SliderThumb",SliderThumb=React__namespace.forwardRef(((e,t)=>{const n=useCollection$3(e.__scopeSlider),[o,a]=React__namespace.useState(null),r=useComposedRefs(t,(e=>a(e))),i=React__namespace.useMemo((()=>o?n().findIndex((e=>e.ref.current===o)):-1),[n,o]);return jsxRuntime.jsx(SliderThumbImpl,{...e,ref:r,index:i})})),SliderThumbImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeSlider:n,index:o,name:a,...r}=e,i=useSliderContext(THUMB_NAME$1,n),s=useSliderOrientationContext(THUMB_NAME$1,n),[c,l]=React__namespace.useState(null),u=useComposedRefs(t,(e=>l(e))),d=!c||(i.form||!!c.closest("form")),p=useSize(c),m=i.values[o],g=void 0===m?0:convertValueToPercentage(m,i.min,i.max),_=function(e,t){return t>2?`Value ${e+1} of ${t}`:2===t?["Minimum","Maximum"][e]:void 0}(o,i.values.length),f=p?.[s.size],C=f?function(e,t,n){const o=e/2;return(o-linearScale([0,50],[0,o])(t)*n)*n}(f,g,s.direction):0;return React__namespace.useEffect((()=>{if(c)return i.thumbs.add(c),()=>{i.thumbs.delete(c)}}),[c,i.thumbs]),jsxRuntime.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[s.startEdge]:`calc(${g}% + ${C}px)`},children:[jsxRuntime.jsx(Collection$3.ItemSlot,{scope:e.__scopeSlider,children:jsxRuntime.jsx(Primitive.span,{role:"slider","aria-label":e["aria-label"]||_,"aria-valuemin":i.min,"aria-valuenow":m,"aria-valuemax":i.max,"aria-orientation":i.orientation,"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0,tabIndex:i.disabled?void 0:0,...r,ref:u,style:void 0===m?{display:"none"}:e.style,onFocus:composeEventHandlers(e.onFocus,(()=>{i.valueIndexToChangeRef.current=o}))})}),d&&jsxRuntime.jsx(BubbleInput$2,{name:a??(i.name?i.name+(i.values.length>1?"[]":""):void 0),form:i.form,value:m},o)]})})),SliderThumb.displayName=THUMB_NAME$1,BubbleInput$2=e=>{const{value:t,...n}=e,o=React__namespace.useRef(null),a=usePrevious(t);return React__namespace.useEffect((()=>{const e=o.current,n=window.HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(n,"value").set;if(a!==t&&r){const n=new Event("input",{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}}),[a,t]),jsxRuntime.jsx("input",{style:{display:"none"},...n,ref:o,defaultValue:t})},Root$5=Slider,Track=SliderTrack,Range=SliderRange,Thumb$1=SliderThumb,style$6_container="Slider-modules_container__ZtkgF",style$6_track="Slider-modules_track__KLggY",style$6_range="Slider-modules_range__3s39d",style$6_thumb="Slider-modules_thumb__P9ZoJ",style$6_thumbArea="Slider-modules_thumbArea__lNKj-";const SliderDemo=React.memo((e=>{const{className:t,isDisabled:n=!1,max:o,min:a,name:r="slider",onChange:i,step:s,thumbAriaLabel:c="",value:l=0}=e,[u,d]=React.useState(l);return React.useEffect((()=>{d(l)}),[l]),React.createElement(Root$5,{className:cn("demio-ui-slider-container",style$6_container,t),"data-testid":"container",disabled:n,min:a,max:o,name:r,onValueChange:e=>{return t=e[0],d(t),void(i&&i(t));var t},step:s,value:[u]},React.createElement(Track,{className:cn("demio-ui-slider-track",style$6_track),"data-testid":"track"},React.createElement(Range,{className:cn("demio-ui-slider-range",style$6_range),"data-testid":"range"})),React.createElement(Thumb$1,{"aria-label":c,className:cn("demio-ui-slider-thumb",style$6_thumb),"data-testid":"thumb"},React.createElement("div",{className:cn("demio-ui-slider-thumb-area",style$6_thumbArea)})))}));style$5_root="Crop-modules_root__rN-SB",style$5_wrapper="Crop-modules_wrapper__gCOCS",style$5_slider="Crop-modules_slider__-2TIB";const Crop=React.memo((e=>{const{aspect:t=1,className:n="",image:o="",isGridVisible:a=!1,onCropChange:r,onCropComplete:i,onZoomChange:s,sliderMin:c=1,sliderMax:l=3,sliderStep:u=.1}=e,[d,p]=React.useState({x:0,y:0}),[m,g]=React.useState(c);return o&&React.createElement("div",{className:cn("demio-ui-crop-root",style$5_root,n),"data-testid":"crop-root"},React.createElement("div",{className:cn("demio-ui-crop-wrapper",style$5_wrapper),"data-testid":"crop-wrapper"},React.createElement(Cropper,{...e,aspect:t,classes:{containerClassName:"demio-ui-crop-container",mediaClassName:"demio-ui-crop-image "+(a?"demio-ui-crop-grid":"")},crop:d,image:o,onCropChange:e=>{p(e),r&&r(e)},onCropComplete:async(e,t)=>{i&&i(e,t)},onZoomChange:g,showGrid:a,zoom:m})),React.createElement("div",{className:cn("demio-ui-crop-slider",style$5_slider),"data-testid":"crop-slider"},React.createElement(SliderDemo,{max:l,min:c,onChange:e=>{g(e),s&&s(e)},step:u})))})),mimeTypeMap={jpg:["image/jpeg"],jpeg:["image/jpeg"],png:["image/png"],gif:["image/gif"],bmp:["image/bmp"],webp:["image/webp"],tiff:["image/tiff"],ico:["image/x-icon"],svg:["image/svg+xml"],pdf:["application/pdf"],txt:["text/plain"],doc:["application/msword"],docx:["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],xls:["application/vnd.ms-excel"],xlsx:["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],pps:["application/vnd.ms-powerpoint","application/mspowerpoint","application/powerpoint","application/x-mspowerpoint","application/x-powerpoint"],ppt:["application/vnd.ms-powerpoint"],pptx:["application/vnd.openxmlformats-officedocument.presentationml.presentation"],odt:["application/vnd.oasis.opendocument.text"],ods:["application/vnd.oasis.opendocument.spreadsheet"],odp:["application/vnd.oasis.opendocument.presentation"],rtf:["application/rtf"],mp3:["audio/mpeg"],wav:["audio/wav"],ogg:["audio/ogg"],aac:["audio/aac"],flac:["audio/flac"],avi:["video/x-msvideo","video/avi","video/x-avi"],flv:["video/x-flv","video/flv"],m4v:["video/x-m4v","video/m4v","video/mp4"],mkv:["video/x-matroska"],mov:["video/quicktime"],mp4:["video/mp4"],mpeg:["video/mpeg"],mpg:["video/mpeg"],webm:["video/webm"],zip:["application/zip"],tar:["application/x-tar"],gz:["application/gzip","application/x-gzip"],rar:["application/x-rar-compressed"],"7z":["application/x-7z-compressed"],html:["text/html"],htm:["text/html"],css:["text/css"],js:["application/javascript"],json:["application/json"],xml:["application/xml"],ttf:["font/ttf"],otf:["font/otf"],woff:["font/woff"],woff2:["font/woff2"],csv:["text/csv"],sql:["application/sql"],md:["text/markdown"],yaml:["text/yaml"],yml:["text/yaml"],epub:["application/epub+zip"],mobi:["application/x-mobipocket-ebook"]},getFileExtension=(e=null)=>{if(!(e instanceof File&&e.name))return"";const t=e.name.toLowerCase().trim(),n=t.lastIndexOf(".");return-1!==n?t.substring(n+1):""},getFileMimeType=(e=null)=>{if(!(e instanceof File))return"";const t=e.type?.toLowerCase().trim()||"";return t.length>0?t:""},isExtensionMatchingMimeType=(e="",t="")=>{if("string"!=typeof e||"string"!=typeof t)return!1;const n=e.toLowerCase().trim(),o=t.toLowerCase().trim(),a=mimeTypeMap[n]||[];return!(a.length>0)||a.includes(o)},isValidFileType=(e=null,t="")=>{if(!(e instanceof File))return!1;if(!("string"==typeof t&&t?.length>0))return!0;const n=getFileExtension(e),o=getFileMimeType(e);if(!n||!o)return!1;if(!isExtensionMatchingMimeType(n,o))return!1;return t.toLowerCase().trim().includes(n)},isImage=(e=null)=>e instanceof File&&e.type.startsWith("image/"),isValidFileSize=(e=null,t=0)=>{if(!(e instanceof File))return!1;if(!t||"number"!=typeof t||t<0)return!0;const n=1024*t*1024;return e.size<n},isValidFileDimension=async(e=null,t=0,n=0)=>new Promise(((o,a)=>{if(!(e instanceof File))return o(!1);if(!isImage(e))return o(!0);const r=new FileReader;r.onload=e=>{const r=new Image;r.onload=()=>{const e=r.width>=t&&r.height>=n;o(e)},r.onerror=()=>{a(new Error("Error while loading Image"))},r.src=e.target?.result},r.onerror=()=>{a(new Error("Error while reading Image"))},r.readAsDataURL(e)})),createImage=e=>new Promise(((t,n)=>{if(!e)return void n(new Error("URL is empty"));const o=new Image;o.addEventListener("load",(()=>t(o))),o.addEventListener("error",(e=>n(e))),o.setAttribute("crossOrigin","anonymous"),o.src=e})),getRadianAngle=(e=0)=>e*Math.PI/180,rotateSize=(e,t,n)=>{const o=getRadianAngle(n);return{width:Math.abs(Math.cos(o)*e)+Math.abs(Math.sin(o)*t),height:Math.abs(Math.sin(o)*e)+Math.abs(Math.cos(o)*t)}},getCroppedImageURL=async(e,t,n=0,o={horizontal:!1,vertical:!1})=>{const a=await createImage(e),r=document.createElement("canvas"),i=r.getContext("2d");if(!i)return null;const{width:s,height:c}=rotateSize(a.width,a.height,n);r.width=s,r.height=c,i.translate(s/2,c/2),i.scale(o.horizontal?-1:1,o.vertical?-1:1),i.translate(-a.width/2,-a.height/2),i.drawImage(a,0,0);const l=document.createElement("canvas"),u=l.getContext("2d");return u?(l.width=t.width,l.height=t.height,u.drawImage(r,t.x,t.y,t.width,t.height,0,0,t.width,t.height),new Promise(((e,t)=>{l.toBlob((n=>{n?e(URL.createObjectURL(n)):t(null)}),"image/jpeg")}))):null};css$5_toast="Toast-modules_toast__jBLRk",css$5_noCloseBtn="Toast-modules_noCloseBtn__pyGvH",css$5_icon="Toast-modules_icon__ORsLy",css$5_success="Toast-modules_success__BYfwB",css$5_warning="Toast-modules_warning__HLJ8C",css$5_error="Toast-modules_error__yN4Cu",css$5_info="Toast-modules_info__V0nO3",css$5_message="Toast-modules_message__fnWMJ",css$5_description="Toast-modules_description__GYPY5",css$5_noMessage="Toast-modules_noMessage__3Wskx",css$5_closeButton="Toast-modules_closeButton__GIv2a",css$5_closeIcon="Toast-modules_closeIcon__2qev9";const Toast=React.memo((({className:e="",description:t="",duration:n=4e3,icon:o=null,id:a,isClosable:r=!0,message:i="",onClose:s,style:c={},type:l="info"})=>{const[u,d]=React.useState(!0),p=a||Date.now(),m=Boolean(t),g=Boolean(i),_="error"===l&&!o,f="info"===l&&!o,C="success"===l&&!o,h="warning"===l&&!o,v=n<1e3?1e3*n:n,b=e=>{"object"==typeof e&&(e?.preventDefault?.(),e?.stopPropagation?.()),clearTimeout("number"==typeof e?e:void 0),d(!1),s?.(p)};return React.useEffect((()=>{const e=setTimeout((()=>b(e)),v);return()=>clearTimeout(e)}),[]),(g||m)&&u&&React.createElement("div",{className:cn("demio-ui-toast",css$5_toast,{[css$5_noCloseBtn]:!r},e),"data-testid":`toast-${p}`,style:c},o&&React.createElement("div",{className:cn("demio-ui-toast-custom-icon",css$5_icon),"data-testid":"toast-custom-icon"},o),_&&React.createElement(SvgExclamation,{className:cn("demio-ui-toast-icon demio-ui-toast-icon-error",css$5_icon,css$5_error),"data-testid":"toast-icon-error"}),f&&React.createElement(SvgInfoCircle,{className:cn("demio-ui-toast-icon demio-ui-toast-icon-info",css$5_icon,css$5_info),"data-testid":"toast-icon-info"}),C&&React.createElement(SvgCheckCircle,{className:cn("demio-ui-toast-icon demio-ui-toast-icon-success",css$5_icon,css$5_success),"data-testid":"toast-icon-success"}),h&&React.createElement(SvgInfo,{className:cn("demio-ui-toast-icon demio-ui-toast-icon-warning",css$5_icon,css$5_warning),"data-testid":"toast-icon-warning"}),React.createElement("div",{className:cn("demio-ui-toast-message",css$5_message),"data-testid":"toast-message"},i,m&&React.createElement("div",{className:cn("demio-ui-toast-description",css$5_description,{[css$5_noMessage]:!g}),"data-testid":"toast-description"},t)),r&&React.createElement("button",{className:cn("demio-ui-toast-close-btn",css$5_closeButton),"data-testid":"toast-close-btn",onClick:()=>b(null)},React.createElement(SvgClose,{className:cn("demio-ui-toast-close-icon",css$5_closeIcon),"data-testid":"toast-close-icon"})))}));css$4_toastList="ToastList-modules_toastList__9nnFy";const ToastList=React.memo((()=>{const[e,t]=React.useState([]),n=0===e.length,o=React.useCallback((e=>t((t=>t.filter((t=>t.id!==e))))),[t]),a=React.useCallback((()=>{n||(o(Number(e[0].id)),e[0].onClose?.(Number(e[0].id)))}),[n,e[0],o]),r=React.useCallback((e=>{"Escape"===e?.key&&a()}),[a]);return React.useEffect((()=>{toast?.updateSetter(t)}),[]),React.useEffect((()=>(document.addEventListener("keydown",r),()=>{document.removeEventListener("keydown",r)})),[r]),React.createElement("div",{className:cn("demio-ui-toast-list",css$4_toastList),id:"demio-ui-toast-list","data-testid":"toast-list"},e.map((e=>React.createElement(Toast,{...e,key:`toast-${e.id}`}))))})),ensureToastListInitialized=()=>{if("undefined"==typeof document)return!1;let e=document.getElementById("demio-ui-toast-root");return e||(e=document.createElement("div"),e.setAttribute("id","demio-ui-toast-root"),e.setAttribute("data-testid","demio-ui-toast-root"),document.body.appendChild(e),client.createRoot(e).render(React.createElement(ToastList,null))),!0};const toast=new class{setToastList=null;toastQueue=[];timerId=null;isWaitingForClient=!1;constructor(){this.render()}render=()=>{"undefined"!=typeof document?ensureToastListInitialized():this.waitForClient()};waitForClient(){if(!this.isWaitingForClient&&"undefined"!=typeof window&&(this.isWaitingForClient=!0,window.addEventListener("load",(()=>{ensureToastListInitialized(),this.isWaitingForClient=!1})),"undefined"!=typeof MutationObserver)){const e=new MutationObserver((()=>{document.getElementById("demio-ui-toast-root")&&(ensureToastListInitialized(),e.disconnect(),this.isWaitingForClient=!1)}));e.observe(document.body,{childList:!0,subtree:!0})}}updateSetter(e){this.setToastList=e}remove=e=>{this.setToastList?.((t=>t.map((t=>t.id===e?{...t,message:""}:t))))};getUIToastListAmount=()=>document.getElementById("demio-ui-toast-list")?.children?.length||null;add=e=>{const t=this.getUIToastListAmount(),n={...e,id:e.id||Date.now()};this.setToastList?.((e=>null===t?[{...n}]:[...e,{...n}]))};processQueue=()=>{if(null!==this.timerId||0===this.toastQueue.length)return;const e=this.toastQueue.shift();e&&(this.add(e),this.timerId=setTimeout((()=>{this.timerId=null,this.processQueue()}),40))};addToQueue=e=>{if(!ensureToastListInitialized())return this.isWaitingForClient||this.waitForClient(),void setTimeout((()=>this.addToQueue(e)),50);this.toastQueue.push(e),this.processQueue()};error=e=>{this.addToQueue({...e,type:"error"})};info=e=>{this.addToQueue({...e,type:"info"})};success=e=>{this.addToQueue({...e,type:"success"})};warning=e=>{this.addToQueue({...e,type:"warning"})}},useCroppedImage=(e="",t=null)=>{const[n,o]=React.useState("");return React.useEffect((()=>{t&&e?getCroppedImageURL(e,t).then((e=>{o(String(e))})).catch((()=>{o("")})):o("")}),[e,t]),{croppedImageURL:n}},initialFileValidation={isFileDimensionValid:!0,isFileSizeValid:!0,isFileTypeValid:!0,isFileValid:!0},useFileValidation=({acceptableFileTypes:e="",fileSizeMbLimit:t=0,isValidationEnabled:n=!0,isDimensionValidationEnabled:o=!0,isSizeValidationEnabled:a=!0,minHeightLimit:r=0,minWidthLimit:i=0})=>{const[s,c]=React.useState(initialFileValidation);return{...s,validate:async(l=null)=>{if(!(n&&l instanceof File))return initialFileValidation;const u=!o||await isValidFileDimension(l,i,r),d=!a||isValidFileSize(l,t),p=!(e.length>0)||isValidFileType(l,e),m=u&&d&&p,g={...s,isFileDimensionValid:u,isFileSizeValid:d,isFileTypeValid:p,isFileValid:m};return c(g),g}}};style$4_container="DnDArea-modules_container__bPaID",style$4_isDraggedOver="DnDArea-modules_isDraggedOver__A5x5L";const DnDArea=React.memo((e=>{const{acceptableFileTypes:t="",className:n="",children:o="Drag the file into the selected area",dropText:a="Drop it like it’s hot! 🔥",fileSizeMbLimit:r=0,error:i="",minHeightLimit:s=0,minWidthLimit:c=0,errorDimension:l=`Minimum required dimensions are ${c}x${s}.`,errorSize:u=`Exceeds maximum size limit of ${r} MB.`,errorType:d="File type is not supported.",isValidationEnabled:p=!0,isDimensionValidationEnabled:m=!0,isSizeValidationEnabled:g=!0,onDragLeave:_,onDragOver:f,onDrop:C}=e,[h,v]=React.useState(!1),{isFileDimensionValid:b,isFileSizeValid:R,isFileTypeValid:y,validate:x}=useFileValidation({acceptableFileTypes:t,fileSizeMbLimit:r,isDimensionValidationEnabled:m,isSizeValidationEnabled:g,isValidationEnabled:p,minHeightLimit:s,minWidthLimit:c}),E=i.length>0,I=t.length>0,S=p&&m&&!b,A=p&&g&&!R,w=p&&I&&!y;return React.createElement("div",{className:"demio-ui-dnd-area-root","data-testid":"dnd-area-root"},p&&E&&React.createElement(Note,{text:i}),p&&!E&&w&&React.createElement(Note,{text:d}),p&&!E&&!w&&A&&React.createElement(Note,{text:u}),p&&!E&&!w&&!A&&S&&React.createElement(Note,{text:l}),React.createElement("div",{className:cn("demio-ui-dnd-area-container",style$4_container,{[style$4_isDraggedOver]:h},n),"data-testid":"dnd-area-container",onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),v(!1),_&&_(e)},onDragOver:e=>{e.preventDefault(),e.stopPropagation(),v(!0),f&&f(e)},onDrop:async e=>{e.preventDefault(),e.stopPropagation(),v(!1);const t=e.dataTransfer?.files[0]||null;await x(t),C&&C(e,t)}},h&&a,!h&&o))}));styles$f_overlay="Modal-modules_overlay__V-vTn",styles$f_header="Modal-modules_header__-dxAm",styles$f_isTitleHidden="Modal-modules_isTitleHidden__T6g1-",styles$f_close="Modal-modules_close__CwIjR",styles$f_title="Modal-modules_title__3ehge",styles$f_titleCentered="Modal-modules_titleCentered__Qqy8u",styles$f_content="Modal-modules_content__sK9HS",styles$f_body="Modal-modules_body__8Khpx",styles$e={overlay:"Drawer-modules_overlay__BbKV9",content:"Drawer-modules_content__mZs-5",alignRight:"Drawer-modules_alignRight__QQxn4",alignLeft:"Drawer-modules_alignLeft__4W0Tp",childrenWrapper:"Drawer-modules_childrenWrapper__dGPQP",header:"Drawer-modules_header__cM4Mi"};const sides=["top","right","bottom","left"],min=Math.min,max=Math.max,round=Math.round,floor=Math.floor,createCoords=e=>({x:e,y:e}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"},oppositeAlignmentMap={start:"end",end:"start"},noOffsets=createCoords(0),platform={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:o,strategy:a}=e;const r="fixed"===a,i=getDocumentElement(o),s=!!t&&isTopLayer(t.floating);if(o===i||s&&r)return n;let c={scrollLeft:0,scrollTop:0},l=createCoords(1);const u=createCoords(0),d=isHTMLElement(o);if((d||!d&&!r)&&(("body"!==getNodeName(o)||isOverflowElement(i))&&(c=getNodeScroll(o)),isHTMLElement(o))){const e=getBoundingClientRect(o);l=getScale(o),u.x=e.x+o.clientLeft,u.y=e.y+o.clientTop}const p=!i||d||r?createCoords(0):getHTMLOffset(i,c,!0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+p.x,y:n.y*l.y-c.scrollTop*l.y+u.y+p.y}},getDocumentElement:getDocumentElement,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:o,strategy:a}=e;const r=[..."clippingAncestors"===n?isTopLayer(t)?[]:function(e,t){const n=t.get(e);if(n)return n;let o=getOverflowAncestors(e,[],!1).filter((e=>isElement(e)&&"body"!==getNodeName(e))),a=null;const r="fixed"===getComputedStyle$1(e).position;let i=r?getParentNode(e):e;for(;isElement(i)&&!isLastTraversableNode(i);){const t=getComputedStyle$1(i),n=isContainingBlock(i);n||"fixed"!==t.position||(a=null),(r?!n&&!a:!n&&"static"===t.position&&a&&["absolute","fixed"].includes(a.position)||isOverflowElement(i)&&!n&&hasFixedPositionAncestor(e,i))?o=o.filter((e=>e!==i)):a=t,i=getParentNode(i)}return t.set(e,o),o}(t,this._c):[].concat(n),o],i=r[0],s=r.reduce(((e,n)=>{const o=getClientRectFromClippingAncestor(t,n,a);return e.top=max(o.top,e.top),e.right=min(o.right,e.right),e.bottom=min(o.bottom,e.bottom),e.left=max(o.left,e.left),e}),getClientRectFromClippingAncestor(t,i,a));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},getOffsetParent:getOffsetParent,getElementRects:async function(e){const t=this.getOffsetParent||getOffsetParent,n=this.getDimensions,o=await n(e.floating);return{reference:getRectRelativeToOffsetParent(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:n}=getCssDimensions(e);return{width:t,height:n}},getScale:getScale,isElement:isElement,isRTL:function(e){return"rtl"===getComputedStyle$1(e).direction}},offset$1=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,o;const{x:a,y:r,placement:i,middlewareData:s}=t,c=await async function(e,t){const{placement:n,platform:o,elements:a}=e,r=await(null==o.isRTL?void 0:o.isRTL(a.floating)),i=getSide(n),s=getAlignment(n),c="y"===getSideAxis(n),l=["left","top"].includes(i)?-1:1,u=r&&c?-1:1,d=evaluate(t,e);let{mainAxis:p,crossAxis:m,alignmentAxis:g}="number"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&"number"==typeof g&&(m="end"===s?-1*g:g),c?{x:m*u,y:p*l}:{x:p*l,y:m*u}}(t,e);return i===(null==(n=s.offset)?void 0:n.placement)&&null!=(o=s.arrow)&&o.alignmentOffset?{}:{x:a+c.x,y:r+c.y,data:{...c,placement:i}}}}},shift$1=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:a}=t,{mainAxis:r=!0,crossAxis:i=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...c}=evaluate(e,t),l={x:n,y:o},u=await detectOverflow(t,c),d=getSideAxis(getSide(a)),p=getOppositeAxis(d);let m=l[p],g=l[d];if(r){const e="y"===p?"bottom":"right";m=clamp(m+u["y"===p?"top":"left"],m,m-u[e])}if(i){const e="y"===d?"bottom":"right";g=clamp(g+u["y"===d?"top":"left"],g,g-u[e])}const _=s.fn({...t,[p]:m,[d]:g});return{..._,data:{x:_.x-n,y:_.y-o,enabled:{[p]:r,[d]:i}}}}}},flip$1=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,o,a,r,i;const{placement:s,middlewareData:c,rects:l,initialPlacement:u,platform:d,elements:p}=t,{mainAxis:m=!0,crossAxis:g=!0,fallbackPlacements:_,fallbackStrategy:f="bestFit",fallbackAxisSideDirection:C="none",flipAlignment:h=!0,...v}=evaluate(e,t);if(null!=(n=c.arrow)&&n.alignmentOffset)return{};const b=getSide(s),R=getSideAxis(u),y=getSide(u)===u,x=await(null==d.isRTL?void 0:d.isRTL(p.floating)),E=_||(y||!h?[getOppositePlacement(u)]:function(e){const t=getOppositePlacement(e);return[getOppositeAlignmentPlacement(e),t,getOppositeAlignmentPlacement(t)]}(u)),I="none"!==C;!_&&I&&E.push(...function(e,t,n,o){const a=getAlignment(e);let r=function(e,t,n){const o=["left","right"],a=["right","left"],r=["top","bottom"],i=["bottom","top"];switch(e){case"top":case"bottom":return n?t?a:o:t?o:a;case"left":case"right":return t?r:i;default:return[]}}(getSide(e),"start"===n,o);return a&&(r=r.map((e=>e+"-"+a)),t&&(r=r.concat(r.map(getOppositeAlignmentPlacement)))),r}(u,h,C,x));const S=[u,...E],A=await detectOverflow(t,v),w=[];let M=(null==(o=c.flip)?void 0:o.overflows)||[];if(m&&w.push(A[b]),g){const e=function(e,t,n){void 0===n&&(n=!1);const o=getAlignment(e),a=getAlignmentAxis(e),r=getAxisLength(a);let i="x"===a?o===(n?"end":"start")?"right":"left":"start"===o?"bottom":"top";return t.reference[r]>t.floating[r]&&(i=getOppositePlacement(i)),[i,getOppositePlacement(i)]}(s,l,x);w.push(A[e[0]],A[e[1]])}if(M=[...M,{placement:s,overflows:w}],!w.every((e=>e<=0))){const e=((null==(a=c.flip)?void 0:a.index)||0)+1,t=S[e];if(t)return{data:{index:e,overflows:M},reset:{placement:t}};let n=null==(r=M.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:r.placement;if(!n)switch(f){case"bestFit":{const e=null==(i=M.filter((e=>{if(I){const t=getSideAxis(e.placement);return t===R||"y"===t}return!0})).map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:i[0];e&&(n=e);break}case"initialPlacement":n=u}if(s!==n)return{reset:{placement:n}}}return{}}}},size$1=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,o;const{placement:a,rects:r,platform:i,elements:s}=t,{apply:c=()=>{},...l}=evaluate(e,t),u=await detectOverflow(t,l),d=getSide(a),p=getAlignment(a),m="y"===getSideAxis(a),{width:g,height:_}=r.floating;let f,C;"top"===d||"bottom"===d?(f=d,C=p===(await(null==i.isRTL?void 0:i.isRTL(s.floating))?"start":"end")?"left":"right"):(C=d,f="end"===p?"top":"bottom");const h=_-u.top-u.bottom,v=g-u.left-u.right,b=min(_-u[f],h),R=min(g-u[C],v),y=!t.middlewareData.shift;let x=b,E=R;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(E=v),null!=(o=t.middlewareData.shift)&&o.enabled.y&&(x=h),y&&!p){const e=max(u.left,0),t=max(u.right,0),n=max(u.top,0),o=max(u.bottom,0);m?E=g-2*(0!==e||0!==t?e+t:max(u.left,u.right)):x=_-2*(0!==n||0!==o?n+o:max(u.top,u.bottom))}await c({...t,availableWidth:E,availableHeight:x});const I=await i.getDimensions(s.floating);return g!==I.width||_!==I.height?{reset:{rects:!0}}:{}}}},hide$1=function(e){return void 0===e&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:o="referenceHidden",...a}=evaluate(e,t);switch(o){case"referenceHidden":{const e=getSideOffsets(await detectOverflow(t,{...a,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:isAnySideFullyClipped(e)}}}case"escaped":{const e=getSideOffsets(await detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:isAnySideFullyClipped(e)}}}default:return{}}}}},arrow$2=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:a,rects:r,platform:i,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=evaluate(e,t)||{};if(null==l)return{};const d=getPaddingObject(u),p={x:n,y:o},m=getAlignmentAxis(a),g=getAxisLength(m),_=await i.getDimensions(l),f="y"===m,C=f?"top":"left",h=f?"bottom":"right",v=f?"clientHeight":"clientWidth",b=r.reference[g]+r.reference[m]-p[m]-r.floating[g],R=p[m]-r.reference[m],y=await(null==i.getOffsetParent?void 0:i.getOffsetParent(l));let x=y?y[v]:0;x&&await(null==i.isElement?void 0:i.isElement(y))||(x=s.floating[v]||r.floating[g]);const E=b/2-R/2,I=x/2-_[g]/2-1,S=min(d[C],I),A=min(d[h],I),w=S,M=x-_[g]-A,$=x/2-_[g]/2+E,N=clamp(w,$,M),T=!c.arrow&&null!=getAlignment(a)&&$!==N&&r.reference[g]/2-($<w?S:A)-_[g]/2<0,O=T?$<w?$-w:$-M:0;return{[m]:p[m]+O,data:{[m]:N,centerOffset:$-N-O,...T&&{alignmentOffset:O}},reset:T}}}),limitShift$1=function(e){return void 0===e&&(e={}),{options:e,fn(t){const{x:n,y:o,placement:a,rects:r,middlewareData:i}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=evaluate(e,t),u={x:n,y:o},d=getSideAxis(a),p=getOppositeAxis(d);let m=u[p],g=u[d];const _=evaluate(s,t),f="number"==typeof _?{mainAxis:_,crossAxis:0}:{mainAxis:0,crossAxis:0,..._};if(c){const e="y"===p?"height":"width",t=r.reference[p]-r.floating[e]+f.mainAxis,n=r.reference[p]+r.reference[e]-f.mainAxis;m<t?m=t:m>n&&(m=n)}if(l){var C,h;const e="y"===p?"width":"height",t=["top","left"].includes(getSide(a)),n=r.reference[d]-r.floating[e]+(t&&(null==(C=i.offset)?void 0:C[d])||0)+(t?0:f.crossAxis),o=r.reference[d]+r.reference[e]+(t?0:(null==(h=i.offset)?void 0:h[d])||0)-(t?f.crossAxis:0);g<n?g=n:g>o&&(g=o)}return{[p]:m,[d]:g}}}},computePosition=(e,t,n)=>{const o=new Map,a={platform:platform,...n},r={...a.platform,_c:o};return(async(e,t,n)=>{const{placement:o="bottom",strategy:a="absolute",middleware:r=[],platform:i}=n,s=r.filter(Boolean),c=await(null==i.isRTL?void 0:i.isRTL(t));let l=await i.getElementRects({reference:e,floating:t,strategy:a}),{x:u,y:d}=computeCoordsFromPlacement(l,o,c),p=o,m={},g=0;for(let _=0;_<s.length;_++){const{name:n,fn:r}=s[_],{x:f,y:C,data:h,reset:v}=await r({x:u,y:d,initialPlacement:o,placement:p,strategy:a,middlewareData:m,rects:l,platform:i,elements:{reference:e,floating:t}});u=null!=f?f:u,d=null!=C?C:d,m={...m,[n]:{...m[n],...h}},v&&g<=50&&(g++,"object"==typeof v&&(v.placement&&(p=v.placement),v.rects&&(l=!0===v.rects?await i.getElementRects({reference:e,floating:t,strategy:a}):v.rects),({x:u,y:d}=computeCoordsFromPlacement(l,p,c))),_=-1)}return{x:u,y:d,placement:p,strategy:a,middlewareData:m}})(e,t,{...a,platform:r})};index$1="undefined"!=typeof document?React.useLayoutEffect:React.useEffect;const arrow$1=e=>({name:"arrow",options:e,fn(t){const{element:n,padding:o}="function"==typeof e?e(t):e;return n&&(a=n,{}.hasOwnProperty.call(a,"current"))?null!=n.current?arrow$2({element:n.current,padding:o}).fn(t):{}:n?arrow$2({element:n,padding:o}).fn(t):{};var a}}),offset=(e,t)=>({...offset$1(e),options:[e,t]}),shift=(e,t)=>({...shift$1(e),options:[e,t]}),limitShift=(e,t)=>({...limitShift$1(e),options:[e,t]}),flip=(e,t)=>({...flip$1(e),options:[e,t]}),size=(e,t)=>({...size$1(e),options:[e,t]}),hide=(e,t)=>({...hide$1(e),options:[e,t]}),arrow=(e,t)=>({...arrow$1(e),options:[e,t]});NAME$2="Arrow",(Arrow$1=React__namespace.forwardRef(((e,t)=>{const{children:n,width:o=10,height:a=5,...r}=e;return jsxRuntime.jsx(Primitive.svg,{...r,ref:t,width:o,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:jsxRuntime.jsx("polygon",{points:"0,0 30,0 15,10"})})}))).displayName=NAME$2,Root$4=Arrow$1,POPPER_NAME="Popper";var[createPopperContext,createPopperScope]=createContextScope(POPPER_NAME),[PopperProvider,usePopperContext]=createPopperContext(POPPER_NAME);(Popper=e=>{const{__scopePopper:t,children:n}=e,[o,a]=React__namespace.useState(null);return jsxRuntime.jsx(PopperProvider,{scope:t,anchor:o,onAnchorChange:a,children:n})}).displayName=POPPER_NAME,ANCHOR_NAME$2="PopperAnchor",(PopperAnchor=React__namespace.forwardRef(((e,t)=>{const{__scopePopper:n,virtualRef:o,...a}=e,r=usePopperContext(ANCHOR_NAME$2,n),i=React__namespace.useRef(null),s=useComposedRefs(t,i);return React__namespace.useEffect((()=>{r.onAnchorChange(o?.current||i.current)})),o?null:jsxRuntime.jsx(Primitive.div,{...a,ref:s})}))).displayName=ANCHOR_NAME$2,CONTENT_NAME$6="PopperContent";var[PopperContentProvider,useContentContext]=createPopperContext(CONTENT_NAME$6);PopperContent=React__namespace.forwardRef(((e,t)=>{const{__scopePopper:n,side:o="bottom",sideOffset:a=0,align:r="center",alignOffset:i=0,arrowPadding:s=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:u=0,sticky:d="partial",hideWhenDetached:p=!1,updatePositionStrategy:m="optimized",onPlaced:g,..._}=e,f=usePopperContext(CONTENT_NAME$6,n),[C,h]=React__namespace.useState(null),v=useComposedRefs(t,(e=>h(e))),[b,R]=React__namespace.useState(null),y=useSize(b),x=y?.width??0,E=y?.height??0,I=o+("center"!==r?"-"+r:""),S="number"==typeof u?u:{top:0,right:0,bottom:0,left:0,...u},A=Array.isArray(l)?l:[l],w=A.length>0,M={padding:S,boundary:A.filter(isNotNull),altBoundary:w},{refs:$,floatingStyles:N,placement:T,isPositioned:O,middlewareData:P}=function(e){void 0===e&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:o=[],platform:a,elements:{reference:r,floating:i}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=React__namespace.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,m]=React__namespace.useState(o);deepEqual(p,o)||m(o);const[g,_]=React__namespace.useState(null),[f,C]=React__namespace.useState(null),h=React__namespace.useCallback((e=>{e!==y.current&&(y.current=e,_(e))}),[]),v=React__namespace.useCallback((e=>{e!==x.current&&(x.current=e,C(e))}),[]),b=r||g,R=i||f,y=React__namespace.useRef(null),x=React__namespace.useRef(null),E=React__namespace.useRef(u),I=null!=c,S=useLatestRef(c),A=useLatestRef(a),w=useLatestRef(l),M=React__namespace.useCallback((()=>{if(!y.current||!x.current)return;const e={placement:t,strategy:n,middleware:p};A.current&&(e.platform=A.current),computePosition(y.current,x.current,e).then((e=>{const t={...e,isPositioned:!1!==w.current};$.current&&!deepEqual(E.current,t)&&(E.current=t,ReactDOM__namespace.flushSync((()=>{d(t)})))}))}),[p,t,n,A,w]);index$1((()=>{!1===l&&E.current.isPositioned&&(E.current.isPositioned=!1,d((e=>({...e,isPositioned:!1}))))}),[l]);const $=React__namespace.useRef(!1);index$1((()=>($.current=!0,()=>{$.current=!1})),[]),index$1((()=>{if(b&&(y.current=b),R&&(x.current=R),b&&R){if(S.current)return S.current(b,R,M);M()}}),[b,R,M,S,I]);const N=React__namespace.useMemo((()=>({reference:y,floating:x,setReference:h,setFloating:v})),[h,v]),T=React__namespace.useMemo((()=>({reference:b,floating:R})),[b,R]),O=React__namespace.useMemo((()=>{const e={position:n,left:0,top:0};if(!T.floating)return e;const t=roundByDPR(T.floating,u.x),o=roundByDPR(T.floating,u.y);return s?{...e,transform:"translate("+t+"px, "+o+"px)",...getDPR(T.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:o}}),[n,s,T.floating,u.x,u.y]);return React__namespace.useMemo((()=>({...u,update:M,refs:N,elements:T,floatingStyles:O})),[u,M,N,T,O])}({strategy:"fixed",placement:I,whileElementsMounted:(...e)=>autoUpdate(...e,{animationFrame:"always"===m}),elements:{reference:f.anchor},middleware:[offset({mainAxis:a+E,alignmentAxis:i}),c&&shift({mainAxis:!0,crossAxis:!1,limiter:"partial"===d?limitShift():void 0,...M}),c&&flip({...M}),size({...M,apply:({elements:e,rects:t,availableWidth:n,availableHeight:o})=>{const{width:a,height:r}=t.reference,i=e.floating.style;i.setProperty("--radix-popper-available-width",`${n}px`),i.setProperty("--radix-popper-available-height",`${o}px`),i.setProperty("--radix-popper-anchor-width",`${a}px`),i.setProperty("--radix-popper-anchor-height",`${r}px`)}}),b&&arrow({element:b,padding:s}),transformOrigin({arrowWidth:x,arrowHeight:E}),p&&hide({strategy:"referenceHidden",...M})]}),[D,L]=getSideAndAlignFromPlacement(T),V=useCallbackRef$1(g);useLayoutEffect2((()=>{O&&V?.()}),[O,V]);const B=P.arrow?.x,j=P.arrow?.y,G=0!==P.arrow?.centerOffset,[H,k]=React__namespace.useState();return useLayoutEffect2((()=>{C&&k(window.getComputedStyle(C).zIndex)}),[C]),jsxRuntime.jsx("div",{ref:$.setFloating,"data-radix-popper-content-wrapper":"",style:{...N,transform:O?N.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:H,"--radix-popper-transform-origin":[P.transformOrigin?.x,P.transformOrigin?.y].join(" "),...P.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:jsxRuntime.jsx(PopperContentProvider,{scope:n,placedSide:D,onArrowChange:R,arrowX:B,arrowY:j,shouldHideArrow:G,children:jsxRuntime.jsx(Primitive.div,{"data-side":D,"data-align":L,..._,ref:v,style:{..._.style,animation:O?void 0:"none"}})})})})),PopperContent.displayName=CONTENT_NAME$6,ARROW_NAME$5="PopperArrow",OPPOSITE_SIDE={top:"bottom",right:"left",bottom:"top",left:"right"},(PopperArrow=React__namespace.forwardRef((function(e,t){const{__scopePopper:n,...o}=e,a=useContentContext(ARROW_NAME$5,n),r=OPPOSITE_SIDE[a.placedSide];return jsxRuntime.jsx("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[r]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:jsxRuntime.jsx(Root$4,{...o,ref:t,style:{...o.style,display:"block"}})})}))).displayName=ARROW_NAME$5,transformOrigin=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:o,middlewareData:a}=t,r=0!==a.arrow?.centerOffset,i=r?0:e.arrowWidth,s=r?0:e.arrowHeight,[c,l]=getSideAndAlignFromPlacement(n),u={start:"0%",center:"50%",end:"100%"}[l],d=(a.arrow?.x??0)+i/2,p=(a.arrow?.y??0)+s/2;let m="",g="";return"bottom"===c?(m=r?u:`${d}px`,g=-s+"px"):"top"===c?(m=r?u:`${d}px`,g=`${o.floating.height+s}px`):"right"===c?(m=-s+"px",g=r?u:`${p}px`):"left"===c&&(m=`${o.floating.width+s}px`,g=r?u:`${p}px`),{data:{x:m,y:g}}}}),Root2$5=Popper,Anchor=PopperAnchor,Content$1=PopperContent,Arrow=PopperArrow,ENTRY_FOCUS="rovingFocusGroup.onEntryFocus",EVENT_OPTIONS={bubbles:!1,cancelable:!0},GROUP_NAME$3="RovingFocusGroup";var[Collection$2,useCollection$2,createCollectionScope$2]=createCollection(GROUP_NAME$3),[createRovingFocusGroupContext,createRovingFocusGroupScope]=createContextScope(GROUP_NAME$3,[createCollectionScope$2]),[RovingFocusProvider,useRovingFocusContext]=createRovingFocusGroupContext(GROUP_NAME$3);(RovingFocusGroup=React__namespace.forwardRef(((e,t)=>jsxRuntime.jsx(Collection$2.Provider,{scope:e.__scopeRovingFocusGroup,children:jsxRuntime.jsx(Collection$2.Slot,{scope:e.__scopeRovingFocusGroup,children:jsxRuntime.jsx(RovingFocusGroupImpl,{...e,ref:t})})})))).displayName=GROUP_NAME$3,RovingFocusGroupImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:o,loop:a=!1,dir:r,currentTabStopId:i,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:l,preventScrollOnEntryFocus:u=!1,...d}=e,p=React__namespace.useRef(null),m=useComposedRefs(t,p),g=useDirection(r),[_=null,f]=useControllableState({prop:i,defaultProp:s,onChange:c}),[C,h]=React__namespace.useState(!1),v=useCallbackRef$1(l),b=useCollection$2(n),R=React__namespace.useRef(!1),[y,x]=React__namespace.useState(0);return React__namespace.useEffect((()=>{const e=p.current;if(e)return e.addEventListener(ENTRY_FOCUS,v),()=>e.removeEventListener(ENTRY_FOCUS,v)}),[v]),jsxRuntime.jsx(RovingFocusProvider,{scope:n,orientation:o,dir:g,loop:a,currentTabStopId:_,onItemFocus:React__namespace.useCallback((e=>f(e)),[f]),onItemShiftTab:React__namespace.useCallback((()=>h(!0)),[]),onFocusableItemAdd:React__namespace.useCallback((()=>x((e=>e+1))),[]),onFocusableItemRemove:React__namespace.useCallback((()=>x((e=>e-1))),[]),children:jsxRuntime.jsx(Primitive.div,{tabIndex:C||0===y?-1:0,"data-orientation":o,...d,ref:m,style:{outline:"none",...e.style},onMouseDown:composeEventHandlers(e.onMouseDown,(()=>{R.current=!0})),onFocus:composeEventHandlers(e.onFocus,(e=>{const t=!R.current;if(e.target===e.currentTarget&&t&&!C){const t=new CustomEvent(ENTRY_FOCUS,EVENT_OPTIONS);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){const e=b().filter((e=>e.focusable));focusFirst$1([e.find((e=>e.active)),e.find((e=>e.id===_)),...e].filter(Boolean).map((e=>e.ref.current)),u)}}R.current=!1})),onBlur:composeEventHandlers(e.onBlur,(()=>h(!1)))})})})),ITEM_NAME$4="RovingFocusGroupItem",RovingFocusGroupItem=React__namespace.forwardRef(((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:o=!0,active:a=!1,tabStopId:r,...i}=e,s=useId(),c=r||s,l=useRovingFocusContext(ITEM_NAME$4,n),u=l.currentTabStopId===c,d=useCollection$2(n),{onFocusableItemAdd:p,onFocusableItemRemove:m}=l;return React__namespace.useEffect((()=>{if(o)return p(),()=>m()}),[o,p,m]),jsxRuntime.jsx(Collection$2.ItemSlot,{scope:n,id:c,focusable:o,active:a,children:jsxRuntime.jsx(Primitive.span,{tabIndex:u?0:-1,"data-orientation":l.orientation,...i,ref:t,onMouseDown:composeEventHandlers(e.onMouseDown,(e=>{o?l.onItemFocus(c):e.preventDefault()})),onFocus:composeEventHandlers(e.onFocus,(()=>l.onItemFocus(c))),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{if("Tab"===e.key&&e.shiftKey)return void l.onItemShiftTab();if(e.target!==e.currentTarget)return;const t=function(e,t,n){const o=function(e,t){return"rtl"!==t?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}(e.key,n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o)||"horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return MAP_KEY_TO_FOCUS_INTENT[o]}(e,l.orientation,l.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let a=d().filter((e=>e.focusable)).map((e=>e.ref.current));if("last"===t)a.reverse();else if("prev"===t||"next"===t){"prev"===t&&a.reverse();const r=a.indexOf(e.currentTarget);a=l.loop?(o=r+1,(n=a).map(((e,t)=>n[(o+t)%n.length]))):a.slice(r+1)}setTimeout((()=>focusFirst$1(a)))}var n,o}))})})})),RovingFocusGroupItem.displayName=ITEM_NAME$4,MAP_KEY_TO_FOCUS_INTENT={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"},Root$3=RovingFocusGroup,Item$1=RovingFocusGroupItem,SELECTION_KEYS$1=["Enter"," "],LAST_KEYS=["ArrowUp","PageDown","End"],FIRST_LAST_KEYS=[...["ArrowDown","PageUp","Home"],...LAST_KEYS],SUB_OPEN_KEYS={ltr:[...SELECTION_KEYS$1,"ArrowRight"],rtl:[...SELECTION_KEYS$1,"ArrowLeft"]},SUB_CLOSE_KEYS={ltr:["ArrowLeft"],rtl:["ArrowRight"]},MENU_NAME="Menu";var[Collection$1,useCollection$1,createCollectionScope$1]=createCollection(MENU_NAME),[createMenuContext,createMenuScope]=createContextScope(MENU_NAME,[createCollectionScope$1,createPopperScope,createRovingFocusGroupScope]);usePopperScope$3=createPopperScope(),useRovingFocusGroupScope$2=createRovingFocusGroupScope();var[MenuProvider,useMenuContext]=createMenuContext(MENU_NAME),[MenuRootProvider,useMenuRootContext]=createMenuContext(MENU_NAME);(Menu$2=e=>{const{__scopeMenu:t,open:n=!1,children:o,dir:a,onOpenChange:r,modal:i=!0}=e,s=usePopperScope$3(t),[c,l]=React__namespace.useState(null),u=React__namespace.useRef(!1),d=useCallbackRef$1(r),p=useDirection(a);return React__namespace.useEffect((()=>{const e=()=>{u.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>u.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}}),[]),jsxRuntime.jsx(Root2$5,{...s,children:jsxRuntime.jsx(MenuProvider,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:l,children:jsxRuntime.jsx(MenuRootProvider,{scope:t,onClose:React__namespace.useCallback((()=>d(!1)),[d]),isUsingKeyboardRef:u,dir:p,modal:i,children:o})})})}).displayName=MENU_NAME,ANCHOR_NAME$1="MenuAnchor",(MenuAnchor=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...o}=e,a=usePopperScope$3(n);return jsxRuntime.jsx(Anchor,{...a,...o,ref:t})}))).displayName=ANCHOR_NAME$1,PORTAL_NAME$4="MenuPortal";var[PortalProvider$2,usePortalContext$2]=createMenuContext(PORTAL_NAME$4,{forceMount:void 0});(MenuPortal$1=e=>{const{__scopeMenu:t,forceMount:n,children:o,container:a}=e,r=useMenuContext(PORTAL_NAME$4,t);return jsxRuntime.jsx(PortalProvider$2,{scope:t,forceMount:n,children:jsxRuntime.jsx(Presence,{present:n||r.open,children:jsxRuntime.jsx(Portal$5,{asChild:!0,container:a,children:o})})})}).displayName=PORTAL_NAME$4,CONTENT_NAME$5="MenuContent";var[MenuContentProvider,useMenuContentContext]=createMenuContext(CONTENT_NAME$5);MenuContent=React__namespace.forwardRef(((e,t)=>{const n=usePortalContext$2(CONTENT_NAME$5,e.__scopeMenu),{forceMount:o=n.forceMount,...a}=e,r=useMenuContext(CONTENT_NAME$5,e.__scopeMenu),i=useMenuRootContext(CONTENT_NAME$5,e.__scopeMenu);return jsxRuntime.jsx(Collection$1.Provider,{scope:e.__scopeMenu,children:jsxRuntime.jsx(Presence,{present:o||r.open,children:jsxRuntime.jsx(Collection$1.Slot,{scope:e.__scopeMenu,children:i.modal?jsxRuntime.jsx(MenuRootContentModal,{...a,ref:t}):jsxRuntime.jsx(MenuRootContentNonModal,{...a,ref:t})})})})})),MenuRootContentModal=React__namespace.forwardRef(((e,t)=>{const n=useMenuContext(CONTENT_NAME$5,e.__scopeMenu),o=React__namespace.useRef(null),a=useComposedRefs(t,o);return React__namespace.useEffect((()=>{const e=o.current;if(e)return hideOthers(e)}),[]),jsxRuntime.jsx(MenuContentImpl,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:composeEventHandlers(e.onFocusOutside,(e=>e.preventDefault()),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})})),MenuRootContentNonModal=React__namespace.forwardRef(((e,t)=>{const n=useMenuContext(CONTENT_NAME$5,e.__scopeMenu);return jsxRuntime.jsx(MenuContentImpl,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})})),MenuContentImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,loop:o=!1,trapFocus:a,onOpenAutoFocus:r,onCloseAutoFocus:i,disableOutsidePointerEvents:s,onEntryFocus:c,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:p,onDismiss:m,disableOutsideScroll:g,..._}=e,f=useMenuContext(CONTENT_NAME$5,n),C=useMenuRootContext(CONTENT_NAME$5,n),h=usePopperScope$3(n),v=useRovingFocusGroupScope$2(n),b=useCollection$1(n),[R,y]=React__namespace.useState(null),x=React__namespace.useRef(null),E=useComposedRefs(t,x,f.onContentChange),I=React__namespace.useRef(0),S=React__namespace.useRef(""),A=React__namespace.useRef(0),w=React__namespace.useRef(null),M=React__namespace.useRef("right"),$=React__namespace.useRef(0),N=g?ReactRemoveScroll:React__namespace.Fragment,T=g?{as:Slot,allowPinchZoom:!0}:void 0,O=e=>{const t=S.current+e,n=b().filter((e=>!e.disabled)),o=document.activeElement,a=n.find((e=>e.ref.current===o))?.textValue,r=function(e,t,n){const o=t.length>1&&Array.from(t).every((e=>e===t[0])),a=o?t[0]:t,r=n?e.indexOf(n):-1;let i=(s=e,c=Math.max(r,0),s.map(((e,t)=>s[(c+t)%s.length])));var s,c;1===a.length&&(i=i.filter((e=>e!==n)));const l=i.find((e=>e.toLowerCase().startsWith(a.toLowerCase())));return l!==n?l:void 0}(n.map((e=>e.textValue)),t,a),i=n.find((e=>e.textValue===r))?.ref.current;!function e(t){S.current=t,window.clearTimeout(I.current),""!==t&&(I.current=window.setTimeout((()=>e("")),1e3))}(t),i&&setTimeout((()=>i.focus()))};React__namespace.useEffect((()=>()=>window.clearTimeout(I.current)),[]),useFocusGuards();const P=React__namespace.useCallback((e=>M.current===w.current?.side&&function(e,t){return!!t&&function(e,t){const{x:n,y:o}=e;let a=!1;for(let r=0,i=t.length-1;r<t.length;i=r++){const e=t[r].x,s=t[r].y,c=t[i].x,l=t[i].y;s>o!=l>o&&n<(c-e)*(o-s)/(l-s)+e&&(a=!a)}return a}({x:e.clientX,y:e.clientY},t)}(e,w.current?.area)),[]);return jsxRuntime.jsx(MenuContentProvider,{scope:n,searchRef:S,onItemEnter:React__namespace.useCallback((e=>{P(e)&&e.preventDefault()}),[P]),onItemLeave:React__namespace.useCallback((e=>{P(e)||(x.current?.focus(),y(null))}),[P]),onTriggerLeave:React__namespace.useCallback((e=>{P(e)&&e.preventDefault()}),[P]),pointerGraceTimerRef:A,onPointerGraceIntentChange:React__namespace.useCallback((e=>{w.current=e}),[]),children:jsxRuntime.jsx(N,{...T,children:jsxRuntime.jsx(FocusScope,{asChild:!0,trapped:a,onMountAutoFocus:composeEventHandlers(r,(e=>{e.preventDefault(),x.current?.focus({preventScroll:!0})})),onUnmountAutoFocus:i,children:jsxRuntime.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:p,onDismiss:m,children:jsxRuntime.jsx(Root$3,{asChild:!0,...v,dir:C.dir,orientation:"vertical",loop:o,currentTabStopId:R,onCurrentTabStopIdChange:y,onEntryFocus:composeEventHandlers(c,(e=>{C.isUsingKeyboardRef.current||e.preventDefault()})),preventScrollOnEntryFocus:!0,children:jsxRuntime.jsx(Content$1,{role:"menu","aria-orientation":"vertical","data-state":getOpenState(f.open),"data-radix-menu-content":"",dir:C.dir,...h,..._,ref:E,style:{outline:"none",..._.style},onKeyDown:composeEventHandlers(_.onKeyDown,(e=>{const t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,o=1===e.key.length;t&&("Tab"===e.key&&e.preventDefault(),!n&&o&&O(e.key));const a=x.current;if(e.target!==a)return;if(!FIRST_LAST_KEYS.includes(e.key))return;e.preventDefault();const r=b().filter((e=>!e.disabled)).map((e=>e.ref.current));LAST_KEYS.includes(e.key)&&r.reverse(),function(e){const t=document.activeElement;for(const n of e){if(n===t)return;if(n.focus(),document.activeElement!==t)return}}(r)})),onBlur:composeEventHandlers(e.onBlur,(e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(I.current),S.current="")})),onPointerMove:composeEventHandlers(e.onPointerMove,whenMouse((e=>{const t=e.target,n=$.current!==e.clientX;if(e.currentTarget.contains(t)&&n){const t=e.clientX>$.current?"right":"left";M.current=t,$.current=e.clientX}})))})})})})})})})),MenuContent.displayName=CONTENT_NAME$5,GROUP_NAME$2="MenuGroup",(MenuGroup=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...o}=e;return jsxRuntime.jsx(Primitive.div,{role:"group",...o,ref:t})}))).displayName=GROUP_NAME$2,LABEL_NAME$2="MenuLabel",(MenuLabel=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...o}=e;return jsxRuntime.jsx(Primitive.div,{...o,ref:t})}))).displayName=LABEL_NAME$2,ITEM_NAME$3="MenuItem",ITEM_SELECT="menu.itemSelect",(MenuItem=React__namespace.forwardRef(((e,t)=>{const{disabled:n=!1,onSelect:o,...a}=e,r=React__namespace.useRef(null),i=useMenuRootContext(ITEM_NAME$3,e.__scopeMenu),s=useMenuContentContext(ITEM_NAME$3,e.__scopeMenu),c=useComposedRefs(t,r),l=React__namespace.useRef(!1);return jsxRuntime.jsx(MenuItemImpl,{...a,ref:c,disabled:n,onClick:composeEventHandlers(e.onClick,(()=>{const e=r.current;if(!n&&e){const t=new CustomEvent(ITEM_SELECT,{bubbles:!0,cancelable:!0});e.addEventListener(ITEM_SELECT,(e=>o?.(e)),{once:!0}),dispatchDiscreteCustomEvent(e,t),t.defaultPrevented?l.current=!1:i.onClose()}})),onPointerDown:t=>{e.onPointerDown?.(t),l.current=!0},onPointerUp:composeEventHandlers(e.onPointerUp,(e=>{l.current||e.currentTarget?.click()})),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{const t=""!==s.searchRef.current;n||t&&" "===e.key||SELECTION_KEYS$1.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())}))})}))).displayName=ITEM_NAME$3,MenuItemImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,disabled:o=!1,textValue:a,...r}=e,i=useMenuContentContext(ITEM_NAME$3,n),s=useRovingFocusGroupScope$2(n),c=React__namespace.useRef(null),l=useComposedRefs(t,c),[u,d]=React__namespace.useState(!1),[p,m]=React__namespace.useState("");return React__namespace.useEffect((()=>{const e=c.current;e&&m((e.textContent??"").trim())}),[r.children]),jsxRuntime.jsx(Collection$1.ItemSlot,{scope:n,disabled:o,textValue:a??p,children:jsxRuntime.jsx(Item$1,{asChild:!0,...s,focusable:!o,children:jsxRuntime.jsx(Primitive.div,{role:"menuitem","data-highlighted":u?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...r,ref:l,onPointerMove:composeEventHandlers(e.onPointerMove,whenMouse((e=>{if(o)i.onItemLeave(e);else if(i.onItemEnter(e),!e.defaultPrevented){e.currentTarget.focus({preventScroll:!0})}}))),onPointerLeave:composeEventHandlers(e.onPointerLeave,whenMouse((e=>i.onItemLeave(e)))),onFocus:composeEventHandlers(e.onFocus,(()=>d(!0))),onBlur:composeEventHandlers(e.onBlur,(()=>d(!1)))})})})})),CHECKBOX_ITEM_NAME$1="MenuCheckboxItem",(MenuCheckboxItem=React__namespace.forwardRef(((e,t)=>{const{checked:n=!1,onCheckedChange:o,...a}=e;return jsxRuntime.jsx(ItemIndicatorProvider,{scope:e.__scopeMenu,checked:n,children:jsxRuntime.jsx(MenuItem,{role:"menuitemcheckbox","aria-checked":isIndeterminate(n)?"mixed":n,...a,ref:t,"data-state":getCheckedState(n),onSelect:composeEventHandlers(a.onSelect,(()=>o?.(!!isIndeterminate(n)||!n)),{checkForDefaultPrevented:!1})})})}))).displayName=CHECKBOX_ITEM_NAME$1,RADIO_GROUP_NAME$2="MenuRadioGroup";var[RadioGroupProvider$1,useRadioGroupContext$1]=createMenuContext(RADIO_GROUP_NAME$2,{value:void 0,onValueChange:()=>{}});(MenuRadioGroup=React__namespace.forwardRef(((e,t)=>{const{value:n,onValueChange:o,...a}=e,r=useCallbackRef$1(o);return jsxRuntime.jsx(RadioGroupProvider$1,{scope:e.__scopeMenu,value:n,onValueChange:r,children:jsxRuntime.jsx(MenuGroup,{...a,ref:t})})}))).displayName=RADIO_GROUP_NAME$2,RADIO_ITEM_NAME$1="MenuRadioItem",(MenuRadioItem=React__namespace.forwardRef(((e,t)=>{const{value:n,...o}=e,a=useRadioGroupContext$1(RADIO_ITEM_NAME$1,e.__scopeMenu),r=n===a.value;return jsxRuntime.jsx(ItemIndicatorProvider,{scope:e.__scopeMenu,checked:r,children:jsxRuntime.jsx(MenuItem,{role:"menuitemradio","aria-checked":r,...o,ref:t,"data-state":getCheckedState(r),onSelect:composeEventHandlers(o.onSelect,(()=>a.onValueChange?.(n)),{checkForDefaultPrevented:!1})})})}))).displayName=RADIO_ITEM_NAME$1,ITEM_INDICATOR_NAME$1="MenuItemIndicator";var[ItemIndicatorProvider,useItemIndicatorContext]=createMenuContext(ITEM_INDICATOR_NAME$1,{checked:!1});(MenuItemIndicator=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,forceMount:o,...a}=e,r=useItemIndicatorContext(ITEM_INDICATOR_NAME$1,n);return jsxRuntime.jsx(Presence,{present:o||isIndeterminate(r.checked)||!0===r.checked,children:jsxRuntime.jsx(Primitive.span,{...a,ref:t,"data-state":getCheckedState(r.checked)})})}))).displayName=ITEM_INDICATOR_NAME$1,SEPARATOR_NAME$2="MenuSeparator",(MenuSeparator=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...o}=e;return jsxRuntime.jsx(Primitive.div,{role:"separator","aria-orientation":"horizontal",...o,ref:t})}))).displayName=SEPARATOR_NAME$2,ARROW_NAME$4="MenuArrow",(MenuArrow=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...o}=e,a=usePopperScope$3(n);return jsxRuntime.jsx(Arrow,{...a,...o,ref:t})}))).displayName=ARROW_NAME$4,SUB_NAME="MenuSub";var[MenuSubProvider,useMenuSubContext]=createMenuContext(SUB_NAME);SUB_TRIGGER_NAME$1="MenuSubTrigger",(MenuSubTrigger=React__namespace.forwardRef(((e,t)=>{const n=useMenuContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),o=useMenuRootContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),a=useMenuSubContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),r=useMenuContentContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),i=React__namespace.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:c}=r,l={__scopeMenu:e.__scopeMenu},u=React__namespace.useCallback((()=>{i.current&&window.clearTimeout(i.current),i.current=null}),[]);return React__namespace.useEffect((()=>u),[u]),React__namespace.useEffect((()=>{const e=s.current;return()=>{window.clearTimeout(e),c(null)}}),[s,c]),jsxRuntime.jsx(MenuAnchor,{asChild:!0,...l,children:jsxRuntime.jsx(MenuItemImpl,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":a.contentId,"data-state":getOpenState(n.open),...e,ref:composeRefs(t,a.onTriggerChange),onClick:t=>{e.onClick?.(t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:composeEventHandlers(e.onPointerMove,whenMouse((t=>{r.onItemEnter(t),t.defaultPrevented||e.disabled||n.open||i.current||(r.onPointerGraceIntentChange(null),i.current=window.setTimeout((()=>{n.onOpenChange(!0),u()}),100))}))),onPointerLeave:composeEventHandlers(e.onPointerLeave,whenMouse((e=>{u();const t=n.content?.getBoundingClientRect();if(t){const o=n.content?.dataset.side,a="right"===o,i=a?-5:5,c=t[a?"left":"right"],l=t[a?"right":"left"];r.onPointerGraceIntentChange({area:[{x:e.clientX+i,y:e.clientY},{x:c,y:t.top},{x:l,y:t.top},{x:l,y:t.bottom},{x:c,y:t.bottom}],side:o}),window.clearTimeout(s.current),s.current=window.setTimeout((()=>r.onPointerGraceIntentChange(null)),300)}else{if(r.onTriggerLeave(e),e.defaultPrevented)return;r.onPointerGraceIntentChange(null)}}))),onKeyDown:composeEventHandlers(e.onKeyDown,(t=>{const a=""!==r.searchRef.current;e.disabled||a&&" "===t.key||SUB_OPEN_KEYS[o.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())}))})})}))).displayName=SUB_TRIGGER_NAME$1,SUB_CONTENT_NAME$1="MenuSubContent",(MenuSubContent=React__namespace.forwardRef(((e,t)=>{const n=usePortalContext$2(CONTENT_NAME$5,e.__scopeMenu),{forceMount:o=n.forceMount,...a}=e,r=useMenuContext(CONTENT_NAME$5,e.__scopeMenu),i=useMenuRootContext(CONTENT_NAME$5,e.__scopeMenu),s=useMenuSubContext(SUB_CONTENT_NAME$1,e.__scopeMenu),c=React__namespace.useRef(null),l=useComposedRefs(t,c);return jsxRuntime.jsx(Collection$1.Provider,{scope:e.__scopeMenu,children:jsxRuntime.jsx(Presence,{present:o||r.open,children:jsxRuntime.jsx(Collection$1.Slot,{scope:e.__scopeMenu,children:jsxRuntime.jsx(MenuContentImpl,{id:s.contentId,"aria-labelledby":s.triggerId,...a,ref:l,align:"start",side:"rtl"===i.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{i.isUsingKeyboardRef.current&&c.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:composeEventHandlers(e.onFocusOutside,(e=>{e.target!==s.trigger&&r.onOpenChange(!1)})),onEscapeKeyDown:composeEventHandlers(e.onEscapeKeyDown,(e=>{i.onClose(),e.preventDefault()})),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{const t=e.currentTarget.contains(e.target),n=SUB_CLOSE_KEYS[i.dir].includes(e.key);t&&n&&(r.onOpenChange(!1),s.trigger?.focus(),e.preventDefault())}))})})})})}))).displayName=SUB_CONTENT_NAME$1,Root3$1=Menu$2,Anchor2=MenuAnchor,Portal$3=MenuPortal$1,Content2$4=MenuContent,Group$2=MenuGroup,Label=MenuLabel,Item2$2=MenuItem,CheckboxItem=MenuCheckboxItem,RadioGroup$2=MenuRadioGroup,RadioItem=MenuRadioItem,ItemIndicator=MenuItemIndicator,Separator=MenuSeparator,Arrow2$2=MenuArrow,SubTrigger=MenuSubTrigger,SubContent=MenuSubContent,DROPDOWN_MENU_NAME="DropdownMenu";var[createDropdownMenuContext,createDropdownMenuScope]=createContextScope(DROPDOWN_MENU_NAME,[createMenuScope]);useMenuScope=createMenuScope();var[DropdownMenuProvider,useDropdownMenuContext]=createDropdownMenuContext(DROPDOWN_MENU_NAME);(DropdownMenu=e=>{const{__scopeDropdownMenu:t,children:n,dir:o,open:a,defaultOpen:r,onOpenChange:i,modal:s=!0}=e,c=useMenuScope(t),l=React__namespace.useRef(null),[u=!1,d]=useControllableState({prop:a,defaultProp:r,onChange:i});return jsxRuntime.jsx(DropdownMenuProvider,{scope:t,triggerId:useId(),triggerRef:l,contentId:useId(),open:u,onOpenChange:d,onOpenToggle:React__namespace.useCallback((()=>d((e=>!e))),[d]),modal:s,children:jsxRuntime.jsx(Root3$1,{...c,open:u,onOpenChange:d,dir:o,modal:s,children:n})})}).displayName=DROPDOWN_MENU_NAME,TRIGGER_NAME$4="DropdownMenuTrigger",(DropdownMenuTrigger$1=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,disabled:o=!1,...a}=e,r=useDropdownMenuContext(TRIGGER_NAME$4,n),i=useMenuScope(n);return jsxRuntime.jsx(Anchor2,{asChild:!0,...i,children:jsxRuntime.jsx(Primitive.button,{type:"button",id:r.triggerId,"aria-haspopup":"menu","aria-expanded":r.open,"aria-controls":r.open?r.contentId:void 0,"data-state":r.open?"open":"closed","data-disabled":o?"":void 0,disabled:o,...a,ref:composeRefs(t,r.triggerRef),onPointerDown:composeEventHandlers(e.onPointerDown,(e=>{o||0!==e.button||!1!==e.ctrlKey||(r.onOpenToggle(),r.open||e.preventDefault())})),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{o||(["Enter"," "].includes(e.key)&&r.onOpenToggle(),"ArrowDown"===e.key&&r.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())}))})})}))).displayName=TRIGGER_NAME$4,(DropdownMenuPortal$1=e=>{const{__scopeDropdownMenu:t,...n}=e,o=useMenuScope(t);return jsxRuntime.jsx(Portal$3,{...o,...n})}).displayName="DropdownMenuPortal",CONTENT_NAME$4="DropdownMenuContent",(DropdownMenuContent$1=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,a=useDropdownMenuContext(CONTENT_NAME$4,n),r=useMenuScope(n),i=React__namespace.useRef(!1);return jsxRuntime.jsx(Content2$4,{id:a.contentId,"aria-labelledby":a.triggerId,...r,...o,ref:t,onCloseAutoFocus:composeEventHandlers(e.onCloseAutoFocus,(e=>{i.current||a.triggerRef.current?.focus(),i.current=!1,e.preventDefault()})),onInteractOutside:composeEventHandlers(e.onInteractOutside,(e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,o=2===t.button||n;a.modal&&!o||(i.current=!0)})),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})}))).displayName=CONTENT_NAME$4,GROUP_NAME$1="DropdownMenuGroup",(DropdownMenuGroup$1=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,a=useMenuScope(n);return jsxRuntime.jsx(Group$2,{...a,...o,ref:t})}))).displayName=GROUP_NAME$1,LABEL_NAME$1="DropdownMenuLabel",(DropdownMenuLabel$1=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,a=useMenuScope(n);return jsxRuntime.jsx(Label,{...a,...o,ref:t})}))).displayName=LABEL_NAME$1,ITEM_NAME$2="DropdownMenuItem",(DropdownMenuItem$1=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,a=useMenuScope(n);return jsxRuntime.jsx(Item2$2,{...a,...o,ref:t})}))).displayName=ITEM_NAME$2,CHECKBOX_ITEM_NAME="DropdownMenuCheckboxItem",React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,a=useMenuScope(n);return jsxRuntime.jsx(CheckboxItem,{...a,...o,ref:t})})).displayName=CHECKBOX_ITEM_NAME,RADIO_GROUP_NAME$1="DropdownMenuRadioGroup",React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,a=useMenuScope(n);return jsxRuntime.jsx(RadioGroup$2,{...a,...o,ref:t})})).displayName=RADIO_GROUP_NAME$1,RADIO_ITEM_NAME="DropdownMenuRadioItem",React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,a=useMenuScope(n);return jsxRuntime.jsx(RadioItem,{...a,...o,ref:t})})).displayName=RADIO_ITEM_NAME,INDICATOR_NAME$2="DropdownMenuItemIndicator",React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,a=useMenuScope(n);return jsxRuntime.jsx(ItemIndicator,{...a,...o,ref:t})})).displayName=INDICATOR_NAME$2,SEPARATOR_NAME$1="DropdownMenuSeparator",(DropdownMenuSeparator$1=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,a=useMenuScope(n);return jsxRuntime.jsx(Separator,{...a,...o,ref:t})}))).displayName=SEPARATOR_NAME$1,ARROW_NAME$3="DropdownMenuArrow",React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,a=useMenuScope(n);return jsxRuntime.jsx(Arrow2$2,{...a,...o,ref:t})})).displayName=ARROW_NAME$3,SUB_TRIGGER_NAME="DropdownMenuSubTrigger",React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,a=useMenuScope(n);return jsxRuntime.jsx(SubTrigger,{...a,...o,ref:t})})).displayName=SUB_TRIGGER_NAME,SUB_CONTENT_NAME="DropdownMenuSubContent",React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,a=useMenuScope(n);return jsxRuntime.jsx(SubContent,{...a,...o,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})})).displayName=SUB_CONTENT_NAME,Root2$4=DropdownMenu,Trigger$4=DropdownMenuTrigger$1,Portal2=DropdownMenuPortal$1,Content2$3=DropdownMenuContent$1,Group2=DropdownMenuGroup$1,Label2=DropdownMenuLabel$1,Item2$1=DropdownMenuItem$1,Separator2=DropdownMenuSeparator$1,styles$d_content="Dropdown-modules_content__hz-wg",styles$d_scrollableArea="Dropdown-modules_scrollableArea__9SHHg",styles$d_item="Dropdown-modules_item__67YXq",styles$d_label="Dropdown-modules_label__05rx3",styles$d_warning="Dropdown-modules_warning__dIJD1",styles$d_separator="Dropdown-modules_separator__dNtZP";const DropdownMenuContent=React.forwardRef((({children:e,className:t,...n},o)=>React.createElement(Portal2,null,React.createElement(Content2$3,{className:cn(styles$d_content,"demio-ui-dropdown-content",t),...n,ref:o},React.createElement("div",{className:styles$d_scrollableArea},e))))),DropdownMenuSeparator=React.forwardRef((({className:e,...t},n)=>React.createElement(Separator2,{ref:n,...t,className:cn(styles$d_separator,"demio-ui-dropdown-separator",e)}))),DropdownMenuRoot=Root2$4,DropdownMenuTrigger=Trigger$4,DropdownMenuLabel=Label2,DropdownMenuItem=Item2$1,DropdownMenuGroup=Group2,DropdownMenuPortal=Portal2;styles$c={formGroup:"FormGroup-modules_formGroup__Zjh7i",horizontal:"FormGroup-modules_horizontal__9g7gn",vertical:"FormGroup-modules_vertical__yPEor",between:"FormGroup-modules_between__poqnA",start:"FormGroup-modules_start__ylflU",center:"FormGroup-modules_center__xkWT-",startAlignItems:"FormGroup-modules_startAlignItems__h-nDr",stretchAlignItems:"FormGroup-modules_stretchAlignItems__jg3e0",centerAlignItems:"FormGroup-modules_centerAlignItems__J7KaF"},styles$b_infoBanner="InfoBanner-modules_infoBanner__6KCFX",styles$b_infoBannerWrapper="InfoBanner-modules_infoBannerWrapper__mUG2s",styles$b_contentWrapper="InfoBanner-modules_contentWrapper__GVYBK",styles$b_title="InfoBanner-modules_title__HqhSZ",styles$b_iconWrapper="InfoBanner-modules_iconWrapper__MiPMN";css$3_overlay="ModalScrollable-modules_overlay__e4-c1",css$3_closeBtn="ModalScrollable-modules_closeBtn__prSB-",css$3_isHidden="ModalScrollable-modules_isHidden__rqtyM",css$3_title="ModalScrollable-modules_title__TzPu5",css$3_withHeader="ModalScrollable-modules_withHeader__OTqO-",css$3_header="ModalScrollable-modules_header__BaeDK",css$3_noTitle="ModalScrollable-modules_noTitle__Aeqsv",css$3_content="ModalScrollable-modules_content__oWfLS",css$3_body="ModalScrollable-modules_body__zrctf",css$3_footer="ModalScrollable-modules_footer__fxnqN",css$3_footerButtonsContainer="ModalScrollable-modules_footerButtonsContainer__MhbTv",css$3_withFooter="ModalScrollable-modules_withFooter__HDHPq",css$3_btn="ModalScrollable-modules_btn__KdfVl",css$3_cancelButton="ModalScrollable-modules_cancelButton__gQ23p";const ModalScrollable=React.memo(React.forwardRef((({cancelBtnText:e="Cancel",children:t,customBodyClass:n="",customCancelBtnClass:o="",customCloseBtnClass:a="",customContentClass:r="",customFooterClass:i="",customOkBtnClass:s="",customOverlayClass:c="",customTitleClass:l="",footer:u,header:d,isAvailableCancelBtn:p=!0,isAvailableOkBtn:m=!0,isClosable:g=!0,isCloseButtonVisible:_=!0,isOkBtnDisabled:f=!1,isOpen:C,isOpenByDefault:h=!1,okBtnText:v="ok",onCancel:b,onOk:R,onOpenChange:y,portalContainer:x,title:E=""},I)=>{const S=e=>{y?.(e)};return React.createElement(Root$9,{defaultOpen:h,open:C,onOpenChange:S},React.createElement(Portal$4,{container:x||void 0},React.createElement(Overlay,{className:cn("demio-ui-scrollable-modal-overlay",css$3_overlay,c),"data-testid":"scrollable-modal-overlay"}),React.createElement(Content$2,{"aria-describedby":void 0,className:cn("demio-ui-scrollable-modal-content",css$3_content,r),"data-testid":"scrollable-modal-content",onPointerDownOutside:e=>{g||e?.preventDefault()},ref:I},React.createElement(Title,{className:cn("demio-ui-scrollable-modal-title",css$3_title,{"no-title":!E,[css$3_isHidden]:!E,"with-header":!!d,[css$3_withHeader]:!!d},l),"data-testid":"scrollable-modal-title"},E),!!d&&React.createElement("div",{className:cn("demio-ui-scrollable-modal-header",css$3_header,{"without-title":!E,[css$3_noTitle]:!E}),"data-testid":"scrollable-modal-header"},d),React.createElement(Close,{className:cn("demio-ui-scrollable-modal-close-btn",css$3_closeBtn,{"no-close-btn":!_,[css$3_isHidden]:!_},a),"data-testid":"scrollable-modal-close-btn"},React.createElement(SvgClose,null)),React.createElement("div",{className:cn("demio-ui-scrollable-modal-body",css$3_body,n),"data-testid":"scrollable-modal-body"},t),(p||m||!!u)&&React.createElement("div",{className:cn("demio-ui-scrollable-modal-footer",css$3_footer,i),"data-testid":"scrollable-modal-footer"},u,(p||m)&&React.createElement("div",{className:cn("demio-ui-scrollable-modal-footer-buttons-container",css$3_footerButtonsContainer,{"with-footer":!!u,[css$3_withFooter]:!!u}),"data-testid":"scrollable-modal-footer-buttons-container"},p&&React.createElement(Button$1,{className:cn("demio-ui-scrollable-modal-footer-cancel-btn",css$3_btn,css$3_cancelButton,o),"data-testid":"scrollable-modal-footer-cancel-btn",onClick:e=>{b?.(e),S(!1)},variant:"outline"},e),m&&React.createElement(Button$1,{className:cn("demio-ui-scrollable-modal-footer-ok-btn",css$3_btn,s),"data-testid":"scrollable-modal-footer-ok-btn",disabled:f,onClick:e=>{R?.(e)},variant:"primary"},v))))))})));var _jsx,JSX,e,t;for(_excluded$6=["defaultInputValue","defaultMenuIsOpen","defaultValue","inputValue","menuIsOpen","onChange","onInputChange","onMenuClose","onMenuOpen","value"],StyleSheet=function(){function t(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var n=t.prototype;return n.hydrate=function(e){e.forEach(this._insertTag)},n.insert=function(t){var n,o;if(this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this)),n=this.tags[this.tags.length-1],this.isSpeedy){o=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(n);try{o.insertRule(t,o.cssRules.length)}catch(e){}}else n.appendChild(document.createTextNode(t));this.ctr++},n.flush=function(){this.tags.forEach((function(e){var t;return null==(t=e.parentNode)?void 0:t.removeChild(e)})),this.tags=[],this.ctr=0},t}(),MS="-ms-",MOZ="-moz-",WEBKIT="-webkit-",COMMENT="comm",RULESET="rule",DECLARATION="decl",IMPORT="@import",KEYFRAMES="@keyframes",LAYER="@layer",abs=Math.abs,from=String.fromCharCode,assign=Object.assign,line=1,column=1,length=0,position=0,character=0,characters="",weakMemoize=function(e){var t=new WeakMap;return function(n){if(t.has(n))return t.get(n);var o=e(n);return t.set(n,o),o}},isBrowser$3="undefined"!=typeof document,identifierWithPointTracking=function(e,t,n){for(var o=0,a=0;o=a,a=peek(),38===o&&12===a&&(t[n]=1),!token(a);)next();return slice(e,position)},toRules=function(e,t){var n=-1,o=44;do{switch(token(o)){case 0:38===o&&12===peek()&&(t[n]=1),e[n]+=identifierWithPointTracking(position-1,t,n);break;case 2:e[n]+=delimit(o);break;case 4:if(44===o){e[++n]=58===peek()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=from(o)}}while(o=next());return e},getRules=function(e,t){return dealloc(toRules(alloc(e),t))},fixedElements=new WeakMap,compat=function(e){var t,n,o,a,r,i,s,c,l;if("rule"===e.type&&e.parent&&!(e.length<1)){for(t=e.value,n=e.parent,o=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||fixedElements.get(n))&&!o)for(fixedElements.set(e,!0),r=getRules(t,a=[]),i=n.props,s=0,c=0;s<r.length;s++)for(l=0;l<i.length;l++,c++)e.props[c]=a[s]?r[s].replace(/&\f/g,i[l]):i[l]+" "+r[s]}},removeLabel=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}},prefixer=function(e,t,n,o){if(e.length>-1&&!e.return)switch(e.type){case DECLARATION:e.return=prefix(e.value,e.length);break;case KEYFRAMES:return serialize([copy(e,{value:replace(e.value,"@","@"+WEBKIT)})],o);case RULESET:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize([copy(e,{props:[replace(t,/:(read-\w+)/,":"+MOZ+"$1")]})],o);case"::placeholder":return serialize([copy(e,{props:[replace(t,/:(plac\w+)/,":"+WEBKIT+"input-$1")]}),copy(e,{props:[replace(t,/:(plac\w+)/,":"+MOZ+"$1")]}),copy(e,{props:[replace(t,/:(plac\w+)/,MS+"input-$1")]})],o)}return""}))}},getServerStylisCache=isBrowser$3?void 0:weakMemoize((function(){return memoize((function(){return{}}))})),defaultStylisPlugins=[prefixer],createCache=function(e){var t,n,o,a,r,i,s,c,l,u,d,p,m,g,_,f,C,h,v=e.key;return isBrowser$3&&"css"===v&&(t=document.querySelectorAll("style[data-emotion]:not([data-s])"),Array.prototype.forEach.call(t,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))),n=e.stylisPlugins||defaultStylisPlugins,o={},r=[],isBrowser$3&&(a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+v+' "]'),(function(e){var t,n=e.getAttribute("data-emotion").split(" ");for(t=1;t<n.length;t++)o[n[t]]=!0;r.push(e)}))),s=[compat,removeLabel],getServerStylisCache?(p=[stringify],m=middleware(s.concat(n,p)),g=function(e){return serialize(compile(e),m)},_=getServerStylisCache(n)(v),f=function(e,t){var n=t.name;return void 0===_[n]&&(_[n]=g(e?e+"{"+t.styles+"}":t.styles)),_[n]},i=function(e,t,n,o){var a=t.name,r=f(e,t);return void 0===C.compat?(o&&(C.inserted[a]=!0),r):o?void(C.inserted[a]=r):r}):(l=[stringify,(h=function(e){c.insert(e)},function(e){e.root||(e=e.return)&&h(e)})],u=middleware(s.concat(n,l)),d=function(e){return serialize(compile(e),u)},i=function(e,t,n,o){c=n,d(e?e+"{"+t.styles+"}":t.styles),o&&(C.inserted[t.name]=!0)}),(C={key:v,sheet:new StyleSheet({key:v,container:a,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:o,registered:{},insert:i}).sheet.hydrate(r),C},isBrowser$2="undefined"!=typeof document,registerStyles=function(e,t,n){var o=e.key+"-"+t.name;(!1===n||!1===isBrowser$2&&void 0!==e.compat)&&void 0===e.registered[o]&&(e.registered[o]=t.styles)},insertStyles=function(e,t,n){var o,a,r,i;if(registerStyles(e,t,n),o=e.key+"-"+t.name,void 0===e.inserted[t.name]){a="",r=t;do{i=e.insert(t===r?"."+o:"",r,e.sheet,!0),isBrowser$2||void 0===i||(a+=i),r=r.next}while(void 0!==r);if(!isBrowser$2&&0!==a.length)return a}},unitlessKeys={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},hyphenateRegex=/[A-Z]|^ms/g,animationRegex=/_EMO_([^_]+?)_([^]*?)_EMO_/g,isCustomProperty=function(e){return 45===e.charCodeAt(1)},isProcessableValue=function(e){return null!=e&&"boolean"!=typeof e},processStyleName=memoize((function(e){return isCustomProperty(e)?e:e.replace(hyphenateRegex,"-$&").toLowerCase()})),processStyleValue=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(animationRegex,(function(e,t,n){return cursor={name:t,styles:n,next:cursor},t}))}return 1===unitlessKeys[e]||isCustomProperty(e)||"number"!=typeof t||0===t?t:t+"px"},labelPattern=/label:\s*([^\s;{]+)\s*(;|$)/g,isBrowser$1="undefined"!=typeof document,syncFallback=function(e){return e()},useInsertionEffect=!!React__namespace.useInsertionEffect&&React__namespace.useInsertionEffect,useInsertionEffectAlwaysWithSyncFallback=isBrowser$1&&useInsertionEffect||syncFallback,isBrowser="undefined"!=typeof document,(EmotionCacheContext=React__namespace.createContext("undefined"!=typeof HTMLElement?createCache({key:"css"}):null)).Provider,withEmotionCache=function(e){return React.forwardRef((function(t,n){var o=React.useContext(EmotionCacheContext);return e(t,o,n)}))},isBrowser||(withEmotionCache=function(e){return function(t){var n=React.useContext(EmotionCacheContext);return null===n?(n=createCache({key:"css"}),React__namespace.createElement(EmotionCacheContext.Provider,{value:n},e(t,n))):e(t,n)}}),ThemeContext=React__namespace.createContext({}),hasOwn={}.hasOwnProperty,typePropName="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",createEmotionProps=function(e,t){var n,o={};for(n in t)hasOwn.call(t,n)&&(o[n]=t[n]);return o[typePropName]=e,o},Insertion=function(e){var t,n,o,a,r=e.cache,i=e.serialized,s=e.isStringTag;if(registerStyles(r,i,s),t=useInsertionEffectAlwaysWithSyncFallback((function(){return insertStyles(r,i,s)})),!isBrowser&&void 0!==t){for(o=i.name,a=i.next;void 0!==a;)o+=" "+a.name,a=a.next;return React__namespace.createElement("style",((n={})["data-emotion"]=r.key+" "+o,n.dangerouslySetInnerHTML={__html:t},n.nonce=r.sheet.nonce,n))}return null},Emotion=withEmotionCache((function(e,t,n){var o,a,r,i,s,c,l=e.css;for(c in"string"==typeof l&&void 0!==t.registered[l]&&(l=t.registered[l]),o=e[typePropName],a=[l],r="","string"==typeof e.className?r=function(e,t,n){var o="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):n&&(o+=n+" ")})),o}(t.registered,a,e.className):null!=e.className&&(r=e.className+" "),i=serializeStyles(a,void 0,React__namespace.useContext(ThemeContext)),r+=t.key+"-"+i.name,s={},e)hasOwn.call(e,c)&&"css"!==c&&c!==typePropName&&(s[c]=e[c]);return s.className=r,n&&(s.ref=n),React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement(Insertion,{cache:t,serialized:i,isStringTag:"string"==typeof o}),React__namespace.createElement(o,s))})),Emotion$1=Emotion,jsx=function(e,t){var n,o,a,r=arguments;if(null==t||!hasOwn.call(t,"css"))return React__namespace.createElement.apply(void 0,r);for(n=r.length,(o=new Array(n))[0]=Emotion$1,o[1]=createEmotionProps(e,t),a=2;a<n;a++)o[a]=r[a];return React__namespace.createElement.apply(null,o)},_jsx=jsx||(jsx={}),JSX||(JSX=_jsx.JSX||(_jsx.JSX={})),isClient="undefined"!=typeof document,index=isClient?React.useLayoutEffect:React.useEffect,_excluded$4=["className","clearValue","cx","getStyles","getClassNames","getValue","hasValue","isMulti","isRtl","options","selectOption","selectProps","setValue","theme"],noop=function(){},cleanValue=function(e){return t=e,Array.isArray(t)?e.filter(Boolean):"object"===_typeof(e)&&null!==e?[e]:[];var t},cleanCommonProps=function(e){return e.className,e.clearValue,e.cx,e.getStyles,e.getClassNames,e.getValue,e.hasValue,e.isMulti,e.isRtl,e.options,e.selectOption,e.selectProps,e.setValue,e.theme,_objectSpread2({},_objectWithoutProperties(e,_excluded$4))},getStyleProps=function(e,t,n){var o=e.cx,a=e.getStyles,r=e.getClassNames,i=e.className;return{css:a(t,e),className:o(null!=n?n:{},r(t,e),i)}},passiveOptionAccessed=!1,options={get passive(){return passiveOptionAccessed=!0}},(w="undefined"!=typeof window?window:{}).addEventListener&&w.removeEventListener&&(w.addEventListener("p",noop,options),w.removeEventListener("p",noop,!1)),supportsPassiveEvents=passiveOptionAccessed,removeProps=function(e){var t,n,o,a;for(t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];return a=Object.entries(e).filter((function(e){var t=_slicedToArray(e,1)[0];return!n.includes(t)})),a.reduce((function(e,t){var n=_slicedToArray(t,2),o=n[0],a=n[1];return e[o]=a,e}),{})},_excluded$3=["children","innerProps"],_excluded2$1=["children","innerProps"],coercePlacement=function(e){return"auto"===e?"bottom":e},menuCSS=function(e,t){var n,o=e.placement,a=e.theme,r=a.borderRadius,i=a.spacing,s=a.colors;return _objectSpread2((_defineProperty(n={label:"menu"},function(e){return e?{bottom:"top",top:"bottom"}[e]:"bottom"}(o),"100%"),_defineProperty(n,"position","absolute"),_defineProperty(n,"width","100%"),_defineProperty(n,"zIndex",1),n),t?{}:{backgroundColor:s.neutral0,borderRadius:r,boxShadow:"0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)",marginBottom:i.menuGutter,marginTop:i.menuGutter})},PortalPlacementContext=React.createContext(null),MenuPlacer=function(e){var t=e.children,n=e.minMenuHeight,o=e.maxMenuHeight,a=e.menuPlacement,r=e.menuPosition,i=e.menuShouldScrollIntoView,s=e.theme,c=React.useContext(PortalPlacementContext)||{},l=c.setPortalPlacement,u=React.useRef(null),d=React.useState(o),p=_slicedToArray(d,2),m=p[0],g=p[1],_=React.useState(null),f=_slicedToArray(_,2),C=f[0],h=f[1],v=s.spacing.controlHeight;return index((function(){var e,t,s=u.current;s&&(e="fixed"===r,t=getMenuPlacement({maxHeight:o,menuEl:s,minHeight:n,placement:a,shouldScroll:i&&!e,isFixedPosition:e,controlHeight:v}),g(t.maxHeight),h(t.placement),null==l||l(t.placement))}),[o,a,r,i,n,l,v]),t({ref:u,placerProps:_objectSpread2(_objectSpread2({},e),{},{placement:C||coercePlacement(a),maxHeight:m})})},Menu$1=function(e){var t=e.children,n=e.innerRef,o=e.innerProps;return jsx("div",_extends({},getStyleProps(e,"menu",{menu:!0}),{ref:n},o),t)},menuListCSS=function(e,t){var n=e.maxHeight,o=e.theme.spacing.baseUnit;return _objectSpread2({maxHeight:n,overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},t?{}:{paddingBottom:o,paddingTop:o})},MenuList=function(e){var t=e.children,n=e.innerProps,o=e.innerRef,a=e.isMulti;return jsx("div",_extends({},getStyleProps(e,"menuList",{"menu-list":!0,"menu-list--is-multi":a}),{ref:o},n),t)},noticeCSS=function(e,t){var n=e.theme,o=n.spacing.baseUnit,a=n.colors;return _objectSpread2({textAlign:"center"},t?{}:{color:a.neutral40,padding:"".concat(2*o,"px ").concat(3*o,"px")})},noOptionsMessageCSS=noticeCSS,loadingMessageCSS=noticeCSS,NoOptionsMessage=function(e){var t=e.children,n=void 0===t?"No options":t,o=e.innerProps,a=_objectWithoutProperties(e,_excluded$3);return jsx("div",_extends({},getStyleProps(_objectSpread2(_objectSpread2({},a),{},{children:n,innerProps:o}),"noOptionsMessage",{"menu-notice":!0,"menu-notice--no-options":!0}),o),n)},LoadingMessage=function(e){var t=e.children,n=void 0===t?"Loading...":t,o=e.innerProps,a=_objectWithoutProperties(e,_excluded2$1);return jsx("div",_extends({},getStyleProps(_objectSpread2(_objectSpread2({},a),{},{children:n,innerProps:o}),"loadingMessage",{"menu-notice":!0,"menu-notice--loading":!0}),o),n)},menuPortalCSS=function(e){var t=e.rect,n=e.offset,o=e.position;return{left:t.left,position:o,top:n,width:t.width,zIndex:1}},MenuPortal=function(e){var t,n,o,a=e.appendTo,r=e.children,i=e.controlElement,s=e.innerProps,c=e.menuPlacement,l=e.menuPosition,u=React.useRef(null),d=React.useRef(null),p=React.useState(coercePlacement(c)),m=_slicedToArray(p,2),g=m[0],_=m[1],f=React.useMemo((function(){return{setPortalPlacement:_}}),[]),C=React.useState(null),h=_slicedToArray(C,2),v=h[0],b=h[1],R=React.useCallback((function(){var e,t,n;i&&(e=function(e){var t=e.getBoundingClientRect();return{bottom:t.bottom,height:t.height,left:t.left,right:t.right,top:t.top,width:t.width}}(i),t="fixed"===l?0:window.pageYOffset,(n=e[g]+t)===(null==v?void 0:v.offset)&&e.left===(null==v?void 0:v.rect.left)&&e.width===(null==v?void 0:v.rect.width)||b({offset:n,rect:e}))}),[i,l,g,null==v?void 0:v.offset,null==v?void 0:v.rect.left,null==v?void 0:v.rect.width]);return index((function(){R()}),[R]),t=React.useCallback((function(){"function"==typeof d.current&&(d.current(),d.current=null),i&&u.current&&(d.current=autoUpdate(i,u.current,R,{elementResize:"ResizeObserver"in window}))}),[i,R]),index((function(){t()}),[t]),n=React.useCallback((function(e){u.current=e,t()}),[t]),!a&&"fixed"!==l||!v?null:(o=jsx("div",_extends({ref:n},getStyleProps(_objectSpread2(_objectSpread2({},e),{},{offset:v.offset,position:l,rect:v.rect}),"menuPortal",{"menu-portal":!0}),s),r),jsx(PortalPlacementContext.Provider,{value:f},a?ReactDOM.createPortal(o,a):o))},containerCSS=function(e){var t=e.isDisabled;return{label:"container",direction:e.isRtl?"rtl":void 0,pointerEvents:t?"none":void 0,position:"relative"}},SelectContainer=function(e){var t=e.children,n=e.innerProps,o=e.isDisabled,a=e.isRtl;return jsx("div",_extends({},getStyleProps(e,"container",{"--is-disabled":o,"--is-rtl":a}),n),t)},valueContainerCSS=function(e,t){var n=e.theme.spacing,o=e.isMulti,a=e.hasValue,r=e.selectProps.controlShouldRenderValue;return _objectSpread2({alignItems:"center",display:o&&a&&r?"flex":"grid",flex:1,flexWrap:"wrap",WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"},t?{}:{padding:"".concat(n.baseUnit/2,"px ").concat(2*n.baseUnit,"px")})},ValueContainer=function(e){var t=e.children,n=e.innerProps,o=e.isMulti,a=e.hasValue;return jsx("div",_extends({},getStyleProps(e,"valueContainer",{"value-container":!0,"value-container--is-multi":o,"value-container--has-value":a}),n),t)},indicatorsContainerCSS=function(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},IndicatorsContainer=function(e){var t=e.children,n=e.innerProps;return jsx("div",_extends({},getStyleProps(e,"indicatorsContainer",{indicators:!0}),n),t)},_excluded$2=["size"],_excluded2=["innerProps","isRtl","size"],_ref2$2="production"===process.env.NODE_ENV?{name:"8mmkcg",styles:"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0"}:{name:"tj5bde-Svg",styles:"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;label:Svg;",map:"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgSlNYLCBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3gsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHtcbiAgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWUsXG4gIENTU09iamVjdFdpdGhMYWJlbCxcbiAgR3JvdXBCYXNlLFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRTdHlsZVByb3BzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgSWNvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5jb25zdCBTdmcgPSAoe1xuICBzaXplLFxuICAuLi5wcm9wc1xufTogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZTogbnVtYmVyIH0pID0+IChcbiAgPHN2Z1xuICAgIGhlaWdodD17c2l6ZX1cbiAgICB3aWR0aD17c2l6ZX1cbiAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICBjc3M9e3tcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgZmlsbDogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBsaW5lSGVpZ2h0OiAxLFxuICAgICAgc3Ryb2tlOiAnY3VycmVudENvbG9yJyxcbiAgICAgIHN0cm9rZVdpZHRoOiAwLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IHR5cGUgQ3Jvc3NJY29uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgQ3Jvc3NJY29uID0gKHByb3BzOiBDcm9zc0ljb25Qcm9wcykgPT4gKFxuICA8U3ZnIHNpemU9ezIwfSB7Li4ucHJvcHN9PlxuICAgIDxwYXRoIGQ9XCJNMTQuMzQ4IDE0Ljg0OWMtMC40NjkgMC40NjktMS4yMjkgMC40NjktMS42OTcgMGwtMi42NTEtMy4wMzAtMi42NTEgMy4wMjljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDAtMC40NjktMC40NjktMC40NjktMS4yMjkgMC0xLjY5N2wyLjc1OC0zLjE1LTIuNzU5LTMuMTUyYy0wLjQ2OS0wLjQ2OS0wLjQ2OS0xLjIyOCAwLTEuNjk3czEuMjI4LTAuNDY5IDEuNjk3IDBsMi42NTIgMy4wMzEgMi42NTEtMy4wMzFjMC40NjktMC40NjkgMS4yMjgtMC40NjkgMS42OTcgMHMwLjQ2OSAxLjIyOSAwIDEuNjk3bC0yLjc1OCAzLjE1MiAyLjc1OCAzLjE1YzAuNDY5IDAuNDY5IDAuNDY5IDEuMjI5IDAgMS42OTh6XCIgLz5cbiAgPC9Tdmc+XG4pO1xuZXhwb3J0IHR5cGUgRG93bkNoZXZyb25Qcm9wcyA9IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU/OiBudW1iZXIgfTtcbmV4cG9ydCBjb25zdCBEb3duQ2hldnJvbiA9IChwcm9wczogRG93bkNoZXZyb25Qcm9wcykgPT4gKFxuICA8U3ZnIHNpemU9ezIwfSB7Li4ucHJvcHN9PlxuICAgIDxwYXRoIGQ9XCJNNC41MTYgNy41NDhjMC40MzYtMC40NDYgMS4wNDMtMC40ODEgMS41NzYgMGwzLjkwOCAzLjc0NyAzLjkwOC0zLjc0N2MwLjUzMy0wLjQ4MSAxLjE0MS0wLjQ0NiAxLjU3NCAwIDAuNDM2IDAuNDQ1IDAuNDA4IDEuMTk3IDAgMS42MTUtMC40MDYgMC40MTgtNC42OTUgNC41MDItNC42OTUgNC41MDItMC4yMTcgMC4yMjMtMC41MDIgMC4zMzUtMC43ODcgMC4zMzVzLTAuNTctMC4xMTItMC43ODktMC4zMzVjMCAwLTQuMjg3LTQuMDg0LTQuNjk1LTQuNTAycy0wLjQzNi0xLjE3IDAtMS42MTV6XCIgLz5cbiAgPC9Tdmc+XG4pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgQnV0dG9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25JbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBUaGUgY2hpbGRyZW4gdG8gYmUgcmVuZGVyZWQgaW5zaWRlIHRoZSBpbmRpY2F0b3IuICovXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICAvKiogUHJvcHMgdGhhdCB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUgY2hpbGRyZW4uICovXG4gIGlubmVyUHJvcHM6IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snZGl2J107XG4gIC8qKiBUaGUgZm9jdXNlZCBzdGF0ZSBvZiB0aGUgc2VsZWN0LiAqL1xuICBpc0ZvY3VzZWQ6IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbmNvbnN0IGJhc2VDU1MgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHtcbiAgICBpc0ZvY3VzZWQsXG4gICAgdGhlbWU6IHtcbiAgICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICAgIGNvbG9ycyxcbiAgICB9LFxuICB9OlxuICAgIHwgRHJvcGRvd25JbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPlxuICAgIHwgQ2xlYXJJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPixcbiAgdW5zdHlsZWQ6IGJvb2xlYW5cbik6IENTU09iamVjdFdpdGhMYWJlbCA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvckNvbnRhaW5lcicsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcbiAgLi4uKHVuc3R5bGVkXG4gICAgPyB7fVxuICAgIDoge1xuICAgICAgICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw2MCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gICAgICAgIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw4MCA6IGNvbG9ycy5uZXV0cmFsNDAsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgZHJvcGRvd25JbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogRHJvcGRvd25JbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPlxuKSA9PiB7XG4gIGNvbnN0IHsgY2hpbGRyZW4sIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnZHJvcGRvd25JbmRpY2F0b3InLCB7XG4gICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgJ2Ryb3Bkb3duLWluZGljYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8RG93bkNoZXZyb24gLz59XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIENsZWFySW5kaWNhdG9yUHJvcHM8XG4gIE9wdGlvbiA9IHVua25vd24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPiA9IEdyb3VwQmFzZTxPcHRpb24+XG4+IGV4dGVuZHMgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWU8T3B0aW9uLCBJc011bHRpLCBHcm91cD4ge1xuICAvKiogVGhlIGNoaWxkcmVuIHRvIGJlIHJlbmRlcmVkIGluc2lkZSB0aGUgaW5kaWNhdG9yLiAqL1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgY2xlYXJJbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IENsZWFySW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogQ2xlYXJJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPlxuKSA9PiB7XG4gIGNvbnN0IHsgY2hpbGRyZW4sIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnY2xlYXJJbmRpY2F0b3InLCB7XG4gICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgJ2NsZWFyLWluZGljYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8Q3Jvc3NJY29uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZXBhcmF0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGljYXRvclNlcGFyYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpbm5lclByb3BzPzogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ107XG59XG5cbmV4cG9ydCBjb25zdCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHtcbiAgICBpc0Rpc2FibGVkLFxuICAgIHRoZW1lOiB7XG4gICAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgICBjb2xvcnMsXG4gICAgfSxcbiAgfTogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JTZXBhcmF0b3InLFxuICBhbGlnblNlbGY6ICdzdHJldGNoJyxcbiAgd2lkdGg6IDEsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBpc0Rpc2FibGVkID8gY29sb3JzLm5ldXRyYWwxMCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gICAgICAgIG1hcmdpbkJvdHRvbTogYmFzZVVuaXQgKiAyLFxuICAgICAgICBtYXJnaW5Ub3A6IGJhc2VVbml0ICogMixcbiAgICAgIH0pLFxufSk7XG5cbmV4cG9ydCBjb25zdCBJbmRpY2F0b3JTZXBhcmF0b3IgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHByb3BzOiBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPlxuKSA9PiB7XG4gIGNvbnN0IHsgaW5uZXJQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgey4uLmdldFN0eWxlUHJvcHMocHJvcHMsICdpbmRpY2F0b3JTZXBhcmF0b3InLCB7XG4gICAgICAgICdpbmRpY2F0b3Itc2VwYXJhdG9yJzogdHJ1ZSxcbiAgICAgIH0pfVxuICAgIC8+XG4gICk7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExvYWRpbmdcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5jb25zdCBsb2FkaW5nRG90QW5pbWF0aW9ucyA9IGtleWZyYW1lc2BcbiAgMCUsIDgwJSwgMTAwJSB7IG9wYWNpdHk6IDA7IH1cbiAgNDAlIHsgb3BhY2l0eTogMTsgfVxuYDtcblxuZXhwb3J0IGNvbnN0IGxvYWRpbmdJbmRpY2F0b3JDU1MgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHtcbiAgICBpc0ZvY3VzZWQsXG4gICAgc2l6ZSxcbiAgICB0aGVtZToge1xuICAgICAgY29sb3JzLFxuICAgICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgIH0sXG4gIH06IExvYWRpbmdJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPixcbiAgdW5zdHlsZWQ6IGJvb2xlYW5cbik6IENTU09iamVjdFdpdGhMYWJlbCA9PiAoe1xuICBsYWJlbDogJ2xvYWRpbmdJbmRpY2F0b3InLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG4gIGFsaWduU2VsZjogJ2NlbnRlcicsXG4gIGZvbnRTaXplOiBzaXplLFxuICBsaW5lSGVpZ2h0OiAxLFxuICBtYXJnaW5SaWdodDogc2l6ZSxcbiAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgdmVydGljYWxBbGlnbjogJ21pZGRsZScsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gICAgICB9KSxcbn0pO1xuXG5pbnRlcmZhY2UgTG9hZGluZ0RvdFByb3BzIHtcbiAgZGVsYXk6IG51bWJlcjtcbiAgb2Zmc2V0OiBib29sZWFuO1xufVxuY29uc3QgTG9hZGluZ0RvdCA9ICh7IGRlbGF5LCBvZmZzZXQgfTogTG9hZGluZ0RvdFByb3BzKSA9PiAoXG4gIDxzcGFuXG4gICAgY3NzPXt7XG4gICAgICBhbmltYXRpb246IGAke2xvYWRpbmdEb3RBbmltYXRpb25zfSAxcyBlYXNlLWluLW91dCAke2RlbGF5fW1zIGluZmluaXRlO2AsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdjdXJyZW50Q29sb3InLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnMWVtJyxcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgbWFyZ2luTGVmdDogb2Zmc2V0ID8gJzFlbScgOiB1bmRlZmluZWQsXG4gICAgICBoZWlnaHQ6ICcxZW0nLFxuICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICB3aWR0aDogJzFlbScsXG4gICAgfX1cbiAgLz5cbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGluZ0luZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xuICAvKiogU2V0IHNpemUgb2YgdGhlIGNvbnRhaW5lci4gKi9cbiAgc2l6ZTogbnVtYmVyO1xufVxuZXhwb3J0IGNvbnN0IExvYWRpbmdJbmRpY2F0b3IgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oe1xuICBpbm5lclByb3BzLFxuICBpc1J0bCxcbiAgc2l6ZSA9IDQsXG4gIC4uLnJlc3RQcm9wc1xufTogTG9hZGluZ0luZGljYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgey4uLmdldFN0eWxlUHJvcHMoXG4gICAgICAgIHsgLi4ucmVzdFByb3BzLCBpbm5lclByb3BzLCBpc1J0bCwgc2l6ZSB9LFxuICAgICAgICAnbG9hZGluZ0luZGljYXRvcicsXG4gICAgICAgIHtcbiAgICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICAgJ2xvYWRpbmctaW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgKX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXswfSBvZmZzZXQ9e2lzUnRsfSAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezE2MH0gb2Zmc2V0IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MzIwfSBvZmZzZXQ9eyFpc1J0bH0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXX0= */",toString:function(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}},Svg=function(e){var t=e.size,n=_objectWithoutProperties(e,_excluded$2);return jsx("svg",_extends({height:t,width:t,viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",css:_ref2$2},n))},CrossIcon=function(e){return jsx(Svg,_extends({size:20},e),jsx("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"}))},DownChevron=function(e){return jsx(Svg,_extends({size:20},e),jsx("path",{d:"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"}))},baseCSS=function(e,t){var n=e.isFocused,o=e.theme,a=o.spacing.baseUnit,r=o.colors;return _objectSpread2({label:"indicatorContainer",display:"flex",transition:"color 150ms"},t?{}:{color:n?r.neutral60:r.neutral20,padding:2*a,":hover":{color:n?r.neutral80:r.neutral40}})},dropdownIndicatorCSS=baseCSS,DropdownIndicator=function(e){var t=e.children,n=e.innerProps;return jsx("div",_extends({},getStyleProps(e,"dropdownIndicator",{indicator:!0,"dropdown-indicator":!0}),n),t||jsx(DownChevron,null))},clearIndicatorCSS=baseCSS,ClearIndicator=function(e){var t=e.children,n=e.innerProps;return jsx("div",_extends({},getStyleProps(e,"clearIndicator",{indicator:!0,"clear-indicator":!0}),n),t||jsx(CrossIcon,null))},indicatorSeparatorCSS=function(e,t){var n=e.isDisabled,o=e.theme,a=o.spacing.baseUnit,r=o.colors;return _objectSpread2({label:"indicatorSeparator",alignSelf:"stretch",width:1},t?{}:{backgroundColor:n?r.neutral10:r.neutral20,marginBottom:2*a,marginTop:2*a})},IndicatorSeparator=function(e){var t=e.innerProps;return jsx("span",_extends({},t,getStyleProps(e,"indicatorSeparator",{"indicator-separator":!0})))},loadingDotAnimations=function(){var e=css$2.apply(void 0,arguments),t="animation-"+e.name;return{name:t,styles:"@keyframes "+t+"{"+e.styles+"}",anim:1,toString:function(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}}(_templateObject||(e=["\n 0%, 80%, 100% { opacity: 0; }\n 40% { opacity: 1; }\n"],t||(t=e.slice(0)),_templateObject=Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})))),loadingIndicatorCSS=function(e,t){var n=e.isFocused,o=e.size,a=e.theme,r=a.colors,i=a.spacing.baseUnit;return _objectSpread2({label:"loadingIndicator",display:"flex",transition:"color 150ms",alignSelf:"center",fontSize:o,lineHeight:1,marginRight:o,textAlign:"center",verticalAlign:"middle"},t?{}:{color:n?r.neutral60:r.neutral20,padding:2*i})},LoadingDot=function(e){var t=e.delay,n=e.offset;return jsx("span",{css:css$2({animation:"".concat(loadingDotAnimations," 1s ease-in-out ").concat(t,"ms infinite;"),backgroundColor:"currentColor",borderRadius:"1em",display:"inline-block",marginLeft:n?"1em":void 0,height:"1em",verticalAlign:"top",width:"1em"},"production"===process.env.NODE_ENV?"":";label:LoadingDot;","production"===process.env.NODE_ENV?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1RSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgSlNYLCBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3gsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHtcbiAgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWUsXG4gIENTU09iamVjdFdpdGhMYWJlbCxcbiAgR3JvdXBCYXNlLFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRTdHlsZVByb3BzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgSWNvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5jb25zdCBTdmcgPSAoe1xuICBzaXplLFxuICAuLi5wcm9wc1xufTogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZTogbnVtYmVyIH0pID0+IChcbiAgPHN2Z1xuICAgIGhlaWdodD17c2l6ZX1cbiAgICB3aWR0aD17c2l6ZX1cbiAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICBjc3M9e3tcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgZmlsbDogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBsaW5lSGVpZ2h0OiAxLFxuICAgICAgc3Ryb2tlOiAnY3VycmVudENvbG9yJyxcbiAgICAgIHN0cm9rZVdpZHRoOiAwLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IHR5cGUgQ3Jvc3NJY29uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgQ3Jvc3NJY29uID0gKHByb3BzOiBDcm9zc0ljb25Qcm9wcykgPT4gKFxuICA8U3ZnIHNpemU9ezIwfSB7Li4ucHJvcHN9PlxuICAgIDxwYXRoIGQ9XCJNMTQuMzQ4IDE0Ljg0OWMtMC40NjkgMC40NjktMS4yMjkgMC40NjktMS42OTcgMGwtMi42NTEtMy4wMzAtMi42NTEgMy4wMjljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDAtMC40NjktMC40NjktMC40NjktMS4yMjkgMC0xLjY5N2wyLjc1OC0zLjE1LTIuNzU5LTMuMTUyYy0wLjQ2OS0wLjQ2OS0wLjQ2OS0xLjIyOCAwLTEuNjk3czEuMjI4LTAuNDY5IDEuNjk3IDBsMi42NTIgMy4wMzEgMi42NTEtMy4wMzFjMC40NjktMC40NjkgMS4yMjgtMC40NjkgMS42OTcgMHMwLjQ2OSAxLjIyOSAwIDEuNjk3bC0yLjc1OCAzLjE1MiAyLjc1OCAzLjE1YzAuNDY5IDAuNDY5IDAuNDY5IDEuMjI5IDAgMS42OTh6XCIgLz5cbiAgPC9Tdmc+XG4pO1xuZXhwb3J0IHR5cGUgRG93bkNoZXZyb25Qcm9wcyA9IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU/OiBudW1iZXIgfTtcbmV4cG9ydCBjb25zdCBEb3duQ2hldnJvbiA9IChwcm9wczogRG93bkNoZXZyb25Qcm9wcykgPT4gKFxuICA8U3ZnIHNpemU9ezIwfSB7Li4ucHJvcHN9PlxuICAgIDxwYXRoIGQ9XCJNNC41MTYgNy41NDhjMC40MzYtMC40NDYgMS4wNDMtMC40ODEgMS41NzYgMGwzLjkwOCAzLjc0NyAzLjkwOC0zLjc0N2MwLjUzMy0wLjQ4MSAxLjE0MS0wLjQ0NiAxLjU3NCAwIDAuNDM2IDAuNDQ1IDAuNDA4IDEuMTk3IDAgMS42MTUtMC40MDYgMC40MTgtNC42OTUgNC41MDItNC42OTUgNC41MDItMC4yMTcgMC4yMjMtMC41MDIgMC4zMzUtMC43ODcgMC4zMzVzLTAuNTctMC4xMTItMC43ODktMC4zMzVjMCAwLTQuMjg3LTQuMDg0LTQuNjk1LTQuNTAycy0wLjQzNi0xLjE3IDAtMS42MTV6XCIgLz5cbiAgPC9Tdmc+XG4pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgQnV0dG9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25JbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBUaGUgY2hpbGRyZW4gdG8gYmUgcmVuZGVyZWQgaW5zaWRlIHRoZSBpbmRpY2F0b3IuICovXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICAvKiogUHJvcHMgdGhhdCB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUgY2hpbGRyZW4uICovXG4gIGlubmVyUHJvcHM6IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snZGl2J107XG4gIC8qKiBUaGUgZm9jdXNlZCBzdGF0ZSBvZiB0aGUgc2VsZWN0LiAqL1xuICBpc0ZvY3VzZWQ6IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbmNvbnN0IGJhc2VDU1MgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHtcbiAgICBpc0ZvY3VzZWQsXG4gICAgdGhlbWU6IHtcbiAgICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICAgIGNvbG9ycyxcbiAgICB9LFxuICB9OlxuICAgIHwgRHJvcGRvd25JbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPlxuICAgIHwgQ2xlYXJJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPixcbiAgdW5zdHlsZWQ6IGJvb2xlYW5cbik6IENTU09iamVjdFdpdGhMYWJlbCA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvckNvbnRhaW5lcicsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcbiAgLi4uKHVuc3R5bGVkXG4gICAgPyB7fVxuICAgIDoge1xuICAgICAgICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw2MCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gICAgICAgIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw4MCA6IGNvbG9ycy5uZXV0cmFsNDAsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgZHJvcGRvd25JbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogRHJvcGRvd25JbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPlxuKSA9PiB7XG4gIGNvbnN0IHsgY2hpbGRyZW4sIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnZHJvcGRvd25JbmRpY2F0b3InLCB7XG4gICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgJ2Ryb3Bkb3duLWluZGljYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8RG93bkNoZXZyb24gLz59XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIENsZWFySW5kaWNhdG9yUHJvcHM8XG4gIE9wdGlvbiA9IHVua25vd24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPiA9IEdyb3VwQmFzZTxPcHRpb24+XG4+IGV4dGVuZHMgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWU8T3B0aW9uLCBJc011bHRpLCBHcm91cD4ge1xuICAvKiogVGhlIGNoaWxkcmVuIHRvIGJlIHJlbmRlcmVkIGluc2lkZSB0aGUgaW5kaWNhdG9yLiAqL1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgY2xlYXJJbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IENsZWFySW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogQ2xlYXJJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPlxuKSA9PiB7XG4gIGNvbnN0IHsgY2hpbGRyZW4sIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnY2xlYXJJbmRpY2F0b3InLCB7XG4gICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgJ2NsZWFyLWluZGljYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8Q3Jvc3NJY29uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZXBhcmF0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGljYXRvclNlcGFyYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpbm5lclByb3BzPzogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ107XG59XG5cbmV4cG9ydCBjb25zdCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHtcbiAgICBpc0Rpc2FibGVkLFxuICAgIHRoZW1lOiB7XG4gICAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgICBjb2xvcnMsXG4gICAgfSxcbiAgfTogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JTZXBhcmF0b3InLFxuICBhbGlnblNlbGY6ICdzdHJldGNoJyxcbiAgd2lkdGg6IDEsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBpc0Rpc2FibGVkID8gY29sb3JzLm5ldXRyYWwxMCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gICAgICAgIG1hcmdpbkJvdHRvbTogYmFzZVVuaXQgKiAyLFxuICAgICAgICBtYXJnaW5Ub3A6IGJhc2VVbml0ICogMixcbiAgICAgIH0pLFxufSk7XG5cbmV4cG9ydCBjb25zdCBJbmRpY2F0b3JTZXBhcmF0b3IgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHByb3BzOiBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPlxuKSA9PiB7XG4gIGNvbnN0IHsgaW5uZXJQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgey4uLmdldFN0eWxlUHJvcHMocHJvcHMsICdpbmRpY2F0b3JTZXBhcmF0b3InLCB7XG4gICAgICAgICdpbmRpY2F0b3Itc2VwYXJhdG9yJzogdHJ1ZSxcbiAgICAgIH0pfVxuICAgIC8+XG4gICk7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExvYWRpbmdcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5jb25zdCBsb2FkaW5nRG90QW5pbWF0aW9ucyA9IGtleWZyYW1lc2BcbiAgMCUsIDgwJSwgMTAwJSB7IG9wYWNpdHk6IDA7IH1cbiAgNDAlIHsgb3BhY2l0eTogMTsgfVxuYDtcblxuZXhwb3J0IGNvbnN0IGxvYWRpbmdJbmRpY2F0b3JDU1MgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHtcbiAgICBpc0ZvY3VzZWQsXG4gICAgc2l6ZSxcbiAgICB0aGVtZToge1xuICAgICAgY29sb3JzLFxuICAgICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgIH0sXG4gIH06IExvYWRpbmdJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPixcbiAgdW5zdHlsZWQ6IGJvb2xlYW5cbik6IENTU09iamVjdFdpdGhMYWJlbCA9PiAoe1xuICBsYWJlbDogJ2xvYWRpbmdJbmRpY2F0b3InLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG4gIGFsaWduU2VsZjogJ2NlbnRlcicsXG4gIGZvbnRTaXplOiBzaXplLFxuICBsaW5lSGVpZ2h0OiAxLFxuICBtYXJnaW5SaWdodDogc2l6ZSxcbiAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgdmVydGljYWxBbGlnbjogJ21pZGRsZScsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gICAgICB9KSxcbn0pO1xuXG5pbnRlcmZhY2UgTG9hZGluZ0RvdFByb3BzIHtcbiAgZGVsYXk6IG51bWJlcjtcbiAgb2Zmc2V0OiBib29sZWFuO1xufVxuY29uc3QgTG9hZGluZ0RvdCA9ICh7IGRlbGF5LCBvZmZzZXQgfTogTG9hZGluZ0RvdFByb3BzKSA9PiAoXG4gIDxzcGFuXG4gICAgY3NzPXt7XG4gICAgICBhbmltYXRpb246IGAke2xvYWRpbmdEb3RBbmltYXRpb25zfSAxcyBlYXNlLWluLW91dCAke2RlbGF5fW1zIGluZmluaXRlO2AsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdjdXJyZW50Q29sb3InLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnMWVtJyxcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgbWFyZ2luTGVmdDogb2Zmc2V0ID8gJzFlbScgOiB1bmRlZmluZWQsXG4gICAgICBoZWlnaHQ6ICcxZW0nLFxuICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICB3aWR0aDogJzFlbScsXG4gICAgfX1cbiAgLz5cbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGluZ0luZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xuICAvKiogU2V0IHNpemUgb2YgdGhlIGNvbnRhaW5lci4gKi9cbiAgc2l6ZTogbnVtYmVyO1xufVxuZXhwb3J0IGNvbnN0IExvYWRpbmdJbmRpY2F0b3IgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oe1xuICBpbm5lclByb3BzLFxuICBpc1J0bCxcbiAgc2l6ZSA9IDQsXG4gIC4uLnJlc3RQcm9wc1xufTogTG9hZGluZ0luZGljYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgey4uLmdldFN0eWxlUHJvcHMoXG4gICAgICAgIHsgLi4ucmVzdFByb3BzLCBpbm5lclByb3BzLCBpc1J0bCwgc2l6ZSB9LFxuICAgICAgICAnbG9hZGluZ0luZGljYXRvcicsXG4gICAgICAgIHtcbiAgICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICAgJ2xvYWRpbmctaW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgKX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXswfSBvZmZzZXQ9e2lzUnRsfSAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezE2MH0gb2Zmc2V0IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MzIwfSBvZmZzZXQ9eyFpc1J0bH0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXX0= */")})},LoadingIndicator=function(e){var t=e.innerProps,n=e.isRtl,o=e.size,a=void 0===o?4:o,r=_objectWithoutProperties(e,_excluded2);return jsx("div",_extends({},getStyleProps(_objectSpread2(_objectSpread2({},r),{},{innerProps:t,isRtl:n,size:a}),"loadingIndicator",{indicator:!0,"loading-indicator":!0}),t),jsx(LoadingDot,{delay:0,offset:n}),jsx(LoadingDot,{delay:160,offset:!0}),jsx(LoadingDot,{delay:320,offset:!n}))},css$1=function(e,t){var n=e.isDisabled,o=e.isFocused,a=e.theme,r=a.colors,i=a.borderRadius;return _objectSpread2({label:"control",alignItems:"center",cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:a.spacing.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms"},t?{}:{backgroundColor:n?r.neutral5:r.neutral0,borderColor:n?r.neutral10:o?r.primary:r.neutral20,borderRadius:i,borderStyle:"solid",borderWidth:1,boxShadow:o?"0 0 0 1px ".concat(r.primary):void 0,"&:hover":{borderColor:o?r.primary:r.neutral30}})},Control$1=function(e){var t=e.children,n=e.isDisabled,o=e.isFocused,a=e.innerRef,r=e.innerProps,i=e.menuIsOpen;return jsx("div",_extends({ref:a},getStyleProps(e,"control",{control:!0,"control--is-disabled":n,"control--is-focused":o,"control--menu-is-open":i}),r,{"aria-disabled":n||void 0}),t)},_excluded$1=["data"],groupCSS=function(e,t){var n=e.theme.spacing;return t?{}:{paddingBottom:2*n.baseUnit,paddingTop:2*n.baseUnit}},Group=function(e){var t=e.children,n=e.cx,o=e.getStyles,a=e.getClassNames,r=e.Heading,i=e.headingProps,s=e.innerProps,c=e.label,l=e.theme,u=e.selectProps;return jsx("div",_extends({},getStyleProps(e,"group",{group:!0}),s),jsx(r,_extends({},i,{selectProps:u,theme:l,getStyles:o,getClassNames:a,cx:n}),c),jsx("div",null,t))},groupHeadingCSS=function(e,t){var n=e.theme,o=n.colors,a=n.spacing;return _objectSpread2({label:"group",cursor:"default",display:"block"},t?{}:{color:o.neutral40,fontSize:"75%",fontWeight:500,marginBottom:"0.25em",paddingLeft:3*a.baseUnit,paddingRight:3*a.baseUnit,textTransform:"uppercase"})},GroupHeading=function(e){var t,n=cleanCommonProps(e);return n.data,t=_objectWithoutProperties(n,_excluded$1),jsx("div",_extends({},getStyleProps(e,"groupHeading",{"group-heading":!0}),t))},Group$1=Group,_excluded$5=["innerRef","isDisabled","isHidden","inputClassName"],inputCSS=function(e,t){var n=e.isDisabled,o=e.value,a=e.theme,r=a.spacing,i=a.colors;return _objectSpread2(_objectSpread2({visibility:n?"hidden":"visible",transform:o?"translateZ(0)":""},containerStyle),t?{}:{margin:r.baseUnit/2,paddingBottom:r.baseUnit/2,paddingTop:r.baseUnit/2,color:i.neutral80})},containerStyle={flex:"1 1 auto",display:"inline-grid",gridArea:"1 / 1 / 2 / 3",gridTemplateColumns:"0 min-content","&:after":_objectSpread2({content:'attr(data-value) " "',visibility:"hidden",whiteSpace:"pre"},spacingStyle={gridArea:"1 / 2",font:"inherit",minWidth:"2px",border:0,margin:0,outline:0,padding:0})},inputStyle=function(e){return _objectSpread2({label:"input",color:"inherit",background:0,opacity:e?0:1,width:"100%"},spacingStyle)},Input=function(e){var t=e.cx,n=e.value,o=cleanCommonProps(e),a=o.innerRef,r=o.isDisabled,i=o.isHidden,s=o.inputClassName,c=_objectWithoutProperties(o,_excluded$5);return jsx("div",_extends({},getStyleProps(e,"input",{"input-container":!0}),{"data-value":n||""}),jsx("input",_extends({className:t({input:!0},s),ref:a,style:inputStyle(i),disabled:r},c)))},multiValueCSS=function(e,t){var n=e.theme,o=n.spacing,a=n.borderRadius,r=n.colors;return _objectSpread2({label:"multiValue",display:"flex",minWidth:0},t?{}:{backgroundColor:r.neutral10,borderRadius:a/2,margin:o.baseUnit/2})},multiValueLabelCSS=function(e,t){var n=e.theme,o=n.borderRadius,a=n.colors,r=e.cropWithEllipsis;return _objectSpread2({overflow:"hidden",textOverflow:r||void 0===r?"ellipsis":void 0,whiteSpace:"nowrap"},t?{}:{borderRadius:o/2,color:a.neutral80,fontSize:"85%",padding:3,paddingLeft:6})},multiValueRemoveCSS=function(e,t){var n=e.theme,o=n.spacing,a=n.borderRadius,r=n.colors,i=e.isFocused;return _objectSpread2({alignItems:"center",display:"flex"},t?{}:{borderRadius:a/2,backgroundColor:i?r.dangerLight:void 0,paddingLeft:o.baseUnit,paddingRight:o.baseUnit,":hover":{backgroundColor:r.dangerLight,color:r.danger}})},MultiValue=function(e){var t=e.children,n=e.components,o=e.data,a=e.innerProps,r=e.isDisabled,i=e.removeProps,s=e.selectProps,c=n.Container,l=n.Label,u=n.Remove;return jsx(c,{data:o,innerProps:_objectSpread2(_objectSpread2({},getStyleProps(e,"multiValue",{"multi-value":!0,"multi-value--is-disabled":r})),a),selectProps:s},jsx(l,{data:o,innerProps:_objectSpread2({},getStyleProps(e,"multiValueLabel",{"multi-value__label":!0})),selectProps:s},t),jsx(u,{data:o,innerProps:_objectSpread2(_objectSpread2({},getStyleProps(e,"multiValueRemove",{"multi-value__remove":!0})),{},{"aria-label":"Remove ".concat(t||"option")},i),selectProps:s}))},optionCSS=function(e,t){var n=e.isDisabled,o=e.isFocused,a=e.isSelected,r=e.theme,i=r.spacing,s=r.colors;return _objectSpread2({label:"option",cursor:"default",display:"block",fontSize:"inherit",width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)"},t?{}:{backgroundColor:a?s.primary:o?s.primary25:"transparent",color:n?s.neutral20:a?s.neutral0:"inherit",padding:"".concat(2*i.baseUnit,"px ").concat(3*i.baseUnit,"px"),":active":{backgroundColor:n?void 0:a?s.primary:s.primary50}})},placeholderCSS=function(e,t){var n=e.theme,o=n.spacing,a=n.colors;return _objectSpread2({label:"placeholder",gridArea:"1 / 1 / 2 / 3"},t?{}:{color:a.neutral50,marginLeft:o.baseUnit/2,marginRight:o.baseUnit/2})},css=function(e,t){var n=e.isDisabled,o=e.theme,a=o.spacing,r=o.colors;return _objectSpread2({label:"singleValue",gridArea:"1 / 1 / 2 / 3",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},t?{}:{color:n?r.neutral40:r.neutral80,marginLeft:a.baseUnit/2,marginRight:a.baseUnit/2})},components={ClearIndicator:ClearIndicator,Control:Control$1,DropdownIndicator:DropdownIndicator,DownChevron:DownChevron,CrossIcon:CrossIcon,Group:Group$1,GroupHeading:GroupHeading,IndicatorsContainer:IndicatorsContainer,IndicatorSeparator:IndicatorSeparator,Input:Input,LoadingIndicator:LoadingIndicator,Menu:Menu$1,MenuList:MenuList,MenuPortal:MenuPortal,LoadingMessage:LoadingMessage,NoOptionsMessage:NoOptionsMessage,MultiValue:MultiValue,MultiValueContainer:MultiValueGeneric=function(e){var t=e.children,n=e.innerProps;return jsx("div",n,t)},MultiValueLabel:MultiValueGeneric,MultiValueRemove:function(e){var t=e.children,n=e.innerProps;return jsx("div",_extends({role:"button"},n),t||jsx(CrossIcon,{size:14}))},Option:function(e){var t=e.children,n=e.isDisabled,o=e.isFocused,a=e.isSelected,r=e.innerRef,i=e.innerProps;return jsx("div",_extends({},getStyleProps(e,"option",{option:!0,"option--is-disabled":n,"option--is-focused":o,"option--is-selected":a}),{ref:r,"aria-disabled":n},i),t)},Placeholder:function(e){var t=e.children,n=e.innerProps;return jsx("div",_extends({},getStyleProps(e,"placeholder",{placeholder:!0}),n),t)},SelectContainer:SelectContainer,SingleValue:function(e){var t=e.children,n=e.isDisabled,o=e.innerProps;return jsx("div",_extends({},getStyleProps(e,"singleValue",{"single-value":!0,"single-value--is-disabled":n}),o),t)},ValueContainer:ValueContainer},defaultComponents=function(e){return _objectSpread2(_objectSpread2({},components),e.components)},safeIsNaN=Number.isNaN||function(e){return"number"==typeof e&&e!=e},_ref="production"===process.env.NODE_ENV?{name:"7pg0cj-a11yText",styles:"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap"}:{name:"1f43avz-a11yText-A11yText",styles:"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;label:A11yText;",map:"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPSSIsImZpbGUiOiJBMTF5VGV4dC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IEpTWCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLy8gQXNzaXN0aXZlIHRleHQgdG8gZGVzY3JpYmUgdmlzdWFsIGVsZW1lbnRzLiBIaWRkZW4gZm9yIHNpZ2h0ZWQgdXNlcnMuXG5jb25zdCBBMTF5VGV4dCA9IChwcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ10pID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAnYTExeVRleHQnLFxuICAgICAgekluZGV4OiA5OTk5LFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogJ3JlY3QoMXB4LCAxcHgsIDFweCwgMXB4KScsXG4gICAgICBoZWlnaHQ6IDEsXG4gICAgICB3aWR0aDogMSxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQTExeVRleHQ7XG4iXX0= */",toString:function(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}},A11yText$1=function(e){return jsx("span",_extends({css:_ref},e))},defaultAriaLiveMessages={guidance:function(e){var t=e.isSearchable,n=e.isMulti,o=e.tabSelectsValue,a=e.context,r=e.isInitialFocus;switch(a){case"menu":return"Use Up and Down to choose options, press Enter to select the currently focused option, press Escape to exit the menu".concat(o?", press Tab to select the option and exit the menu":"",".");case"input":return r?"".concat(e["aria-label"]||"Select"," is focused ").concat(t?",type to refine list":"",", press Down to open the menu, ").concat(n?" press left to focus selected values":""):"";case"value":return"Use left and right to toggle between focused values, press Backspace to remove the currently focused value";default:return""}},onChange:function(e){var t=e.action,n=e.label,o=void 0===n?"":n,a=e.labels,r=e.isDisabled;switch(t){case"deselect-option":case"pop-value":case"remove-value":return"option ".concat(o,", deselected.");case"clear":return"All selected options have been cleared.";case"initial-input-focus":return"option".concat(a.length>1?"s":""," ").concat(a.join(","),", selected.");case"select-option":return"option ".concat(o,r?" is disabled. Select another option.":", selected.");default:return""}},onFocus:function(e){var t,n,o=e.context,a=e.focused,r=e.options,i=e.label,s=void 0===i?"":i,c=e.selectValue,l=e.isDisabled,u=e.isSelected,d=e.isAppleDevice,p=function(e,t){return e&&e.length?"".concat(e.indexOf(t)+1," of ").concat(e.length):""};return"value"===o&&c?"value ".concat(s," focused, ").concat(p(c,a),"."):"menu"===o&&d?(t=l?" disabled":"",n="".concat(u?" selected":"").concat(t),"".concat(s).concat(n,", ").concat(p(r,a),".")):""},onFilter:function(e){var t=e.inputValue,n=e.resultsMessage;return"".concat(n).concat(t?" for search term "+t:"",".")}},LiveRegion=function(e){var t=e.ariaSelection,n=e.focusedOption,o=e.focusedValue,a=e.focusableOptions,r=e.isFocused,i=e.selectValue,s=e.selectProps,c=e.id,l=e.isAppleDevice,u=s.ariaLiveMessages,d=s.getOptionLabel,p=s.inputValue,m=s.isMulti,g=s.isOptionDisabled,_=s.isSearchable,f=s.menuIsOpen,C=s.options,h=s.screenReaderStatus,v=s.tabSelectsValue,b=s.isLoading,R=s["aria-label"],y=s["aria-live"],x=React.useMemo((function(){return _objectSpread2(_objectSpread2({},defaultAriaLiveMessages),u||{})}),[u]),E=React.useMemo((function(){var e,n,o,a,r,s,c,l,u,p,m="";return t&&x.onChange&&(e=t.option,n=t.options,o=t.removedValue,a=t.removedValues,r=t.value,c=(s=o||e||function(e){return Array.isArray(e)?null:e}(r))?d(s):"",u=(l=n||a||void 0)?l.map(d):[],p=_objectSpread2({isDisabled:s&&g(s,i),label:c,labels:u},t),m=x.onChange(p)),m}),[t,x,g,i,d]),I=React.useMemo((function(){var e,t="",r=n||o,s=!!(n&&i&&i.includes(n));return r&&x.onFocus&&(e={focused:r,label:d(r),isDisabled:g(r,i),isSelected:s,options:a,context:r===n?"menu":"value",selectValue:i,isAppleDevice:l},t=x.onFocus(e)),t}),[n,o,d,g,x,a,i,l]),S=React.useMemo((function(){var e,t="";return f&&C.length&&!b&&x.onFilter&&(e=h({count:a.length}),t=x.onFilter({inputValue:p,resultsMessage:e})),t}),[a,p,f,x,C,h,b]),A="initial-input-focus"===(null==t?void 0:t.action),w=React.useMemo((function(){var e,t="";return x.guidance&&(e=o?"value":f?"menu":"input",t=x.guidance({"aria-label":R,context:e,isDisabled:n&&g(n,i),isMulti:m,isSearchable:_,tabSelectsValue:v,isInitialFocus:A})),t}),[R,n,o,m,g,_,f,x,i,v,A]),M=jsx(React.Fragment,null,jsx("span",{id:"aria-selection"},E),jsx("span",{id:"aria-focused"},I),jsx("span",{id:"aria-results"},S),jsx("span",{id:"aria-guidance"},w));return jsx(React.Fragment,null,jsx(A11yText$1,{id:c},A&&M),jsx(A11yText$1,{"aria-live":y,"aria-atomic":"false","aria-relevant":"additions text",role:"log"},r&&!A&&M))},LiveRegion$1=LiveRegion,diacritics=[{base:"A",letters:"AⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"ÆǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČÇḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃÑṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"æǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċčçḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢsßśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}],anyDiacritic=new RegExp("["+diacritics.map((function(e){return e.letters})).join("")+"]","g"),diacriticToBase={},i=0;i<diacritics.length;i++)for(diacritic=diacritics[i],j=0;j<diacritic.letters.length;j++)diacriticToBase[diacritic.letters[j]]=diacritic.base;stripDiacritics=function(e){return e.replace(anyDiacritic,(function(e){return diacriticToBase[e]}))},memoizedStripDiacriticsForInput=function(e,t){function n(){var n,a,r=[];for(n=0;n<arguments.length;n++)r[n]=arguments[n];return o&&o.lastThis===this&&t(r,o.lastArgs)?o.lastResult:(a=e.apply(this,r),o={lastResult:a,lastArgs:r,lastThis:this},a)}void 0===t&&(t=areInputsEqual);var o=null;return n.clear=function(){o=null},n}(stripDiacritics),trimString=function(e){return e.replace(/^\s+|\s+$/g,"")},defaultStringify=function(e){return"".concat(e.label," ").concat(e.value)},createFilter=function(e){return function(t,n){var o,a,r,i,s,c,l,u;return!!t.data.__isNew__||(a=(o=_objectSpread2({ignoreCase:!0,ignoreAccents:!0,stringify:defaultStringify,trim:!0,matchFrom:"any"},e)).ignoreCase,r=o.ignoreAccents,i=o.stringify,s=o.trim,c=o.matchFrom,l=s?trimString(n):n,u=s?trimString(i(t)):i(t),a&&(l=l.toLowerCase(),u=u.toLowerCase()),r&&(l=memoizedStripDiacriticsForInput(l),u=stripDiacritics(u)),"start"===c?u.substr(0,l.length)===l:u.indexOf(l)>-1)}},_excluded=["innerRef"],cancelScroll=function(e){e.cancelable&&e.preventDefault(),e.stopPropagation()},STYLE_KEYS=["boxSizing","height","overflow","paddingRight","position"],LOCK_STYLES={boxSizing:"border-box",overflow:"hidden",position:"relative",height:"100%"},canUseDOM=!("undefined"==typeof window||!window.document||!window.document.createElement),activeScrollLocks=0,listenerOptions={capture:!1,passive:!1},blurSelectInput=function(e){var t=e.target;return t.ownerDocument.activeElement&&t.ownerDocument.activeElement.blur()},_ref2$1="production"===process.env.NODE_ENV?{name:"1kfdb0e",styles:"position:fixed;left:0;bottom:0;right:0;top:0"}:{name:"bp8cua-ScrollManager",styles:"position:fixed;left:0;bottom:0;right:0;top:0;label:ScrollManager;",map:"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbE1hbmFnZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9EVSIsImZpbGUiOiJTY3JvbGxNYW5hZ2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgRnJhZ21lbnQsIFJlYWN0RWxlbWVudCwgUmVmQ2FsbGJhY2ssIE1vdXNlRXZlbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlU2Nyb2xsQ2FwdHVyZSBmcm9tICcuL3VzZVNjcm9sbENhcHR1cmUnO1xuaW1wb3J0IHVzZVNjcm9sbExvY2sgZnJvbSAnLi91c2VTY3JvbGxMb2NrJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IChyZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PikgPT4gUmVhY3RFbGVtZW50O1xuICByZWFkb25seSBsb2NrRW5hYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgY2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IG9uQm90dG9tQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Cb3R0b21MZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IG9uVG9wQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Ub3BMZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IGJsdXJTZWxlY3RJbnB1dCA9IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgcmV0dXJuIChcbiAgICBlbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJlxuICAgIChlbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuYmx1cigpXG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTY3JvbGxNYW5hZ2VyKHtcbiAgY2hpbGRyZW4sXG4gIGxvY2tFbmFibGVkLFxuICBjYXB0dXJlRW5hYmxlZCA9IHRydWUsXG4gIG9uQm90dG9tQXJyaXZlLFxuICBvbkJvdHRvbUxlYXZlLFxuICBvblRvcEFycml2ZSxcbiAgb25Ub3BMZWF2ZSxcbn06IFByb3BzKSB7XG4gIGNvbnN0IHNldFNjcm9sbENhcHR1cmVUYXJnZXQgPSB1c2VTY3JvbGxDYXB0dXJlKHtcbiAgICBpc0VuYWJsZWQ6IGNhcHR1cmVFbmFibGVkLFxuICAgIG9uQm90dG9tQXJyaXZlLFxuICAgIG9uQm90dG9tTGVhdmUsXG4gICAgb25Ub3BBcnJpdmUsXG4gICAgb25Ub3BMZWF2ZSxcbiAgfSk7XG4gIGNvbnN0IHNldFNjcm9sbExvY2tUYXJnZXQgPSB1c2VTY3JvbGxMb2NrKHsgaXNFbmFibGVkOiBsb2NrRW5hYmxlZCB9KTtcblxuICBjb25zdCB0YXJnZXRSZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PiA9IChlbGVtZW50KSA9PiB7XG4gICAgc2V0U2Nyb2xsQ2FwdHVyZVRhcmdldChlbGVtZW50KTtcbiAgICBzZXRTY3JvbGxMb2NrVGFyZ2V0KGVsZW1lbnQpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPEZyYWdtZW50PlxuICAgICAge2xvY2tFbmFibGVkICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIG9uQ2xpY2s9e2JsdXJTZWxlY3RJbnB1dH1cbiAgICAgICAgICBjc3M9e3sgcG9zaXRpb246ICdmaXhlZCcsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAsIHRvcDogMCB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtjaGlsZHJlbih0YXJnZXRSZWYpfVxuICAgIDwvRnJhZ21lbnQ+XG4gICk7XG59XG4iXX0= */",toString:function(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}},_ref2="production"===process.env.NODE_ENV?{name:"1a0ro4n-requiredInput",styles:"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%"}:{name:"5kkxb2-requiredInput-RequiredInput",styles:"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%;label:RequiredInput;",map:"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJlcXVpcmVkSW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNJIiwiZmlsZSI6IlJlcXVpcmVkSW5wdXQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBGb2N1c0V2ZW50SGFuZGxlciwgRnVuY3Rpb25Db21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmNvbnN0IFJlcXVpcmVkSW5wdXQ6IEZ1bmN0aW9uQ29tcG9uZW50PHtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgb25Gb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG59PiA9ICh7IG5hbWUsIG9uRm9jdXMgfSkgPT4gKFxuICA8aW5wdXRcbiAgICByZXF1aXJlZFxuICAgIG5hbWU9e25hbWV9XG4gICAgdGFiSW5kZXg9ey0xfVxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAncmVxdWlyZWRJbnB1dCcsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICBib3R0b206IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgcmlnaHQ6IDAsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgIH19XG4gICAgLy8gUHJldmVudCBgU3dpdGNoaW5nIGZyb20gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWRgIGVycm9yXG4gICAgdmFsdWU9XCJcIlxuICAgIG9uQ2hhbmdlPXsoKSA9PiB7fX1cbiAgLz5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IFJlcXVpcmVkSW5wdXQ7XG4iXX0= */",toString:function(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}},RequiredInput=function(e){var t=e.name,n=e.onFocus;return jsx("input",{required:!0,name:t,tabIndex:-1,"aria-hidden":"true",onFocus:n,css:_ref2,value:"",onChange:function(){}})},RequiredInput$1=RequiredInput,formatGroupLabel=function(e){return e.label},getOptionLabel$1=function(e){return e.label},getOptionValue$1=function(e){return e.value},isOptionDisabled=function(e){return!!e.isDisabled},defaultStyles={clearIndicator:clearIndicatorCSS,container:containerCSS,control:css$1,dropdownIndicator:dropdownIndicatorCSS,group:groupCSS,groupHeading:groupHeadingCSS,indicatorsContainer:indicatorsContainerCSS,indicatorSeparator:indicatorSeparatorCSS,input:inputCSS,loadingIndicator:loadingIndicatorCSS,loadingMessage:loadingMessageCSS,menu:menuCSS,menuList:menuListCSS,menuPortal:menuPortalCSS,multiValue:multiValueCSS,multiValueLabel:multiValueLabelCSS,multiValueRemove:multiValueRemoveCSS,noOptionsMessage:noOptionsMessageCSS,option:optionCSS,placeholder:placeholderCSS,singleValue:css,valueContainer:valueContainerCSS},defaultTheme={borderRadius:4,colors:{primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},spacing:{baseUnit:baseUnit=4,controlHeight:38,menuGutter:2*baseUnit}},defaultProps={"aria-live":"polite",backspaceRemovesValue:!0,blurInputOnSelect:isTouchCapable(),captureMenuScroll:!isTouchCapable(),classNames:{},closeMenuOnSelect:!0,closeMenuOnScroll:!1,components:{},controlShouldRenderValue:!0,escapeClearsValue:!1,filterOption:createFilter(),formatGroupLabel:formatGroupLabel,getOptionLabel:getOptionLabel$1,getOptionValue:getOptionValue$1,isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:isOptionDisabled,loadingMessage:function(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!function(){try{return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}catch(e){return!1}}(),noOptionsMessage:function(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function(e){var t=e.count;return"".concat(t," result").concat(1!==t?"s":""," available")},styles:{},tabIndex:0,tabSelectsValue:!0,unstyled:!1},getFocusedOptionId=function(e,t){var n,o=null===(n=e.find((function(e){return e.data===t})))||void 0===n?void 0:n.id;return o||null},getOptionLabel=function(e,t){return e.getOptionLabel(t)},getOptionValue=function(e,t){return e.getOptionValue(t)},shouldHideSelectedOptions=function(e){var t=e.hideSelectedOptions,n=e.isMulti;return void 0===t?n:t},instanceId=1,Select$2=function(){function e(n){var o,a,r,i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),(o=t.call(this,n)).state={ariaSelection:null,focusedOption:null,focusedOptionId:null,focusableOptionsWithIds:[],focusedValue:null,inputIsHidden:!1,isFocused:!1,selectValue:[],clearFocusValueOnUpdate:!1,prevWasFocused:!1,inputIsHiddenAfterUpdate:void 0,prevProps:void 0,instancePrefix:""},o.blockOptionHover=!1,o.isComposing=!1,o.commonProps=void 0,o.initialTouchX=0,o.initialTouchY=0,o.openAfterFocus=!1,o.scrollToFocusedOptionOnUpdate=!1,o.userIsDragging=void 0,o.isAppleDevice=isMac()||isIOS(),o.controlRef=null,o.getControlRef=function(e){o.controlRef=e},o.focusedOptionRef=null,o.getFocusedOptionRef=function(e){o.focusedOptionRef=e},o.menuListRef=null,o.getMenuListRef=function(e){o.menuListRef=e},o.inputRef=null,o.getInputRef=function(e){o.inputRef=e},o.focus=o.focusInput,o.blur=o.blurInput,o.onChange=function(e,t){var n=o.props,a=n.onChange,r=n.name;t.name=r,o.ariaOnChange(e,t),a(e,t)},o.setValue=function(e,t,n){var a=o.props,r=a.closeMenuOnSelect,i=a.isMulti,s=a.inputValue;o.onInputChange("",{action:"set-value",prevInputValue:s}),r&&(o.setState({inputIsHiddenAfterUpdate:!i}),o.onMenuClose()),o.setState({clearFocusValueOnUpdate:!0}),o.onChange(e,{action:t,option:n})},o.selectOption=function(e){var t,n=o.props,a=n.blurInputOnSelect,r=n.isMulti,i=n.name,s=o.state.selectValue,c=r&&o.isOptionSelected(e,s),l=o.isOptionDisabled(e,s);if(c)t=o.getOptionValue(e),o.setValue(s.filter((function(e){return o.getOptionValue(e)!==t})),"deselect-option",e);else{if(l)return void o.ariaOnChange(e,{action:"select-option",option:e,name:i});r?o.setValue([].concat(_toConsumableArray(s),[e]),"select-option",e):o.setValue(e,"select-option")}a&&o.blurInput()},o.removeValue=function(e){var t=o.props.isMulti,n=o.state.selectValue,a=o.getOptionValue(e),r=n.filter((function(e){return o.getOptionValue(e)!==a})),i=valueTernary(t,r,r[0]||null);o.onChange(i,{action:"remove-value",removedValue:e}),o.focusInput()},o.clearValue=function(){var e=o.state.selectValue;o.onChange(valueTernary(o.props.isMulti,[],null),{action:"clear",removedValues:e})},o.popValue=function(){var e=o.props.isMulti,t=o.state.selectValue,n=t[t.length-1],a=t.slice(0,t.length-1),r=valueTernary(e,a,a[0]||null);n&&o.onChange(r,{action:"pop-value",removedValue:n})},o.getFocusedOptionId=function(e){return getFocusedOptionId(o.state.focusableOptionsWithIds,e)},o.getFocusableOptionsWithIds=function(){return buildFocusableOptionsWithIds(buildCategorizedOptions(o.props,o.state.selectValue),o.getElementId("option"))},o.getValue=function(){return o.state.selectValue},o.cx=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return classNames.apply(void 0,[o.props.classNamePrefix].concat(t))},o.getOptionLabel=function(e){return getOptionLabel(o.props,e)},o.getOptionValue=function(e){return getOptionValue(o.props,e)},o.getStyles=function(e,t){var n,a=o.props.unstyled,r=defaultStyles[e](t,a);return r.boxSizing="border-box",(n=o.props.styles[e])?n(r,t):r},o.getClassNames=function(e,t){var n,a;return null===(n=(a=o.props.classNames)[e])||void 0===n?void 0:n.call(a,t)},o.getElementId=function(e){return"".concat(o.state.instancePrefix,"-").concat(e)},o.getComponents=function(){return defaultComponents(o.props)},o.buildCategorizedOptions=function(){return buildCategorizedOptions(o.props,o.state.selectValue)},o.getCategorizedOptions=function(){return o.props.menuIsOpen?o.buildCategorizedOptions():[]},o.buildFocusableOptions=function(){return buildFocusableOptionsFromCategorizedOptions(o.buildCategorizedOptions())},o.getFocusableOptions=function(){return o.props.menuIsOpen?o.buildFocusableOptions():[]},o.ariaOnChange=function(e,t){o.setState({ariaSelection:_objectSpread2({value:e},t)})},o.onMenuMouseDown=function(e){0===e.button&&(e.stopPropagation(),e.preventDefault(),o.focusInput())},o.onMenuMouseMove=function(e){o.blockOptionHover=!1},o.onControlMouseDown=function(e){if(!e.defaultPrevented){var t=o.props.openMenuOnClick;o.state.isFocused?o.props.menuIsOpen?"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&o.onMenuClose():t&&o.openMenu("first"):(t&&(o.openAfterFocus=!0),o.focusInput()),"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&e.preventDefault()}},o.onDropdownIndicatorMouseDown=function(e){if(!(e&&"mousedown"===e.type&&0!==e.button||o.props.isDisabled)){var t=o.props,n=t.isMulti,a=t.menuIsOpen;o.focusInput(),a?(o.setState({inputIsHiddenAfterUpdate:!n}),o.onMenuClose()):o.openMenu("first"),e.preventDefault()}},o.onClearIndicatorMouseDown=function(e){e&&"mousedown"===e.type&&0!==e.button||(o.clearValue(),e.preventDefault(),o.openAfterFocus=!1,"touchend"===e.type?o.focusInput():setTimeout((function(){return o.focusInput()})))},o.onScroll=function(e){"boolean"==typeof o.props.closeMenuOnScroll?e.target instanceof HTMLElement&&isDocumentElement(e.target)&&o.props.onMenuClose():"function"==typeof o.props.closeMenuOnScroll&&o.props.closeMenuOnScroll(e)&&o.props.onMenuClose()},o.onCompositionStart=function(){o.isComposing=!0},o.onCompositionEnd=function(){o.isComposing=!1},o.onTouchStart=function(e){var t=e.touches,n=t&&t.item(0);n&&(o.initialTouchX=n.clientX,o.initialTouchY=n.clientY,o.userIsDragging=!1)},o.onTouchMove=function(e){var t,n,a,r=e.touches,i=r&&r.item(0);i&&(t=Math.abs(i.clientX-o.initialTouchX),n=Math.abs(i.clientY-o.initialTouchY),a=5,o.userIsDragging=t>a||n>a)},o.onTouchEnd=function(e){o.userIsDragging||(o.controlRef&&!o.controlRef.contains(e.target)&&o.menuListRef&&!o.menuListRef.contains(e.target)&&o.blurInput(),o.initialTouchX=0,o.initialTouchY=0)},o.onControlTouchEnd=function(e){o.userIsDragging||o.onControlMouseDown(e)},o.onClearIndicatorTouchEnd=function(e){o.userIsDragging||o.onClearIndicatorMouseDown(e)},o.onDropdownIndicatorTouchEnd=function(e){o.userIsDragging||o.onDropdownIndicatorMouseDown(e)},o.handleInputChange=function(e){var t=o.props.inputValue,n=e.currentTarget.value;o.setState({inputIsHiddenAfterUpdate:!1}),o.onInputChange(n,{action:"input-change",prevInputValue:t}),o.props.menuIsOpen||o.onMenuOpen()},o.onInputFocus=function(e){o.props.onFocus&&o.props.onFocus(e),o.setState({inputIsHiddenAfterUpdate:!1,isFocused:!0}),(o.openAfterFocus||o.props.openMenuOnFocus)&&o.openMenu("first"),o.openAfterFocus=!1},o.onInputBlur=function(e){var t=o.props.inputValue;o.menuListRef&&o.menuListRef.contains(document.activeElement)?o.inputRef.focus():(o.props.onBlur&&o.props.onBlur(e),o.onInputChange("",{action:"input-blur",prevInputValue:t}),o.onMenuClose(),o.setState({focusedValue:null,isFocused:!1}))},o.onOptionHover=function(e){var t;o.blockOptionHover||o.state.focusedOption===e||(t=o.getFocusableOptions().indexOf(e),o.setState({focusedOption:e,focusedOptionId:t>-1?o.getFocusedOptionId(e):null}))},o.shouldHideSelectedOptions=function(){return shouldHideSelectedOptions(o.props)},o.onValueInputFocus=function(e){e.preventDefault(),e.stopPropagation(),o.focus()},o.onKeyDown=function(e){var t=o.props,n=t.isMulti,a=t.backspaceRemovesValue,r=t.escapeClearsValue,i=t.inputValue,s=t.isClearable,c=t.isDisabled,l=t.menuIsOpen,u=t.onKeyDown,d=t.tabSelectsValue,p=t.openMenuOnFocus,m=o.state,g=m.focusedOption,_=m.focusedValue,f=m.selectValue;if(!(c||"function"==typeof u&&(u(e),e.defaultPrevented))){switch(o.blockOptionHover=!0,e.key){case"ArrowLeft":if(!n||i)return;o.focusValue("previous");break;case"ArrowRight":if(!n||i)return;o.focusValue("next");break;case"Delete":case"Backspace":if(i)return;if(_)o.removeValue(_);else{if(!a)return;n?o.popValue():s&&o.clearValue()}break;case"Tab":if(o.isComposing)return;if(e.shiftKey||!l||!d||!g||p&&o.isOptionSelected(g,f))return;o.selectOption(g);break;case"Enter":if(229===e.keyCode)break;if(l){if(!g)return;if(o.isComposing)return;o.selectOption(g);break}return;case"Escape":l?(o.setState({inputIsHiddenAfterUpdate:!1}),o.onInputChange("",{action:"menu-close",prevInputValue:i}),o.onMenuClose()):s&&r&&o.clearValue();break;case" ":if(i)return;if(!l){o.openMenu("first");break}if(!g)return;o.selectOption(g);break;case"ArrowUp":l?o.focusOption("up"):o.openMenu("last");break;case"ArrowDown":l?o.focusOption("down"):o.openMenu("first");break;case"PageUp":if(!l)return;o.focusOption("pageup");break;case"PageDown":if(!l)return;o.focusOption("pagedown");break;case"Home":if(!l)return;o.focusOption("first");break;case"End":if(!l)return;o.focusOption("last");break;default:return}e.preventDefault()}},o.state.instancePrefix="react-select-"+(o.props.instanceId||++instanceId),o.state.selectValue=cleanValue(n.value),n.menuIsOpen&&o.state.selectValue.length&&(a=o.getFocusableOptionsWithIds(),i=(r=o.buildFocusableOptions()).indexOf(o.state.selectValue[0]),o.state.focusableOptionsWithIds=a,o.state.focusedOption=r[i],o.state.focusedOptionId=getFocusedOptionId(a,r[i])),o}!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}(e,React.Component);var t=function(e){var t=_isNativeReflectConstruct();return function(){var n,o,a=_getPrototypeOf(e);return t?(o=_getPrototypeOf(this).constructor,n=Reflect.construct(a,arguments,o)):n=a.apply(this,arguments),_possibleConstructorReturn(this,n)}}(e);return function(e,t,n){t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),Object.defineProperty(e,"prototype",{writable:!1})}(e,[{key:"componentDidMount",value:function(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput(),this.props.menuIsOpen&&this.state.focusedOption&&this.menuListRef&&this.focusedOptionRef&&scrollIntoView(this.menuListRef,this.focusedOptionRef)}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.isDisabled,o=t.menuIsOpen,a=this.state.isFocused;(a&&!n&&e.isDisabled||a&&o&&!e.menuIsOpen)&&this.focusInput(),a&&n&&!e.isDisabled?this.setState({isFocused:!1},this.onMenuClose):a||n||!e.isDisabled||this.inputRef!==document.activeElement||this.setState({isFocused:!0}),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&(scrollIntoView(this.menuListRef,this.focusedOptionRef),this.scrollToFocusedOptionOnUpdate=!1)}},{key:"componentWillUnmount",value:function(){this.stopListeningComposition(),this.stopListeningToTouch(),document.removeEventListener("scroll",this.onScroll,!0)}},{key:"onMenuOpen",value:function(){this.props.onMenuOpen()}},{key:"onMenuClose",value:function(){this.onInputChange("",{action:"menu-close",prevInputValue:this.props.inputValue}),this.props.onMenuClose()}},{key:"onInputChange",value:function(e,t){this.props.onInputChange(e,t)}},{key:"focusInput",value:function(){this.inputRef&&this.inputRef.focus()}},{key:"blurInput",value:function(){this.inputRef&&this.inputRef.blur()}},{key:"openMenu",value:function(e){var t,n=this,o=this.state,a=o.selectValue,r=o.isFocused,i=this.buildFocusableOptions(),s="first"===e?0:i.length-1;this.props.isMulti||(t=i.indexOf(a[0]))>-1&&(s=t),this.scrollToFocusedOptionOnUpdate=!(r&&this.menuListRef),this.setState({inputIsHiddenAfterUpdate:!1,focusedValue:null,focusedOption:i[s],focusedOptionId:this.getFocusedOptionId(i[s])},(function(){return n.onMenuOpen()}))}},{key:"focusValue",value:function(e){var t,n,o,a=this.state,r=a.selectValue,i=a.focusedValue;if(this.props.isMulti&&(this.setState({focusedOption:null}),t=r.indexOf(i),i||(t=-1),n=r.length-1,o=-1,r.length)){switch(e){case"previous":o=0===t?0:-1===t?n:t-1;break;case"next":t>-1&&t<n&&(o=t+1)}this.setState({inputIsHidden:-1!==o,focusedValue:r[o]})}}},{key:"focusOption",value:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"first",o=this.props.pageSize,a=this.state.focusedOption,r=this.getFocusableOptions();r.length&&(e=0,t=r.indexOf(a),a||(t=-1),"up"===n?e=t>0?t-1:r.length-1:"down"===n?e=(t+1)%r.length:"pageup"===n?(e=t-o)<0&&(e=0):"pagedown"===n?(e=t+o)>r.length-1&&(e=r.length-1):"last"===n&&(e=r.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:r[e],focusedValue:null,focusedOptionId:this.getFocusedOptionId(r[e])}))}},{key:"getTheme",value:function(){return this.props.theme?"function"==typeof this.props.theme?this.props.theme(defaultTheme):_objectSpread2(_objectSpread2({},defaultTheme),this.props.theme):defaultTheme}},{key:"getCommonProps",value:function(){var e=this.clearValue,t=this.cx,n=this.getStyles,o=this.getClassNames,a=this.getValue,r=this.selectOption,i=this.setValue,s=this.props,c=s.isMulti,l=s.isRtl,u=s.options,d=this.hasValue();return{clearValue:e,cx:t,getStyles:n,getClassNames:o,getValue:a,hasValue:d,isMulti:c,isRtl:l,options:u,selectOption:r,selectProps:s,setValue:i,theme:this.getTheme()}}},{key:"hasValue",value:function(){return this.state.selectValue.length>0}},{key:"hasOptions",value:function(){return!!this.getFocusableOptions().length}},{key:"isClearable",value:function(){var e=this.props,t=e.isClearable,n=e.isMulti;return void 0===t?n:t}},{key:"isOptionDisabled",value:function(e,t){return _isOptionDisabled(this.props,e,t)}},{key:"isOptionSelected",value:function(e,t){return _isOptionSelected(this.props,e,t)}},{key:"filterOption",value:function(e,t){return _filterOption(this.props,e,t)}},{key:"formatOptionLabel",value:function(e,t){var n,o;return"function"==typeof this.props.formatOptionLabel?(n=this.props.inputValue,o=this.state.selectValue,this.props.formatOptionLabel(e,{context:t,inputValue:n,selectValue:o})):this.getOptionLabel(e)}},{key:"formatGroupLabel",value:function(e){return this.props.formatGroupLabel(e)}},{key:"startListeningComposition",value:function(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))}},{key:"stopListeningComposition",value:function(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))}},{key:"startListeningToTouch",value:function(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"stopListeningToTouch",value:function(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))}},{key:"renderInput",value:function(){var e=this.props,t=e.isDisabled,n=e.isSearchable,o=e.inputId,a=e.inputValue,r=e.tabIndex,i=e.form,s=e.menuIsOpen,c=e.required,l=this.getComponents(),u=l.Input,d=this.state,p=d.inputIsHidden,m=d.ariaSelection,g=this.commonProps,_=o||this.getElementId("input"),f=_objectSpread2(_objectSpread2(_objectSpread2({"aria-autocomplete":"list","aria-expanded":s,"aria-haspopup":!0,"aria-errormessage":this.props["aria-errormessage"],"aria-invalid":this.props["aria-invalid"],"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],"aria-required":c,role:"combobox","aria-activedescendant":this.isAppleDevice?void 0:this.state.focusedOptionId||""},s&&{"aria-controls":this.getElementId("listbox")}),!n&&{"aria-readonly":!0}),this.hasValue()?"initial-input-focus"===(null==m?void 0:m.action)&&{"aria-describedby":this.getElementId("live-region")}:{"aria-describedby":this.getElementId("placeholder")});return n?React__namespace.createElement(u,_extends({},g,{autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",id:_,innerRef:this.getInputRef,isDisabled:t,isHidden:p,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,spellCheck:"false",tabIndex:r,form:i,type:"text",value:a},f)):React__namespace.createElement(DummyInput,_extends({id:_,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:noop,onFocus:this.onInputFocus,disabled:t,tabIndex:r,inputMode:"none",form:i,value:""},f))}},{key:"renderPlaceholderOrValue",value:function(){var e,t=this,n=this.getComponents(),o=n.MultiValue,a=n.MultiValueContainer,r=n.MultiValueLabel,i=n.MultiValueRemove,s=n.SingleValue,c=n.Placeholder,l=this.commonProps,u=this.props,d=u.controlShouldRenderValue,p=u.isDisabled,m=u.isMulti,g=u.inputValue,_=u.placeholder,f=this.state,C=f.selectValue,h=f.focusedValue,v=f.isFocused;return this.hasValue()&&d?m?C.map((function(e,n){var s=e===h,c="".concat(t.getOptionLabel(e),"-").concat(t.getOptionValue(e));return React__namespace.createElement(o,_extends({},l,{components:{Container:a,Label:r,Remove:i},isFocused:s,isDisabled:p,key:c,index:n,removeProps:{onClick:function(){return t.removeValue(e)},onTouchEnd:function(){return t.removeValue(e)},onMouseDown:function(e){e.preventDefault()}},data:e}),t.formatOptionLabel(e,"value"))})):g?null:(e=C[0],React__namespace.createElement(s,_extends({},l,{data:e,isDisabled:p}),this.formatOptionLabel(e,"value"))):g?null:React__namespace.createElement(c,_extends({},l,{key:"placeholder",isDisabled:p,isFocused:v,innerProps:{id:this.getElementId("placeholder")}}),_)}},{key:"renderClearIndicator",value:function(){var e,t=this.getComponents(),n=t.ClearIndicator,o=this.commonProps,a=this.props,r=a.isDisabled,i=a.isLoading,s=this.state.isFocused;return this.isClearable()&&n&&!r&&this.hasValue()&&!i?(e={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"},React__namespace.createElement(n,_extends({},o,{innerProps:e,isFocused:s}))):null}},{key:"renderLoadingIndicator",value:function(){var e,t=this.getComponents(),n=t.LoadingIndicator,o=this.commonProps,a=this.props,r=a.isDisabled,i=a.isLoading,s=this.state.isFocused;return n&&i?(e={"aria-hidden":"true"},React__namespace.createElement(n,_extends({},o,{innerProps:e,isDisabled:r,isFocused:s}))):null}},{key:"renderIndicatorSeparator",value:function(){var e,t,n,o=this.getComponents(),a=o.DropdownIndicator,r=o.IndicatorSeparator;return a&&r?(e=this.commonProps,t=this.props.isDisabled,n=this.state.isFocused,React__namespace.createElement(r,_extends({},e,{isDisabled:t,isFocused:n}))):null}},{key:"renderDropdownIndicator",value:function(){var e,t,n,o,a=this.getComponents(),r=a.DropdownIndicator;return r?(e=this.commonProps,t=this.props.isDisabled,n=this.state.isFocused,o={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"},React__namespace.createElement(r,_extends({},e,{innerProps:o,isDisabled:t,isFocused:n}))):null}},{key:"renderMenu",value:function(){var e,t,n,o,a,r,i=this,s=this.getComponents(),c=s.Group,l=s.GroupHeading,u=s.Menu,d=s.MenuList,p=s.MenuPortal,m=s.LoadingMessage,g=s.NoOptionsMessage,_=s.Option,f=this.commonProps,C=this.state.focusedOption,h=this.props,v=h.captureMenuScroll,b=h.inputValue,R=h.isLoading,y=h.loadingMessage,x=h.minMenuHeight,E=h.maxMenuHeight,I=h.menuIsOpen,S=h.menuPlacement,A=h.menuPosition,w=h.menuPortalTarget,M=h.menuShouldBlockScroll,$=h.menuShouldScrollIntoView,N=h.noOptionsMessage,T=h.onMenuScrollToTop,O=h.onMenuScrollToBottom;if(!I)return null;if(e=function(e,t){var n=e.type,o=e.data,a=e.isDisabled,r=e.isSelected,s=e.label,c=e.value,l=C===o,u=a?void 0:function(){return i.onOptionHover(o)},d=a?void 0:function(){return i.selectOption(o)},p="".concat(i.getElementId("option"),"-").concat(t),m={id:p,onClick:d,onMouseMove:u,onMouseOver:u,tabIndex:-1,role:"option","aria-selected":i.isAppleDevice?void 0:r};return React__namespace.createElement(_,_extends({},f,{innerProps:m,data:o,isDisabled:a,isSelected:r,key:p,label:s,type:n,value:c,isFocused:l,innerRef:l?i.getFocusedOptionRef:void 0}),i.formatOptionLabel(e.data,"menu"))},this.hasOptions())t=this.getCategorizedOptions().map((function(t){var n,o,a,r,s;return"group"===t.type?(n=t.data,o=t.options,a=t.index,r="".concat(i.getElementId("group"),"-").concat(a),s="".concat(r,"-heading"),React__namespace.createElement(c,_extends({},f,{key:r,data:n,options:o,Heading:l,headingProps:{id:s,data:t.data},label:i.formatGroupLabel(t.data)}),t.options.map((function(t){return e(t,"".concat(a,"-").concat(t.index))})))):"option"===t.type?e(t,"".concat(t.index)):void 0}));else if(R){if(null===(n=y({inputValue:b})))return null;t=React__namespace.createElement(m,f,n)}else{if(null===(o=N({inputValue:b})))return null;t=React__namespace.createElement(g,f,o)}return a={minMenuHeight:x,maxMenuHeight:E,menuPlacement:S,menuPosition:A,menuShouldScrollIntoView:$},r=React__namespace.createElement(MenuPlacer,_extends({},f,a),(function(e){var n=e.ref,o=e.placerProps,r=o.placement,s=o.maxHeight;return React__namespace.createElement(u,_extends({},f,a,{innerRef:n,innerProps:{onMouseDown:i.onMenuMouseDown,onMouseMove:i.onMenuMouseMove},isLoading:R,placement:r}),React__namespace.createElement(ScrollManager,{captureEnabled:v,onTopArrive:T,onBottomArrive:O,lockEnabled:M},(function(e){return React__namespace.createElement(d,_extends({},f,{innerRef:function(t){i.getMenuListRef(t),e(t)},innerProps:{role:"listbox","aria-multiselectable":f.isMulti,id:i.getElementId("listbox")},isLoading:R,maxHeight:s,focusedOption:C}),t)})))})),w||"fixed"===A?React__namespace.createElement(p,_extends({},f,{appendTo:w,controlElement:this.controlRef,menuPlacement:S,menuPosition:A}),r):r}},{key:"renderFormField",value:function(){var e,t,n,o=this,a=this.props,r=a.delimiter,i=a.isDisabled,s=a.isMulti,c=a.name,l=a.required,u=this.state.selectValue;return!l||this.hasValue()||i?c&&!i?s?r?(e=u.map((function(e){return o.getOptionValue(e)})).join(r),React__namespace.createElement("input",{name:c,type:"hidden",value:e})):(t=u.length>0?u.map((function(e,t){return React__namespace.createElement("input",{key:"i-".concat(t),name:c,type:"hidden",value:o.getOptionValue(e)})})):React__namespace.createElement("input",{name:c,type:"hidden",value:""}),React__namespace.createElement("div",null,t)):(n=u[0]?this.getOptionValue(u[0]):"",React__namespace.createElement("input",{name:c,type:"hidden",value:n})):void 0:React__namespace.createElement(RequiredInput$1,{name:c,onFocus:this.onValueInputFocus})}},{key:"renderLiveRegion",value:function(){var e=this.commonProps,t=this.state,n=t.ariaSelection,o=t.focusedOption,a=t.focusedValue,r=t.isFocused,i=t.selectValue,s=this.getFocusableOptions();return React__namespace.createElement(LiveRegion$1,_extends({},e,{id:this.getElementId("live-region"),ariaSelection:n,focusedOption:o,focusedValue:a,isFocused:r,selectValue:i,focusableOptions:s,isAppleDevice:this.isAppleDevice}))}},{key:"render",value:function(){var e=this.getComponents(),t=e.Control,n=e.IndicatorsContainer,o=e.SelectContainer,a=e.ValueContainer,r=this.props,i=r.className,s=r.id,c=r.isDisabled,l=r.menuIsOpen,u=this.state.isFocused,d=this.commonProps=this.getCommonProps();return React__namespace.createElement(o,_extends({},d,{className:i,innerProps:{id:s,onKeyDown:this.onKeyDown},isDisabled:c,isFocused:u}),this.renderLiveRegion(),React__namespace.createElement(t,_extends({},d,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:c,isFocused:u,menuIsOpen:l}),React__namespace.createElement(a,_extends({},d,{isDisabled:c}),this.renderPlaceholderOrValue(),this.renderInput()),React__namespace.createElement(n,_extends({},d,{isDisabled:c}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n,o,a,r,i,s,c,l=t.prevProps,u=t.clearFocusValueOnUpdate,d=t.inputIsHiddenAfterUpdate,p=t.ariaSelection,m=t.isFocused,g=t.prevWasFocused,_=t.instancePrefix,f=e.options,C=e.value,h=e.menuIsOpen,v=e.inputValue,b=e.isMulti,R=cleanValue(C),y={};return!l||C===l.value&&f===l.options&&h===l.menuIsOpen&&v===l.inputValue||(n=h?function(e,t){return buildFocusableOptionsFromCategorizedOptions(buildCategorizedOptions(e,t))}(e,R):[],o=h?buildFocusableOptionsWithIds(buildCategorizedOptions(e,R),"".concat(_,"-option")):[],a=u?function(e,t){var n=e.focusedValue,o=e.selectValue,a=o.indexOf(n);if(a>-1){if(t.indexOf(n)>-1)return n;if(a<t.length)return t[a]}return null}(t,R):null,r=function(e,t){var n=e.focusedOption;return n&&t.indexOf(n)>-1?n:t[0]}(t,n),y={selectValue:R,focusedOption:r,focusedOptionId:getFocusedOptionId(o,r),focusableOptionsWithIds:o,focusedValue:a,clearFocusValueOnUpdate:!1}),i=null!=d&&e!==l?{inputIsHidden:d,inputIsHiddenAfterUpdate:void 0}:{},s=p,c=m&&g,m&&!c&&(s={value:valueTernary(b,R,R[0]||null),options:R,action:"initial-input-focus"},c=!g),"initial-input-focus"===(null==p?void 0:p.action)&&(s=null),_objectSpread2(_objectSpread2(_objectSpread2({},y),i),{},{prevProps:e,ariaSelection:s,prevWasFocused:c})}}]),e}(),Select$2.defaultProps=defaultProps,StateManagedSelect=React.forwardRef((function(e,t){var n=function(e){var t=e.defaultInputValue,n=void 0===t?"":t,o=e.defaultMenuIsOpen,a=void 0!==o&&o,r=e.defaultValue,i=void 0===r?null:r,s=e.inputValue,c=e.menuIsOpen,l=e.onChange,u=e.onInputChange,d=e.onMenuClose,p=e.onMenuOpen,m=e.value,g=_objectWithoutProperties(e,_excluded$6),_=_slicedToArray(React.useState(void 0!==s?s:n),2),f=_[0],C=_[1],h=_slicedToArray(React.useState(void 0!==c?c:a),2),v=h[0],b=h[1],R=_slicedToArray(React.useState(void 0!==m?m:i),2),y=R[0],x=R[1],E=React.useCallback((function(e,t){"function"==typeof l&&l(e,t),x(e)}),[l]),I=React.useCallback((function(e,t){var n;"function"==typeof u&&(n=u(e,t)),C(void 0!==n?n:e)}),[u]),S=React.useCallback((function(){"function"==typeof p&&p(),b(!0)}),[p]),A=React.useCallback((function(){"function"==typeof d&&d(),b(!1)}),[d]),w=void 0!==s?s:f,M=void 0!==c?c:v,$=void 0!==m?m:y;return _objectSpread2(_objectSpread2({},g),{},{inputValue:w,menuIsOpen:M,onChange:E,onInputChange:I,onMenuClose:A,onMenuOpen:S,value:$})}(e);return React__namespace.createElement(Select$2,_extends({ref:t},n))})),StateManagedSelect$1=StateManagedSelect,styles$a_menuPortal="MultiSelect-modules_menuPortal__ul6k7",styles$a_container="MultiSelect-modules_container__Mn9VS",styles$a_menu="MultiSelect-modules_menu__W5T89",styles$a_menuList="MultiSelect-modules_menuList__xbYKy",styles$a_option="MultiSelect-modules_option__K81Xh",styles$a_optionFocused="MultiSelect-modules_optionFocused__wx-Me",styles$a_optionSelected="MultiSelect-modules_optionSelected__WQUPs",styles$a_optionDisabled="MultiSelect-modules_optionDisabled__5vZh1",styles$a_input="MultiSelect-modules_input__HhsgF",styles$a_control="MultiSelect-modules_control__8x7-K",styles$a_controlIsFocused="MultiSelect-modules_controlIsFocused__82GDX",styles$a_isDisabled="MultiSelect-modules_isDisabled__OstVw",styles$a_placeholder="MultiSelect-modules_placeholder__DbrLc",styles$a_multiValue="MultiSelect-modules_multiValue__PO-ik",styles$a_indicator="MultiSelect-modules_indicator__tnLxc",styles$a_indicatorIsDisabled="MultiSelect-modules_indicatorIsDisabled__e6zXU",styles$a_controlIsOpened="MultiSelect-modules_controlIsOpened__x9-TZ",styles$a_multiValueIsDisabled="MultiSelect-modules_multiValueIsDisabled__nPxAv",styles$a_multiValueLabel="MultiSelect-modules_multiValueLabel__kDgH6",styles$a_multiValueLabelIsDisabled="MultiSelect-modules_multiValueLabelIsDisabled__jgqo0",styles$a_multiValueRemove="MultiSelect-modules_multiValueRemove__c6VU-",styles$a_multiValueRemoveIsDisabled="MultiSelect-modules_multiValueRemoveIsDisabled__Dc-gy",styles$a_valueContainer="MultiSelect-modules_valueContainer__KLcgg",styles$a_singleValue="MultiSelect-modules_singleValue__7-x1w",styles$a_noOptionMessage="MultiSelect-modules_noOptionMessage__1T9-0",styles$a_errorMessage="MultiSelect-modules_errorMessage__crhXM",styles$a_wrapper="MultiSelect-modules_wrapper__NZzex",styles$a_label="MultiSelect-modules_label__q8Ey7",styles$a_optional="MultiSelect-modules_optional__3QTxE";const CustomDropdownIndicator=e=>React.createElement(components.IndicatorsContainer,{...e,className:cn("demio-ui-multiselect-indicator",styles$a_indicator,{"demio-ui-multiselect-indicator-disabled":e.isDisabled,[styles$a_indicatorIsDisabled]:e.isDisabled})},e.children||React.createElement(SvgKeyboardArrowDown,{className:cn("demio-ui-multiselect-indicator-icon")})),CustomMultiValueRemove=e=>React.createElement(components.MultiValueRemove,{...e},React.createElement(SvgClose,{className:cn("demio-ui-multiselect-multi-value-remove-icon")})),CustomNoOptionsMessage=()=>React.createElement("p",{className:cn("demio-ui-multiselect-empty-options",styles$a_noOptionMessage)},"No results found."),MultiSelect=React.memo(React.forwardRef(((e,t)=>{const{className:n="",classNamePrefix:o="",errorMessage:a="",errorMessageClass:r="",isMulti:i=!0,isVisibleOptional:s=!1,label:c="",onChange:l=null,portalTarget:u=document.body,value:d=""}=e,[p,m]=React.useState("");return React.useEffect((()=>{m(d)}),[d]),React.createElement("div",{className:cn("demio-ui-multiselect-wrapper",styles$a_wrapper)},React.createElement(StateManagedSelect$1,{...e,className:cn("demio-ui-multiselect",styles$a_container,n),classNamePrefix:o,classNames:{control:e=>cn("demio-ui-multiselect-control",styles$a_control,{"demio-ui-multiselect-control-focused":e.isFocused,[styles$a_controlIsFocused]:e.isFocused,"demio-ui-multiselect-control-menu-is-open":e.menuIsOpen,[styles$a_controlIsOpened]:e.menuIsOpen,"demio-ui-multiselect-control-is-disabled":e.isDisabled,[styles$a_isDisabled]:e.isDisabled}),input:e=>cn("demio-ui-multiselect-input",styles$a_input,{"demio-ui-multiselect-input-is-multi":e.isMulti}),menu:()=>cn("demio-ui-multiselect-menu",styles$a_menu),menuList:()=>cn("demio-ui-multiselect-menu-list",styles$a_menuList),menuPortal:()=>cn("demio-ui-multiselect-menu-portal",styles$a_menuPortal),multiValue:e=>cn("demio-ui-multiselect-multi-value",styles$a_multiValue,{"demio-ui-multiselect-multi-value-focused":e.isFocused,"demio-ui-multiselect-multi-value-is-multi":e.isMulti,"demio-ui-multiselect-multi-value-disabled":e.isDisabled,[styles$a_multiValueIsDisabled]:e.isDisabled}),multiValueLabel:e=>cn("demio-ui-multiselect-multi-value-label",styles$a_multiValueLabel,{"demio-ui-multiselect-multi-value-label-disabled":e.isDisabled,[styles$a_multiValueLabelIsDisabled]:e.isDisabled}),multiValueRemove:e=>cn("demio-ui-multiselect-multi-value-remove",styles$a_multiValueRemove,{"demio-ui-multiselect-multi-value-remove-disabled":e.isDisabled,[styles$a_multiValueRemoveIsDisabled]:e.isDisabled}),option:e=>cn("demio-ui-multiselect-option",styles$a_option,{"demio-ui-multiselect-option-selected":e.isSelected,[styles$a_optionSelected]:e.isSelected,"demio-ui-multiselect-option-focused":e.isFocused,[styles$a_optionFocused]:e.isFocused,"demio-ui-multiselect-option-disabled":e.isDisabled,[styles$a_optionDisabled]:e.isDisabled}),placeholder:e=>cn("demio-ui-multiselect-placeholder",styles$a_placeholder,{"demio-ui-multiselect-placeholder-focused":e.isFocused,"demio-ui-multiselect-placeholder-is-multi":e.isMulti}),singleValue:()=>cn("demio-ui-multiselect-single-value",styles$a_singleValue),valueContainer:()=>cn("demio-ui-multiselect-value-container",styles$a_valueContainer)},components:{IndicatorSeparator:null,DropdownIndicator:CustomDropdownIndicator,MultiValueRemove:CustomMultiValueRemove,NoOptionsMessage:CustomNoOptionsMessage},isMulti:i,menuPortalTarget:u,onChange:e=>{m(e),l&&l(e)},ref:t,styles:{multiValue:(e,t)=>({...e,pointerEvents:t.selectProps.isDisabled?"none":"auto"})},value:p}),c&&React.createElement("div",{className:cn("demio-ui-multiselect-label",styles$a_label)},c),s&&React.createElement("div",{className:cn("demio-ui-multiselect-optional",styles$a_optional)},"Optional"),!!a&&React.createElement(InputHint,{className:cn("demio-ui-multiselect-error",styles$a_errorMessage,r),type:"error"},a))})));style$3_note="Note-modules_note__6dcyr",style$3_error="Note-modules_error__sG0TM",style$3_info="Note-modules_info__4-D0C",style$3_icon="Note-modules_icon__P-p8I",style$3_blue="Note-modules_blue__uKo5V";const iconMap={info:SvgInfoCircleSolid,error:SvgTimesCircle},Note=React.memo((e=>{const{className:t="",classNameIcon:n="",text:o="",type:a="error"}=e,r=o.trim().length>0,i="info"===a,s=iconMap[a];return r&&React.createElement("div",{className:cn("demio-ui-note",style$3_note,{[style$3_error]:!i,[style$3_info]:i},t),"data-testid":"note",role:i?"status":"alert"},React.createElement(s,{className:cn("demio-ui-note-icon",style$3_icon,{[style$3_blue]:i},n),"data-testid":`note-icon-${a}`}),o)}));styles$9_container="Pagination-modules_container__KyJ0Q",styles$9_button="Pagination-modules_button__wRk2o",styles$9_selected="Pagination-modules_selected__ZgeXX",styles$9_rotated="Pagination-modules_rotated__k03AZ",styles$9_disabled="Pagination-modules_disabled__NU2ZU";const Pagination=React.memo((e=>{const{className:t="",currentPage:n=1,isDisabled:o=!1,onChange:a,pageSize:r=10,total:i}=e,[s,c]=React.useState(n),l=Math.ceil(i/r),u=s<=1,d=s>=l,p=i>r,m=s-1,g=s-2,_=s+1,f=s+2,C=React.useCallback((e=>Math.min(Math.max(e,1),l)),[l]),h=e=>{if(e===s)return;const t=C(e);c(t),a&&a(t)};return React.useEffect((()=>{c(C(n))}),[n,C]),p&&React.createElement("div",{"aria-label":"Pagination Navigation",className:cn("demio-ui-pagination",styles$9_container,t,{"demio-ui-pagination-disabled":o,[styles$9_disabled]:o}),role:"navigation"},React.createElement(Button,{"aria-label":"Go to first page",className:cn("demio-ui-pagination-first",styles$9_button),disabled:u,onClick:()=>h(1)},React.createElement(SvgArrowLeftDouble,null)),React.createElement(Button,{"aria-label":"Go to previous page",className:cn("demio-ui-pagination-previous",styles$9_button),disabled:u,onClick:()=>h(m)},React.createElement(SvgArrowLeftSingle,null)),d&&g>=1&&React.createElement(Button,{"aria-label":`Go to page ${g}`,className:cn("demio-ui-pagination-previous-previous",styles$9_button),onClick:()=>h(g)},g),!u&&React.createElement(Button,{"aria-label":`Go to page ${m}`,className:cn("demio-ui-pagination-previous-page",styles$9_button),onClick:()=>h(m)},m),React.createElement(Button,{"aria-label":`Selected page ${s}`,className:cn("demio-ui-pagination-selected",styles$9_button,styles$9_selected),onClick:()=>h(s)},s),!d&&React.createElement(Button,{"aria-label":`Go to page ${_}`,className:cn("demio-ui-pagination-next-page",styles$9_button),onClick:()=>h(_)},_),u&&f<=l&&React.createElement(Button,{"aria-label":`Go to page ${f}`,className:cn("demio-ui-pagination-next-next",styles$9_button),onClick:()=>h(f)},f),React.createElement(Button,{"aria-label":"Go to next page",className:cn("demio-ui-pagination-next",styles$9_button,styles$9_rotated),disabled:d,onClick:()=>h(_)},React.createElement(SvgArrowLeftSingle,null)),React.createElement(Button,{"aria-label":"Go to last page",className:cn("demio-ui-pagination-last",styles$9_button,styles$9_rotated),disabled:d,onClick:()=>h(l)},React.createElement(SvgArrowLeftDouble,null)))}));POPOVER_NAME="Popover";var[createPopoverContext,createPopoverScope]=createContextScope(POPOVER_NAME,[createPopperScope]);usePopperScope$2=createPopperScope();var[PopoverProvider,usePopoverContext]=createPopoverContext(POPOVER_NAME);(Popover$1=e=>{const{__scopePopover:t,children:n,open:o,defaultOpen:a,onOpenChange:r,modal:i=!1}=e,s=usePopperScope$2(t),c=React__namespace.useRef(null),[l,u]=React__namespace.useState(!1),[d=!1,p]=useControllableState({prop:o,defaultProp:a,onChange:r});return jsxRuntime.jsx(Root2$5,{...s,children:jsxRuntime.jsx(PopoverProvider,{scope:t,contentId:useId(),triggerRef:c,open:d,onOpenChange:p,onOpenToggle:React__namespace.useCallback((()=>p((e=>!e))),[p]),hasCustomAnchor:l,onCustomAnchorAdd:React__namespace.useCallback((()=>u(!0)),[]),onCustomAnchorRemove:React__namespace.useCallback((()=>u(!1)),[]),modal:i,children:n})})}).displayName=POPOVER_NAME,ANCHOR_NAME="PopoverAnchor",React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...o}=e,a=usePopoverContext(ANCHOR_NAME,n),r=usePopperScope$2(n),{onCustomAnchorAdd:i,onCustomAnchorRemove:s}=a;return React__namespace.useEffect((()=>(i(),()=>s())),[i,s]),jsxRuntime.jsx(Anchor,{...r,...o,ref:t})})).displayName=ANCHOR_NAME,TRIGGER_NAME$3="PopoverTrigger",(PopoverTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...o}=e,a=usePopoverContext(TRIGGER_NAME$3,n),r=usePopperScope$2(n),i=useComposedRefs(t,a.triggerRef),s=jsxRuntime.jsx(Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":getState$2(a.open),...o,ref:i,onClick:composeEventHandlers(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?s:jsxRuntime.jsx(Anchor,{asChild:!0,...r,children:s})}))).displayName=TRIGGER_NAME$3,PORTAL_NAME$2="PopoverPortal";var[PortalProvider$1,usePortalContext$1]=createPopoverContext(PORTAL_NAME$2,{forceMount:void 0});(PopoverPortal=e=>{const{__scopePopover:t,forceMount:n,children:o,container:a}=e,r=usePopoverContext(PORTAL_NAME$2,t);return jsxRuntime.jsx(PortalProvider$1,{scope:t,forceMount:n,children:jsxRuntime.jsx(Presence,{present:n||r.open,children:jsxRuntime.jsx(Portal$5,{asChild:!0,container:a,children:o})})})}).displayName=PORTAL_NAME$2,CONTENT_NAME$3="PopoverContent",(PopoverContent=React__namespace.forwardRef(((e,t)=>{const n=usePortalContext$1(CONTENT_NAME$3,e.__scopePopover),{forceMount:o=n.forceMount,...a}=e,r=usePopoverContext(CONTENT_NAME$3,e.__scopePopover);return jsxRuntime.jsx(Presence,{present:o||r.open,children:r.modal?jsxRuntime.jsx(PopoverContentModal,{...a,ref:t}):jsxRuntime.jsx(PopoverContentNonModal,{...a,ref:t})})}))).displayName=CONTENT_NAME$3,PopoverContentModal=React__namespace.forwardRef(((e,t)=>{const n=usePopoverContext(CONTENT_NAME$3,e.__scopePopover),o=React__namespace.useRef(null),a=useComposedRefs(t,o),r=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=o.current;if(e)return hideOthers(e)}),[]),jsxRuntime.jsx(ReactRemoveScroll,{as:Slot,allowPinchZoom:!0,children:jsxRuntime.jsx(PopoverContentImpl,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:composeEventHandlers(e.onCloseAutoFocus,(e=>{e.preventDefault(),r.current||n.triggerRef.current?.focus()})),onPointerDownOutside:composeEventHandlers(e.onPointerDownOutside,(e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,o=2===t.button||n;r.current=o}),{checkForDefaultPrevented:!1}),onFocusOutside:composeEventHandlers(e.onFocusOutside,(e=>e.preventDefault()),{checkForDefaultPrevented:!1})})})})),PopoverContentNonModal=React__namespace.forwardRef(((e,t)=>{const n=usePopoverContext(CONTENT_NAME$3,e.__scopePopover),o=React__namespace.useRef(!1),a=React__namespace.useRef(!1);return jsxRuntime.jsx(PopoverContentImpl,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||n.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(a.current=!0));const r=t.target,i=n.triggerRef.current?.contains(r);i&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})})),PopoverContentImpl=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:r,disableOutsidePointerEvents:i,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onInteractOutside:u,...d}=e,p=usePopoverContext(CONTENT_NAME$3,n),m=usePopperScope$2(n);return useFocusGuards(),jsxRuntime.jsx(FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:a,onUnmountAutoFocus:r,children:jsxRuntime.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:u,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onDismiss:()=>p.onOpenChange(!1),children:jsxRuntime.jsx(Content$1,{"data-state":getState$2(p.open),role:"dialog",id:p.contentId,...m,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})})),CLOSE_NAME="PopoverClose",React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...o}=e,a=usePopoverContext(CLOSE_NAME,n);return jsxRuntime.jsx(Primitive.button,{type:"button",...o,ref:t,onClick:composeEventHandlers(e.onClick,(()=>a.onOpenChange(!1)))})})).displayName=CLOSE_NAME,ARROW_NAME$2="PopoverArrow",(PopoverArrow=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...o}=e,a=usePopperScope$2(n);return jsxRuntime.jsx(Arrow,{...a,...o,ref:t})}))).displayName=ARROW_NAME$2,Root2$3=Popover$1,Trigger$3=PopoverTrigger,Portal$2=PopoverPortal,Content2$2=PopoverContent,Arrow2$1=PopoverArrow,styles$8_popoverContent="Popover-modules_popoverContent__EQXkn",styles$8_popoverTrigger="Popover-modules_popoverTrigger__vCIUa",styles$8_arrow="Popover-modules_arrow__x1Xqe";const Popover=({children:e="",content:t="",contentClassName:n="",triggerClassName:o="",container:a=document.body,contentProps:r={},open:i,onOpenChange:s,showArrow:c=!1,asChild:l=!1})=>t?React.createElement(Root2$3,{open:i,onOpenChange:e=>{s&&"function"==typeof s&&s(e)}},React.createElement(Trigger$3,{asChild:l,className:cn("demio-ui-popover-trigger",{[styles$8_popoverTrigger]:!0,[o]:!!o})},e),React.createElement(Portal$2,{container:a},React.createElement(Content2$2,{...r,className:cn("demio-ui-popover-content",styles$8_popoverContent,{[n]:!!n})},c&&React.createElement(Arrow2$1,{className:styles$8_arrow}),t))):e;PROGRESS_NAME="Progress",DEFAULT_MAX=100;var[createProgressContext,createProgressScope]=createContextScope(PROGRESS_NAME),[ProgressProvider,useProgressContext]=createProgressContext(PROGRESS_NAME);Progress$1=React__namespace.forwardRef(((e,t)=>{const{__scopeProgress:n,value:o=null,max:a,getValueLabel:r=defaultGetValueLabel,...i}=e;!a&&0!==a||isValidMaxNumber(a)||console.error(`Invalid prop \`max\` of value \`${`${a}`}\` supplied to \`${"Progress"}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${DEFAULT_MAX}\`.`);const s=isValidMaxNumber(a)?a:DEFAULT_MAX;null===o||isValidValueNumber(o,s)||console.error(function(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be:\n - a positive number\n - less than the value passed to \`max\` (or ${DEFAULT_MAX} if no \`max\` prop is set)\n - \`null\` or \`undefined\` if the progress is indeterminate.\n\nDefaulting to \`null\`.`}(`${o}`,"Progress"));const c=isValidValueNumber(o,s)?o:null,l=isNumber(c)?r(c,s):void 0;return jsxRuntime.jsx(ProgressProvider,{scope:n,value:c,max:s,children:jsxRuntime.jsx(Primitive.div,{"aria-valuemax":s,"aria-valuemin":0,"aria-valuenow":isNumber(c)?c:void 0,"aria-valuetext":l,role:"progressbar","data-state":getProgressState(c,s),"data-value":c??void 0,"data-max":s,...i,ref:t})})})),Progress$1.displayName=PROGRESS_NAME,INDICATOR_NAME$1="ProgressIndicator",(ProgressIndicator=React__namespace.forwardRef(((e,t)=>{const{__scopeProgress:n,...o}=e,a=useProgressContext(INDICATOR_NAME$1,n);return jsxRuntime.jsx(Primitive.div,{"data-state":getProgressState(a.value,a.max),"data-value":a.value??void 0,"data-max":a.max,...o,ref:t})}))).displayName=INDICATOR_NAME$1,Root$2=Progress$1,Indicator$1=ProgressIndicator,styles$7_root="Progress-modules_root__E0rHH",styles$7_indicator="Progress-modules_indicator__qpwRi",RADIO_NAME="Radio";var[createRadioContext,createRadioScope]=createContextScope(RADIO_NAME),[RadioProvider,useRadioContext]=createRadioContext(RADIO_NAME);Radio=React__namespace.forwardRef(((e,t)=>{const{__scopeRadio:n,name:o,checked:a=!1,required:r,disabled:i,value:s="on",onCheck:c,form:l,...u}=e,[d,p]=React__namespace.useState(null),m=useComposedRefs(t,(e=>p(e))),g=React__namespace.useRef(!1),_=!d||(l||!!d.closest("form"));return jsxRuntime.jsxs(RadioProvider,{scope:n,checked:a,disabled:i,children:[jsxRuntime.jsx(Primitive.button,{type:"button",role:"radio","aria-checked":a,"data-state":getState$1(a),"data-disabled":i?"":void 0,disabled:i,value:s,...u,ref:m,onClick:composeEventHandlers(e.onClick,(e=>{a||c?.(),_&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())}))}),_&&jsxRuntime.jsx(BubbleInput$1,{control:d,bubbles:!g.current,name:o,value:s,checked:a,required:r,disabled:i,form:l,style:{transform:"translateX(-100%)"}})]})})),Radio.displayName=RADIO_NAME,INDICATOR_NAME="RadioIndicator",(RadioIndicator=React__namespace.forwardRef(((e,t)=>{const{__scopeRadio:n,forceMount:o,...a}=e,r=useRadioContext(INDICATOR_NAME,n);return jsxRuntime.jsx(Presence,{present:o||r.checked,children:jsxRuntime.jsx(Primitive.span,{"data-state":getState$1(r.checked),"data-disabled":r.disabled?"":void 0,...a,ref:t})})}))).displayName=INDICATOR_NAME,BubbleInput$1=e=>{const{control:t,checked:n,bubbles:o=!0,...a}=e,r=React__namespace.useRef(null),i=usePrevious(n),s=useSize(t);return React__namespace.useEffect((()=>{const e=r.current,t=window.HTMLInputElement.prototype,a=Object.getOwnPropertyDescriptor(t,"checked").set;if(i!==n&&a){const t=new Event("click",{bubbles:o});a.call(e,n),e.dispatchEvent(t)}}),[i,n,o]),jsxRuntime.jsx("input",{type:"radio","aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:r,style:{...e.style,...s,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})},ARROW_KEYS=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],RADIO_GROUP_NAME="RadioGroup";var[createRadioGroupContext,createRadioGroupScope]=createContextScope(RADIO_GROUP_NAME,[createRovingFocusGroupScope,createRadioScope]);useRovingFocusGroupScope$1=createRovingFocusGroupScope(),useRadioScope=createRadioScope();var[RadioGroupProvider,useRadioGroupContext]=createRadioGroupContext(RADIO_GROUP_NAME);(RadioGroup$1=React__namespace.forwardRef(((e,t)=>{const{__scopeRadioGroup:n,name:o,defaultValue:a,value:r,required:i=!1,disabled:s=!1,orientation:c,dir:l,loop:u=!0,onValueChange:d,...p}=e,m=useRovingFocusGroupScope$1(n),g=useDirection(l),[_,f]=useControllableState({prop:r,defaultProp:a,onChange:d});return jsxRuntime.jsx(RadioGroupProvider,{scope:n,name:o,required:i,disabled:s,value:_,onValueChange:f,children:jsxRuntime.jsx(Root$3,{asChild:!0,...m,orientation:c,dir:g,loop:u,children:jsxRuntime.jsx(Primitive.div,{role:"radiogroup","aria-required":i,"aria-orientation":c,"data-disabled":s?"":void 0,dir:g,...p,ref:t})})})}))).displayName=RADIO_GROUP_NAME,ITEM_NAME$1="RadioGroupItem",(RadioGroupItem=React__namespace.forwardRef(((e,t)=>{const{__scopeRadioGroup:n,disabled:o,...a}=e,r=useRadioGroupContext(ITEM_NAME$1,n),i=r.disabled||o,s=useRovingFocusGroupScope$1(n),c=useRadioScope(n),l=React__namespace.useRef(null),u=useComposedRefs(t,l),d=r.value===a.value,p=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=e=>{ARROW_KEYS.includes(e.key)&&(p.current=!0)},t=()=>p.current=!1;return document.addEventListener("keydown",e),document.addEventListener("keyup",t),()=>{document.removeEventListener("keydown",e),document.removeEventListener("keyup",t)}}),[]),jsxRuntime.jsx(Item$1,{asChild:!0,...s,focusable:!i,active:d,children:jsxRuntime.jsx(Radio,{disabled:i,required:r.required,checked:d,...c,...a,name:r.name,ref:u,onCheck:()=>r.onValueChange(a.value),onKeyDown:composeEventHandlers((e=>{"Enter"===e.key&&e.preventDefault()})),onFocus:composeEventHandlers(a.onFocus,(()=>{p.current&&l.current?.click()}))})})}))).displayName=ITEM_NAME$1,INDICATOR_NAME2="RadioGroupIndicator",(RadioGroupIndicator=React__namespace.forwardRef(((e,t)=>{const{__scopeRadioGroup:n,...o}=e,a=useRadioScope(n);return jsxRuntime.jsx(RadioIndicator,{...a,...o,ref:t})}))).displayName=INDICATOR_NAME2,Root2$2=RadioGroup$1,Item2=RadioGroupItem,Indicator=RadioGroupIndicator,styles$6={root:"RadioGroup-modules_root__AbbNa",container:"RadioGroup-modules_container__yPAMg",indicator:"RadioGroup-modules_indicator__jEw97",item:"RadioGroup-modules_item__wuUmn",label:"RadioGroup-modules_label__ggYdY",footer:"RadioGroup-modules_footer__1Zp99",disabled:"RadioGroup-modules_disabled__H3T--"},NAME$1="VisuallyHidden",(VisuallyHidden$1=React__namespace.forwardRef(((e,t)=>jsxRuntime.jsx(Primitive.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}})))).displayName=NAME$1,OPEN_KEYS=[" ","Enter","ArrowUp","ArrowDown"],SELECTION_KEYS=[" ","Enter"],SELECT_NAME="Select";var[Collection,useCollection,createCollectionScope]=createCollection(SELECT_NAME),[createSelectContext,createSelectScope]=createContextScope(SELECT_NAME,[createCollectionScope,createPopperScope]);usePopperScope$1=createPopperScope();var[SelectProvider,useSelectContext]=createSelectContext(SELECT_NAME),[SelectNativeOptionsProvider,useSelectNativeOptionsContext]=createSelectContext(SELECT_NAME);Select$1=e=>{const{__scopeSelect:t,children:n,open:o,defaultOpen:a,onOpenChange:r,value:i,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:p,required:m,form:g}=e,_=usePopperScope$1(t),[f,C]=React__namespace.useState(null),[h,v]=React__namespace.useState(null),[b,R]=React__namespace.useState(!1),y=useDirection(l),[x=!1,E]=useControllableState({prop:o,defaultProp:a,onChange:r}),[I,S]=useControllableState({prop:i,defaultProp:s,onChange:c}),A=React__namespace.useRef(null),w=!f||(g||!!f.closest("form")),[M,$]=React__namespace.useState(new Set),N=Array.from(M).map((e=>e.props.value)).join(";");return jsxRuntime.jsx(Root2$5,{..._,children:jsxRuntime.jsxs(SelectProvider,{required:m,scope:t,trigger:f,onTriggerChange:C,valueNode:h,onValueNodeChange:v,valueNodeHasChildren:b,onValueNodeHasChildrenChange:R,contentId:useId(),value:I,onValueChange:S,open:x,onOpenChange:E,dir:y,triggerPointerDownPosRef:A,disabled:p,children:[jsxRuntime.jsx(Collection.Provider,{scope:t,children:jsxRuntime.jsx(SelectNativeOptionsProvider,{scope:e.__scopeSelect,onNativeOptionAdd:React__namespace.useCallback((e=>{$((t=>new Set(t).add(e)))}),[]),onNativeOptionRemove:React__namespace.useCallback((e=>{$((t=>{const n=new Set(t);return n.delete(e),n}))}),[]),children:n})}),w?jsxRuntime.jsxs(BubbleSelect,{"aria-hidden":!0,required:m,tabIndex:-1,name:u,autoComplete:d,value:I,onChange:e=>S(e.target.value),disabled:p,form:g,children:[void 0===I?jsxRuntime.jsx("option",{value:""}):null,Array.from(M)]},N):null]})})},Select$1.displayName=SELECT_NAME,TRIGGER_NAME$2="SelectTrigger",(SelectTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,disabled:o=!1,...a}=e,r=usePopperScope$1(n),i=useSelectContext(TRIGGER_NAME$2,n),s=i.disabled||o,c=useComposedRefs(t,i.onTriggerChange),l=useCollection(n),u=React__namespace.useRef("touch"),[d,p,m]=useTypeaheadSearch((e=>{const t=l().filter((e=>!e.disabled)),n=t.find((e=>e.value===i.value)),o=findNextItem(t,e,n);void 0!==o&&i.onValueChange(o.value)})),g=e=>{s||(i.onOpenChange(!0),m()),e&&(i.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return jsxRuntime.jsx(Anchor,{asChild:!0,...r,children:jsxRuntime.jsx(Primitive.button,{type:"button",role:"combobox","aria-controls":i.contentId,"aria-expanded":i.open,"aria-required":i.required,"aria-autocomplete":"none",dir:i.dir,"data-state":i.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":shouldShowPlaceholder(i.value)?"":void 0,...a,ref:c,onClick:composeEventHandlers(a.onClick,(e=>{e.currentTarget.focus(),"mouse"!==u.current&&g(e)})),onPointerDown:composeEventHandlers(a.onPointerDown,(e=>{u.current=e.pointerType;const t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(g(e),e.preventDefault())})),onKeyDown:composeEventHandlers(a.onKeyDown,(e=>{const t=""!==d.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||p(e.key),t&&" "===e.key||OPEN_KEYS.includes(e.key)&&(g(),e.preventDefault())}))})})}))).displayName=TRIGGER_NAME$2,VALUE_NAME="SelectValue",(SelectValue=React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,className:o,style:a,children:r,placeholder:i="",...s}=e,c=useSelectContext(VALUE_NAME,n),{onValueNodeHasChildrenChange:l}=c,u=void 0!==r,d=useComposedRefs(t,c.onValueNodeChange);return useLayoutEffect2((()=>{l(u)}),[l,u]),jsxRuntime.jsx(Primitive.span,{...s,ref:d,style:{pointerEvents:"none"},children:shouldShowPlaceholder(c.value)?jsxRuntime.jsx(jsxRuntime.Fragment,{children:i}):r})}))).displayName=VALUE_NAME,ICON_NAME="SelectIcon",(SelectIcon=React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,children:o,...a}=e;return jsxRuntime.jsx(Primitive.span,{"aria-hidden":!0,...a,ref:t,children:o||"▼"})}))).displayName=ICON_NAME,(SelectPortal=e=>jsxRuntime.jsx(Portal$5,{asChild:!0,...e})).displayName="SelectPortal",CONTENT_NAME$2="SelectContent",(SelectContent=React__namespace.forwardRef(((e,t)=>{const n=useSelectContext(CONTENT_NAME$2,e.__scopeSelect),[o,a]=React__namespace.useState();if(useLayoutEffect2((()=>{a(new DocumentFragment)}),[]),!n.open){const t=o;return t?ReactDOM__namespace.createPortal(jsxRuntime.jsx(SelectContentProvider,{scope:e.__scopeSelect,children:jsxRuntime.jsx(Collection.Slot,{scope:e.__scopeSelect,children:jsxRuntime.jsx("div",{children:e.children})})}),t):null}return jsxRuntime.jsx(SelectContentImpl,{...e,ref:t})}))).displayName=CONTENT_NAME$2,CONTENT_MARGIN=10;var[SelectContentProvider,useSelectContentContext]=createSelectContext(CONTENT_NAME$2);CONTENT_IMPL_NAME="SelectContentImpl",SelectContentImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,position:o="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:r,onPointerDownOutside:i,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:p,collisionPadding:m,sticky:g,hideWhenDetached:_,avoidCollisions:f,...C}=e,h=useSelectContext(CONTENT_NAME$2,n),[v,b]=React__namespace.useState(null),[R,y]=React__namespace.useState(null),x=useComposedRefs(t,(e=>b(e))),[E,I]=React__namespace.useState(null),[S,A]=React__namespace.useState(null),w=useCollection(n),[M,$]=React__namespace.useState(!1),N=React__namespace.useRef(!1);React__namespace.useEffect((()=>{if(v)return hideOthers(v)}),[v]),useFocusGuards();const T=React__namespace.useCallback((e=>{const[t,...n]=w().map((e=>e.ref.current)),[o]=n.slice(-1),a=document.activeElement;for(const r of e){if(r===a)return;if(r?.scrollIntoView({block:"nearest"}),r===t&&R&&(R.scrollTop=0),r===o&&R&&(R.scrollTop=R.scrollHeight),r?.focus(),document.activeElement!==a)return}}),[w,R]),O=React__namespace.useCallback((()=>T([E,v])),[T,E,v]);React__namespace.useEffect((()=>{M&&O()}),[M,O]);const{onOpenChange:P,triggerPointerDownPosRef:D}=h;React__namespace.useEffect((()=>{if(v){let e={x:0,y:0};const t=t=>{e={x:Math.abs(Math.round(t.pageX)-(D.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(D.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():v.contains(n.target)||P(!1),document.removeEventListener("pointermove",t),D.current=null};return null!==D.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",n,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",n,{capture:!0})}}}),[v,P,D]),React__namespace.useEffect((()=>{const e=()=>P(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}}),[P]);const[L,V]=useTypeaheadSearch((e=>{const t=w().filter((e=>!e.disabled)),n=t.find((e=>e.ref.current===document.activeElement)),o=findNextItem(t,e,n);o&&setTimeout((()=>o.ref.current.focus()))})),B=React__namespace.useCallback(((e,t,n)=>{const o=!N.current&&!n;(void 0!==h.value&&h.value===t||o)&&(I(e),o&&(N.current=!0))}),[h.value]),j=React__namespace.useCallback((()=>v?.focus()),[v]),G=React__namespace.useCallback(((e,t,n)=>{const o=!N.current&&!n;(void 0!==h.value&&h.value===t||o)&&A(e)}),[h.value]),H="popper"===o?SelectPopperPosition:SelectItemAlignedPosition,k=H===SelectPopperPosition?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:p,collisionPadding:m,sticky:g,hideWhenDetached:_,avoidCollisions:f}:{};return jsxRuntime.jsx(SelectContentProvider,{scope:n,content:v,viewport:R,onViewportChange:y,itemRefCallback:B,selectedItem:E,onItemLeave:j,itemTextRefCallback:G,focusSelectedItem:O,selectedItemText:S,position:o,isPositioned:M,searchRef:L,children:jsxRuntime.jsx(ReactRemoveScroll,{as:Slot,allowPinchZoom:!0,children:jsxRuntime.jsx(FocusScope,{asChild:!0,trapped:h.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:composeEventHandlers(a,(e=>{h.trigger?.focus({preventScroll:!0}),e.preventDefault()})),children:jsxRuntime.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>h.onOpenChange(!1),children:jsxRuntime.jsx(H,{role:"listbox",id:h.contentId,"data-state":h.open?"open":"closed",dir:h.dir,onContextMenu:e=>e.preventDefault(),...C,...k,onPlaced:()=>$(!0),ref:x,style:{display:"flex",flexDirection:"column",outline:"none",...C.style},onKeyDown:composeEventHandlers(C.onKeyDown,(e=>{const t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||V(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=w().filter((e=>!e.disabled)).map((e=>e.ref.current));if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){const n=e.target,o=t.indexOf(n);t=t.slice(o+1)}setTimeout((()=>T(t))),e.preventDefault()}}))})})})})})})),SelectContentImpl.displayName=CONTENT_IMPL_NAME,ITEM_ALIGNED_POSITION_NAME="SelectItemAlignedPosition",SelectItemAlignedPosition=React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,onPlaced:o,...a}=e,r=useSelectContext(CONTENT_NAME$2,n),i=useSelectContentContext(CONTENT_NAME$2,n),[s,c]=React__namespace.useState(null),[l,u]=React__namespace.useState(null),d=useComposedRefs(t,(e=>u(e))),p=useCollection(n),m=React__namespace.useRef(!1),g=React__namespace.useRef(!0),{viewport:_,selectedItem:f,selectedItemText:C,focusSelectedItem:h}=i,v=React__namespace.useCallback((()=>{if(r.trigger&&r.valueNode&&s&&l&&_&&f&&C){const e=r.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=r.valueNode.getBoundingClientRect(),a=C.getBoundingClientRect();if("rtl"!==r.dir){const o=a.left-t.left,r=n.left-o,i=e.left-r,c=e.width+i,l=Math.max(c,t.width),u=window.innerWidth-CONTENT_MARGIN,d=clamp$1(r,[CONTENT_MARGIN,Math.max(CONTENT_MARGIN,u-l)]);s.style.minWidth=c+"px",s.style.left=d+"px"}else{const o=t.right-a.right,r=window.innerWidth-n.right-o,i=window.innerWidth-e.right-r,c=e.width+i,l=Math.max(c,t.width),u=window.innerWidth-CONTENT_MARGIN,d=clamp$1(r,[CONTENT_MARGIN,Math.max(CONTENT_MARGIN,u-l)]);s.style.minWidth=c+"px",s.style.right=d+"px"}const i=p(),c=window.innerHeight-2*CONTENT_MARGIN,u=_.scrollHeight,d=window.getComputedStyle(l),g=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),v=parseInt(d.borderBottomWidth,10),b=g+h+u+parseInt(d.paddingBottom,10)+v,R=Math.min(5*f.offsetHeight,b),y=window.getComputedStyle(_),x=parseInt(y.paddingTop,10),E=parseInt(y.paddingBottom,10),I=e.top+e.height/2-CONTENT_MARGIN,S=c-I,A=f.offsetHeight/2,w=g+h+(f.offsetTop+A),M=b-w;if(w<=I){const e=i.length>0&&f===i[i.length-1].ref.current;s.style.bottom="0px";const t=l.clientHeight-_.offsetTop-_.offsetHeight,n=w+Math.max(S,A+(e?E:0)+t+v);s.style.height=n+"px"}else{const e=i.length>0&&f===i[0].ref.current;s.style.top="0px";const t=Math.max(I,g+_.offsetTop+(e?x:0)+A)+M;s.style.height=t+"px",_.scrollTop=w-I+_.offsetTop}s.style.margin=`${CONTENT_MARGIN}px 0`,s.style.minHeight=R+"px",s.style.maxHeight=c+"px",o?.(),requestAnimationFrame((()=>m.current=!0))}}),[p,r.trigger,r.valueNode,s,l,_,f,C,r.dir,o]);useLayoutEffect2((()=>v()),[v]);const[b,R]=React__namespace.useState();useLayoutEffect2((()=>{l&&R(window.getComputedStyle(l).zIndex)}),[l]);const y=React__namespace.useCallback((e=>{e&&!0===g.current&&(v(),h?.(),g.current=!1)}),[v,h]);return jsxRuntime.jsx(SelectViewportProvider,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:m,onScrollButtonChange:y,children:jsxRuntime.jsx("div",{ref:c,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:b},children:jsxRuntime.jsx(Primitive.div,{...a,ref:d,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})})),SelectItemAlignedPosition.displayName=ITEM_ALIGNED_POSITION_NAME,POPPER_POSITION_NAME="SelectPopperPosition",(SelectPopperPosition=React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,align:o="start",collisionPadding:a=CONTENT_MARGIN,...r}=e,i=usePopperScope$1(n);return jsxRuntime.jsx(Content$1,{...i,...r,ref:t,align:o,collisionPadding:a,style:{boxSizing:"border-box",...r.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})}))).displayName=POPPER_POSITION_NAME;var[SelectViewportProvider,useSelectViewportContext]=createSelectContext(CONTENT_NAME$2,{});VIEWPORT_NAME="SelectViewport",(SelectViewport=React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,nonce:o,...a}=e,r=useSelectContentContext(VIEWPORT_NAME,n),i=useSelectViewportContext(VIEWPORT_NAME,n),s=useComposedRefs(t,r.onViewportChange),c=React__namespace.useRef(0);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),jsxRuntime.jsx(Collection.Slot,{scope:n,children:jsxRuntime.jsx(Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:s,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:composeEventHandlers(a.onScroll,(e=>{const t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:o}=i;if(o?.current&&n){const e=Math.abs(c.current-t.scrollTop);if(e>0){const o=window.innerHeight-2*CONTENT_MARGIN,a=parseFloat(n.style.minHeight),r=parseFloat(n.style.height),i=Math.max(a,r);if(i<o){const a=i+e,r=Math.min(o,a),s=a-r;n.style.height=r+"px","0px"===n.style.bottom&&(t.scrollTop=s>0?s:0,n.style.justifyContent="flex-end")}}}c.current=t.scrollTop}))})})]})}))).displayName=VIEWPORT_NAME,GROUP_NAME="SelectGroup";var[SelectGroupContextProvider,useSelectGroupContext]=createSelectContext(GROUP_NAME);React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,...o}=e,a=useId();return jsxRuntime.jsx(SelectGroupContextProvider,{scope:n,id:a,children:jsxRuntime.jsx(Primitive.div,{role:"group","aria-labelledby":a,...o,ref:t})})})).displayName=GROUP_NAME,LABEL_NAME="SelectLabel",React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,...o}=e,a=useSelectGroupContext(LABEL_NAME,n);return jsxRuntime.jsx(Primitive.div,{id:a.id,...o,ref:t})})).displayName=LABEL_NAME,ITEM_NAME="SelectItem";var[SelectItemContextProvider,useSelectItemContext]=createSelectContext(ITEM_NAME);SelectItem$1=React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,value:o,disabled:a=!1,textValue:r,...i}=e,s=useSelectContext(ITEM_NAME,n),c=useSelectContentContext(ITEM_NAME,n),l=s.value===o,[u,d]=React__namespace.useState(r??""),[p,m]=React__namespace.useState(!1),g=useComposedRefs(t,(e=>c.itemRefCallback?.(e,o,a))),_=useId(),f=React__namespace.useRef("touch"),C=()=>{a||(s.onValueChange(o),s.onOpenChange(!1))};if(""===o)throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return jsxRuntime.jsx(SelectItemContextProvider,{scope:n,value:o,disabled:a,textId:_,isSelected:l,onItemTextChange:React__namespace.useCallback((e=>{d((t=>t||(e?.textContent??"").trim()))}),[]),children:jsxRuntime.jsx(Collection.ItemSlot,{scope:n,value:o,disabled:a,textValue:u,children:jsxRuntime.jsx(Primitive.div,{role:"option","aria-labelledby":_,"data-highlighted":p?"":void 0,"aria-selected":l&&p,"data-state":l?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...i,ref:g,onFocus:composeEventHandlers(i.onFocus,(()=>m(!0))),onBlur:composeEventHandlers(i.onBlur,(()=>m(!1))),onClick:composeEventHandlers(i.onClick,(()=>{"mouse"!==f.current&&C()})),onPointerUp:composeEventHandlers(i.onPointerUp,(()=>{"mouse"===f.current&&C()})),onPointerDown:composeEventHandlers(i.onPointerDown,(e=>{f.current=e.pointerType})),onPointerMove:composeEventHandlers(i.onPointerMove,(e=>{f.current=e.pointerType,a?c.onItemLeave?.():"mouse"===f.current&&e.currentTarget.focus({preventScroll:!0})})),onPointerLeave:composeEventHandlers(i.onPointerLeave,(e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()})),onKeyDown:composeEventHandlers(i.onKeyDown,(e=>{""!==c.searchRef?.current&&" "===e.key||(SELECTION_KEYS.includes(e.key)&&C()," "===e.key&&e.preventDefault())}))})})})})),SelectItem$1.displayName=ITEM_NAME,ITEM_TEXT_NAME="SelectItemText",SelectItemText$1=React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,className:o,style:a,...r}=e,i=useSelectContext(ITEM_TEXT_NAME,n),s=useSelectContentContext(ITEM_TEXT_NAME,n),c=useSelectItemContext(ITEM_TEXT_NAME,n),l=useSelectNativeOptionsContext(ITEM_TEXT_NAME,n),[u,d]=React__namespace.useState(null),p=useComposedRefs(t,(e=>d(e)),c.onItemTextChange,(e=>s.itemTextRefCallback?.(e,c.value,c.disabled))),m=u?.textContent,g=React__namespace.useMemo((()=>jsxRuntime.jsx("option",{value:c.value,disabled:c.disabled,children:m},c.value)),[c.disabled,c.value,m]),{onNativeOptionAdd:_,onNativeOptionRemove:f}=l;return useLayoutEffect2((()=>(_(g),()=>f(g))),[_,f,g]),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(Primitive.span,{id:c.textId,...r,ref:p}),c.isSelected&&i.valueNode&&!i.valueNodeHasChildren?ReactDOM__namespace.createPortal(r.children,i.valueNode):null]})})),SelectItemText$1.displayName=ITEM_TEXT_NAME,ITEM_INDICATOR_NAME="SelectItemIndicator",React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,...o}=e;return useSelectItemContext(ITEM_INDICATOR_NAME,n).isSelected?jsxRuntime.jsx(Primitive.span,{"aria-hidden":!0,...o,ref:t}):null})).displayName=ITEM_INDICATOR_NAME,SCROLL_UP_BUTTON_NAME="SelectScrollUpButton",React__namespace.forwardRef(((e,t)=>{const n=useSelectContentContext(SCROLL_UP_BUTTON_NAME,e.__scopeSelect),o=useSelectViewportContext(SCROLL_UP_BUTTON_NAME,e.__scopeSelect),[a,r]=React__namespace.useState(!1),i=useComposedRefs(t,o.onScrollButtonChange);return useLayoutEffect2((()=>{if(n.viewport&&n.isPositioned){let e=function(){const e=t.scrollTop>0;r(e)};const t=n.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}}),[n.viewport,n.isPositioned]),a?jsxRuntime.jsx(SelectScrollButtonImpl,{...e,ref:i,onAutoScroll:()=>{const{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null})).displayName=SCROLL_UP_BUTTON_NAME,SCROLL_DOWN_BUTTON_NAME="SelectScrollDownButton",React__namespace.forwardRef(((e,t)=>{const n=useSelectContentContext(SCROLL_DOWN_BUTTON_NAME,e.__scopeSelect),o=useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME,e.__scopeSelect),[a,r]=React__namespace.useState(!1),i=useComposedRefs(t,o.onScrollButtonChange);return useLayoutEffect2((()=>{if(n.viewport&&n.isPositioned){let e=function(){const e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;r(n)};const t=n.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}}),[n.viewport,n.isPositioned]),a?jsxRuntime.jsx(SelectScrollButtonImpl,{...e,ref:i,onAutoScroll:()=>{const{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null})).displayName=SCROLL_DOWN_BUTTON_NAME,SelectScrollButtonImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,onAutoScroll:o,...a}=e,r=useSelectContentContext("SelectScrollButton",n),i=React__namespace.useRef(null),s=useCollection(n),c=React__namespace.useCallback((()=>{null!==i.current&&(window.clearInterval(i.current),i.current=null)}),[]);return React__namespace.useEffect((()=>()=>c()),[c]),useLayoutEffect2((()=>{const e=s().find((e=>e.ref.current===document.activeElement));e?.ref.current?.scrollIntoView({block:"nearest"})}),[s]),jsxRuntime.jsx(Primitive.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:composeEventHandlers(a.onPointerDown,(()=>{null===i.current&&(i.current=window.setInterval(o,50))})),onPointerMove:composeEventHandlers(a.onPointerMove,(()=>{r.onItemLeave?.(),null===i.current&&(i.current=window.setInterval(o,50))})),onPointerLeave:composeEventHandlers(a.onPointerLeave,(()=>{c()}))})})),SEPARATOR_NAME="SelectSeparator",React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,...o}=e;return jsxRuntime.jsx(Primitive.div,{"aria-hidden":!0,...o,ref:t})})).displayName=SEPARATOR_NAME,ARROW_NAME$1="SelectArrow",React__namespace.forwardRef(((e,t)=>{const{__scopeSelect:n,...o}=e,a=usePopperScope$1(n),r=useSelectContext(ARROW_NAME$1,n),i=useSelectContentContext(ARROW_NAME$1,n);return r.open&&"popper"===i.position?jsxRuntime.jsx(Arrow,{...a,...o,ref:t}):null})).displayName=ARROW_NAME$1,(BubbleSelect=React__namespace.forwardRef(((e,t)=>{const{value:n,...o}=e,a=React__namespace.useRef(null),r=useComposedRefs(t,a),i=usePrevious(n);return React__namespace.useEffect((()=>{const e=a.current,t=window.HTMLSelectElement.prototype,o=Object.getOwnPropertyDescriptor(t,"value").set;if(i!==n&&o){const t=new Event("change",{bubbles:!0});o.call(e,n),e.dispatchEvent(t)}}),[i,n]),jsxRuntime.jsx(VisuallyHidden$1,{asChild:!0,children:jsxRuntime.jsx("select",{...o,ref:r,defaultValue:n})})}))).displayName="BubbleSelect",Root2$1=Select$1,Trigger$2=SelectTrigger,Value=SelectValue,Icon=SelectIcon,Portal$1=SelectPortal,Content2$1=SelectContent,Viewport=SelectViewport,Item=SelectItem$1,ItemText=SelectItemText$1,styles$5_trigger="Select-modules_trigger__dS9Dx",styles$5_icon="Select-modules_icon__sgRRc",styles$5_startIcon="Select-modules_startIcon__kohMV",styles$5_value="Select-modules_value__h6Q4Z",styles$5_content="Select-modules_content__YuAqS",styles$5_item="Select-modules_item__cTAIm";const Select=React.forwardRef((({children:e,cssClass:t="",sideOffset:n=4,position:o="popper",disabled:a=!1,value:r="",id:i,icon:s=null,placeholder:c="",portalContainer:l=document.body,contentClassName:u="",contentProps:d={},...p},m)=>React.createElement(Root2$1,{value:r||void 0,disabled:a,...p},React.createElement(Trigger$2,{id:i,ref:m,className:cn(styles$5_trigger,t,"demio-ui-select-trigger")},s&&React.createElement("span",{className:cn(styles$5_startIcon,"demio-ui-select-start-icon")},s),React.createElement("span",{className:cn(styles$5_value,"demio-ui-select-value")},React.createElement(Value,{placeholder:r||c})),React.createElement(Icon,{className:cn(styles$5_icon,"demio-ui-select-icon")},React.createElement(SvgKeyboardArrowDown,null))),React.createElement(Portal$1,{container:l},React.createElement(Content2$1,{position:o,className:cn("demio-ui-select-content",styles$5_content,u),...d,sideOffset:n},React.createElement(Viewport,null,React.createElement(Viewport,null,e))))))),SelectItem=React.forwardRef((({children:e,className:t,disabled:n=!1,...o},a)=>React.createElement(Item,{...o,ref:a,className:cn(styles$5_item,"demio-ui-select-item",t),disabled:n},e))),SelectItemText=ItemText;SWITCH_NAME="Switch";var[createSwitchContext,createSwitchScope]=createContextScope(SWITCH_NAME),[SwitchProvider,useSwitchContext]=createSwitchContext(SWITCH_NAME);Switch$1=React__namespace.forwardRef(((e,t)=>{const{__scopeSwitch:n,name:o,checked:a,defaultChecked:r,required:i,disabled:s,value:c="on",onCheckedChange:l,form:u,...d}=e,[p,m]=React__namespace.useState(null),g=useComposedRefs(t,(e=>m(e))),_=React__namespace.useRef(!1),f=!p||(u||!!p.closest("form")),[C=!1,h]=useControllableState({prop:a,defaultProp:r,onChange:l});return jsxRuntime.jsxs(SwitchProvider,{scope:n,checked:C,disabled:s,children:[jsxRuntime.jsx(Primitive.button,{type:"button",role:"switch","aria-checked":C,"aria-required":i,"data-state":getState(C),"data-disabled":s?"":void 0,disabled:s,value:c,...d,ref:g,onClick:composeEventHandlers(e.onClick,(e=>{h((e=>!e)),f&&(_.current=e.isPropagationStopped(),_.current||e.stopPropagation())}))}),f&&jsxRuntime.jsx(BubbleInput,{control:p,bubbles:!_.current,name:o,value:c,checked:C,required:i,disabled:s,form:u,style:{transform:"translateX(-100%)"}})]})})),Switch$1.displayName=SWITCH_NAME,THUMB_NAME="SwitchThumb",(SwitchThumb=React__namespace.forwardRef(((e,t)=>{const{__scopeSwitch:n,...o}=e,a=useSwitchContext(THUMB_NAME,n);return jsxRuntime.jsx(Primitive.span,{"data-state":getState(a.checked),"data-disabled":a.disabled?"":void 0,...o,ref:t})}))).displayName=THUMB_NAME,BubbleInput=e=>{const{control:t,checked:n,bubbles:o=!0,...a}=e,r=React__namespace.useRef(null),i=usePrevious(n),s=useSize(t);return React__namespace.useEffect((()=>{const e=r.current,t=window.HTMLInputElement.prototype,a=Object.getOwnPropertyDescriptor(t,"checked").set;if(i!==n&&a){const t=new Event("click",{bubbles:o});a.call(e,n),e.dispatchEvent(t)}}),[i,n,o]),jsxRuntime.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:r,style:{...e.style,...s,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})},Root$1=Switch$1,Thumb=SwitchThumb,styles$4_root="Switch-modules_root__V5S6a",styles$4_thumb="Switch-modules_thumb__PZ-lR",TABS_NAME="Tabs";var[createTabsContext,createTabsScope]=createContextScope(TABS_NAME,[createRovingFocusGroupScope]);useRovingFocusGroupScope=createRovingFocusGroupScope();var[TabsProvider,useTabsContext]=createTabsContext(TABS_NAME);(Tabs=React__namespace.forwardRef(((e,t)=>{const{__scopeTabs:n,value:o,onValueChange:a,defaultValue:r,orientation:i="horizontal",dir:s,activationMode:c="automatic",...l}=e,u=useDirection(s),[d,p]=useControllableState({prop:o,onChange:a,defaultProp:r});return jsxRuntime.jsx(TabsProvider,{scope:n,baseId:useId(),value:d,onValueChange:p,orientation:i,dir:u,activationMode:c,children:jsxRuntime.jsx(Primitive.div,{dir:u,"data-orientation":i,...l,ref:t})})}))).displayName=TABS_NAME,TAB_LIST_NAME="TabsList",(TabsList$1=React__namespace.forwardRef(((e,t)=>{const{__scopeTabs:n,loop:o=!0,...a}=e,r=useTabsContext(TAB_LIST_NAME,n),i=useRovingFocusGroupScope(n);return jsxRuntime.jsx(Root$3,{asChild:!0,...i,orientation:r.orientation,dir:r.dir,loop:o,children:jsxRuntime.jsx(Primitive.div,{role:"tablist","aria-orientation":r.orientation,...a,ref:t})})}))).displayName=TAB_LIST_NAME,TRIGGER_NAME$1="TabsTrigger",(TabsTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopeTabs:n,value:o,disabled:a=!1,...r}=e,i=useTabsContext(TRIGGER_NAME$1,n),s=useRovingFocusGroupScope(n),c=makeTriggerId(i.baseId,o),l=makeContentId(i.baseId,o),u=o===i.value;return jsxRuntime.jsx(Item$1,{asChild:!0,...s,focusable:!a,active:u,children:jsxRuntime.jsx(Primitive.button,{type:"button",role:"tab","aria-selected":u,"aria-controls":l,"data-state":u?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:c,...r,ref:t,onMouseDown:composeEventHandlers(e.onMouseDown,(e=>{a||0!==e.button||!1!==e.ctrlKey?e.preventDefault():i.onValueChange(o)})),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{[" ","Enter"].includes(e.key)&&i.onValueChange(o)})),onFocus:composeEventHandlers(e.onFocus,(()=>{const e="manual"!==i.activationMode;u||a||!e||i.onValueChange(o)}))})})}))).displayName=TRIGGER_NAME$1,CONTENT_NAME$1="TabsContent",(TabsContent$1=React__namespace.forwardRef(((e,t)=>{const{__scopeTabs:n,value:o,forceMount:a,children:r,...i}=e,s=useTabsContext(CONTENT_NAME$1,n),c=makeTriggerId(s.baseId,o),l=makeContentId(s.baseId,o),u=o===s.value,d=React__namespace.useRef(u);return React__namespace.useEffect((()=>{const e=requestAnimationFrame((()=>d.current=!1));return()=>cancelAnimationFrame(e)}),[]),jsxRuntime.jsx(Presence,{present:a||u,children:({present:n})=>jsxRuntime.jsx(Primitive.div,{"data-state":u?"active":"inactive","data-orientation":s.orientation,role:"tabpanel","aria-labelledby":c,hidden:!n,id:l,tabIndex:0,...i,ref:t,style:{...e.style,animationDuration:d.current?"0s":void 0},children:n&&r})})}))).displayName=CONTENT_NAME$1,Root2=Tabs,List=TabsList$1,Trigger$1=TabsTrigger,Content=TabsContent$1,styles$3_root="Tabs-modules_root__TvYE1",styles$3_list="Tabs-modules_list__G3KVd",styles$3_tab="Tabs-modules_tab__-FuG6",styles$3_content="Tabs-modules_content__X0OLh",styles$2_default="Tag-modules_default__A5rGa",styles$2_deleteButton="Tag-modules_deleteButton__HzjLp",NAME="VisuallyHidden",(VisuallyHidden=React__namespace.forwardRef(((e,t)=>jsxRuntime.jsx(Primitive.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}})))).displayName=NAME,Root=VisuallyHidden;var[createTooltipContext,createTooltipScope]=createContextScope("Tooltip",[createPopperScope]);usePopperScope=createPopperScope(),PROVIDER_NAME="TooltipProvider",DEFAULT_DELAY_DURATION=700,TOOLTIP_OPEN="tooltip.open";var[TooltipProviderContextProvider,useTooltipProviderContext]=createTooltipContext(PROVIDER_NAME);(TooltipProvider=e=>{const{__scopeTooltip:t,delayDuration:n=DEFAULT_DELAY_DURATION,skipDelayDuration:o=300,disableHoverableContent:a=!1,children:r}=e,[i,s]=React__namespace.useState(!0),c=React__namespace.useRef(!1),l=React__namespace.useRef(0);return React__namespace.useEffect((()=>{const e=l.current;return()=>window.clearTimeout(e)}),[]),jsxRuntime.jsx(TooltipProviderContextProvider,{scope:t,isOpenDelayed:i,delayDuration:n,onOpen:React__namespace.useCallback((()=>{window.clearTimeout(l.current),s(!1)}),[]),onClose:React__namespace.useCallback((()=>{window.clearTimeout(l.current),l.current=window.setTimeout((()=>s(!0)),o)}),[o]),isPointerInTransitRef:c,onPointerInTransitChange:React__namespace.useCallback((e=>{c.current=e}),[]),disableHoverableContent:a,children:r})}).displayName=PROVIDER_NAME,TOOLTIP_NAME="Tooltip";var[TooltipContextProvider,useTooltipContext]=createTooltipContext(TOOLTIP_NAME);(Tooltip$1=e=>{const{__scopeTooltip:t,children:n,open:o,defaultOpen:a=!1,onOpenChange:r,disableHoverableContent:i,delayDuration:s}=e,c=useTooltipProviderContext(TOOLTIP_NAME,e.__scopeTooltip),l=usePopperScope(t),[u,d]=React__namespace.useState(null),p=useId(),m=React__namespace.useRef(0),g=i??c.disableHoverableContent,_=s??c.delayDuration,f=React__namespace.useRef(!1),[C=!1,h]=useControllableState({prop:o,defaultProp:a,onChange:e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN))):c.onClose(),r?.(e)}}),v=React__namespace.useMemo((()=>C?f.current?"delayed-open":"instant-open":"closed"),[C]),b=React__namespace.useCallback((()=>{window.clearTimeout(m.current),m.current=0,f.current=!1,h(!0)}),[h]),R=React__namespace.useCallback((()=>{window.clearTimeout(m.current),m.current=0,h(!1)}),[h]),y=React__namespace.useCallback((()=>{window.clearTimeout(m.current),m.current=window.setTimeout((()=>{f.current=!0,h(!0),m.current=0}),_)}),[_,h]);return React__namespace.useEffect((()=>()=>{m.current&&(window.clearTimeout(m.current),m.current=0)}),[]),jsxRuntime.jsx(Root2$5,{...l,children:jsxRuntime.jsx(TooltipContextProvider,{scope:t,contentId:p,open:C,stateAttribute:v,trigger:u,onTriggerChange:d,onTriggerEnter:React__namespace.useCallback((()=>{c.isOpenDelayed?y():b()}),[c.isOpenDelayed,y,b]),onTriggerLeave:React__namespace.useCallback((()=>{g?R():(window.clearTimeout(m.current),m.current=0)}),[R,g]),onOpen:b,onClose:R,disableHoverableContent:g,children:n})})}).displayName=TOOLTIP_NAME,TRIGGER_NAME="TooltipTrigger",(TooltipTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopeTooltip:n,...o}=e,a=useTooltipContext(TRIGGER_NAME,n),r=useTooltipProviderContext(TRIGGER_NAME,n),i=usePopperScope(n),s=useComposedRefs(t,React__namespace.useRef(null),a.onTriggerChange),c=React__namespace.useRef(!1),l=React__namespace.useRef(!1),u=React__namespace.useCallback((()=>c.current=!1),[]);return React__namespace.useEffect((()=>()=>document.removeEventListener("pointerup",u)),[u]),jsxRuntime.jsx(Anchor,{asChild:!0,...i,children:jsxRuntime.jsx(Primitive.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...o,ref:s,onPointerMove:composeEventHandlers(e.onPointerMove,(e=>{"touch"!==e.pointerType&&(l.current||r.isPointerInTransitRef.current||(a.onTriggerEnter(),l.current=!0))})),onPointerLeave:composeEventHandlers(e.onPointerLeave,(()=>{a.onTriggerLeave(),l.current=!1})),onPointerDown:composeEventHandlers(e.onPointerDown,(()=>{c.current=!0,document.addEventListener("pointerup",u,{once:!0})})),onFocus:composeEventHandlers(e.onFocus,(()=>{c.current||a.onOpen()})),onBlur:composeEventHandlers(e.onBlur,a.onClose),onClick:composeEventHandlers(e.onClick,a.onClose)})})}))).displayName=TRIGGER_NAME,PORTAL_NAME="TooltipPortal";var[PortalProvider,usePortalContext]=createTooltipContext(PORTAL_NAME,{forceMount:void 0});(TooltipPortal=e=>{const{__scopeTooltip:t,forceMount:n,children:o,container:a}=e,r=useTooltipContext(PORTAL_NAME,t);return jsxRuntime.jsx(PortalProvider,{scope:t,forceMount:n,children:jsxRuntime.jsx(Presence,{present:n||r.open,children:jsxRuntime.jsx(Portal$5,{asChild:!0,container:a,children:o})})})}).displayName=PORTAL_NAME,CONTENT_NAME="TooltipContent",TooltipContent=React__namespace.forwardRef(((e,t)=>{const n=usePortalContext(CONTENT_NAME,e.__scopeTooltip),{forceMount:o=n.forceMount,side:a="top",...r}=e,i=useTooltipContext(CONTENT_NAME,e.__scopeTooltip);return jsxRuntime.jsx(Presence,{present:o||i.open,children:i.disableHoverableContent?jsxRuntime.jsx(TooltipContentImpl,{side:a,...r,ref:t}):jsxRuntime.jsx(TooltipContentHoverable,{side:a,...r,ref:t})})})),TooltipContentHoverable=React__namespace.forwardRef(((e,t)=>{const n=useTooltipContext(CONTENT_NAME,e.__scopeTooltip),o=useTooltipProviderContext(CONTENT_NAME,e.__scopeTooltip),a=React__namespace.useRef(null),r=useComposedRefs(t,a),[i,s]=React__namespace.useState(null),{trigger:c,onClose:l}=n,u=a.current,{onPointerInTransitChange:d}=o,p=React__namespace.useCallback((()=>{s(null),d(!1)}),[d]),m=React__namespace.useCallback(((e,t)=>{const n=e.currentTarget,o={x:e.clientX,y:e.clientY},a=function(e,t,n=5){const o=[];switch(t){case"top":o.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":o.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":o.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":o.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return o}(o,function(e,t){const n=Math.abs(t.top-e.y),o=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),r=Math.abs(t.left-e.x);switch(Math.min(n,o,a,r)){case r:return"left";case a:return"right";case n:return"top";case o:return"bottom";default:throw new Error("unreachable")}}(o,n.getBoundingClientRect())),r=function(e){const t=e.slice();return t.sort(((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0)),function(e){if(e.length<=1)return e.slice();const t=[];for(let o=0;o<e.length;o++){const n=e[o];for(;t.length>=2;){const e=t[t.length-1],o=t[t.length-2];if(!((e.x-o.x)*(n.y-o.y)>=(e.y-o.y)*(n.x-o.x)))break;t.pop()}t.push(n)}t.pop();const n=[];for(let o=e.length-1;o>=0;o--){const t=e[o];for(;n.length>=2;){const e=n[n.length-1],o=n[n.length-2];if(!((e.x-o.x)*(t.y-o.y)>=(e.y-o.y)*(t.x-o.x)))break;n.pop()}n.push(t)}return n.pop(),1===t.length&&1===n.length&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}(t)}([...a,...function(e){const{top:t,right:n,bottom:o,left:a}=e;return[{x:a,y:t},{x:n,y:t},{x:n,y:o},{x:a,y:o}]}(t.getBoundingClientRect())]);s(r),d(!0)}),[d]);return React__namespace.useEffect((()=>()=>p()),[p]),React__namespace.useEffect((()=>{if(c&&u){const e=e=>m(e,u),t=e=>m(e,c);return c.addEventListener("pointerleave",e),u.addEventListener("pointerleave",t),()=>{c.removeEventListener("pointerleave",e),u.removeEventListener("pointerleave",t)}}}),[c,u,m,p]),React__namespace.useEffect((()=>{if(i){const e=e=>{const t=e.target,n={x:e.clientX,y:e.clientY},o=c?.contains(t)||u?.contains(t),a=!function(e,t){const{x:n,y:o}=e;let a=!1;for(let r=0,i=t.length-1;r<t.length;i=r++){const e=t[r].x,s=t[r].y,c=t[i].x,l=t[i].y;s>o!=l>o&&n<(c-e)*(o-s)/(l-s)+e&&(a=!a)}return a}(n,i);o?p():a&&(p(),l())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}}),[c,u,i,l,p]),jsxRuntime.jsx(TooltipContentImpl,{...e,ref:r})}));var[VisuallyHiddenContentContextProvider,useVisuallyHiddenContentContext]=createTooltipContext(TOOLTIP_NAME,{isInside:!1});TooltipContentImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeTooltip:n,children:o,"aria-label":a,onEscapeKeyDown:r,onPointerDownOutside:i,...s}=e,c=useTooltipContext(CONTENT_NAME,n),l=usePopperScope(n),{onClose:u}=c;return React__namespace.useEffect((()=>(document.addEventListener(TOOLTIP_OPEN,u),()=>document.removeEventListener(TOOLTIP_OPEN,u))),[u]),React__namespace.useEffect((()=>{if(c.trigger){const e=e=>{const t=e.target;t?.contains(c.trigger)&&u()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}}),[c.trigger,u]),jsxRuntime.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:jsxRuntime.jsxs(Content$1,{"data-state":c.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[jsxRuntime.jsx(Slottable,{children:o}),jsxRuntime.jsx(VisuallyHiddenContentContextProvider,{scope:n,isInside:!0,children:jsxRuntime.jsx(Root,{id:c.contentId,role:"tooltip",children:a||o})})]})})})),TooltipContent.displayName=CONTENT_NAME,ARROW_NAME="TooltipArrow",(TooltipArrow=React__namespace.forwardRef(((e,t)=>{const{__scopeTooltip:n,...o}=e,a=usePopperScope(n);return useVisuallyHiddenContentContext(ARROW_NAME,n).isInside?null:jsxRuntime.jsx(Arrow,{...a,...o,ref:t})}))).displayName=ARROW_NAME,Provider=TooltipProvider,Root3=Tooltip$1,Trigger=TooltipTrigger,Portal=TooltipPortal,Content2=TooltipContent,Arrow2=TooltipArrow,styles$1_content="Tooltip-modules_content__--tK0",styles$1_tooltipTrigger="Tooltip-modules_tooltipTrigger__-SmeR",styles$1_arrow="Tooltip-modules_arrow__4vjj8",styles={default:"Typography-modules_default__JCzxD",headerFirst:"Typography-modules_headerFirst__NkO--",headerSecond:"Typography-modules_headerSecond__LEiQi",headerThird:"Typography-modules_headerThird__lSaFv",headerForth:"Typography-modules_headerForth__B5L3L",headerFifth:"Typography-modules_headerFifth__5LBdo",headerSixth:"Typography-modules_headerSixth__Bxy4-",bodyFirst:"Typography-modules_bodyFirst__iMtZC",bodySecond:"Typography-modules_bodySecond__bRjfb",bodyThird:"Typography-modules_bodyThird__SR8zo",semiBoldFirst:"Typography-modules_semiBoldFirst__IekIE",semiBoldSecond:"Typography-modules_semiBoldSecond__AaWKP",semiBoldThird:"Typography-modules_semiBoldThird__mmpEF",overLineFirst:"Typography-modules_overLineFirst__6-WmT",overLineSecond:"Typography-modules_overLineSecond__bRFIg",link:"Typography-modules_link__T8ZSo",left:"Typography-modules_left__toyKQ",center:"Typography-modules_center__LyrMT",right:"Typography-modules_right__s-R-0",inherit:"Typography-modules_inherit__yG6sp",regular:"Typography-modules_regular__nf3tw",bold:"Typography-modules_bold__kZqUJ",italic:"Typography-modules_italic__YadIq"};const variantMapper={h1:"headerFirst",h2:"headerSecond",h3:"headerThird",h4:"headerForth",h5:"headerFifth",h6:"headerSixth",b1:"bodyFirst",b2:"bodySecond",b3:"bodyThird",sb1:"semiBoldFirst",sb2:"semiBoldSecond",sb3:"semiBoldThird",ol1:"overLineFirst",ol2:"overLineSecond",link:"link"};style$2_root="UploadProgressPreview-modules_root__9StJo",style$2_image="UploadProgressPreview-modules_image__OMRPt",style$2_row="UploadProgressPreview-modules_row__KkHVU",style$2_iconContainer="UploadProgressPreview-modules_iconContainer__Ktq69",style$2_icon="UploadProgressPreview-modules_icon__z5MfW",style$2_percent="UploadProgressPreview-modules_percent__VVNJt",style$2_fileData="UploadProgressPreview-modules_fileData__hhid5",style$2_isUploadMode="UploadProgressPreview-modules_isUploadMode__M13Qp",style$2_noMenu="UploadProgressPreview-modules_noMenu__Kyn3S",style$2_fileName="UploadProgressPreview-modules_fileName__i-Dl-",style$2_duration="UploadProgressPreview-modules_duration__HRRaa";const UploadProgressPreview=React.memo((({className:e="",fileName:t="",fileInfo:n="",imageSrc:o="",imageTitle:a="",isUpload:r=!1,menu:i=[],percent:s})=>{const c=Boolean(i.length),l=r||"number"==typeof s&&s<100,u=React.useMemo((()=>i.filter((e=>e?.isPreviewOnly))),[i]),d=React.useMemo((()=>i.filter((e=>e?.isProgressOnly))),[i]);return React.createElement("div",{className:cn("demio-ui-upload-progress-preview",style$2_root,e),"data-testid":"upload-progress-preview"},o&&!l&&React.createElement("img",{alt:a,className:cn("demio-ui-upload-progress-preview-image",style$2_image),"data-testid":"upload-progress-preview-image",title:a,src:o}),React.createElement("div",{className:cn("demio-ui-upload-progress-preview-row",style$2_row),"data-testid":"upload-progress-preview-row"},l&&React.createElement(React.Fragment,null,React.createElement("div",{className:cn("demio-ui-upload-progress-preview-progress-icon-container",style$2_iconContainer),"data-testid":"upload-progress-preview-progress-icon-container"},React.createElement(SvgProgress,{className:cn("demio-ui-upload-progress-preview-progress-icon",style$2_icon),"data-testid":"upload-progress-preview-progress-icon"})),React.createElement("div",{className:cn("demio-ui-upload-progress-preview-progress-percentage",style$2_percent),"data-testid":"upload-progress-preview-progress-percentage"},s,"%")),React.createElement("div",{className:cn("demio-ui-upload-progress-preview-file-data",style$2_fileData,{[style$2_noMenu]:!c,[style$2_isUploadMode]:l}),"data-testid":"upload-progress-preview-file-data"},t&&React.createElement("div",{className:cn("demio-ui-upload-progress-preview-file-name",style$2_fileName),"data-testid":"upload-progress-preview-file-name"},t),n&&!l&&React.createElement("div",{className:cn("demio-ui-upload-progress-preview-file-info",style$2_duration),"data-testid":"upload-progress-preview-file-info"},n)),c&&React.createElement("div",{className:cn("demio-ui-upload-progress-preview-menu",{isProgressOnly:l,isPreviewOnly:!l}),"data-testid":"upload-progress-preview-menu"},React.createElement(UploadMenu,{menu:l?d:u}))))}));style$1_root="Upload-modules_root__DE-cj",style$1_croppedImageContainer="Upload-modules_croppedImageContainer__tPNFg",style$1_croppedImageWrapper="Upload-modules_croppedImageWrapper__H1aDd",style$1_croppedImage="Upload-modules_croppedImage__5pBYs",style$1_uploadLabel="Upload-modules_uploadLabel__aWGAb",style$1_uploadInput="Upload-modules_uploadInput__Bq7Fp",style$1_icon="Upload-modules_icon__pmGlQ",style$1_header="Upload-modules_header__adz5V",style$1_text="Upload-modules_text__PS7SI",style$1_uploadTextFormat="Upload-modules_uploadTextFormat__IGVKt",style$1_modalContent="Upload-modules_modalContent__tfbd6",style$1_modalBody="Upload-modules_modalBody__q-3hj",style$1_modalFooter="Upload-modules_modalFooter__jFAuB";const Upload=React.memo(React.forwardRef(((e,t)=>{const{acceptableFileTypes:n="",children:o=null,className:a="",customIcon:r=null,customHeader:i="Upload Media",customText:s=null,cropAspectRatio:c=1,error:l="",fileSizeMbLimit:u=3,minHeightLimit:d=0,minWidthLimit:p=0,errorDimension:m=`Minimum required dimensions are ${p}x${d}.`,errorSize:g=`Exceeds maximum size limit of ${u} MB.`,errorType:_="File type is not supported.",isCropAllowed:f=!1,isDimensionValidationEnabled:C=!0,isSizeValidationEnabled:h=!0,isValidationEnabled:v=!0,menu:b=[],onUpload:R,onCropCancel:y,onCropOk:x,onCropComplete:E,onCropChange:I,onDrop:S,onReadFileError:A,onReadFileProgress:w,onReadFileStart:M,onReadFileSuccess:$,onZoomChange:N,previewFileInfo:T="",previewFileName:O="",previewImage:P="",previewImageTitle:D="",uploadPercent:L}=e,[V,B]=React.useState(null),[j,G]=React.useState(""),[H,k]=React.useState(!1),[F,Z]=React.useState(!1),[W,X]=React.useState(""),[z,U]=React.useState(null),[Y,J]=React.useState(void 0),{croppedImageURL:K}=useCroppedImage(j,V),{validate:Q}=useFileValidation({acceptableFileTypes:n,fileSizeMbLimit:u,isDimensionValidationEnabled:C,isSizeValidationEnabled:h,isValidationEnabled:v,minHeightLimit:d,minWidthLimit:p}),q="number"==typeof Y,ee=n.replaceAll(",","").toLowerCase()||"",te=z?.name||"",ne=Boolean(K),oe=isImage(z),ae=n.length>0,re=async(e=null)=>{if(!(e instanceof File))return;const t=await(async e=>{const t=URL.createObjectURL(e)||"",{isFileValid:n,isFileDimensionValid:o,isFileSizeValid:a,isFileTypeValid:r}=await Q(e);n?(G(t),U(e)):se();const i=(ae&&!r?_:"")||(h&&!a?g:"")||(C&&!o?m:"");return J(i?void 0:0),X(v&&!n&&i||l),n})(e);if(t){R?.(e);try{const t=new FileReader;M?.(e),t.onprogress=t=>{if(t.lengthComputable){const n=Math.floor(Number(t.loaded/t.total*100));w?.(n,e)}},t.onload=()=>{$?.(t.result,e)},t.onerror=()=>{J(void 0),A?.(t.error,e)},t.readAsDataURL(e)}catch(l){X("Something went wrong while reading File"),J(void 0),A?.(l,e)}}},ie=()=>{G(""),k(!1),Z(!1),X(""),U(null),J(void 0)},se=()=>{ie(),y&&y()},ce=React.useMemo((()=>b.filter((e=>Boolean(e))).map(((e,t)=>({...e,onSelect:e=>((e,t)=>{b[t]&&("cancel"===b[t].action?.toLowerCase()&&ie(),b[t].onSelect&&b[t].onSelect(e,{itemNumber:t,croppedImageURL:K,setFileUrl:G,cancelUpload:ie}))})(e,t)})))),[b]),le=React.useMemo((()=>ce.filter((e=>e.isPreviewOnly||e.isProgressOnly))),[ce]),ue=React.useMemo((()=>ce.filter((e=>!(e.isProgressOnly||e.isPreviewOnly)))),[ce]);return React.useImperativeHandle(t,(()=>({cancelUpload:ie}))),React.useEffect((()=>{f&&oe&&Z(!0)}),[f,oe]),React.useEffect((()=>{ne||U(null)}),[ne]),React.useEffect((()=>{F||k(ne)}),[ne,F]),React.useEffect((()=>{X(l)}),[l]),React.useEffect((()=>{J(L)}),[L]),React.useEffect((()=>{ie()}),[n,u]),React.createElement("div",{className:cn("demio-ui-upload-root",style$1_root,a),"data-testid":"upload-root"},W&&React.createElement(Note,{text:W}),q&&React.createElement(UploadProgressPreview,{fileName:te||O,fileInfo:T,imageSrc:P,imageTitle:D,menu:le,percent:Y}),!q&&React.createElement(DnDArea,{...e,error:W,isValidationEnabled:!1,onDrop:async(e,t)=>{await re(t),S&&S(e,t)}},H&&React.createElement("div",{className:cn("demio-ui-upload-cropped-image-container",style$1_croppedImageContainer),"data-testid":"upload-cropped-image-container"},React.createElement("div",{className:cn("demio-ui-upload-cropped-image-wrapper",style$1_croppedImageWrapper),"data-testid":"upload-cropped-image-wrapper"},React.createElement("img",{alt:"Cropped image",className:cn("demio-ui-upload-cropped-image",style$1_croppedImage),"data-testid":"upload-cropped-image",src:K})),React.createElement("div",{className:cn("demio-ui-upload-menu"),"data-testid":"upload-menu"},React.createElement(UploadMenu,{menu:ue}))),!H&&React.createElement("label",{className:cn("demio-ui-upload-label",style$1_uploadLabel),"data-testid":"upload-label",htmlFor:"file"},React.createElement("input",{accept:n,className:cn("demio-ui-upload-input",style$1_uploadInput),"data-testid":"upload-input",id:"file",name:"file",onChange:async e=>{const t=e?.target?.files?.[0]||null;await re(t)},type:"file"}),o,!o&&React.createElement(React.Fragment,null,r||React.createElement(SvgPlus,{className:cn("demio-ui-upload-icon",style$1_icon),"data-testid":"upload-icon"}),i&&React.createElement("div",{className:cn("demio-ui-upload-header",style$1_header),"data-testid":"upload-header"},i),React.createElement("div",{className:cn("demio-ui-upload-text",style$1_text),"data-testid":"upload-text"},s||React.createElement(React.Fragment,null,React.createElement("strong",{className:cn("demio-ui-upload-text-format",style$1_uploadTextFormat),"data-testid":"upload-text-format"},ee)," ","up to ",React.createElement("strong",null,u," MB")))))),F&&oe&&f&&React.createElement(Modal,{contentClassName:style$1_modalContent,open:!0,isClosable:!1,onOpenChange:()=>Z(!1),title:"Crop & Upload Profile Picture"},React.createElement("div",{className:cn("demio-ui-upload-crop-modal-body",style$1_modalBody),"data-testid":"upload-crop-modal-body"},!!j&&React.createElement(Crop,{aspect:c,image:j,onCropChange:I,onCropComplete:(e,t)=>{B(t),E&&E(e,t)},onZoomChange:N})),React.createElement("div",{className:cn("demio-ui-upload-crop-modal-footer",style$1_modalFooter),"data-testid":"upload-crop-modal-footer"},React.createElement(Button$1,{className:"demio-ui-upload-crop-modal-btn-cancel","data-testid":"upload-crop-modal-btn-cancel",onClick:se,variant:"secondary"},"no, never mind"),React.createElement(Button$1,{className:"demio-ui-upload-crop-modal-btn-ok","data-testid":"upload-crop-modal-btn-ok",onClick:()=>{k(!0),Z(!1),x&&x(K)}},"crop image"))))})));style_triggerButton="UploadMenu-modules_triggerButton__TnM4-",style_triggerButtonIcon="UploadMenu-modules_triggerButtonIcon__j-eLU",style_menuContent="UploadMenu-modules_menuContent__hPJib",style_menuItem="UploadMenu-modules_menuItem__XOxMt",style_menuItemDisabled="UploadMenu-modules_menuItemDisabled__QmNk4";const DEFAULT_SIDE_OFFSET=4,UploadMenu=React.memo((e=>{const{align:t="end",isOpen:n=!1,menu:o=[],onInteractOutside:a,onOpen:r,portalContainer:i,sideOffset:s=DEFAULT_SIDE_OFFSET,triggerButton:c=null,triggerButtonClass:l=""}=e,[u,d]=React.useState(n||!1),p=Boolean(c),m=React.useMemo((()=>o.filter((e=>Boolean(e)&&Boolean(e?.text||e?.icon)))),[o]),g=Boolean(m.length);return React.useEffect((()=>{d(n)}),[n]),React.createElement("div",{className:cn("demio-ui-upload-menu"),"data-testid":"upload-menu"},g&&React.createElement(DropdownMenuRoot,{open:u,onOpenChange:e=>{d(e),r&&r(e)}},React.createElement(DropdownMenuTrigger,{className:cn("demio-ui-upload-menu-trigger-button",style_triggerButton,l),"data-testid":"upload-menu-trigger-button"},p&&c,!p&&React.createElement(SvgDots,{className:cn("demio-ui-upload-menu-default-trigger-button",style_triggerButtonIcon),"data-testid":"upload-menu-default-trigger-button",width:16})),React.createElement(DropdownMenuPortal,{container:i instanceof Element?i:void 0},React.createElement(DropdownMenuContent,{align:t,className:cn("demio-ui-upload-menu-content",style_menuContent),"data-testid":"upload-menu-content",onInteractOutside:e=>{e?.preventDefault(),d(!1),a?.()},sideOffset:s},m.map((({className:e,icon:t,isDisabled:n,text:o},a)=>React.createElement(DropdownMenuItem,{className:cn("demio-ui-upload-menu-item",style_menuItem,{[style_menuItemDisabled]:n},e),"data-testid":`upload-menu-item-${a}`,disabled:n,key:`upload-menu-item-key-${a}`,onSelect:n?void 0:e=>((e,t)=>{m[t]&&m[t].onSelect&&m[t].onSelect(e,{itemNumber:t})})(e,a)},t,o)))))))}));exports.Alert=function({className:e="",open:t,actionText:n="OK",onActionClick:o,cancelText:a="Cancel",onCancelClick:r,title:i,description:s="",showLoader:c=!1,isOkDisabled:l=!1,actionButtonType:u="danger",maxWidth:d="540px",onClose:p,isCloseButtonVisible:m=!0,...g}){return React.createElement(Root2$6,{open:t,...g},React.createElement(Portal2$1,null,React.createElement(Overlay2,{className:cn("demio-ui-alert__overlay",styles$p_overlay)}),React.createElement(Content2$5,{className:cn("demio-ui-alert",styles$p_content,e),style:{maxWidth:d}},m&&React.createElement("button",{className:cn("demio-ui-alert__close-button",styles$p_close),onClick:p||r,"data-testid":"close-button"},React.createElement(SvgClose,null)),React.createElement(Title2,{className:cn("demio-ui-alert__title",styles$p_title)},i),s&&React.createElement(Description2,{className:cn("demio-ui-alert__description",styles$p_description)},s),React.createElement("div",{className:cn("demio-ui-alert__action-buttons",styles$p_buttons)},React.createElement(Cancel,{asChild:!0},React.createElement(Button$1,{onClick:r,variant:"outline"},a)),React.createElement(Action,{asChild:!0},React.createElement(Button$1,{onClick:o,disabled:l,variant:u,showLoader:c},n))))))},exports.Avatar=({src:e="",size:t=32,userName:n="",alt:o="",className:a="",fallbackDelay:r=600})=>{const i=AVATAR_SIZES.includes(t)?styles$o[`size${t}`]:styles$o.size32,s=String(n).slice(0,1)||"";return React.createElement("div",{className:cn(i,"demio-ui-avatar",a)},React.createElement(Root$8,{className:cn(styles$o.avatarRoot,"demio-ui-avatar-root")},React.createElement(Image$1,{className:cn(styles$o.avatarImage,"demio-ui-avatar-image"),src:e,alt:o||`${n} profile picture`}),React.createElement(Fallback,{className:cn(styles$o.avatarFallback,"demio-ui-avatar-fallback"),delayMs:r},s||React.createElement(SvgPerson,null))))},exports.Badge=({className:e="",icon:t=null,children:n=null,variant:o="contained",color:a="green"})=>React.createElement("div",{className:cn(styles$n.badge,styles$n[o],styles$n[a],"demio-ui-badge",e)},t&&React.createElement("div",{className:cn(styles$n.icon,"demio-ui-badge-icon")},t),React.createElement("p",{className:cn(styles$n.title,"demio-ui-badge-title")},n)),exports.Button=Button$1,exports.ButtonNew=Button,exports.Card=Card,exports.Checkbox=Checkbox,exports.CopyLinkInput=({value:e="",className:t="",hint:n="Link copied to clipboard",id:o="copy-link-input",...a})=>{const[r,i]=React.useState(!1),s=React.useRef(null),c=React.useRef(null),l=React.useCallback((async()=>{await(async e=>{try{await navigator.clipboard.writeText(e)}catch(err){console.error("Could not copy text: ",err)}})(e),i(!0),s.current=setTimeout((()=>{i(!1)}),2e3)}),[e]);return React.useEffect((()=>()=>{s.current&&clearTimeout(s.current)}),[]),React.createElement("div",{className:cn(styles$g_root,t)},React.createElement(Input$2,{className:styles$g_input,readOnly:!0,id:o,ref:c,value:e,hint:r?n:"",inputWrapperClass:styles$g_inputWrapper,endAdornment:React.createElement(CopyButton,{onCopy:l}),required:!0,onFocus:e=>{l(),a.onFocus&&a.onFocus(e)},...a}))},exports.Crop=Crop,exports.DnDArea=DnDArea,exports.Drawer=({children:e=null,isOpen:t=!1,className:n="",isCloseButtonVisible:o=!0,header:a=null,toggleDrawer:r=()=>{},align:i="right",isClosable:s=!0})=>React.createElement(React.Fragment,null,t&&React.createElement("div",{className:cn(styles$e.drawer,"demio-ui-drawer",n)},React.createElement(Modal,{isClosable:s,open:t,overlayClassName:styles$e.overlay,contentClassName:cn(styles$e.content,{[styles$e.alignRight]:"right"===i,[styles$e.alignLeft]:"left"===i}),onOpenChange:r,isCloseButtonVisible:o},a&&React.createElement("div",{className:cn(styles$e.header,"demio-ui-drawer-header")},a),e&&React.createElement("div",{className:cn(styles$e.childrenWrapper,"demio-ui-drawer-children-wrapper")},e)))),exports.DropdownItem=({children:e,className:t="",isWarning:n=!1,isLabel:o=!1,disabled:a=!1,...r})=>{const i=o?Label2:Item2$1;return React.createElement(i,{className:cn(styles$d_item,"demio-ui-dropdown-item",{[t]:t,[styles$d_warning]:n,"demio-ui-dropdown-label":o,[styles$d_label]:o}),disabled:a,...r},e)},exports.DropdownMenuContent=DropdownMenuContent,exports.DropdownMenuGroup=DropdownMenuGroup,exports.DropdownMenuItem=DropdownMenuItem,exports.DropdownMenuLabel=DropdownMenuLabel,exports.DropdownMenuRoot=DropdownMenuRoot,exports.DropdownMenuSeparator=DropdownMenuSeparator,exports.DropdownMenuTrigger=DropdownMenuTrigger,exports.FormGroup=function({children:e,position:t="vertical",justify:n="start",alignItems:o="start",className:a}){return React.createElement("div",{className:cn("demio-ui-form-group",styles$c.formGroup,a,{[styles$c.horizontal]:"horizontal"===t,[styles$c.vertical]:"vertical"===t,[styles$c[n]]:!!n,[styles$c[`${o}AlignItems`]]:!!o})},e)},exports.InfoBanner=({children:e=null,className:t="",icon:n=null,isIconVisible:o=!0,text:a=null,title:r=null})=>React.createElement("div",{className:cn(styles$b_infoBanner,"demio-ui-info-banner",t)},React.createElement("div",{className:cn(styles$b_infoBannerWrapper,"demio-ui-info-banner-wrapper")},o&&React.createElement("div",{className:cn(styles$b_iconWrapper,"demio-ui-info-banner-iconWrapper")},n||React.createElement(SvgRocket,null)),e||React.createElement("div",{className:cn(styles$b_contentWrapper,"demio-ui-info-banner-contentWrapper")},r&&React.createElement("span",{className:cn(styles$b_title,"demio-ui-info-banner-title")},r),a&&React.createElement("span",{className:"demio-ui-info-banner-text"},a)))),exports.Input=Input$2,exports.InputHint=InputHint,exports.Label=Label$1,exports.Loader=Loader,exports.Modal=Modal,exports.ModalScrollable=ModalScrollable,exports.MultiSelect=MultiSelect,exports.Note=Note,exports.Pagination=Pagination,exports.Popover=Popover,exports.PopoverContent=Content2$2,exports.PopoverPortal=Portal$2,exports.PopoverRoot=Root2$3,exports.PopoverTooltip=function({align:e="center",alignOffset:t=0,children:n,className:o="",collisionBoundary:a,container:r,content:i,side:s="top",sideOffset:c=4,...l}){return"ontouchstart"in window||navigator.maxTouchPoints>0?React.createElement(Popover,{content:i,contentProps:{side:s,align:e,sideOffset:c,alignOffset:t,collisionBoundary:a},...l,showArrow:!0,asChild:!0,container:r,contentClassName:cn(styles$1_content,o,"demio-ui-tooltip")},n):React.createElement(Tooltip,{align:e,alignOffset:t,children:n,className:o,collisionBoundary:a,container:r,content:i,side:s,sideOffset:c,...l})},exports.PopoverTrigger=Trigger$3,exports.Progress=function({max:e=100,progress:t=0,className:n="",...o}){const a=t>e?"100%":t/e*100+"%";return React.createElement(Root$2,{className:cn("demio-ui-progress",styles$7_root,{className:!!n}),value:t>e?e:t,max:e,...o},React.createElement(Indicator$1,{className:styles$7_indicator,style:{width:a}}))},exports.RadioGroup=function({items:e=[],error:t="",defaultValue:n="",ariaLabel:o="",hint:a="",onChange:r,disabled:i=!1,value:s="",className:c="",...l}){const u=React.useMemo((()=>r?{value:s,onValueChange:r}:{}),[s,r]);return React.createElement(Root2$2,{...u,...l,className:cn("demio-ui-radio-group",styles$6.root,{[styles$6.error]:!!t,[c]:!!c}),defaultValue:n,"aria-label":o},e.map((e=>React.createElement("div",{key:e.id,className:cn(styles$6.container,{[styles$6.disabled]:e.disabled||i})},React.createElement(Item2,{className:styles$6.item,value:e.value,disabled:e.disabled||i,id:e.id},React.createElement(Indicator,{className:styles$6.indicator})),React.createElement(Label$1,{className:styles$6.label,htmlFor:e.id,weight:"regular"},e.label)))),React.createElement("div",{className:styles$6.footer},t&&React.createElement(InputHint,{type:"error"},t),a&&!t&&React.createElement(InputHint,null,a)))},exports.ScrollableModal=ModalScrollable,exports.Select=Select,exports.SelectItem=SelectItem,exports.SelectItemText=SelectItemText,exports.Slider=SliderDemo,exports.Switch=function({className:e="",id:t="",disabled:n=!1,required:o=!1,name:a,...r}){return React.createElement(Root$1,{className:cn(styles$4_root,"demio-ui-switch",{[e]:!!e}),disabled:n,required:o,name:a,id:t||a,...r},React.createElement(Thumb,{className:styles$4_thumb}))},exports.Tab=function({children:e,className:t="",...n}){return React.createElement(Trigger$1,{...n,className:cn(styles$3_tab,{[t]:t})},e)},exports.TabsContent=function({children:e,value:t,className:n=""}){return React.createElement(Content,{value:t,className:cn(styles$3_content,"demio-ui-tabs-tab",{[n]:n})},e)},exports.TabsList=function({children:e,className:t=""}){return React.createElement(List,{className:cn(styles$3_list,"demio-ui-tabs-list",{[t]:t})},e)},exports.TabsRoot=function({children:e,className:t="",...n}){return React.createElement(Root2,{...n,className:cn(styles$3_root,"demio-ui-tabs",{[t]:t})},e)},exports.Tag=function({children:e,onDelete:t=null,className:n=""}){return React.createElement("div",{className:cn(styles$2_default,"demio-ui-tag-container",n)},e,Boolean(t)&&React.createElement("button",{type:"button",onClick:t,className:cn(styles$2_deleteButton,"demio-ui-tag-delete-button")},React.createElement(SvgClose,null)))},exports.Toast=Toast,exports.Tooltip=Tooltip,exports.Typography=({tag:e,dataTestId:t="",align:n="left",className:o="",children:a=null,emphasis:r="regular",title:i="",variant:s="b1",...c})=>{const l=e;return React.createElement(l,{title:i,"data-testid":t,className:cn(styles.default,styles[variantMapper[s]],styles[n],styles[r],"demio-ui-typography-element",`typography-${s}`,o),...c},a)},exports.Upload=Upload,exports.UploadMenu=UploadMenu,exports.UploadProgressPreview=UploadProgressPreview,exports.createImage=createImage,exports.getCroppedImageURL=getCroppedImageURL,exports.getFileExtension=getFileExtension,exports.getFileMimeType=getFileMimeType,exports.getRadianAngle=getRadianAngle,exports.icons=index$2,exports.isExtensionMatchingMimeType=isExtensionMatchingMimeType,exports.isImage=isImage,exports.isValidFileDimension=isValidFileDimension,exports.isValidFileSize=isValidFileSize,exports.isValidFileType=isValidFileType,exports.isVideo=(e=null)=>e instanceof File&&e.type.startsWith("video/"),exports.mimeTypeMap=mimeTypeMap,exports.rotateSize=rotateSize,exports.toast=toast,exports.useCroppedImage=useCroppedImage,exports.useFileValidation=useFileValidation;
|