From a79c1c599c37a989ab468e630c4c8f3c590914ff Mon Sep 17 00:00:00 2001 From: defaultkavy Date: Sat, 30 Mar 2024 18:39:39 +0800 Subject: [PATCH] publish --- .gitignore | 1 + .vscode/launch.json | 15 + .vscode/tasks.json | 34 + README.md | 2 + bun.lockb | Bin 0 -> 27521 bytes dist/assets/index-C9J66gnR.js | 49 ++ dist/assets/index-mL8GJvpZ.css | 1 + dist/avatar.png | Bin 0 -> 128670 bytes dist/index.html | 13 + index.html | 13 + package.json | 17 + public/avatar.png | Bin 0 -> 128670 bytes scripts/vite-build.sh | 3 + scripts/vite.sh | 3 + src/component/ColorInput.ts | 30 + src/component/InputComponent.ts | 40 ++ src/component/RangeInput.ts | 54 ++ src/component/SelectInput.ts | 31 + src/component/_$InputComponent.scss | 86 +++ src/data/defaultStyle.ts | 944 ++++++++++++++++++++++++++++ src/data/ytchat.ts | 44 ++ src/index.scss | 370 +++++++++++ src/main.ts | 188 ++++++ src/structure/StyleModel.ts | 90 +++ src/structure/StylePanel.ts | 152 +++++ src/structure/YouTubeChat.ts | 42 ++ src/structure/YouTubeMessage.ts | 101 +++ src/structure/util.ts | 7 + tsconfig.json | 30 + vite.config.ts | 8 + 30 files changed, 2368 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/launch.json create mode 100644 .vscode/tasks.json create mode 100644 README.md create mode 100755 bun.lockb create mode 100644 dist/assets/index-C9J66gnR.js create mode 100644 dist/assets/index-mL8GJvpZ.css create mode 100644 dist/avatar.png create mode 100644 dist/index.html create mode 100644 index.html create mode 100644 package.json create mode 100644 public/avatar.png create mode 100755 scripts/vite-build.sh create mode 100755 scripts/vite.sh create mode 100644 src/component/ColorInput.ts create mode 100644 src/component/InputComponent.ts create mode 100644 src/component/RangeInput.ts create mode 100644 src/component/SelectInput.ts create mode 100644 src/component/_$InputComponent.scss create mode 100644 src/data/defaultStyle.ts create mode 100644 src/data/ytchat.ts create mode 100644 src/index.scss create mode 100644 src/main.ts create mode 100644 src/structure/StyleModel.ts create mode 100644 src/structure/StylePanel.ts create mode 100644 src/structure/YouTubeChat.ts create mode 100644 src/structure/YouTubeMessage.ts create mode 100644 src/structure/util.ts create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..4883447 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "msedge", + "request": "launch", + "name": "Launch Edge against localhost", + "url": "http://localhost:5173", + "webRoot": "${workspaceFolder}" + } + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..5c5cc52 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,34 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "server", + "type": "shell", + "command": "${workspaceFolder}/scripts/server.sh" + }, + { + "label": "vite", + "type": "shell", + "command": "${workspaceFolder}/scripts/vite.sh", + "problemMatcher": [] + }, + { + "label": "caddy", + "type": "npm", + "script": "caddy-dev" + }, + { + "label": "vite-build", + "type": "shell", + "command": "${workspaceFolder}/scripts/vite-build.sh" + }, + { + "label": "dev-startup", + "dependsOn": [ + "server", + "vite" + ], + "problemMatcher": [] + } +] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..92558e6 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# YouTube Chat Designer V1.0 +A simple css editor for YouTube live chat. \ No newline at end of file diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..42661ee853b36808e9a6807d0a05d451db767aac GIT binary patch literal 27521 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 literal 0 HcmV?d00001 diff --git a/dist/assets/index-C9J66gnR.js b/dist/assets/index-C9J66gnR.js new file mode 100644 index 0000000..6d57158 --- /dev/null +++ b/dist/assets/index-C9J66gnR.js @@ -0,0 +1,49 @@ +(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const s of i.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function t(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=t(o);fetch(o.href,i)}})();class it{parent;__hidden=!1;domEvents={};on(t,r,o){this.domEvents[t]||(this.domEvents[t]=new Map);const i=s=>r(s,this);return this.domEvents[t].set(r,i),this.dom.addEventListener(t,i,o),this}off(t,r,o){const i=this.domEvents[t]?.get(r);return i&&this.dom.removeEventListener(t,i,o),this}once(t,r,o){const i=s=>{this.dom.removeEventListener(t,i,o),r(s,this)};return this.dom.addEventListener(t,i,o),this}hide(t){return $.fluent(this,arguments,()=>this.__hidden,()=>{if(t!==void 0)return t instanceof lt?(this.__hidden=t.value,t.use(this,"hide")):this.__hidden=t,this.parent?.children.render(),this})}remove(){return this.parent?.children.remove(this).render(),this}replace(t){return this.parent?.children.replace(this,t).render(),this}contains(t){return t?t instanceof it?this.dom.contains(t.dom):t instanceof EventTarget?this.dom.contains($(t).dom):this.dom.contains(t):!1}self(t){return t(this),this}inDOM(){return document.contains(this.dom)}isElement(){if(this instanceof et)return this}static from(t){if(t.$)return t.$;if(t instanceof HTMLElement){const r=$(t.tagName);return r.dom=t,t.parentElement&&(r.parent=$(t.parentElement)),r}else if(t instanceof Text){const r=new Bt(t.textContent??"");return r.dom=t,t.parentElement&&(r.parent=$(t.parentElement)),r}throw"$NODE.FROM: NOT SUPPORT TARGET ELEMENT TYPE"}}class et extends it{dom;static_classes=new Set;constructor(t,r){super(),this.dom=document.createElement(t),this.dom.$=this,this.setOptions(r)}setOptions(t){return this.id(t?.id),t&&t.class&&this.class(...t.class),this}id(t){return $.fluent(this,arguments,()=>this.dom.id,()=>$.set(this.dom,"id",t))}class(...t){return $.fluent(this,arguments,()=>this.dom.classList,()=>{this.dom.classList.forEach(r=>this.static_classes.has(r)??this.dom.classList.remove(r)),this.dom.classList.add(...t.detype())})}addClass(...t){return $.fluent(this,arguments,()=>this,()=>{this.dom.classList.add(...t.detype())})}removeClass(...t){return $.fluent(this,arguments,()=>this,()=>{this.dom.classList.remove(...t.detype())})}staticClass(...t){return $.fluent(this,arguments,()=>this.static_classes,()=>{this.removeClass(...this.static_classes),this.static_classes.clear(),this.addStaticClass(...t)})}addStaticClass(...t){return $.fluent(this,arguments,()=>this,()=>{t.detype().forEach(r=>this.static_classes.add(r)),this.addClass(...t)})}removeStaticClass(...t){return $.fluent(this,arguments,()=>this,()=>{t.detype().forEach(r=>this.static_classes.delete(r)),this.removeClass(...t)})}css(t){return $.fluent(this,arguments,()=>this.dom.style,()=>{Object.assign(this.dom.style,t)})}attribute(t,r){return arguments.length?arguments.length===1?t===void 0?null:this.dom.getAttribute(t):arguments.length===2?(t&&r&&this.dom.setAttribute(t,`${r}`),this):this:null}autocapitalize(t){return $.fluent(this,arguments,()=>this.dom.autocapitalize,()=>$.set(this.dom,"autocapitalize",t))}dir(t){return $.fluent(this,arguments,()=>this.dom.dir,()=>$.set(this.dom,"dir",t))}innerText(t){return $.fluent(this,arguments,()=>this.dom.innerText,()=>$.set(this.dom,"innerText",t))}title(t){return $.fluent(this,arguments,()=>this.dom.title,()=>$.set(this.dom,"title",t))}translate(t){return $.fluent(this,arguments,()=>this.dom.translate,()=>$.set(this.dom,"translate",t))}popover(t){return $.fluent(this,arguments,()=>this.dom.popover,()=>$.set(this.dom,"popover",t))}spellcheck(t){return $.fluent(this,arguments,()=>this.dom.spellcheck,()=>$.set(this.dom,"spellcheck",t))}inert(t){return $.fluent(this,arguments,()=>this.dom.inert,()=>$.set(this.dom,"inert",t))}lang(t){return $.fluent(this,arguments,()=>this.dom.lang,()=>$.set(this.dom,"lang",t))}draggable(t){return $.fluent(this,arguments,()=>this.dom.draggable,()=>$.set(this.dom,"draggable",t))}hidden(t){return $.fluent(this,arguments,()=>this.dom.hidden,()=>$.set(this.dom,"hidden",t))}tabIndex(t){return $.fluent(this,arguments,()=>this.dom.tabIndex,()=>$.set(this.dom,"tabIndex",t))}click(){return this.dom.click(),this}attachInternals(){return this.dom.attachInternals()}hidePopover(){return this.dom.hidePopover(),this}showPopover(){return this.dom.showPopover(),this}togglePopover(){return this.dom.togglePopover(),this}focus(){return this.dom.focus(),this}blur(){return this.dom.blur(),this}animate(t,r,o){const i=this.dom.animate(t,r);return o&&o(i),this}getAnimations(t){return this.dom.getAnimations(t)}get accessKeyLabel(){return this.dom.accessKeyLabel}get offsetHeight(){return this.dom.offsetHeight}get offsetLeft(){return this.dom.offsetLeft}get offsetParent(){return $(this.dom.offsetParent)}get offsetTop(){return this.dom.offsetTop}get offsetWidth(){return this.dom.offsetWidth}get dataset(){return this.dom.dataset}}class Bt extends it{dom;constructor(t){super(),this.dom=new Text(t),this.dom.$=this}content(t){return $.fluent(this,arguments,()=>this.dom.textContent,()=>$.set(this.dom,"textContent",t))}}class pe{#t;#e;elementList=new Set;constructor(t){this.#t=t,this.#e=this.#t.dom}add(t){if(typeof t=="string"){const r=new Bt(t);r.parent=this.#t,this.elementList.add(r)}else t.parent=this.#t,this.elementList.add(t)}remove(t){return this.elementList.has(t)?(this.elementList.delete(t),t.parent=void 0,this):this}removeAll(t=!0){this.elementList.forEach(r=>this.remove(r)),t&&this.render()}replace(t,r){const o=this.array.map(i=>i===t?r:i);return this.elementList.clear(),o.forEach(i=>this.elementList.add(i)),t.parent=void 0,r.parent=this.#t,this}render(){const[t,r]=[this.array.map(i=>i.dom),Array.from(this.#e.childNodes)],o=[];for(;r.length||t.length;){const[i,s]=[r.at(0),t.at(0)];s?i?s!==i?(s.$.__hidden||(this.#e.insertBefore(s,i),o.push(s)),t.shift()):(s.$.__hidden&&this.#e.removeChild(s),t.shift(),r.shift()):(s.$.__hidden||this.#e.append(s),t.shift()):(i&&!o.includes(i)&&i.remove(),r.shift())}}get array(){return[...this.elementList.values()]}}class lt{value;attributes=new Map;constructor(t){this.value=t}set(t){this.value=t;for(const[r,o]of this.attributes.entries())for(const i of o)r[i]instanceof Function&&r[i](t)}toString(){return`${this.value}`}use(t,r){const o=this.attributes.get(t);o?o.add(r):this.attributes.set(t,new Set().add(r))}}class y extends et{children=new pe(this);constructor(t,r){super(t,r)}content(t){return $.fluent(this,arguments,()=>this,()=>{this.children.removeAll(!1),this.insert(t)})}insert(t){return $.fluent(this,arguments,()=>this,()=>{t instanceof Function&&(t=t(this)),t=$.multableResolve(t);for(const r of t)if(r!==void 0)if(r instanceof Array)this.insert(r);else if(r instanceof lt){const o=new Bt(r.toString());r.use(o,"content"),this.children.add(o)}else this.children.add(r);this.children.render()})}clear(){return this.children.removeAll(),this}$(t){return $(this.dom.querySelector(t))}$all(t){return Array.from(this.dom.querySelectorAll(t)).map(r=>$(r))}}class wt extends y{constructor(t){super("a",t),this.dom.addEventListener("click",r=>{$.anchorPreventDefault&&r.preventDefault(),$.anchorHandler&&this.href()&&$.anchorHandler(this.href(),r)})}href(t){return $.fluent(this,arguments,()=>this.dom.href,()=>{t&&(this.dom.href=t)})}target(t){return $.fluent(this,arguments,()=>this.dom.target,()=>{t&&(this.dom.target=t)})}}var Mt;(e=>{function t(n,a,h,d){return a.length?(d(),n):h()}e.fluent=t;function r(n){return n instanceof Array?n:[n]}e.multableResolve=r;function o(n,a){return r(a).forEach(h=>{Object.getOwnPropertyNames(h.prototype).forEach(d=>{d!=="constructor"&&Object.defineProperty(n.prototype,d,Object.getOwnPropertyDescriptor(h.prototype,d)||Object.create(null))})}),n}e.mixin=o;function i(n,a,h){h!==void 0&&(n[a]=h)}e.set=i;function s(n){return new lt(n)}e.state=s})(Mt||(Mt={}));class Ht extends y{constructor(t){super("form",t)}autocomplete(t){return $.fluent(this,arguments,()=>this.dom.autocomplete,()=>$.set(this.dom,"autocomplete",t))}action(t){return $.fluent(this,arguments,()=>this.dom.formAction,()=>$.set(this.dom,"formAction",t))}enctype(t){return $.fluent(this,arguments,()=>this.dom.formEnctype,()=>$.set(this.dom,"formEnctype",t))}method(t){return $.fluent(this,arguments,()=>this.dom.formMethod,()=>$.set(this.dom,"formMethod",t))}noValidate(t){return $.fluent(this,arguments,()=>this.dom.formNoValidate,()=>$.set(this.dom,"formNoValidate",t))}acceptCharset(t){return $.fluent(this,arguments,()=>this.dom.acceptCharset,()=>$.set(this.dom,"acceptCharset",t))}target(t){return $.fluent(this,arguments,()=>this.dom.formTarget,()=>$.set(this.dom,"formTarget",t))}requestSubmit(){return this.dom.requestSubmit(),this}reset(){return this.dom.reset(),this}submit(){return this.dom.submit(),this}checkValidity(){return this.dom.checkValidity()}reportValidity(){return this.dom.reportValidity()}get length(){return this.dom.length}get elements(){return Array.from(this.dom.elements).map(t=>$(t))}}function Ut(e){return Mt.mixin(e,me)}class me{formAction(t){return $.fluent(this,arguments,()=>this.dom.formAction,()=>$.set(this.dom,"formAction",t))}formEnctype(t){return $.fluent(this,arguments,()=>this.dom.formEnctype,()=>$.set(this.dom,"formEnctype",t))}formMethod(t){return $.fluent(this,arguments,()=>this.dom.formMethod,()=>$.set(this.dom,"formMethod",t))}formNoValidate(t){return $.fluent(this,arguments,()=>this.dom.formNoValidate,()=>$.set(this.dom,"formNoValidate",t))}formTarget(t){return $.fluent(this,arguments,()=>this.dom.formTarget,()=>$.set(this.dom,"formTarget",t))}name(t){return $.fluent(this,arguments,()=>this.dom.name,()=>$.set(this.dom,"name",t))}value(t){return $.fluent(this,arguments,()=>this.dom.value,()=>$.set(this.dom,"value",t))}get form(){return this.dom.form?$(this.dom.form):null}get labels(){return Array.from(this.dom.labels??[]).map(t=>$(t))}get validationMessage(){return this.dom.validationMessage}get validity(){return this.dom.validity}get willValidate(){return this.dom.willValidate}}var ge=Object.defineProperty,be=Object.getOwnPropertyDescriptor,fe=(e,t,r,o)=>{for(var i=o>1?void 0:o?be(t,r):t,s=e.length-1,n;s>=0;s--)(n=e[s])&&(i=(o?n(t,r,i):n(i))||i);return o&&i&&ge(t,r,i),i};let ut=class extends y{constructor(e){super("button",e)}disabled(e){return $.fluent(this,arguments,()=>this.dom.disabled,()=>$.set(this.dom,"disabled",e))}type(e){return $.fluent(this,arguments,()=>this.dom.type,()=>$.set(this.dom,"type",e))}checkValidity(){return this.dom.checkValidity()}reportValidity(){return this.dom.reportValidity()}};ut=fe([Ut],ut);var xe=Object.defineProperty,$e=Object.getOwnPropertyDescriptor,Le=(e,t,r,o)=>{for(var i=o>1?void 0:o?$e(t,r):t,s=e.length-1,n;s>=0;s--)(n=e[s])&&(i=(o?n(t,r,i):n(i))||i);return o&&i&&xe(t,r,i),i};let ct=class extends et{constructor(e){super("input",e)}accept(...e){return $.fluent(this,arguments,()=>this.dom.accept.split(","),()=>this.dom.accept=e.toString())}capture(e){return $.fluent(this,arguments,()=>this.dom.capture,()=>$.set(this.dom,"capture",e))}alt(e){return $.fluent(this,arguments,()=>this.dom.alt,()=>$.set(this.dom,"alt",e))}height(e){return $.fluent(this,arguments,()=>this.dom.height,()=>$.set(this.dom,"height",e))}width(e){return $.fluent(this,arguments,()=>this.dom.width,()=>$.set(this.dom,"width",e))}checked(e){return $.fluent(this,arguments,()=>this.dom.checked,()=>$.set(this.dom,"checked",e))}max(e){return $.fluent(this,arguments,()=>this.dom.max===""?null:parseInt(this.dom.min),()=>$.set(this.dom,"max",e?.toString()))}min(e){return $.fluent(this,arguments,()=>this.dom.min===""?null:parseInt(this.dom.min),()=>$.set(this.dom,"min",e?.toString()))}maxLength(e){return $.fluent(this,arguments,()=>this.dom.maxLength,()=>$.set(this.dom,"maxLength",e))}minLength(e){return $.fluent(this,arguments,()=>this.dom.minLength,()=>$.set(this.dom,"minLength",e))}autocomplete(e){return $.fluent(this,arguments,()=>this.dom.autocomplete,()=>$.set(this.dom,"autocomplete",e))}defaultValue(e){return $.fluent(this,arguments,()=>this.dom.defaultValue,()=>$.set(this.dom,"defaultValue",e))}defaultChecked(e){return $.fluent(this,arguments,()=>this.dom.defaultChecked,()=>$.set(this.dom,"defaultChecked",e))}dirName(e){return $.fluent(this,arguments,()=>this.dom.dirName,()=>$.set(this.dom,"dirName",e))}disabled(e){return $.fluent(this,arguments,()=>this.dom.disabled,()=>$.set(this.dom,"disabled",e))}multiple(e){return $.fluent(this,arguments,()=>this.dom.multiple,()=>$.set(this.dom,"multiple",e))}pattern(e){return $.fluent(this,arguments,()=>this.dom.pattern,()=>$.set(this.dom,"pattern",e))}placeholder(e){return $.fluent(this,arguments,()=>this.dom.placeholder,()=>$.set(this.dom,"placeholder",e))}readOnly(e){return $.fluent(this,arguments,()=>this.dom.readOnly,()=>$.set(this.dom,"readOnly",e))}required(e){return $.fluent(this,arguments,()=>this.dom.required,()=>$.set(this.dom,"required",e))}selectionDirection(e){return $.fluent(this,arguments,()=>this.dom.selectionDirection,()=>$.set(this.dom,"selectionDirection",e))}selectionEnd(e){return $.fluent(this,arguments,()=>this.dom.selectionEnd,()=>$.set(this.dom,"selectionEnd",e))}selectionStart(e){return $.fluent(this,arguments,()=>this.dom.selectionStart,()=>$.set(this.dom,"selectionStart",e))}size(e){return $.fluent(this,arguments,()=>this.dom.size,()=>$.set(this.dom,"size",e))}src(e){return $.fluent(this,arguments,()=>this.dom.src,()=>$.set(this.dom,"src",e))}step(e){return $.fluent(this,arguments,()=>Number(this.dom.step),()=>$.set(this.dom,"step",e?.toString()))}type(e){return $.fluent(this,arguments,()=>this.dom.type,()=>$.set(this.dom,"type",e))}inputMode(e){return $.fluent(this,arguments,()=>this.dom.inputMode,()=>$.set(this.dom,"inputMode",e))}valueAsDate(e){return $.fluent(this,arguments,()=>this.dom.valueAsDate,()=>$.set(this.dom,"valueAsDate",e))}valueAsNumber(e){return $.fluent(this,arguments,()=>this.dom.valueAsNumber,()=>$.set(this.dom,"valueAsNumber",e))}webkitdirectory(e){return $.fluent(this,arguments,()=>this.dom.webkitdirectory,()=>$.set(this.dom,"webkitdirectory",e))}select(){return this.dom.select(),this}setCustomValidity(e){return this.dom.setCustomValidity(e),this}setRangeText(e,t,r,o){return typeof t=="number"&&typeof r=="number"&&this.dom.setRangeText(e,t,r,o),this.dom.setRangeText(e),this}setSelectionRange(e,t,r){return this.dom.setSelectionRange(e,t,r),this}showPicker(){return this.dom.showPicker(),this}stepDown(){return this.dom.stepDown(),this}stepUp(){return this.dom.stepUp(),this}checkValidity(){return this.dom.checkValidity()}reportValidity(){return this.dom.reportValidity()}get files(){return this.dom.files}get webkitEntries(){return this.dom.webkitEntries}};ct=Le([Ut],ct);class kt extends y{constructor(t){super("label",t)}for(t){return $.fluent(this,arguments,()=>this.dom.htmlFor,()=>{$.set(this.dom,"htmlFor",t,"for")})}get form(){return this.dom.form}get control(){return this.dom.control}}class It extends et{constructor(t){super("img",t)}alt(t){return $.fluent(this,arguments,()=>this.dom.alt,()=>$.set(this.dom,"alt",t))}crossOrigin(t){return $.fluent(this,arguments,()=>this.dom.crossOrigin,()=>$.set(this.dom,"crossOrigin",t))}decoding(t){return $.fluent(this,arguments,()=>this.dom.decoding,()=>$.set(this.dom,"decoding",t))}height(t){return $.fluent(this,arguments,()=>this.dom.height,()=>$.set(this.dom,"height",t))}isMap(t){return $.fluent(this,arguments,()=>this.dom.isMap,()=>$.set(this.dom,"isMap",t))}loading(t){return $.fluent(this,arguments,()=>this.dom.loading,()=>$.set(this.dom,"loading",t))}referrerPolicy(t){return $.fluent(this,arguments,()=>this.dom.referrerPolicy,()=>$.set(this.dom,"referrerPolicy",t))}sizes(t){return $.fluent(this,arguments,()=>this.dom.sizes,()=>$.set(this.dom,"sizes",t))}src(t){return $.fluent(this,arguments,()=>this.dom.src,()=>$.set(this.dom,"src",t))}srcset(t){return $.fluent(this,arguments,()=>this.dom.srcset,()=>$.set(this.dom,"srcset",t))}useMap(t){return $.fluent(this,arguments,()=>this.dom.useMap,()=>$.set(this.dom,"useMap",t))}width(t){return $.fluent(this,arguments,()=>this.dom.width,()=>$.set(this.dom,"width",t))}decode(){return this.dom.decode()}get complete(){return this.dom.complete}get currentSrc(){return this.dom.currentSrc}get naturalHeight(){return this.dom.naturalHeight}get naturalWidth(){return this.dom.naturalWidth}get x(){return this.dom.x}get y(){return this.dom.y}}class Dt extends y{constructor(t){super("canvas",t)}height(t){return $.fluent(this,arguments,()=>this.dom.height,()=>{$.set(this.dom,"height",t)})}width(t){return $.fluent(this,arguments,()=>this.dom.width,()=>{$.set(this.dom,"width",t)})}captureStream(t){return this.dom.captureStream(t)}getContext(t,r){return this.dom.getContext(t)}toBlob(t,r,o){return this.dom.toBlob(t,r,o),this}toDataURL(t,r){return this.dom.toDataURL(t,r)}transferControlToOffscreen(){return this.dom.transferControlToOffscreen()}}class Ot extends y{constructor(t){super("dialog",t)}open(t){return $.fluent(this,arguments,()=>this.dom.open,()=>$.set(this.dom,"open",t))}returnValue(t){return $.fluent(this,arguments,()=>this.dom.returnValue,()=>$.set(this.dom,"returnValue",t))}close(){return this.dom.close(),this}show(){return this.dom.show(),this}showModal(){return this.dom.showModal(),this}}function se(e){return $.mixin(e,Re)}class Re{on(t,r){return this.events.on(t,r),this}off(t,r){return this.events.off(t,r),this}once(t,r){return this.events.once(t,r),this}}class zt{eventMap=new Map;register(...t){return t.forEach(r=>{const o=new te(r);this.eventMap.set(o.name,o)}),this}delete(t){return this.eventMap.delete(t),this}fire(t,...r){const o=this.get(t);return o instanceof te&&o.fire(...r),this}on(t,r){return this.get(t).add(r),this}off(t,r){return this.get(t).delete(r),this}once(t,r){const o=(...i)=>{this.get(t).delete(o),r(...i)};return this.get(t).add(o),this}get(t){const r=this.eventMap.get(t);if(!r)throw new Error("EVENT NOT EXIST");return r}}class te{name;callbackList=new Set;constructor(t){this.name=t}fire(...t){this.callbackList.forEach(r=>r(...t))}add(t){this.callbackList.add(t)}delete(t){this.callbackList.delete(t)}}class yt extends y{content_cache=new Map;event=new zt().register("switch");content_id=null;constructor(t){super("view",t)}set(t,r){return this.content_cache.set(t,r),this}delete(t){return this.content_cache.delete(t),this}switch(t){const r=this.content_cache.get(t);if(r===void 0)throw"$View.switch(): target content is undefined";return this.content(r),this.content_id=t,this.event.fire("switch",t),this}}var ye=Object.defineProperty,Ce=Object.getOwnPropertyDescriptor,Ae=(e,t,r,o)=>{for(var i=o>1?void 0:o?Ce(t,r):t,s=e.length-1,n;s>=0;s--)(n=e[s])&&(i=(o?n(t,r,i):n(i))||i);return o&&i&&ye(t,r,i),i};let pt=class extends y{constructor(){super("select")}add(e){return this.insert(e),this}item(e){return $(this.dom.item(e))}namedItem(e){return $(this.dom.namedItem(e))}disabled(e){return $.fluent(this,arguments,()=>this.dom.disabled,()=>$.set(this.dom,"disabled",e))}multiple(e){return $.fluent(this,arguments,()=>this.dom.multiple,()=>$.set(this.dom,"multiple",e))}required(e){return $.fluent(this,arguments,()=>this.dom.required,()=>$.set(this.dom,"required",e))}autocomplete(e){return $.fluent(this,arguments,()=>this.dom.autocomplete,()=>$.set(this.dom,"autocomplete",e))}get length(){return this.dom.length}get size(){return this.dom.size}get options(){return Array.from(this.dom.options).map(e=>$(e))}get selectedIndex(){return this.dom.selectedIndex}get selectedOptions(){return Array.from(this.dom.selectedOptions).map(e=>$(e))}};pt=Ae([Ut],pt);class Gt extends y{constructor(t){super("option",t)}defaultSelected(t){return $.fluent(this,arguments,()=>this.dom.defaultSelected,()=>$.set(this.dom,"defaultSelected",t))}disabled(t){return $.fluent(this,arguments,()=>this.dom.disabled,()=>$.set(this.dom,"disabled",t))}label(t){return $.fluent(this,arguments,()=>this.dom.label,()=>$.set(this.dom,"label",t))}selected(t){return $.fluent(this,arguments,()=>this.dom.selected,()=>$.set(this.dom,"selected",t))}text(t){return $.fluent(this,arguments,()=>this.dom.text,()=>$.set(this.dom,"text",t))}value(t){return $.fluent(this,arguments,()=>this.dom.value,()=>$.set(this.dom,"value",t))}get form(){return this.dom.form?$(this.dom.form):null}get index(){return this.dom.index}}class Wt extends y{constructor(t){super("optgroup",t)}disabled(t){return $.fluent(this,arguments,()=>this.dom.disabled,()=>$.set(this.dom,"disabled",t))}label(t){return $.fluent(this,arguments,()=>this.dom.label,()=>$.set(this.dom,"label",t))}}class Nt extends y{constructor(t){super("textarea",t)}cols(t){return $.fluent(this,arguments,()=>this.dom.cols,()=>$.set(this.dom,"cols",t))}name(t){return $.fluent(this,arguments,()=>this.dom.name,()=>$.set(this.dom,"name",t))}wrap(t){return $.fluent(this,arguments,()=>this.dom.wrap,()=>$.set(this.dom,"wrap",t))}value(t){return $.fluent(this,arguments,()=>this.dom.value,()=>$.set(this.dom,"value",t))}maxLength(t){return $.fluent(this,arguments,()=>this.dom.maxLength,()=>$.set(this.dom,"maxLength",t))}minLength(t){return $.fluent(this,arguments,()=>this.dom.minLength,()=>$.set(this.dom,"minLength",t))}autocomplete(t){return $.fluent(this,arguments,()=>this.dom.autocomplete,()=>$.set(this.dom,"autocomplete",t))}defaultValue(t){return $.fluent(this,arguments,()=>this.dom.defaultValue,()=>$.set(this.dom,"defaultValue",t))}dirName(t){return $.fluent(this,arguments,()=>this.dom.dirName,()=>$.set(this.dom,"dirName",t))}disabled(t){return $.fluent(this,arguments,()=>this.dom.disabled,()=>$.set(this.dom,"disabled",t))}placeholder(t){return $.fluent(this,arguments,()=>this.dom.placeholder,()=>$.set(this.dom,"placeholder",t))}readOnly(t){return $.fluent(this,arguments,()=>this.dom.readOnly,()=>$.set(this.dom,"readOnly",t))}required(t){return $.fluent(this,arguments,()=>this.dom.required,()=>$.set(this.dom,"required",t))}selectionDirection(t){return $.fluent(this,arguments,()=>this.dom.selectionDirection,()=>$.set(this.dom,"selectionDirection",t))}selectionEnd(t){return $.fluent(this,arguments,()=>this.dom.selectionEnd,()=>$.set(this.dom,"selectionEnd",t))}selectionStart(t){return $.fluent(this,arguments,()=>this.dom.selectionStart,()=>$.set(this.dom,"selectionStart",t))}type(t){return $.fluent(this,arguments,()=>this.dom.type,()=>$.set(this.dom,"type",t))}inputMode(t){return $.fluent(this,arguments,()=>this.dom.inputMode,()=>$.set(this.dom,"inputMode",t))}select(){return this.dom.select(),this}setCustomValidity(t){return this.dom.setCustomValidity(t),this}setRangeText(t,r,o,i){return typeof r=="number"&&typeof o=="number"&&this.dom.setRangeText(t,r,o,i),this.dom.setRangeText(t),this}setSelectionRange(t,r,o){return this.dom.setSelectionRange(t,r,o),this}checkValidity(){return this.dom.checkValidity()}reportValidity(){return this.dom.reportValidity()}get validationMessage(){return this.dom.validationMessage}get validity(){return this.dom.validity}get form(){return this.dom.form?$(this.dom.form):null}get labels(){return Array.from(this.dom.labels??[]).map(t=>$(t))}}function L(e){if(typeof e>"u"||e===null)return e;if(typeof e=="string"){if(e.startsWith("::"))return Array.from(document.querySelectorAll(e.replace(/^::/,""))).map(t=>L(t));if(e.startsWith(":"))return L(document.querySelector(e.replace(/^:/,"")));if(e in L.TagNameElementMap)switch(L.TagNameElementMap[e]){case et:return new et(e);case wt:return new wt;case y:return new y(e);case ct:return new ct;case kt:return new kt;case Ht:return new Ht;case ut:return new ut;case It:return new It;case Dt:return new Dt;case Ot:return new Ot;case yt:return new yt;case pt:return new pt;case Gt:return new Gt;case Wt:return new Wt;case Nt:return new Nt}else return new y(e)}if(e instanceof HTMLElement||e instanceof Text)return e.$?e.$:it.from(e);throw"$: NOT SUPPORT TARGET ELEMENT TYPE"}(e=>{e.anchorHandler=null,e.anchorPreventDefault=!1,e.routers=new Set,e.TagNameElementMap={a:wt,p:y,pre:y,code:y,blockquote:y,strong:y,h1:y,h2:y,h3:y,h4:y,h5:y,h6:y,div:y,ol:y,ul:y,dl:y,li:y,input:ct,label:kt,button:ut,form:Ht,img:It,dialog:Ot,canvas:Dt,view:yt,select:pt,option:Gt,optgroup:Wt,textarea:Nt};function t(d,m,l,c){return m.length?(c(),d):l()}e.fluent=t;function r(d){return d instanceof Array?d:[d]}e.multableResolve=r;function o(d,m){return r(m).forEach(l=>{Object.getOwnPropertyNames(l.prototype).forEach(c=>{c!=="constructor"&&Object.defineProperty(d.prototype,c,Object.getOwnPropertyDescriptor(l.prototype,c)||Object.create(null))})}),d}e.mixin=o;function i(d,m,l,c){if(l!==void 0){if(l instanceof lt&&d instanceof Node){l.use(d.$,c??m),d[m]=l.value;return}d[m]=l}}e.set=i;function s(d){return new lt(d)}e.state=s;async function n(d,m){return new Promise(l=>{const c=new FileReader;c.onload=g=>{const R=e("img");if(R.once("load",T=>{const A=e("canvas"),W=A.getContext("2d"),P=R.height()/R.width(),[X,Y]=[P>1?m/P:m,P>1?m:m*P];A.height(Y).width(X),W?.drawImage(R.dom,0,0,X,Y),l(A.toDataURL(d.type))}),!g.target)throw"$.resize(): e.target is null";R.src(g.target.result)},c.readAsDataURL(d)})}e.resize=n;function a(d=1){return parseInt(getComputedStyle(document.documentElement).fontSize)*d}e.rem=a;function h(d,m,l){if(typeof m=="number")return Array(m).fill("").map(g=>{const R=c(d)?d[0](...d.slice(1)):e(d);return l&&l(R),R});{const g=[];for(const R of m){const T=d instanceof Function?d(...R):c(d)?d[0](...d.slice(1)):e(d);R instanceof Function?R(T):(R instanceof it||typeof R=="string")&&T.content(R),g.push(T)}return g}function c(g){return g instanceof Array&&g[0]instanceof Function}}e.builder=h})(L||(L={}));globalThis.$=L;var Be=Object.defineProperty,Ee=Object.getOwnPropertyDescriptor,Se=(e,t,r,o)=>{for(var i=o>1?void 0:o?Ee(t,r):t,s=e.length-1,n;s>=0;s--)(n=e[s])&&(i=(o?n(t,r,i):n(i))||i);return o&&i&&Be(t,r,i),i};let Pt=class{id;content;events=new zt().register("open","load");constructor(e){this.id=e}};Pt=Se([se],Pt);var ve=Object.defineProperty,Te=Object.getOwnPropertyDescriptor,Fe=(e,t,r,o)=>{for(var i=o>1?void 0:o?Te(t,r):t,s=e.length-1,n;s>=0;s--)(n=e[s])&&(i=(o?n(t,r,i):n(i))||i);return o&&i&&ve(t,r,i),i};let ee=class{routeMap=new Map;recordMap=new Map;$view;index=0;events=new zt().register("pathchange","notfound","load");basePath;constructor(e,t){this.basePath=e,this.$view=t??new yt}addRoute(e){e=$.multableResolve(e);for(const t of e)this.routeMap.set(t.path,t);return this}listen(){if(!history.state||!("index"in history.state)){const e={index:this.index,data:{}};history.replaceState(e,"")}else this.index=history.state.index;return addEventListener("popstate",this.popstate),$.routers.add(this),this.resolvePath(),this.events.fire("pathchange",{path:location.href,navigation:"Forward"}),this}open(e){if(e===void 0)return;if(e===location.href)return this;this.index+=1;const t={index:this.index,data:{}};return history.pushState(t,"",e),$.routers.forEach(r=>r.resolvePath()),this.events.fire("pathchange",{path:e,navigation:"Forward"}),this}back(){return history.back(),this}replace(e){return history.replaceState({index:this.index},"",e),$.routers.forEach(t=>t.resolvePath(e)),this.events.fire("pathchange",{path:e,navigation:"Forward"}),this}setStateData(e,t){return history.state.data===void 0&&(history.state.data={}),history.state.data[e]=t,this}popstate=(()=>{history.state.index>this.index||history.state.index{const s=this.recordMap.get(i);return s?(t=!0,s.content&&!this.$view.contains(s.content)&&this.$view.switch(i),s.events.fire("open",{path:e,record:s}),!0):!1},o=(i,s,n)=>{const a=new Pt(i);let h=s.builder({params:n,record:a,loaded:()=>{a.events.fire("load",{path:i,record:a}),this.events.fire("load",{path:i})}});typeof h=="string"&&(h=new Bt(h)),a.content=h,this.recordMap.set(i,a),this.$view.set(i,h).switch(i),a.events.fire("open",{path:e,record:a}),t=!0};for(const[i,s]of this.routeMap.entries()){if(i instanceof Function){const m=i(e);m&&(r(m)||o(m,s,void 0));continue}const[n,a]=[i.split("/").map(m=>`/${m}`),e.split("/").map(m=>`/${m}`)];n.shift(),a.shift();const h={};let d="";for(let m=0;mi=!0;this.events.fire("notfound",{path:e,preventDefault:s}),i||this.$view.clear()}}};ee=Fe([se],ee);Array.prototype.detype=function(...e){return this.filter(t=>{if(e.length)for(const r of e)return typeof t==typeof r;else return t!==void 0})};class qt extends y{$value=$("input").class("value");$unit=$("span").staticClass("unit");$label=$("label").hide(!0);constructor(t){super("div"),this.staticClass("input-component",t),this.$value.id(t),this.$label.for(t)}unit(t){return this.$unit.content(t),this}value(t){return t===void 0?this:(this.$value.value(t.toString()),this)}label(t){return t&&this.$label.hide(!1),this.$label.content(t),this}min(t){return this.$value.min(t),this}max(t){return this.$value.max(t),this}}class Rt extends qt{$color=$("input").type("color").class("color");constructor(t){super(t),this.addStaticClass("color"),this.$color.id(t),this.layout()}layout(){this.content([this.$label,$("div").content([this.$value,this.$color])]),this.$value.on("input",t=>this.$color.value(this.$value.value())),this.$color.on("input",t=>this.$value.value(this.$color.value()))}value(t){return super.value(t),this.$color.value(t),this}}class _ extends qt{$range=$("input").type("range").class("range");constructor(t){super(t),this.addStaticClass("range"),this.$range.id(t),this.$value,this.layout()}layout(){this.content([this.$label,$("div").content([this.$value,this.$range,this.$unit])]),this.$range.on("input",t=>{this.$value.value(`${this.$range.value()}`)}),this.$value.on("input",t=>{this.$range.value(this.$value.value())})}value(t){return arguments.length?t===void 0?this:(t.match(/[a-zA-Z]/)&&(t=t.replaceAll(/[a-zA-Z]/g,"")),super.value(t),this.$range.value(t),this):this.value()}min(t){return super.min(t),this.$range.min(t),this}max(t){return super.max(t),this.$range.max(t),this}}class re extends qt{$select=$("select");constructor(t){super(t),this.addStaticClass("select"),this.$select.id(t),this.layout()}layout(){this.content([this.$label,this.$select])}add(t){return this.$select.add(t),this}value(t){return super.value(t),this.$select.value(t),this}}var f,j,B,Ct;(function(e){e.HEX="HEX",e.RGB="RGB",e.HSL="HSL",e.CIELab="CIELab",e.CMYK="CMYK"})(f||(f={})),function(e){e.ANALOGOUS="ANALOGOUS",e.COMPLEMENTARY="COMPLEMENTARY",e.SPLIT_COMPLEMENTARY="SPLIT_COMPLEMENTARY",e.TRIADIC="TRIADIC",e.TETRADIC="TETRADIC",e.SQUARE="SQUARE"}(j||(j={})),function(e){e.ADDITIVE="ADDITIVE",e.SUBTRACTIVE="SUBTRACTIVE"}(B||(B={})),function(e){e.black="#000000",e.silver="#C0C0C0",e.gray="#808080",e.white="#FFFFFF",e.maroon="#800000",e.red="#FF0000",e.purple="#800080",e.fuchsia="#FF00FF",e.green="#008000",e.lime="#00FF00",e.olive="#808000",e.yellow="#FFFF00",e.navy="#000080",e.blue="#0000FF",e.teal="#008080",e.aqua="#00FFFF",e.orange="#FFA500",e.aliceblue="#F0F8FF",e.antiquewhite="#FAEBD7",e.aquamarine="#7FFFD4",e.azure="#F0FFFF",e.beige="#F5F5DC",e.bisque="#FFE4C4",e.blanchedalmond="#FFEBCD",e.blueviolet="#8A2BE2",e.brown="#A52A2A",e.burlywood="#DEB887",e.cadetblue="#5F9EA0",e.chartreuse="#7FFF00",e.chocolate="#D2691E",e.coral="#FF7F50",e.cornflowerblue="#6495ED",e.cornsilk="#FFF8DC",e.crimson="#DC143C",e.cyan="#00FFFF",e.darkblue="#00008B",e.darkcyan="#008B8B",e.darkgoldenrod="#B8860B",e.darkgray="#A9A9A9",e.darkgreen="#006400",e.darkgrey="#A9A9A9",e.darkkhaki="#BDB76B",e.darkmagenta="#8B008B",e.darkolivegreen="#556B2F",e.darkorange="#FF8C00",e.darkorchid="#9932CC",e.darkred="#8B0000",e.darksalmon="#E9967A",e.darkseagreen="#8FBC8F",e.darkslateblue="#483D8B",e.darkslategray="#2F4F4F",e.darkslategrey="#2F4F4F",e.darkturquoise="#00CED1",e.darkviolet="#9400D3",e.deeppink="#FF1493",e.deepskyblue="#00BFFF",e.dimgray="#696969",e.dimgrey="#696969",e.dodgerblue="#1E90FF",e.firebrick="#B22222",e.floralwhite="#FFFAF0",e.forestgreen="#228B22",e.gainsboro="#DCDCDC",e.ghostwhite="#F8F8FF",e.gold="#FFD700",e.goldenrod="#DAA520",e.greenyellow="#ADFF2F",e.grey="#808080",e.honeydew="#F0FFF0",e.hotpink="#FF69B4",e.indianred="#CD5C5C",e.indigo="#4B0082",e.ivory="#FFFFF0",e.khaki="#F0E68C",e.lavender="#E6E6FA",e.lavenderblush="#FFF0F5",e.lawngreen="#7CFC00",e.lemonchiffon="#FFFACD",e.lightblue="#ADD8E6",e.lightcoral="#F08080",e.lightcyan="#E0FFFF",e.lightgoldenrodyellow="#FAFAD2",e.lightgray="#D3D3D3",e.lightgreen="#90EE90",e.lightgrey="#D3D3D3",e.lightpink="#FFB6C1",e.lightsalmon="#FFA07A",e.lightseagreen="#20B2AA",e.lightskyblue="#87CEFA",e.lightslategray="#778899",e.lightslategrey="#778899",e.lightsteelblue="#B0C4DE",e.lightyellow="#FFFFE0",e.limegreen="#32CD32",e.linen="#FAF0E6",e.magenta="#FF00FF",e.mediumaquamarine="#66CDAA",e.mediumblue="#0000CD",e.mediumorchid="#BA55D3",e.mediumpurple="#9370DB",e.mediumseagreen="#3CB371",e.mediumslateblue="#7B68EE",e.mediumspringgreen="#00FA9A",e.mediumturquoise="#48D1CC",e.mediumvioletred="#C71585",e.midnightblue="#191970",e.mintcream="#F5FFFA",e.mistyrose="#FFE4E1",e.moccasin="#FFE4B5",e.navajowhite="#FFDEAD",e.oldlace="#FDF5E6",e.olivedrab="#6B8E23",e.orangered="#FF4500",e.orchid="#DA70D6",e.palegoldenrod="#EEE8AA",e.palegreen="#98FB98",e.paleturquoise="#AFEEEE",e.palevioletred="#DB7093",e.papayawhip="#FFEFD5",e.peachpuff="#FFDAB9",e.peru="#CD853F",e.pink="#FFC0CB",e.plum="#DDA0DD",e.powderblue="#B0E0E6",e.rosybrown="#BC8F8F",e.royalblue="#4169E1",e.saddlebrown="#8B4513",e.salmon="#FA8072",e.sandybrown="#F4A460",e.seagreen="#2E8B57",e.seashell="#FFF5EE",e.sienna="#A0522D",e.skyblue="#87CEEB",e.slateblue="#6A5ACD",e.slategray="#708090",e.slategrey="#708090",e.snow="#FFFAFA",e.springgreen="#00FF7F",e.steelblue="#4682B4",e.tan="#D2B48C",e.thistle="#D8BFD8",e.tomato="#FF6347",e.turquoise="#40E0D0",e.violet="#EE82EE",e.wheat="#F5DEB3",e.whitesmoke="#F5F5F5",e.yellowgreen="#9ACD32",e.rebeccapurple="#663399"}(Ct||(Ct={}));const ne=Object.keys(Ct),we={HEX:["R","G","B","A"],RGB:["R","G","B","A"],HSL:["H","S","L","A"],CIELab:["L","a","b","A"],CMYK:["C","M","Y","K","A"]},Yt={BGR:f.RGB,ABGR:f.RGB,HLS:f.HSL,AHLS:f.HSL,LAB:f.CIELab,ALAB:f.CIELab,CKMY:f.CMYK,ACKMY:f.CMYK};var ht;(function(e){e.NUMBER="number",e.BOOLEAN="boolean"})(ht||(ht={}));const O={[f.HEX]:/^#(?:([a-f\d])([a-f\d])([a-f\d])([a-f\d])?|([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?)$/i,[f.RGB]:/^rgba?\s*\(\s*(?:((?:\d*\.)?\d+%?)\s*,\s*((?:\d*\.)?\d+%?)\s*,\s*((?:\d*\.)?\d+%?)(?:\s*,\s*((?:\d*\.)?\d+))?|((?:\d*\.)?\d+%?)\s*((?:\d*\.)?\d+%?)\s*((?:\d*\.)?\d+%?)(?:\s*\/\s*((?:\d*\.)?\d+%?))?)\s*\)$/,[f.HSL]:/^hsla?\s*\(\s*(?:(-?(?:\d*\.)?\d+(?:deg|grad|rad|turn)?)\s*,\s*((?:\d*\.)?\d+)%\s*,\s*((?:\d*\.)?\d+)%(?:\s*,\s*((?:\d*\.)?\d+))?|(-?(?:\d*\.)?\d+(?:deg|grad|rad|turn)?)\s*((?:\d*\.)?\d+)%\s*((?:\d*\.)?\d+)%(?:\s*\/\s*((?:\d*\.)?\d+%?))?)\s*\)$/,[f.CIELab]:/^lab\s*\(\s*(?:((?:\d*\.)?\d+%?)\s*(-?(?:\d*\.)?\d+%?)\s*(-?(?:\d*\.)?\d+%?)(?:\s*\/\s*((?:\d*\.)?\d+%?))?)\s*\)$/,[f.CMYK]:/^(?:device-cmyk|cmyk)\s*\(\s*(?:((?:\d*\.)?\d+%?)\s*,\s*((?:\d*\.)?\d+%?)\s*,\s*((?:\d*\.)?\d+%?)\s*,\s*((?:\d*\.)?\d+%?)(?:\s*,\s*((?:\d*\.)?\d+))?|((?:\d*\.)?\d+%?)\s*((?:\d*\.)?\d+%?)\s*((?:\d*\.)?\d+%?)\s*((?:\d*\.)?\d+%?)(?:\s*\/\s*((?:\d*\.)?\d+%?))?)\s*\)$/},ae=/^(-?(?:\d*\.)?\d+)((?:deg|grad|rad|turn)?)$/,v=/^(-?\d+(?:\.\d+)?|-?\.\d+)%$/,_t=/^0x([a-f\d]{1,2})$/i,Me=/\{(\d+)\}/g,He=/,( +|\d+)/g,ke=/ +/,Ie="The provided string color doesn't have a correct format",De="The provided color object doesn't have the proper keys or format";var D,I,mt;(function(e){e.NONE="none",e.DEGREES="deg",e.GRADIANS="grad",e.RADIANS="rad",e.TURNS="turn"})(D||(D={})),function(e){e.NONE="none",e.PERCENT="percent"}(I||(I={})),function(e){e.DEVICE_CMYK="device-cmyk",e.CMYK="cmyk"}(mt||(mt={}));const K={decimals:6,legacyCSS:!1,spacesAfterCommas:!1,anglesUnit:D.NONE,rgbUnit:I.NONE,labUnit:I.NONE,cmykUnit:I.PERCENT,alphaUnit:I.NONE,cmykFunction:mt.DEVICE_CMYK},H=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),bt=e=>+`${e}`.replace(v,"$1"),q=e=>v.test(`${e}`)?bt(e):Math.min(+e,100),ft=e=>(e.length===1&&(e+=e),parseInt(e,16)),xt=e=>{const t=p(e,0).toString(16).toUpperCase();return t.length===1?`0x0${t}`:`0x${t}`},z=(e,t=!1)=>!t&&v.test(e)?Math.min(255*bt(e)/100,255):_t.test(e)?(e.length===3&&(e+=e.slice(-1)),t?p(e)/255:p(e)):Math.min(+e,t?1:255),At=e=>v.test(e)?w(125*bt(e)/100,-125,125):w(+e,-125,125),U=e=>Math.min(v.test(e)?bt(e)/100:+e,1),de=e=>[...e].sort().join("").toUpperCase(),p=(e,t=6)=>{const r=Math.pow(10,t);return Math.round(+e*r)/r},w=(e,t,r)=>Math.max(t,Math.min(e,r)),gt=e=>{if(typeof e=="string"){const t=e.match(ae),r=+t[1];switch(t[2]){case D.RADIANS:e=p(180*r/Math.PI);break;case D.TURNS:e=p(360*r);break;case D.GRADIANS:e=p(.9*r);break;case D.DEGREES:default:e=r}}return(e>360||e<0)&&(e-=360*Math.floor(e/360)),e},Oe=(e,t)=>{let r;switch(t){case D.RADIANS:r=p((o=>o*Math.PI/180)(e));break;case D.TURNS:r=p(e/360);break;case D.GRADIANS:r=p(10/9*e);break;case D.DEGREES:case D.NONE:default:r=e}return r},x=(e,...t)=>{const r=[],o=[],i=[],s=[],n=[],a=[],h=Object.values(D),d=Object.values(I),m=Object.values(mt),l={legacyCSS:0,spacesAfterCommas:0,cmykFunction:0};for(const c of t)if(typeof c=="string"){if(r.push(c),c.includes(",")){l.legacyCSS++;const g=c.match(He);new Set(g).size===1&&ke.test(g[0].slice(1))&&l.spacesAfterCommas++}if(c.match(O.HSL)){const g=c.match(O.HSL),R=g[1]||g[5],T=g[8],A=R.match(ae)[2];o.push(A===""?D.NONE:A),a.push(v.test(T));continue}if(O.RGB.test(c)){const g=c.match(O.RGB),R=g[1]||g[5],T=g[2]||g[6],A=g[3]||g[7],W=g[8];i.push(v.test(R)&&v.test(T)&&v.test(A)),a.push(v.test(W));continue}if(O.CIELab.test(c)){const g=c.match(O.CIELab),R=g[1],T=g[2],A=g[3],W=g[4];s.push(v.test(R)&&v.test(T)&&v.test(A)),a.push(v.test(W));continue}if(c.match(O.CMYK)){const g=c.match(O.CMYK),R=g[1]||g[6],T=g[2]||g[7],A=g[3]||g[8],W=g[4]||g[9],P=g[10];n.push(v.test(R)&&v.test(T)&&v.test(A)&&v.test(W)),c.startsWith("cmyk")&&l.cmykFunction++,a.push(v.test(P))}}return{decimals:typeof e.decimals===ht.NUMBER?e.decimals:K.decimals,legacyCSS:typeof e.legacyCSS===ht.BOOLEAN?e.legacyCSS:!!(r.length&&l.legacyCSS===r.length)||K.legacyCSS,spacesAfterCommas:typeof e.spacesAfterCommas===ht.BOOLEAN?e.spacesAfterCommas:!!(r.length&&l.spacesAfterCommas===r.length)||K.spacesAfterCommas,anglesUnit:e.anglesUnit&&h.includes(e.anglesUnit)?e.anglesUnit:new Set(o).size===1?o[0]:K.anglesUnit,rgbUnit:e.rgbUnit&&d.includes(e.rgbUnit)?e.rgbUnit:new Set(i).size===1&&i[0]?I.PERCENT:K.rgbUnit,labUnit:e.labUnit&&d.includes(e.labUnit)?e.labUnit:new Set(s).size===1&&s[0]?I.PERCENT:K.labUnit,cmykUnit:e.cmykUnit&&d.includes(e.cmykUnit)?e.cmykUnit:new Set(n).size!==1||n[0]?K.cmykUnit:I.NONE,alphaUnit:e.alphaUnit&&d.includes(e.alphaUnit)?e.alphaUnit:new Set(a).size===1&&a[0]?I.PERCENT:K.alphaUnit,cmykFunction:e.cmykFunction&&m.includes(e.cmykFunction)?e.cmykFunction:n.length&&n.length===l.cmykFunction?mt.CMYK:K.cmykFunction}},St=e=>`${e}`in B,he=[[.4360747,.3850649,.1430804],[.2225045,.7168786,.0606169],[.0139322,.0971045,.7141733]],Ge=[[3.1338561,-1.6168667,-.4906146],[-.9787684,1.9161415,.033454],[.0719453,-.2289914,1.4052427]],tt=he.map(e=>e.reduce((t,r)=>t+r,0)),vt=(e,t,r)=>(r<0&&(r+=6),r>=6&&(r-=6),p(r<1?255*((t-e)*r+e):r<3?255*t:r<4?255*((t-e)*(4-r)+e):255*e)),We=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4,Ne=e=>e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055,le=(e,t,r,o)=>{const i=[0,0,0],s=[e,t,r];return o.forEach((n,a)=>{n.forEach((h,d)=>{i[a]+=h*s[d]})}),i},F=(e,t,r)=>{t/=100;const o=(r/=100)<=.5?r*(t+1):r+t-r*t,i=2*r-o;return{R:vt(i,o,(e/=60)+2),G:vt(i,o,e),B:vt(i,o,e-2)}},rt=(e,t,r,o=1)=>{e/=255,t/=255,r/=255,o=Math.min(o,1);const i=Math.max(e,t,r),s=Math.min(e,t,r),n=i-s;let a=0,h=0;const d=(i+s)/2;if(n!==0){switch(i){case e:a=(t-r)/n%6;break;case t:a=(r-e)/n+2;break;case r:a=(e-t)/n+4}a=p(60*a),a<0&&(a+=360),h=n/(1-Math.abs(2*d-1))}return{H:a,S:p(100*h),L:p(100*d),A:o}},ot=(e,t,r)=>{const o=[e/255,t/255,r/255].map(We),i=le(o[0],o[1],o[2],he),s=((n,a,h)=>{const d=c=>c>.008856451679035631?Math.cbrt(c):c/.12841854934601665+.13793103448275862,m=d(n/tt[0]),l=d(a/tt[1]);return[116*l-16,500*(m-l),200*(l-d(h/tt[2]))]})(i[0],i[1],i[2]);return{L:s[0],a:s[1],b:s[2]}},Zt=(e,t,r)=>{const o=((s,n,a)=>{const h=c=>c>.20689655172413793?c**3:.12841854934601665*(c-.13793103448275862),d=(s+16)/116,m=n/500,l=a/200;return[tt[0]*h(d+m),tt[1]*h(d),tt[2]*h(d-l)]})(e,t,r),i=le(o[0],o[1],o[2],Ge).map(Ne);return{R:w(255*i[0],0,255),G:w(255*i[1],0,255),B:w(255*i[2],0,255)}},Qt=(e,t,r,o)=>({R:p(255*(1-e)*(o=1-o)),G:p(255*(1-t)*o),B:p(255*(1-r)*o)}),ue=(e,t,r)=>{e/=255,t/=255,r/=255;const o=1-Math.max(e,t,r),i=1-o,s=i&&(i-t)/i,n=i&&(i-r)/i;return{C:p(100*(i&&(i-e)/i)),M:p(100*s),Y:p(100*n),K:p(100*o)}},oe=(e,t)=>{if(e<0&&(e+=360),e>360&&(e-=360),e===360||e===0)return e;const r=[[0,120],[120,180],[180,240],[240,360]],o=[[0,60],[60,120],[120,240],[240,360]],i=t?o:r;let s=0,n=0,a=0,h=0;return(t?r:o).find((d,m)=>e>=d[0]&&ee?", ":",",nt=(e,t)=>{const r=de(Object.keys(e));return we[Yt[r]].reduce((o,i,s)=>{const n=e[i];return n!==void 0&&o.push(t(n,s)),o},[])},at=(e,t)=>e.replace(Me,(r,o)=>`${t[+o-1]}`),$t=(e,t,r=!1)=>{const{alphaUnit:o,legacyCSS:i,decimals:s}=t;return o!==I.PERCENT||i&&!r?p(e,s):`${p(100*e,s)}%`},b={[f.HEX]:e=>{const t=nt(e,o=>(i=>{let s=p(i,0).toString(16).toUpperCase();return s.length===1&&(s=`0${s}`),s})(p(o))),r=t.length===4?"#{1}{2}{3}{4}":"#{1}{2}{3}";return at(r,t)},[f.RGB]:(e,t)=>{const{decimals:r,legacyCSS:o,spacesAfterCommas:i,rgbUnit:s}=t,n=Tt(i),a=nt(e,(d,m)=>s===I.PERCENT&&m<3?`${((l,c)=>p(l/255*100,c))(d,r)}%`:m===3?$t(d,t):p(d,r)),h=o?a.length===4?`rgba({1}${n}{2}${n}{3}${n}{4})`:`rgb({1}${n}{2}${n}{3})`:a.length===4?"rgb({1} {2} {3} / {4})":"rgb({1} {2} {3})";return at(h,a)},[f.HSL]:(e,t)=>{const{decimals:r,legacyCSS:o,spacesAfterCommas:i,anglesUnit:s}=t,n=Tt(i),a=nt(e,(d,m)=>m===0&&s!==D.NONE?`${p(Oe(d,s),r)}${s}`:m===3?$t(d,t):p(d,r)),h=o?a.length===4?`hsla({1}${n}{2}%${n}{3}%${n}{4})`:`hsl({1}${n}{2}%${n}{3}%)`:a.length===4?"hsl({1} {2}% {3}% / {4})":"hsl({1} {2}% {3}%)";return at(h,a)},[f.CIELab]:(e,t)=>{const{decimals:r,labUnit:o}=t,i=nt(e,(n,a)=>{if(a===0){const h=p(q(n),r);return o===I.PERCENT?`${h}%`:`${h}`}return a<3?o===I.PERCENT?`${((h,d)=>p(h/125*100,d))(n,r)}%`:p(n,r):$t(n,t,!0)}),s=i.length===4?"lab({1} {2} {3} / {4})":"lab({1} {2} {3})";return at(s,i)},[f.CMYK]:(e,t)=>{const{decimals:r,legacyCSS:o,spacesAfterCommas:i,cmykUnit:s,cmykFunction:n}=t,a=Tt(i),h=nt(e,(m,l)=>s===I.PERCENT&&l<4?`${p(m,r)}%`:l===4?$t(m,t):p(m/100,r)),d=o?h.length===5?`${n}({1}${a}{2}${a}{3}${a}{4}${a}{5})`:`${n}({1}${a}{2}${a}{3}${a}{4})`:h.length===5?`${n}({1} {2} {3} {4} / {5})`:`${n}({1} {2} {3} {4})`;return at(d,h)}},M=e=>(typeof e=="string"&&(e=v.test(e)?bt(e)/100:+e),isNaN(+e)||e>1?1:p(e)),st=(e,t,r)=>t.reduce((o,i)=>[...o,{...e,H:r===B.ADDITIVE?gt(e.H+i):gt(oe(oe(e.H,!1)+i,!0))}],[{...e}]),Pe=(e,t)=>st(e,[30,-30],t),Ye=(e,t)=>st(e,[180],t),_e=(e,t)=>st(e,[150,-150],t),je=(e,t)=>st(e,[120,-120],t),Xe=(e,t)=>st(e,[60,-120,180],t),Ke=(e,t)=>st(e,[90,-90,180],t),S=e=>typeof e=="string"?(t=>{let r;if(Object.keys(f).some(o=>{if(O[o].test(t))return r=o,!0}),!r&&~ne.indexOf(t)&&(r=f.HEX),!r)throw new Error(Ie);return r})(e):(t=>{let r,o=!1;const i=de(Object.keys(t));if(Yt[i]&&(r=Yt[i]),r&&r===f.RGB){const s=Object.entries(t).some(a=>!_t.test(`${a[1]}`)),n=Object.entries(t).some(a=>!(v.test(`${a[1]}`)||!_t.test(`${a[1]}`)&&!isNaN(+a[1])&&+a[1]<=255));s&&n&&(o=!0),s||(r=f.HEX)}if(!r||o)throw new Error(De);return r})(e),Ve={[f.HEX](e){const t=(~ne.indexOf(e)?Ct[e]:e).match(O.HEX),r={R:ft(t[1]||t[5]),G:ft(t[2]||t[6]),B:ft(t[3]||t[7])},o=t[4]||t[8];return o!==void 0&&(r.A=ft(o)/255),r},[f.RGB](e){const t=e.match(O.RGB),r=z(t[1]||t[5]),o=z(t[2]||t[6]),i=z(t[3]||t[7]),s=t[4]||t[8],n={R:Math.min(r,255),G:Math.min(o,255),B:Math.min(i,255)};return s!==void 0&&(n.A=M(s)),n},[f.HSL](e){const t=e.match(O.HSL),r=gt(t[1]||t[5]),o=q(t[2]||t[6]),i=q(t[3]||t[7]),s=t[4]||t[8],n=F(r,o,i);return s!==void 0&&(n.A=M(s)),n},[f.CIELab](e){const t=e.match(O.CIELab),r=q(t[1]),o=At(t[2]),i=At(t[3]),s=t[4],n=Zt(r,o,i);return s!==void 0&&(n.A=M(s)),n},[f.CMYK](e){const t=e.match(O.CMYK),r=U(t[1]||t[6]),o=U(t[2]||t[7]),i=U(t[3]||t[8]),s=U(t[4]||t[9]),n=t[5]||t[10],a=Qt(r,o,i,s);return n!==void 0&&(a.A=M(n)),a}},Ue={[f.HEX](e){const t={R:z(`${e.R}`),G:z(`${e.G}`),B:z(`${e.B}`)};return H(e,"A")&&(t.A=Math.min(z(`${e.A}`,!0),1)),t},[f.RGB](e){return this.HEX(e)},[f.HSL](e){const t=q(`${e.S}`),r=q(`${e.L}`),o=F(gt(e.H),t,r);return H(e,"A")&&(o.A=M(e.A)),o},[f.CIELab](e){const t=q(`${e.L}`),r=At(`${e.a}`),o=At(`${e.b}`),i=Zt(t,r,o);return H(e,"A")&&(i.A=M(e.A)),i},[f.CMYK](e){const t=U(`${e.C}`),r=U(`${e.M}`),o=U(`${e.Y}`),i=U(`${e.K}`),s=Qt(t,r,o,i);return H(e,"A")&&(s.A=M(e.A)),s}},Z=(e,t=S(e))=>typeof e=="string"?Ve[t](e):Ue[t](e),u={[f.HEX]:e=>({R:xt(e.R),G:xt(e.G),B:xt(e.B)}),HEXA(e){const t=u.HEX(e);return t.A=H(e,"A")?xt(255*e.A):"0xFF",t},[f.RGB](e,t){const r=ze(e,t);return H(r,"A")&&delete r.A,r},RGBA(e,t){const r=u.RGB(e,t);return r.A=H(e,"A")?p(e.A):1,r},[f.HSL](e,t){const r=rt(e.R,e.G,e.B);return delete r.A,jt(r,t)},HSLA(e,t){const r=u.HSL(e,t);return r.A=H(e,"A")?p(e.A,t):1,r},[f.CIELab](e,t){const r=ot(e.R,e.G,e.B);return qe(r,t)},CIELabA(e,t){const r=u.CIELab(e,t);return r.A=H(e,"A")?p(e.A,t):1,r},[f.CMYK]:(e,t)=>Ze(ue(e.R,e.G,e.B),t),CMYKA(e,t){const r=u.CMYK(e,t);return r.A=H(e,"A")?p(e.A,t):1,r}},Lt=(e,t,r,o)=>{const i=S(e),s=typeof e=="string",n=Z(e,i),a=typeof e=="string"&&H(n,"A")||typeof e!="string"&&H(e,"A"),h=rt(n.R,n.G,n.B,n.A);a||delete h.A;const d=r?h.L/(t+1):(100-h.L)/(t+1),m=Array(t).fill(null).map((l,c)=>({...h,L:h.L+d*(c+1)*(1-2*+r)}));switch(i){case f.HEX:default:return m.map(l=>{const c=F(l.H,l.S,l.L);return a&&(c.A=l.A),s?a?b.HEX({...c,A:p(255*c.A)}):b.HEX(c):a?u.HEXA(c):u.HEX(c)});case f.RGB:return m.map(l=>{const c=F(l.H,l.S,l.L);return a&&(c.A=l.A),s?b.RGB(c,o):a?u.RGBA(c,o.decimals):u.RGB(c,o.decimals)});case f.HSL:return m.map(l=>s?b.HSL(l,o):a?u.HSLA({...F(l.H,l.S,l.L),A:l.A},o.decimals):u.HSL(F(l.H,l.S,l.L),o.decimals));case f.CIELab:return m.map(l=>{const c=F(l.H,l.S,l.L);return s?b.CIELab(a?u.CIELabA(c,o.decimals):u.CIELab(c,o.decimals),o):a?u.CIELabA({...c,A:l.A},o.decimals):u.CIELab(c,o.decimals)})}},J={buildHarmony(e,t,r,o){const i=S(e),s=Z(e,i),n=rt(s.R,s.G,s.B,s.A),a=typeof e=="string"&&H(s,"A")||typeof e!="string"&&H(e,"A"),h=typeof e=="string";switch(i){case f.HEX:default:return a?this.HEXA(jt(n,0),t,r,h):this.HEX(jt(n,0),t,r,h);case f.HSL:return a?this.HSLA(n,t,r,h,o):this.HSL(n,t,r,h,o);case f.RGB:return a?this.RGBA(n,t,r,h,o):this.RGB(n,t,r,h,o);case f.CIELab:return a?this.CIELabA(n,t,r,h,o):this.CIELab(n,t,r,h,o)}},[f.HEX]:(e,t,r,o)=>t(e,r).map(i=>o?b.HEX(F(i.H,i.S,i.L)):u.HEX(F(i.H,i.S,i.L))),HEXA:(e,t,r,o)=>t(e,r).map(i=>o?b.HEX({...F(i.H,i.S,i.L),A:255*M(i.A)}):u.HEXA({...F(i.H,i.S,i.L),A:M(i.A)})),[f.RGB]:(e,t,r,o,i)=>t(e,r).map(s=>o?b.RGB(F(s.H,s.S,s.L),i):u.RGB(F(s.H,s.S,s.L),i.decimals)),RGBA:(e,t,r,o,i)=>t(e,r).map(s=>o?b.RGB({...F(s.H,s.S,s.L),A:M(s.A)},i):u.RGBA({...F(s.H,s.S,s.L),A:M(s.A)},i.decimals)),[f.HSL]:(e,t,r,o,i)=>t(e,r).map(s=>o?b.HSL({H:s.H,S:s.S,L:s.L},i):u.HSL(F(s.H,s.S,s.L),i.decimals)),HSLA:(e,t,r,o,i)=>t(e,r).map(s=>o?b.HSL({...s,A:M(s.A)},i):u.HSLA({...F(s.H,s.S,s.L),A:M(s.A)},i.decimals)),[f.CIELab]:(e,t,r,o,i)=>t(e,r).map(s=>{const n=F(s.H,s.S,s.L);return o?b.CIELab(ot(n.R,n.G,n.B),i):u.CIELab(n,i.decimals)}),CIELabA:(e,t,r,o,i)=>t(e,r).map(s=>{const n=F(s.H,s.S,s.L);return o?b.CIELab({...ot(n.R,n.G,n.B),A:M(s.A)},i):u.CIELabA({...n,A:M(s.A)},i.decimals)})},C={mix(e,t){const r=e.map(n=>{const a=S(n);return Z(n,a)}),o=t===B.SUBTRACTIVE?r.map(n=>{const a=((h,d,m)=>{const l=Math.min(h,d,m),c=Math.min(255-h,255-d,255-m),g=h-l,R=d-l,T=m-l,A=Math.min(g,R),W=g-A,P=(R+A)/2,X=(T+R-A)/2,Y=Math.max(W,P,X)/Math.max(g,R,T),Et=isNaN(Y)||Y===1/0||Y<=0?1:Y;return{R:W/Et+c,Y:P/Et+c,B:X/Et+c}})(n.R,n.G,n.B);return H(n,"A")&&(a.A=n.A),a}):null;function i(n){const a=t===B.ADDITIVE?{R:0,G:0,B:0,A:0}:{R:0,Y:0,B:0,A:0};return n.reduce((h,d)=>{const m=H(d,"A")?d.A:1,l={R:Math.min(h.R+d.R*m,255),B:Math.min(h.B+d.B*m,255),A:1-(1-m)*(1-h.A)},c="G"in h?h.G:h.Y,g="G"in d?d.G:d.Y;return{...l,...t===B.ADDITIVE?{G:Math.min(c+g*m,255)}:{Y:Math.min(c+g*m,255)}}},a)}let s;if(t===B.ADDITIVE)s=i(r);else{const n=i(o);s=((a,h,d)=>{const m=Math.min(a,h,d),l=Math.min(255-a,255-h,255-d),c=a-m,g=h-m,R=d-m,T=Math.min(g,R),A=c+g-T,W=g+T,P=2*(R-T),X=Math.max(A,W,P)/Math.max(c,g,R),Y=isNaN(X)||X===1/0||X<=0?1:X;return{R:A/Y+l,G:W/Y+l,B:P/Y+l}})(n.R,n.Y,n.B),s.A=n.A}return{R:p(s.R),G:p(s.G),B:p(s.B),A:w(s.A,0,1)}},[f.HEX](e,t,r){const o=this.mix(e,t);return delete o.A,r?b.HEX(o):u.HEX(o)},HEXA(e,t,r){const o=this.mix(e,t);return o.A=r?255*M(o.A):M(o.A),r?b.HEX(o):u.HEXA(o)},[f.RGB](e,t,r,o){const i=this.mix(e,t);return delete i.A,r?b.RGB(i,o):u.RGB(i,o.decimals)},RGBA(e,t,r,o){const i=this.mix(e,t);return r?b.RGB(i,o):u.RGBA(i,o.decimals)},[f.HSL](e,t,r,o){const i=this.mix(e,t),s=rt(i.R,i.G,i.B);return delete i.A,delete s.A,r?b.HSL(s,o):u.HSL(i,o.decimals)},HSLA(e,t,r,o){const i=this.mix(e,t),s=rt(i.R,i.G,i.B,i.A);return r?b.HSL(s,o):u.HSLA(i,o.decimals)},[f.CIELab](e,t,r,o){const i=this.mix(e,t),s=ot(i.R,i.G,i.B);return delete i.A,r?b.CIELab(s,o):u.CIELabA(i,o.decimals)},CIELabA(e,t,r,o){const i=this.mix(e,t),s=ot(i.R,i.G,i.B);return H(i,"A")&&(s.A=i.A),r?b.CIELab(s,o):u.CIELabA(i,o.decimals)}},ze=(e,t)=>({R:p(e.R,t),G:p(e.G,t),B:p(e.B,t),...H(e,"A")?{A:p(e.A,t)}:{}}),jt=(e,t)=>({H:p(e.H,t),S:p(e.S,t),L:p(e.L,t),...H(e,"A")?{A:p(e.A,t)}:{}}),qe=(e,t)=>({L:p(e.L,t),a:p(e.a,t),b:p(e.b,t)}),Ze=(e,t)=>({C:p(e.C,t),M:p(e.M,t),Y:p(e.Y,t),K:p(e.K,t)}),k=(e,t,r,o)=>o(Z(e,t),r),E=(e,t,r,o,i)=>(r<1&&(r=5),((n,a,h)=>{const d=h-1,m=(a.R-n.R)/d,l=(a.G-n.G)/d,c=(a.B-n.B)/d,g=M(n.A),R=(M(a.A)-g)/d;return Array(h).fill(null).map((T,A)=>A===0?n:A===d?a:{R:p(n.R+m*A),G:p(n.G+l*A),B:p(n.B+c*A),A:p(g+R*A)})})(Z(e),Z(t),r).map(n=>i(n,o))),Ft=(e,t,r,o)=>({[j.ANALOGOUS]:J.buildHarmony(t,Pe,r,o),[j.COMPLEMENTARY]:J.buildHarmony(t,Ye,r,o),[j.SPLIT_COMPLEMENTARY]:J.buildHarmony(t,_e,r,o),[j.TRIADIC]:J.buildHarmony(t,je,r,o),[j.TETRADIC]:J.buildHarmony(t,Xe,r,o),[j.SQUARE]:J.buildHarmony(t,Ke,r,o)})[e];class N{constructor(t,r={}){this._options=x(r,t),this.rgb=Z(t),this.updateHSL(),this.updateLab(),this.updateCMYK()}updateRGB(){this.rgb={...F(this.hsl.H,this.hsl.S,this.hsl.L),A:this.hsl.A}}updateRGBFromCMYK(){this.rgb={...Qt(this.cmyk.C,this.cmyk.M,this.cmyk.Y,this.cmyk.K),A:this.rgb.A}}updateRGBFromLab(){this.rgb={...Zt(this.lab.L,this.lab.a,this.lab.b),A:this.rgb.A}}updateHSL(){this.hsl=rt(this.rgb.R,this.rgb.G,this.rgb.B,this.rgb.A)}updateLab(){this.lab={...ot(this.rgb.R,this.rgb.G,this.rgb.B),A:this.rgb.A}}updateCMYK(){this.cmyk=ue(this.rgb.R,this.rgb.G,this.rgb.B)}setOptions(t={}){return this._options={...this._options,...t},this}setH(t){return this.hsl.H=gt(t),this.updateRGB(),this.updateLab(),this.updateCMYK(),this}setS(t){return this.hsl.S=w(t,0,100),this.updateRGB(),this.updateLab(),this.updateCMYK(),this}setL(t){return this.hsl.L=w(t,0,100),this.updateRGB(),this.updateLab(),this.updateCMYK(),this}setR(t){this.rgb.R=w(t,0,255),this.updateHSL(),this.updateLab(),this.updateCMYK()}setG(t){return this.rgb.G=w(t,0,255),this.updateHSL(),this.updateLab(),this.updateCMYK(),this}setB(t){return this.rgb.B=w(t,0,255),this.updateHSL(),this.updateLab(),this.updateCMYK(),this}setCIEL(t){return this.lab.L=w(t,0,100),this.updateRGBFromLab(),this.updateHSL(),this.updateCMYK(),this}setCIEa(t){return this.lab.a=w(t,-125,125),this.updateRGBFromLab(),this.updateHSL(),this.updateCMYK(),this}setCIEb(t){return this.lab.b=w(t,-125,125),this.updateRGBFromLab(),this.updateHSL(),this.updateCMYK(),this}setA(t){return this.hsl.A=this.rgb.A=w(t,0,1),this}setC(t){return this.cmyk.C=w(t,0,100),this.updateRGBFromCMYK(),this.updateHSL(),this.updateLab(),this}setM(t){return this.cmyk.M=w(t,0,100),this.updateRGBFromCMYK(),this.updateHSL(),this.updateLab(),this}setY(t){return this.cmyk.Y=w(t,0,100),this.updateRGBFromCMYK(),this.updateHSL(),this.updateLab(),this}setK(t){return this.cmyk.K=w(t,0,100),this.updateRGBFromCMYK(),this.updateHSL(),this.updateLab(),this}get options(){return this._options}get H(){return p(this.hsl.H,this.options.decimals)}get S(){return p(this.hsl.S,this.options.decimals)}get L(){return p(this.hsl.L,this.options.decimals)}get CIEL(){return p(this.lab.L,this.options.decimals)}get CIEa(){return p(this.lab.a,this.options.decimals)}get CIEb(){return p(this.lab.b,this.options.decimals)}get R(){return p(this.rgb.R,this.options.decimals)}get G(){return p(this.rgb.G,this.options.decimals)}get B(){return p(this.rgb.B,this.options.decimals)}get A(){return p(this.hsl.A,this.options.decimals)}get C(){return p(this.cmyk.C,this.options.decimals)}get M(){return p(this.cmyk.M,this.options.decimals)}get Y(){return p(this.cmyk.Y,this.options.decimals)}get K(){return p(this.cmyk.K,this.options.decimals)}get HEXObject(){return u.HEX(this.rgb)}get HEXAObject(){return u.HEXA(this.rgb)}get RGBObject(){return{R:this.R,G:this.G,B:this.B}}get RGBAObject(){return{...this.RGBObject,A:this.A}}get HSLObject(){return{H:this.H,S:this.S,L:this.L}}get HSLAObject(){return{...this.HSLObject,A:this.A}}get CIELabObject(){return{L:this.CIEL,a:this.CIEa,b:this.CIEb}}get CIELabAObject(){return{...this.CIELabObject,A:this.A}}get CMYKObject(){return{C:this.C,M:this.M,Y:this.Y,K:this.K}}get CMYKAObject(){return{...this.CMYKObject,A:this.A}}get HEX(){return b.HEX({R:this.R,G:this.G,B:this.B})}get HEXA(){return b.HEX({R:this.R,G:this.G,B:this.B,A:255*this.A})}get RGB(){return b.RGB({R:this.R,G:this.G,B:this.B},this.options)}get RGBA(){return b.RGB({R:this.R,G:this.G,B:this.B,A:this.A},this.options)}get HSL(){return b.HSL({H:this.H,S:this.S,L:this.L},this.options)}get HSLA(){return b.HSL({H:this.H,S:this.S,L:this.L,A:this.A},this.options)}get CIELab(){return b.CIELab({L:this.CIEL,a:this.CIEa,b:this.CIEb},this.options)}get CIELabA(){return b.CIELab({L:this.CIEL,a:this.CIEa,b:this.CIEb,A:this.A},this.options)}get CMYK(){return b.CMYK({C:this.C,M:this.M,Y:this.Y,K:this.K},this.options)}get CMYKA(){return b.CMYK({C:this.C,M:this.M,Y:this.Y,K:this.K,A:this.A},this.options)}static toHEXObject(t){const r=S(t);return k(t,r,0,u.HEX)}static toHEX(t){return b.HEX(N.toHEXObject(t))}static toHEXAObject(t){const r=S(t);return k(t,r,0,u.HEXA)}static toHEXA(t){return b.HEX(N.toHEXAObject(t))}static toRGBObject(t,r={}){const o=S(t);return k(t,o,r.decimals,u.RGB)}static toRGB(t,r={}){const o=S(t),i=x(r,t),s=k(t,o,r.decimals,u.RGB);return b.RGB(s,i)}static toRGBAObject(t,r={}){const o=S(t);return k(t,o,r.decimals,u.RGBA)}static toRGBA(t,r={}){const o=S(t),i=x(r,t),s=k(t,o,r.decimals,u.RGBA);return b.RGB(s,i)}static toHSLObject(t,r={}){const o=S(t);return k(t,o,r.decimals,u.HSL)}static toHSL(t,r={}){const o=S(t),i=x(r,t),s=k(t,o,r.decimals,u.HSL);return b.HSL(s,i)}static toHSLAObject(t,r={}){const o=S(t);return k(t,o,r.decimals,u.HSLA)}static toHSLA(t,r={}){const o=S(t),i=x(r,t),s=k(t,o,r.decimals,u.HSLA);return b.HSL(s,i)}static toCIELabObject(t,r={}){const o=S(t);return k(t,o,r.decimals,u.CIELab)}static toCIELab(t,r={}){const o=S(t),i=x(r,t),s=k(t,o,r.decimals,u.CIELab);return b.CIELab(s,i)}static toCIELabAObject(t,r={}){const o=S(t);return k(t,o,r.decimals,u.CIELabA)}static toCIELabA(t,r={}){const o=S(t),i=x(r,t),s=k(t,o,r.decimals,u.CIELabA);return b.CIELab(s,i)}static toCMYKObject(t,r={}){const o=S(t);return k(t,o,r.decimals,u.CMYK)}static toCMYK(t,r={}){const o=S(t),i=x(r,t),s=k(t,o,r.decimals,u.CMYK);return b.CMYK(s,i)}static toCMYKAObject(t,r={}){const o=S(t);return k(t,o,r.decimals,u.CMYKA)}static toCMYKA(t,r={}){const o=S(t),i=x(r,t),s=k(t,o,r.decimals,u.CMYKA);return b.CMYK(s,i)}static getBlendHEXObject(t,r,o=5){return E(t,r,o,0,u.HEX)}static getBlendHEX(t,r,o=5){return N.getBlendHEXObject(t,r,o).map(i=>b.HEX(i))}static getBlendHEXAObject(t,r,o=5){return E(t,r,o,0,u.HEXA)}static getBlendHEXA(t,r,o=5){return N.getBlendHEXAObject(t,r,o).map(i=>b.HEX(i))}static getBlendRGBObject(t,r,o,i){return typeof o=="number"?E(t,r,o,i?.decimals,u.RGB):E(t,r,5,o?.decimals,u.RGB)}static getBlendRGB(t,r,o,i){return typeof o=="number"?E(t,r,o,i?.decimals,u.RGB).map(s=>b.RGB(s,x(i||{},t,r))):E(t,r,5,o?.decimals,u.RGB).map(s=>b.RGB(s,x(o||{},t,r)))}static getBlendRGBAObject(t,r,o,i){return typeof o=="number"?E(t,r,o,i?.decimals,u.RGBA):E(t,r,5,o?.decimals,u.RGBA)}static getBlendRGBA(t,r,o,i){return typeof o=="number"?E(t,r,o,i?.decimals,u.RGBA).map(s=>b.RGB(s,x(i||{},t,r))):E(t,r,5,o?.decimals,u.RGBA).map(s=>b.RGB(s,x(o||{},t,r)))}static getBlendHSLObject(t,r,o,i){return E(t,r,typeof o=="number"?o:5,i?.decimals,u.HSL)}static getBlendHSL(t,r,o,i){return typeof o=="number"?E(t,r,o,i?.decimals,u.HSL).map(s=>b.HSL(s,x(i||{},t,r))):E(t,r,5,o?.decimals,u.HSL).map(s=>b.HSL(s,x(o||{},t,r)))}static getBlendHSLAObject(t,r,o,i){return typeof o=="number"?E(t,r,o,i?.decimals,u.HSLA):E(t,r,5,o?.decimals,u.HSLA)}static getBlendHSLA(t,r,o,i){return typeof o=="number"?E(t,r,o,i?.decimals,u.HSLA).map(s=>b.HSL(s,x(i||{},t,r))):E(t,r,5,o?.decimals,u.HSLA).map(s=>b.HSL(s,x(o||{},t,r)))}static getBlendCIELabObject(t,r,o,i){return typeof o=="number"?E(t,r,o,i?.decimals,u.CIELab):E(t,r,5,o?.decimals,u.CIELab)}static getBlendCIELab(t,r,o,i){return typeof o=="number"?E(t,r,o,i?.decimals,u.CIELab).map(s=>b.CIELab(s,x(i||{},t,r))):E(t,r,5,o?.decimals,u.CIELab).map(s=>b.CIELab(s,x(o||{},t,r)))}static getBlendCIELabAObject(t,r,o,i){return typeof o=="number"?E(t,r,o,i?.decimals,u.CIELabA):E(t,r,5,o?.decimals,u.CIELabA)}static getBlendCIELabA(t,r,o,i){return typeof o=="number"?E(t,r,o,i?.decimals,u.CIELabA).map(s=>b.CIELab(s,x(i||{},t,r))):E(t,r,5,o?.decimals,u.CIELabA).map(s=>b.CIELab(s,x(o||{},t,r)))}static getMixHEXObject(t,r=B.ADDITIVE){return C.HEX(t,r,!1)}static getMixHEX(t,r=B.ADDITIVE){return C.HEX(t,r,!0)}static getMixHEXAObject(t,r=B.ADDITIVE){return C.HEXA(t,r,!1)}static getMixHEXA(t,r=B.ADDITIVE){return C.HEXA(t,r,!0)}static getMixRGBObject(t,r,o){return typeof r=="string"?C.RGB(t,r,!1,x(o||{},...t)):C.RGB(t,B.ADDITIVE,!1,x(r||{},...t))}static getMixRGB(t,r,o){return typeof r=="string"?C.RGB(t,r,!0,x(o||{},...t)):C.RGB(t,B.ADDITIVE,!0,x(r||{},...t))}static getMixRGBAObject(t,r,o){return typeof r=="string"?C.RGBA(t,r,!1,x(o||{},...t)):C.RGBA(t,B.ADDITIVE,!1,x(r||{},...t))}static getMixRGBA(t,r,o){return typeof r=="string"?C.RGBA(t,r,!0,x(o||{},...t)):C.RGBA(t,B.ADDITIVE,!0,x(r||{},...t))}static getMixHSLObject(t,r,o){return typeof r=="string"?C.HSL(t,r,!1,x(o||{},...t)):C.HSL(t,B.ADDITIVE,!1,x(r||{},...t))}static getMixHSL(t,r,o){return typeof r=="string"?C.HSL(t,r,!0,x(o||{},...t)):C.HSL(t,B.ADDITIVE,!0,x(r||{},...t))}static getMixHSLAObject(t,r,o){return typeof r=="string"?C.HSLA(t,r,!1,x(o||{},...t)):C.HSLA(t,B.ADDITIVE,!1,x(r||{},...t))}static getMixHSLA(t,r,o){return typeof r=="string"?C.HSLA(t,r,!0,x(o||{},...t)):C.HSLA(t,B.ADDITIVE,!0,x(r||{},...t))}static getMixCIELabObject(t,r,o){return typeof r=="string"?C.CIELab(t,r,!1,x(o||{},...t)):C.CIELab(t,B.ADDITIVE,!1,x(r||{},...t))}static getMixCIELab(t,r,o){return typeof r=="string"?C.CIELab(t,r,!0,x(o||{},...t)):C.CIELab(t,B.ADDITIVE,!0,x(r||{},...t))}static getMixCIELabAObject(t,r,o){return typeof r=="string"?C.CIELabA(t,r,!1,x(o||{},...t)):C.CIELabA(t,B.ADDITIVE,!1,x(r||{},...t))}static getMixCIELabA(t,r,o){return typeof r=="string"?C.CIELabA(t,r,!0,x(o||{},...t)):C.CIELabA(t,B.ADDITIVE,!0,x(r||{},...t))}static getShades(t,r,o){return typeof r=="number"?Lt(t,r,!0,x(o||{},t)):Lt(t,5,!0,x(r||{},t))}static getTints(t,r,o){return typeof r=="number"?Lt(t,r,!1,x(o||{},t)):Lt(t,5,!1,x(r||{},t))}static getHarmony(t,r,o,i){return`${r}`in j?Ft(r,t,St(o)?o:B.ADDITIVE,x(St(o)?i||{}:o||{},t)):St(r)?Ft(j.COMPLEMENTARY,t,r,x(o||{},t)):Ft(j.COMPLEMENTARY,t,B.ADDITIVE,x(r||{},t))}}function G(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Qe(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).toString().replaceAll(",","")}class Je extends y{type;name;constructor(t,r){super("div"),this.staticClass("style-panel"),this.type=r,this.name=t,this.layout(),this.on("input",o=>{this.role_model_list.forEach(([i,s])=>{s.update(this),V.updateStyle(this.name,s,[i])})})}layout(){if(!this.roles.length)return this.clear();const t=this.data.backgroundColor==="??"?{HEX:"??",A:"??"}:new N(this.data.backgroundColor),r=this.data.color==="??"?{HEX:"??",A:"??"}:new N(this.data.color);this.content([$("section").content([$("h3").content("Properties"),$("div").content([new re("display").label("Display").add([["block","inline","flex","none"].map(o=>$("option").content(o).value(o))]),new _("opacity").value(this.data.opacity).unit("px").min(0).max(1).label("Opacity").self(o=>{o.$range.step(.01),o.$value.step(.1)})])]),this.type==="text"?$("section").content([$("h3").content("Font"),$("div").content([new _("font-size").value(this.data.fontSize).unit("px").min(1).label("Size"),new _("font-weight").min(100).max(900).label("Weight").value(this.data.fontWeight).self(o=>o.$range.step(100)),new Rt("font-color").value(this.data.color).label("Color"),new _("font-color-transparent").value(r.A.toString()).unit("px").min(0).max(1).label("Transparent").self(o=>{o.$range.step(.01),o.$value.step(.1)})])]):void 0,this.type==="image"?$("section").content([$("h3").content("Dimension"),$("div").content([new _("height").value(this.data.height).unit("px").min(1).label("Height"),new _("width").value(this.data.width).unit("px").min(1).label("Width")])]):void 0,$("section").content([$("h3").content("Background"),$("div").content([new Rt("background-color").value(t.HEX).label("Color"),new _("background-color-transparent").value(t.A.toString()).unit("px").min(0).max(1).label("Transparent").self(o=>{o.$range.step(.01),o.$value.step(.1)})])]),$("section").content([$("h3").content("Padding"),$("div").content([["left","top","right","bottom"].map(o=>new _(`padding-${o}`).value(this.data[`padding${G(o)}`]).unit("px").label(G(o)))])]),$("section").content([$("h3").content("Margin"),$("div").content([["left","top","right","bottom"].map(o=>new _(`margin-${o}`).value(this.data[`margin${G(o)}`]).unit("px").label(G(o)))])]),$("section").content([$("header").content([$("h3").content("Border"),$("div").content([$("label").content("Link").for("border-link"),$("input").id("border-link").type("checkbox").checked(!0)])]),$("div").content([["left","top","right","bottom"].map(o=>$("section").content([$("h4").content(G(o)),$("div").content([new _(`border-${o}-width`).value(this.data[`border${G(o)}Width`]).unit("px").label("Width"),new re(`border-${o}-style`).label("Style").add([["solid","dashed","doubled","dotted","groove","outset","inset","ridge","hidden"].map(i=>$("option").value(i).content(i).id(i))]).value(this.data[`border${G(o)}Style`]),new Rt(`border-${o}-color`).value(this.data[`border${G(o)}Color`]).label("Color")]).on("input",(i,s)=>{$(":#border-link")?.checked()&&["left","top","right","bottom"].forEach(n=>{if(n===o)return;const a=$(i.target)?.id();a?.includes("width")&&$(`:div.border-${n}-width`)?.value(s.$(`#border-${o}-width`)?.value()),a?.includes("style")&&$(`:div.border-${n}-style`)?.value(s.$(`#border-${o}-style`)?.value()),a?.includes("color")&&$(`:div.border-${n}-color`)?.value(s.$(`#border-${o}-color`)?.value())})})]))])]),$("section").content([$("h3").content("Border Radius"),["top-left","top-right","bottom-left","bottom-right"].map(o=>new _(`border-${o}-radius`).value(this.data[`border${Qe(o)}Radius`]).unit("px").label(`${o.split("-").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).toString().replace(","," ")}`))])])}get models(){return this.roles.map(t=>Q.get(t).get(this.name))}get role_model_list(){return this.roles.map(t=>[t,Q.get(t).get(this.name)])}get data(){return this.roles.length>1?function(r,o){let i={};for(const[s,n]of Object.entries(r)){i[s]=n;for(const a of o)if(a[s]!==n){i[s]="??";break}}return i}(this.models[0].data,this.models.map(r=>r.data)):this.models[0].data}get roles(){return $("::.role-checkbox").map(t=>{if(t.checked())return t.value()}).detype()}}class tr{data;constructor(t){this.data=t}update(t){const r=(n,a,h=!1)=>n==="??"||n===void 0?a:h?n+"px":n,o=n=>({[`border${G(n)}Style`]:r(t.$(`#border-${n}-style`)?.value(),this.data[`boder${G(n)}Style`]),[`border${G(n)}Color`]:r(t.$(`#border-${n}-color`)?.value(),this.data[`boder${G(n)}Color`]),[`border${G(n)}Width`]:r(t.$(`#border-${n}-width`)?.value(),this.data[`boder${G(n)}Color`],!0)}),i=n=>({[`${n}Top`]:r(t.$(`#${n}-top`)?.value(),this.data[`${n}Top`],!0),[`${n}Bottom`]:r(t.$(`#${n}-bottom`)?.value(),this.data[`${n}Bottom`],!0),[`${n}Left`]:r(t.$(`#${n}-left`)?.value(),this.data[`${n}Left`],!0),[`${n}Right`]:r(t.$(`#${n}-right`)?.value(),this.data[`${n}Right`],!0)}),s={fontSize:r(t.$("#font-size")?.value(),this.data.fontSize,!0),fontWeight:r(t.$("#font-weight")?.value(),this.data.fontWeight),color:new N({...new N(r(t.$("#font-color")?.value(),this.data.color)).RGBObject,A:r(t.$("#font-color-transparent")?.value(),new N(this.data.color).A)}).HEXA,backgroundColor:new N({...new N(r(t.$("#background-color")?.value(),this.data.backgroundColor)).RGBObject,A:r(t.$("#background-color-transparent")?.value(),new N(this.data.backgroundColor).A)}).HEXA,...o("top"),...o("bottom"),...o("left"),...o("right"),borderTopLeftRadius:r(t.$("#border-top-left-radius")?.value(),this.data.borderTopLeftRadius,!0),borderTopRightRadius:r(t.$("#border-top-right-radius")?.value(),this.data.borderTopRightRadius,!0),borderBottomLeftRadius:r(t.$("#border-bottom-left-radius")?.value(),this.data.borderBottomLeftRadius,!0),borderBottomRightRadius:r(t.$("#border-bottom-right-radius")?.value(),this.data.borderBottomRightRadius,!0),...i("margin"),...i("padding"),opacity:r(t.$("#opacity")?.value(),this.data.opacity),display:r(t.$("#display")?.value(),this.data.display),height:r(t.$("#height")?.value(),this.data.height,!0),width:r(t.$("#width")?.value(),this.data.width,!0)};return this.data=s,this}cssObject(){const t={},r=(o,i)=>{for(let[s,n]of Object.entries(i)){if(s=o?o+s.charAt(0).toUpperCase()+s.slice(1):s,!(n instanceof Object)){typeof n=="number"&&s!=="opacity"&&(n=`${n}px`),Object.assign(t,{[`${s}`]:n});continue}r(s,n)}};return r(null,this.data),t}css(){}}const er={Normal:{Message:{fontSize:"16px",fontWeight:"400",color:"#F0F0F0FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"4px",marginBottom:"0px",marginLeft:"2px",marginRight:"2px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block"},Name:{fontSize:"16px",fontWeight:"400",color:"#FFFFFFFF",backgroundColor:"#00000099",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"10px",borderTopRightRadius:"10px",borderBottomLeftRadius:"10px",borderBottomRightRadius:"10px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"4px",paddingBottom:"4px",paddingLeft:"8px",paddingRight:"8px",opacity:"1",display:"block"},Badge:{fontSize:"16px",color:"#000000",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block"},Avatar:{fontSize:"16px",color:"#000000FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"10px",borderTopRightRadius:"10px",borderBottomLeftRadius:"10px",borderBottomRightRadius:"10px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block",height:"60px",width:"60px"},"Author Area":{fontSize:"16px",color:"#000000FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"flex"},"Content Area":{fontSize:"16px",color:"#000000FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"0px",marginBottom:"0px",marginLeft:"10px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block"},"Outer Area":{fontSize:"16px",color:"#000000FF",backgroundColor:"#3D3D3D80",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"10px",borderTopRightRadius:"10px",borderBottomLeftRadius:"10px",borderBottomRightRadius:"10px",marginTop:"0px",marginBottom:"10px",marginLeft:"0px",marginRight:"0px",paddingTop:"8px",paddingBottom:"8px",paddingLeft:"8px",paddingRight:"8px",opacity:"1",display:"flex"}},Member:{Message:{fontSize:"16px",fontWeight:"400",color:"#F0F0F0FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"4px",marginBottom:"0px",marginLeft:"2px",marginRight:"2px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block"},Name:{fontSize:"16px",fontWeight:"400",color:"#0AFFFBFF",backgroundColor:"#527F8099",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"10px",borderTopRightRadius:"10px",borderBottomLeftRadius:"10px",borderBottomRightRadius:"10px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"4px",paddingBottom:"4px",paddingLeft:"8px",paddingRight:"8px",opacity:"1",display:"block"},Badge:{fontSize:"16px",color:"#000000",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block"},Avatar:{fontSize:"16px",color:"#000000FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"10px",borderTopRightRadius:"10px",borderBottomLeftRadius:"10px",borderBottomRightRadius:"10px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block",height:"60px",width:"60px"},"Author Area":{fontSize:"16px",color:"#000000FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"flex"},"Content Area":{fontSize:"16px",color:"#000000FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"0px",marginBottom:"0px",marginLeft:"10px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block"},"Outer Area":{fontSize:"16px",color:"#000000FF",backgroundColor:"#3D3D3D80",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"10px",borderTopRightRadius:"10px",borderBottomLeftRadius:"10px",borderBottomRightRadius:"10px",marginTop:"0px",marginBottom:"10px",marginLeft:"0px",marginRight:"0px",paddingTop:"8px",paddingBottom:"8px",paddingLeft:"8px",paddingRight:"8px",opacity:"1",display:"flex"}},Moderator:{Message:{fontSize:"16px",fontWeight:"400",color:"#F0F0F0FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"4px",marginBottom:"0px",marginLeft:"2px",marginRight:"2px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block"},Name:{fontSize:"16px",fontWeight:"400",color:"#B8CFFFFF",backgroundColor:"#2E58FF99",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"10px",borderTopRightRadius:"10px",borderBottomLeftRadius:"10px",borderBottomRightRadius:"10px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"4px",paddingBottom:"4px",paddingLeft:"8px",paddingRight:"8px",opacity:"1",display:"block"},Badge:{fontSize:"16px",color:"#000000",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block"},Avatar:{fontSize:"16px",color:"#000000FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"10px",borderTopRightRadius:"10px",borderBottomLeftRadius:"10px",borderBottomRightRadius:"10px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block",height:"60px",width:"60px"},"Author Area":{fontSize:"16px",color:"#000000FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"flex"},"Content Area":{fontSize:"16px",color:"#000000FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"0px",marginBottom:"0px",marginLeft:"10px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block"},"Outer Area":{fontSize:"16px",color:"#000000FF",backgroundColor:"#3D3D3D80",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"10px",borderTopRightRadius:"10px",borderBottomLeftRadius:"10px",borderBottomRightRadius:"10px",marginTop:"0px",marginBottom:"10px",marginLeft:"0px",marginRight:"0px",paddingTop:"8px",paddingBottom:"8px",paddingLeft:"8px",paddingRight:"8px",opacity:"1",display:"flex"}},Owner:{Message:{fontSize:"16px",fontWeight:"400",color:"#F0F0F0FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"4px",marginBottom:"0px",marginLeft:"2px",marginRight:"2px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block"},Name:{fontSize:"16px",fontWeight:"400",color:"#FFEB6BFF",backgroundColor:"#00000099",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"10px",borderTopRightRadius:"10px",borderBottomLeftRadius:"10px",borderBottomRightRadius:"10px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"4px",paddingBottom:"4px",paddingLeft:"8px",paddingRight:"8px",opacity:"1",display:"block"},Badge:{fontSize:"16px",color:"#000000",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block"},Avatar:{fontSize:"16px",color:"#000000FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"10px",borderTopRightRadius:"10px",borderBottomLeftRadius:"10px",borderBottomRightRadius:"10px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block",height:"60px",width:"60px"},"Author Area":{fontSize:"16px",color:"#000000FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"flex"},"Content Area":{fontSize:"16px",color:"#000000FF",backgroundColor:"#00000000",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginTop:"0px",marginBottom:"0px",marginLeft:"10px",marginRight:"0px",paddingTop:"0px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",opacity:"1",display:"block"},"Outer Area":{fontSize:"16px",color:"#000000FF",backgroundColor:"#3D3D3D80",borderTopStyle:"solid",borderTopColor:"#000000",borderTopWidth:"0px",borderBottomStyle:"solid",borderBottomColor:"#000000",borderBottomWidth:"0px",borderLeftStyle:"solid",borderLeftColor:"#000000",borderLeftWidth:"0px",borderRightStyle:"solid",borderRightColor:"#000000",borderRightWidth:"0px",borderTopLeftRadius:"10px",borderTopRightRadius:"10px",borderBottomLeftRadius:"10px",borderBottomRightRadius:"10px",marginTop:"0px",marginBottom:"10px",marginLeft:"0px",marginRight:"0px",paddingTop:"8px",paddingBottom:"8px",paddingLeft:"8px",paddingRight:"8px",opacity:"1",display:"flex"}}};class rr extends y{data;$content=$("div").id("content");$message=$("span").id("message");$name=$("span").id("author-name");$author_area=$("yt-live-chat-author-chip");$timestamp=$("span").id("timestamp");$avatar=$("yt-img-shadow").id("author-photo");$overlay=$("div").class("overlay");$hint=$("div").class("hint").css({display:"none"});constructor(t){super("yt-live-chat-text-message-renderer"),this.data=t,this.build(),this.init()}init(){Q.get(this.data.role)?.forEach((t,r)=>this.updateStyle(r,t))}build(){this.content([this.$overlay.content([`Role: ${this.data.role}`]),this.$hint,this.$avatar.content([$("img").src("/avatar.png")]),this.$content.content([this.$timestamp,this.$author_area.content([this.$name.content(this.data.name),$("span").id("chat-badges").content([$("yt-live-chat-author-badge-renderer").content([$("div").id("image").content([$("img")])]),this.data.role==="Moderator"?$("yt-live-chat-author-badge-renderer").attribute("type","moderator").content([$("div").id("image").self(t=>{t.dom.innerHTML=''})]):void 0])]),this.$message.content(this.data.message),$("span").id("deleted-state")])])}updateStyle(t,r){switch(t){case"Message":this.$message.css(r.data);break;case"Name":this.$name.css(r.data);break;case"Avatar":this.$avatar.css(r.data);break;case"Content Area":this.$content.css(r.data);break;case"Author Area":this.$author_area.css(r.data);break;case"Outer Area":this.css(r.data);break}}hint(t){switch(t){case"Message":this.hintPosition(this.$message);break;case"Name":this.hintPosition(this.$name);break;case"Avatar":this.hintPosition(this.$avatar);break;case"Content Area":this.hintPosition(this.$content);break;case"Author Area":this.hintPosition(this.$author_area);break;case"Outer Area":this.hintPosition(this);break}}hintPosition(t){const r=t.dom.getBoundingClientRect(),o=this.dom.getBoundingClientRect();this.$hint.css({position:"absolute",top:`${r.top-o.top}px`,left:`${r.left-o.left}px`,height:`${r.height}px`,width:`${r.width}px`,backgroundColor:"#ff000030",display:"block"})}}class or extends y{messageList=new Set;constructor(){super("ytchat")}send(t){const r=new rr(t);return this.messageList.add(r),this.insert(r),this}updateStyle(t,r,o){this.messageList.forEach(i=>{o.includes(i.data.role)&&i.updateStyle(t,r)})}showHint(t){this.messageList.forEach(r=>{this.roles.includes(r.data.role)&&r.hint(t)})}hideHint(){this.messageList.forEach(t=>{t.$hint.css({display:"none"})})}get roles(){return $("::.role-checkbox").map(t=>{if(t.checked())return t.value()}).detype()}}const ir=`yt-live-chat-renderer yt-live-chat-header-renderer, +yt-live-chat-renderer yt-live-chat-ticker-renderer, +yt-live-chat-renderer yt-live-chat-message-input-renderer, +yt-live-chat-renderer yt-reaction-control-panel-overlay-view-model, +yt-live-chat-viewer-engagement-message-renderer, +yt-live-chat-banner-manager, +yt-live-chat-docked-message { + display: none !important; +} + +yt-live-chat-text-message-renderer { + position: relative; + overflow: hidden; +} +yt-live-chat-text-message-renderer #author-photo { + overflow: hidden; + flex-shrink: 0; +} +yt-live-chat-text-message-renderer #author-photo img { + height: 100%; + width: 100%; +} +yt-live-chat-text-message-renderer #content { + width: 100%; +} +yt-live-chat-text-message-renderer #menu { + display: none; +} +yt-live-chat-text-message-renderer #chat-badges { + display: flex !important; + align-items: center !important; + gap: 0.2rem !important; +} +yt-live-chat-text-message-renderer yt-live-chat-author-chip { + align-items: unset !important; +} +yt-live-chat-text-message-renderer yt-live-chat-author-badge-renderer[type="moderator"] { + display: block; + height: 16px; + width: 16px; + fill: #5e84f1; +} + +`,Q=new Map,Xt=["Normal","Member","Moderator","Owner"],Kt=["Message","Name","Badge","Avatar","Author Area","Content Area","Outer Area"],sr=["Message","Name","Timestamp"],nr=["Badge","Avatar"],Jt=new Map,dt=L("view"),V=new or().css({backgroundColor:"#131313"}).send({name:"Normal User",message:"Hover mouse on the message will show the author role info.",role:"Normal"}).send({name:"Member User",message:"You can use Shift + Left Click on Role list to select multiple role!",role:"Member"}).send({name:"Moderator User",message:"yoyo",role:"Moderator"}).send({name:"Owner User",message:"Using the input panel to send message for testing.",role:"Owner"});ar();function ar(){Q.clear();for(const e of Xt){const t=new Map;Q.set(e,t);for(const r of Kt){const o=new tr(er[e][r]);t.set(r,o),V.updateStyle(r,o,[e])}}for(const e of Kt)Jt.set(e,new Je(e,sr.includes(e)?"text":nr.includes(e)?"image":"element"))}function dr(){const e={};for(const[t,r]of Q.entries()){const o={};for(const[i,s]of r.entries())o[i]=s.data;e[t]=o}return console.debug(e),e}L("app").content([L("h1").content(["YouTube Chat Designer v1.0",L("span").content("DEFAULTKAVY")]),L("div").class("content").content([L("div").class("console").content([L("div").class("menu").content([L("div").class("action-row").content([L("div").class("role-list").content([L("span").content("Role"),L("div").content([Xt.map(e=>[L("div").class("role").content(t=>[L("input").class("role-checkbox").type("checkbox").value(e).id(e.toLowerCase()).on("input",Vt),L("label").content(e).for(e.toLowerCase()).on("click",r=>{const o=L("::.role-checkbox");r.shiftKey||o.forEach(i=>{i.id()!==e.toLowerCase()&&i.checked(!1)})})])])])]),L("div").class("button-list").content([L("button").content("Select All").on("click",(e,t)=>{const r=L("::.role-checkbox"),o=!r.find(i=>i.checked()===!1);r.slice(o?1:0).forEach(i=>i.checked(!o)),Vt()}),L("button").content("Export JSON").on("click",()=>dr()),L("button").content("Export CSS").on("click",()=>ce())])]),L("div").class("element-list").content(e=>[Kt.map(t=>(dt.set(t,Jt.get(t)),L("button").staticClass("element-button").content(t).on("click",(r,o)=>dt.switch(t)).self(r=>{dt.event.on("switch",o=>{o!==t?r.removeClass("active"):r.addClass("active")})}).on("mouseenter",r=>{V.showHint(t)})))]).on("mouseleave",e=>{V.hideHint()})]),dt]),L("div").class("preview").content([L("header").content([L("h2").content("YouTube Chat Preview"),new Rt("ytchat-background-color").label("Background Color").value("#131313").on("input",(e,t)=>{V.css({backgroundColor:t.$color.value()})})]),V,L("div").class("input-panel").content([L("div").content([L("select").id("role-select").add([Xt.map(e=>L("option").content(e).value(e))]),L("input").id("username").placeholder("User Name")]),L("div").content([L("textarea").id("message-input").attribute("placeholder","Type here...").on("keydown",e=>{e.key==="Enter"&&(e.preventDefault(),ie())}),L("button").content("Send").on("click",e=>{ie()})])])])])]).self(e=>document.body.append(e.dom));hr();ce();function hr(){dt.switch("Message"),L(":#normal")?.checked(!0),Vt()}function Vt(){Jt.forEach(e=>e.layout())}function ie(){const e=L(":#message-input").value().trim();e!==""&&(V.send({name:L(":#username").value(),message:e,role:L(":#role-select").value()}),V.dom.scrollTop=V.dom.scrollHeight)}function ce(){let e=ir;for(const[r,o]of Q)for(const[i,s]of o){let n=r==="Normal"?"yt-live-chat-text-message-renderer":`yt-live-chat-text-message-renderer[author-type="${r.toLowerCase()}"]`;switch(i){case"Message":n+=" #message";break;case"Name":n+=" #author-name ";break;case"Badge":n+=" #chat-bagdes";break;case"Avatar":n+=" #author-photo";break;case"Author Area":n+=" yt-live-chat-author-clip";break;case"Content Area":n+=" #content";break}let a="";for(const[h,d]of Object.entries(s.data))a+=` ${t(h)}: ${d} !important; +`;e+=`${n} { +${a} +} + +`}console.debug(e);function t(r){return r.replaceAll(/[A-Z]/g,o=>`-${o.toLowerCase()}`)}} diff --git a/dist/assets/index-mL8GJvpZ.css b/dist/assets/index-mL8GJvpZ.css new file mode 100644 index 0000000..da6d97a --- /dev/null +++ b/dist/assets/index-mL8GJvpZ.css @@ -0,0 +1 @@ +.input-component{flex:1;display:flex;align-items:center;justify-content:space-between;padding:1rem;background-color:#ffffff15;border-radius:5px}.input-component input.value{font-family:Noto Sans Mono}.input-component .unit{display:none}.input-component select{height:2rem;width:100%;max-width:100px;border:none;padding:.4rem .6rem;background-color:#ffffff20;border-radius:5px;color:#fff}.input-component select option{background-color:#ffffff20;color:#000}.input-component.range>div{display:flex;gap:.2rem;align-items:center;justify-content:end}.input-component.range>div input.value{background-color:transparent;color:#fff;border:none;text-align:right;padding-top:.2rem;width:2rem}.input-component.range>div input.range{appearance:none;height:5px;background-color:#ffffff50;border-radius:10px;outline:none}.input-component.range>div input.range::-webkit-slider-thumb,.input-component.range>div input.range::-moz-range-thumb{background-color:#000}.input-component.color>div{display:flex;gap:.2rem;justify-content:end}.input-component.color input.value{background-color:transparent;color:#fff;border:none;text-align:right;padding-top:.2rem;width:4rem}.input-component.color input.color{padding:0;appearance:none;border:none;background-color:#0000;width:30px}:root{--background-color: #131313;--font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif}body{display:flex;justify-content:center;font-family:var(--font-family);overflow-y:scroll;background-color:var(--background-color);color:#fff;font-size:14px}html ::-webkit-scrollbar{background-color:var(--background-color);width:4px}html ::-webkit-scrollbar-thumb{background-color:#ffffff20}html ::-webkit-scrollbar-button{height:0;width:0}button{padding:10px;background-color:#0000;border:1px solid rgba(255,255,255,.1254901961);border-radius:10px;color:#fff;height:100%;cursor:pointer}button:hover{background-color:#ffffff10}app{max-width:1200px;width:100%}app h1 span{font-size:14px;color:#ffffff90;font-weight:100;letter-spacing:.1rem;margin-left:10px}app .content{display:flex;gap:1rem}app .content .console{width:100%;max-width:60%}app .content .console label,app .content .console button{user-select:none}app .content .console .menu{display:flex;flex-direction:column;gap:1rem;position:sticky;top:0;background-color:#13131390;backdrop-filter:blur(10px);padding-block:1rem}app .content .console .menu .action-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}app .content .console .menu .action-row .role-list{display:flex;border:1px solid rgba(255,255,255,.1254901961);border-radius:10px;width:fit-content;overflow:hidden}app .content .console .menu .action-row .role-list span{padding:10px;color:#fffa;font-weight:700}app .content .console .menu .action-row .role-list>div{display:flex}app .content .console .menu .action-row .role-list>div .role{cursor:pointer;display:flex;align-items:center}app .content .console .menu .action-row .role-list>div .role input{display:none}app .content .console .menu .action-row .role-list>div .role label{cursor:pointer;padding:10px}app .content .console .menu .action-row .role-list>div .role:has(input:checked){background-color:#ffffff20}app .content .console .menu .action-row .role-list>div .role:hover{background-color:#ffffff10}app .content .console .menu .action-row .button-list{display:flex;height:100%;gap:.6rem}app .content .console .menu .element-list{display:flex;gap:.1rem}app .content .console .menu .element-list button{flex:1;background-color:transparent;white-space:nowrap;text-overflow:ellipsis;border:none;font-size:16px;padding-block:.6rem .4rem;padding-inline:1rem;cursor:pointer;color:#fff6;border-radius:5px}app .content .console .menu .element-list button.active{background-color:#ffffff20;color:#fff}app .content .console .menu .element-list button:hover{background-color:#ffffff10}app .content .console .style-panel{display:flex;flex-direction:column;gap:.6rem;padding-block:1rem}app .content .console .style-panel section{display:flex;flex-direction:column;gap:.3rem}app .content .console .style-panel section h3{font-size:14px;margin-block:.5em;font-weight:200;letter-spacing:.2rem;text-transform:uppercase}app .content .console .style-panel section header{display:flex;justify-content:space-between;align-items:center}app .content .console .style-panel section>div{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}app .content .console .style-panel section section{display:flex;flex-direction:column;gap:.4rem;border:2px solid rgba(255,255,255,.0823529412);border-radius:5px;padding:1rem}app .content .console .style-panel section section h4{margin:0;font-size:14px;font-weight:200}app .content .console .style-panel section section>div{display:flex;flex-direction:column;background-color:#ffffff15;border-radius:5px}app .content .console .style-panel section section>div .input-component{background-color:#0000}app .content .preview{border:1px solid rgba(255,255,255,.1254901961);border-radius:10px;padding:1rem;width:400px;height:80%;position:fixed;left:calc(50vw + 150px);display:flex;flex-direction:column}app .content .preview header{margin-block:.6rem;display:flex;flex-direction:column;gap:.6rem}app .content .preview header h2{margin-block:0}app .content .preview ytchat{flex:5;overflow-y:scroll;padding-right:2px}app .content .preview .input-panel{display:flex;flex-direction:column;gap:.4rem;padding-top:1rem}app .content .preview .input-panel div{display:flex;gap:.4rem;align-items:center}app .content .preview .input-panel select{height:2rem;width:100%;max-width:100px;border:none;padding:.4rem .6rem;background-color:#ffffff20;border-radius:5px;color:#fff}app .content .preview .input-panel select option{background-color:#ffffff20;color:#000}app .content .preview .input-panel textarea,app .content .preview .input-panel input{background-color:#ffffff20;border:none;padding:10px;height:1rem;color:#fff;border-radius:10px;resize:none;flex:5;font-family:var(--font-family);overflow:hidden}yt-live-chat-renderer yt-live-chat-header-renderer,yt-live-chat-renderer yt-live-chat-ticker-renderer,yt-live-chat-renderer yt-live-chat-message-input-renderer,yt-live-chat-renderer yt-reaction-control-panel-overlay-view-model{display:none!important}yt-live-chat-text-message-renderer{position:relative;overflow:hidden}yt-live-chat-text-message-renderer:hover .overlay{display:flex}yt-live-chat-text-message-renderer .overlay{position:absolute;height:100%;width:100%;top:0;left:0;background:linear-gradient(270deg,#000c,#0003);user-select:none;pointer-events:none;display:none;justify-content:end;align-items:center;color:#fff;padding-right:10px;box-sizing:border-box}yt-live-chat-text-message-renderer #author-photo{overflow:hidden;flex-shrink:0}yt-live-chat-text-message-renderer #author-photo img{height:100%;width:100%}yt-live-chat-text-message-renderer #content{width:100%}yt-live-chat-text-message-renderer #content yt-live-chat-author-chip{align-items:unset!important}yt-live-chat-text-message-renderer #content yt-live-chat-author-chip #chat-badges{display:flex;align-items:center;gap:.2rem}yt-live-chat-text-message-renderer #content yt-live-chat-author-chip #chat-badges yt-live-chat-author-badge-renderer[type=moderator]{display:block;height:16px;width:16px;fill:#5e84f1}yt-live-chat-text-message-renderer #content yt-live-chat-author-chip #chat-badges yt-live-chat-author-badge-renderer[type=moderator] svg{height:100%;width:100%}yt-live-chat-text-message-renderer #menu{display:none} diff --git a/dist/avatar.png b/dist/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..e0145e81f075f470c3f85764dad9f122c0a5ceea GIT binary patch literal 128670 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%0DU&h97$J1wY=OlZ7Mj-rutQJ4b*ip9d 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

;) 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 + + + + + YouTube Chat Designer + + + + +

+ + diff --git a/index.html b/index.html new file mode 100644 index 0000000..6e49b6f --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + YouTube Chat Designer + + +
+ + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..fb9ae5d --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "ytchat", + "module": "index.ts", + "type": "module", + "devDependencies": { + "@types/bun": "latest", + "sass": "^1.72.0" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "dependencies": { + "colortranslator": "^4.1.0", + "fluentx": "../fluentx", + "vite": "^5.2.6" + } +} \ No newline at end of file diff --git a/public/avatar.png b/public/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..e0145e81f075f470c3f85764dad9f122c0a5ceea GIT binary patch literal 128670 zcmV)bK&iipP)00C170ssI2(2~*t001BWNkl@ zuTtnYHdD|P2n4&`&eqn}mCM&Y{P6Pf^21JN5D3NMiA*RIjsyvzYG>!}{mtcve^_2w z`NhwFdi>b2csyp1bHLp9{ve3p>-DueQFJt> z5Dka96HmmGsbn-734krX!#T&^DE9-)8a@2NzhoVc$4{L)_5SXnrh>cGvV zrKP)f?*jO6IQ)h4JBoO43;cE9eQ;Svcb{wl(4xO~yL34>mv z(b(MBxPAN9+S;Sd&Fy-DwT(~Z>=_(uQyut*Ixa0E|=$#3DkaIU9FTKtUOp= zUI8sj50)OTt~Z;dPSXW^-L3v~<#z<{|83t}P#6w(N~L$-edof3zie*Shr>*vI5ROd z6Aj1U=dD&{IPk+@k)H=b4P%~2I0~FYu-=Eu%fJ5BAAQ5%Yp=eV$>or{OQoHa)rXfp z`smiJJJnjF-D>;%!9;92kx%Bbg=8Wf4n>2Zs6QAU`hvi4;2ZXO{cfk%X*c@AdT$`< zebDdu_}}d;-QT)@Z#^0fXXsR>CQm)XXkfljWPqHG#lisw+tM9=CWT5;=G7 z+=UAl9zJ{s(`FE{y}bB{iv&ZNY%bUz!0uLF zfBnsJxivF8wYIi;`}Y0ywT+!})gK6?l7)P}kW6M%$;nV4L9Y-9Ac4~_1p7mvM0XJY z-@drIn8Bbo7alxHpLr(dj=zp%4swb#)a64wL`VnI0t=wLtKn{^_4a z=SRQ)F)bi22isg;UVHP+x8HyNQnNY8Wag%4&gKd;kw_HD7kyZ*T1LekMy&>?72nq1 z5M`IBJ?Qg?z-p)4+TK}PUVU)&+9y{(xv{<73I=n9{PD?&lT*{r6bi?asi{~j6N$!y z!6@VHVIYWd9z46w!m>q!hHxO=UNFEIJRXT87?KBq5k>@IoyYzD&|uJMcbnB(Wov75 zX&K3RX=CG2z0qJ$t{Mh|Uk!w$B5k!=Wv~tF<`R%oy<{@UCA@ucaS`F=Kjy0(%2JNt z{lDe24p&zn{qDDay7KYuPA51yacpAZcr0G@2O}`*p|4x3Z*P@WJMB7ZbD$GIMhA-w zdySI~hA`J!wYmj&?evI=-)2&Si|Z7vb!+LSRLHPBH>g#l8S_3`^fAP<~!Yf8AbQ%>iv65_wO&a zTOH=qVzEdFLBp!2Y#;mE-@<$Q0(unq|Fvt^c6N4LJm$$5`6m(yM05o8d>+k$B$uP` z65 zVXxgS0ksfXF~AlG1%gRfZ>w3V)Yh8K5{jpEdMcTmC>Cb3xv5Af9`HpNmeUiApo=gs zs5uk^KX@Y(-bexPYc33iJP$BbASRk~K@@(?WOxi!TC9(_F8w-lXZcpV-RUwsuQc1G zPP_W3S=rudEI(MEoh!Wft>?e>;)}(JA~MAYjqZJEtG?cQPf#891ax>OPo6}V*6a0n z1OrDzN5=+Nzj^Z}2nXtWq92`pi558G-e01z{ykA0%X0GPhaX)2)0^-4{pqQxGr8;n zOma8`kbn(Hz$Ck+(!>6sHakC2$S30QKq48AMSaaqWoKt|Yx_~Hx&s4GCNlZlOrdbB zIB_bSnu&xmet+0_HQ*sDL6{7!TxIKm2Q9m=M|xua9bYFULvgWok~0ACOWQ7eIb#9% zIYNFyNN3nBWqzdJ4|UqTot@I%d-vDY)_c7{Dw&MNqCv!cVOlj%C-Rwrf?(Y@Zrtc} zIxZp%9HAXla|d|45x8o56ux8&9C7b2*%|w(|M(}bB@+>}*nn-jRQ~XzD;F<*Jm`1gu|g&@4ZP#YWGs=5 zMIEpawn@*p8jU#PckpWH8dsQS0| zI1&kVhk;hFi#g07G7M#6(O#$1YPM^g_D-WwzjX2DojWVHU%369?|u9D@kQphMr@q? zJ}V#^V5v4WHH9?p;=#aCp#$%Yjg5~#{&-?yg3j!1(5UkC+rHZI_$!1mlN{bn4+}j-5!H< z9+8iR`ATmO?RqG?Ra60*Er+ioDFl3IxZ}|%>^cQ+r;EaJ20h=s2lx8jem0YhL>NK-ulQFfra{06XnCS)T^*Z`< zz&wtIh|W1jFpmlyao~w+kK-Pl9NYp&@IJU*zLvYYL_HiLZ(qE4`HkPdH5^7KCl_PU zv=m^%V8GDH31y-a?{93auC3qM+FHB6bpOuXyV$5~Z8pNeV%~tA%@mmEf|IH{5QZI; zrSt}W%EBhnJb>?VY!C3HKtyoq^w5~MU}`gC0J?`6Tf5Qjw6JaAIe6wKQ*q2;3EyfL zZb-|=h+NV>J%Ma)Fma7CV;_%UJd`1|E!dJ8;lMIyG0!pDg6(lBq1qK!(Dn zfkm8J^1K00Ie4PBFb{eJ8ar}=o}A|>y7Z^01XaLA(Fu1|Bn88pgTa2U*J{hQhKOk6 zW!X+qmM6taR41k;%mTb1+5yd``$!s%h10P}isvZI9xN?wZI?Kgsa+UrIl2n3@KGgH zu*&xNSWLpg62x+M$PR(Z0)0s3YOtM&!2%;V) z#YKfr=-q%PLp00LGUW_Fk0Og1@>CEXm8G&r5$x0*uzf)Q52GNDqBHMyScTH)^|};e z19E^UEb1tTYh4Nnu)xuTy)S5)tCxt!k_ZI#S{>{6d-s;R-9D>d;;{s|s8kE%Qn?}x zZN&sQ1}!dvd#b);IAnPYaWGS5N_?E^=;U)-;0WHI+eBY3f+JjrlEEY^I^KBWjn{wo zTd=*owWFmSEEvhMETk}!b%`FpW<{J&P(+4r?d)v#x{4WzWE1gRB$|#VvS8aE2nn5v z2SUWLJ%+po!}i?bfWPsDos2H|b-loteU9Vt$e~v!V#R?lC}lw^@a}Y)@N=+fARi^6 z65{!q>jvQ9&~mWBx}WKC#>@!>72;QIBJYVu5V1+axQ?x{Hz4g{_UjOaoD_2UT z>R_mq)INVK5K5#{#Y7?tkCdz{G?_}x3ZhfMXG6KV4K-tk77E70Vf0nuL?Xq!6sWWW z%v^bc=MlR$Sh{{?d^CWLt1nJ&$Tb<;JGBaoZhHwmfJ?5BHjQ7Vyjf=kCl8~~Zneb8 zCA{kq*{c^pc>uy0i<6h`DW!h6jd5!K~x-boXq(vV!%;*0e&3k`-8-2kTP$A<+R(F1U_3H26`2D?m zOFf(*1fodSx%^ZrncFGXn(d}3qZnQ?ga#YN{1PyG5Ly+;-~JDY_R|*Q4WSx4;p+Kf8Ut z&{Ic?sDGHbefyn1ee%im?d?i`5KhFilT#;(xs&mDI^YkdlFgO%do0HSRYv<_eIP(+ z(yyQ=bPH1>+%jUeUB5C~-+KG4)rYI7yD=;)7UySYp2?WhKYCzrCYnraJU%`;|&hqP3YTIT?P>7dROUj8);AJC`7}AQ@AbYCrPPvZ& z|7lO3h<S#sp&@acou@;mVSch zDenLYmW)B1vbJD=_o7*Mphq^O*NJsL#57iJqJ?@H^*KWT%_MZAiF+qh4FH)DLde?tv`1NRnwbnm;_YVr)}56~{q>*JfAGQ!XH!Wm*aswxgwZ&- z*@01SGk!xm0p8A_?eW`3R|mJi5%)g0UB1X&$PuRtmo8oY-EV()=iZ%qy&a3P-1_9P zg>#wgBz%sMCkPQsL&5|Xeq66GUJWtz6=k7iENk~1-_)sf0wG{vyjl>XQ;>O>0ZeRO z_T-xOCIUgg6AJ9VItnnUC$91WJSn|vZtAJU7s81{<}Ri?lA-G(Tyah?w@$~{xDM2e zgtlIUYK4N#eK90yicz;i-9X3Y)379E9STRXZ8qw7cp_U~3Xlhe!G0hXmHW0Bw(IL_ zo4@|e>#S^j?bVlaxfE|BhmO&R58HE9a5v~}&4K{o+^eKj-ktBpJ34#31&-kTczb+- zE9i_^@TASn(x3kPr+40dXLaRae;7!lrcWGuzL-BAiJD?u@PtV5Pr#WZ=OIfY{eeuT z@NjjR*{{$9E>uvb6V1gmSscu%J8(B;mD`zQKB4Z@XN znX6NgT!Jz_5Qx-jt+lnSMys7pGu0otb@S%t=EgpJBLQKx#*`QyoxwTF%bbDgWAC-M zwnyjI0!Q%vQiLEHXW|!Z|N1w-{_|UZW|au$AH|9J`MFb}NUGWB3cC0m^|4Yq5{=+R z9QnvJVZw_*hYB4l?MihM8jnSj_-O#H#(bF(3gGjs(Ws5!9Z4ipu_(?A9RA@^V*_<% zXJWhqs4Axa9BtB=bC53nt6KuJL$dB$G>O6D z-XI-?8)|bvOydA=R*J&O-7;~xWc3G7dV^SMuhdfc3FkBg{2%oKejFY>+Afv0aniW9 z_VCf8wSDl0Z!at?xV;US7zf*ce7wkn%DGoKI__(MBjJ2sgM9WSz#J?sJ^20afB)Y5 z@9pfAqtQ%pVlkPVYPMLvg(WFdMRCkPqLBpfcDR)aP1LMmvtiJmOs3)6^?D_ltl`Un zi6uplB#dAl!nCW=Y{TvhZYHQ3^%|5^Jx9ynYb=g>ccj9y$#>Ic@th6=+zF&OOd^sg z@&pEhxJ$L?g}LFX>hA4-4#I7KPhv~2PQwB{>8o zVZ#KC!TU7AZh=bY3rAvUj_r2!&aG9(;X9?BeFek1W&W1Hqq{_O^!4w)`!3V$FTM1V z8{zZPgx!3P&PFY81n*Hxe1Ts$($doX|L@;^_0gqEt#&6GOJ{Sl$;5OZm<|OK$#@DH zM5cz)fRzrgY7=H1_cT^2kTSu`>WH=Vhm~?U5=zHo5eB42(}FbY4yhG}#tD~n3dT9b zi3JDZDGve!tzU?qUZ>NwwVWLZ#zMDPx1ND;S;_mD0p5TLophk-XZ$9W4eF<)gF*_ktEj!ax0|ALQQ9l`st=J<>YV1wNF zyWhQW`SSH{H=IfoL*Z;PQAAswOy%W`G!RBQ?RT|O+K>KQunVHRa*V~njr{!(xPO?* z7L3ca>a{APapOYt2n2@QF#lM<-xp9U8&@k3Dc-7;8y>7V;SvO)pl&qlARJsF``VP7 z&8~U<0877`(O8>hB9RC~VpR}`so!uSw=3XNk8a$I37+dRC|zuvdRS+pHyg_xFKWe62VROAqlrr-i?zCXsdzju3zklUGN>Ywxj~xM zDa$C;7=**gS&oK1KM2Q6l{lYT_ow^85xhU|`y1_`5Z>A>{qYZPUAc54;7?^T_!KLo z(z7@cXKfVo(jcJS>7hh4DF-T!Cb zEj%aTwivB8Ft-tb6U9Ft8=5Q^>!u!h5wPt93CZfJn=0rYaEanSDd&g&+OW)eQhYD6 zBT{(4gjW=t6WR4SmQ-0vBoT~5(QwwEpu$ugKkf7bI6p_l2s39DNf z8YTEPRLG!O1g^Ow5H7+M-IJjawQ(bE0tN=^!RhJ1#-r8p&IZ#+i9`k$DLm6Uj99$Y z!B>eeLrM*a4Fg=jc;SXfs%&GxtUF?AyWN5VYN83xhqy>m1Ud=>onXiaJUl=Q7$7ri zWo5fHh@jJp<3vdyR3Gx`foIg&>Yzxfzh25!Y?RDiZIlboC3GYb@{We<7G|oM8ka44 zq=VgybP#$Ym8@Uo?P|cK5S~d5t5rmtel&_Uz2@`x@yd+p4BpphXt+At8*qYuRkCIO z15|lV$Qjk<=y$gTj^Mr976+YaSPS2{aN)g6m#!jdvWrNeFqcS9fk&Z^C7gr~mXdHz zR#~tR%27YRM!t@em9@B^_^M-c!fA+&#PWsScIi>AzC*tNL>+vP)fs-XFhfN+43LLuC43=t8(t_#XZDX@E$QMf#Efz;(CgG&jV3rr_F04NT(t@0 zPImCHXCOtQo9_}B8v~ghrd@^#N5pcW8Q$P0*pe5V&eiK`la+zf;H8;$my>YP!q`4$ppziK_xhm(Q;I+UJ zyg!u`MDTupxm^9rU*7-opWiO;bTYZQVsSB*ECxbxh#t`x-$^jf5P~NrDj1zgAa@Wm zF1wpI?9NfJlV_3TMdVByvyzNh4V;H}s>x6q4#p+=XRNRLeH8`&s~MQA|!EpL5QU{ag|2PhK#^iKNJqtYSj)q9(3CDMmUSmt1A<0jd5xvNDHbF)ES36xq!jBWjLzE(eJ1Qj^I6NiQQi#I~dJC z(Eae@hky9Pn~xrCWwY~>6Z5GQE<59F$<^();M&YyL9L9IjrA#^@n_4+Xw~Hk)e=EB zgapyB5x0;K@JCX~JU3B8;oOKlfP_}bw|p9=k_<1#;79|@g`gQl!@;b35U5QSMqehK zHJ6lt@f_-`N{k;-0|31icy(yW5s*AH2DAEPYRkr}6X%-cNpY5iFtGZC}3f(XW5~`szw4mzzI! z?7375*Tpf$y?7f$G-mb-Z7<%%JkBW=34$>CgmkrrTh^OUut*O&9#Np^P8OOfg98Bf zG1r}`H-?R7OXE*wiI_Z#L~(;eR971!V(X$MTFn;yj-+u^>~t;c4@3Y*02oFs_l7`M zo>Ryg_Kvm>VO}8D&IH^wc^CyfCZYZy+?#)7ONmU{qnA^ylu|Ww=cA)l*j0ISYwxf3 zm|MG@f!uK3 zs5aPU=!Bbex;7piL3-Ri?&JvG`x?Z%WJGuS_Pt;K`u8i#+qwMW{Nl6e%p5caV`Tmb zlEY9W&br7jgKexz4Gat&MdJoZu@9G(`$0k$Lo_A|*r7#jH{j0X)dYkm(n!m#cH4wm zyrUqXM@9WM00*K>G9i@0*_jpw)2Q({$Rh$}4b-m)z7`$q=t{Q+gRq=T*krRz%21*k zny4r%FPVG8$W10?wQ8M#1{O8sY4!GM?=^>evE7#%-QM#{0=>N#lw6&f{?X?!^%v_! zWv|-p^_gNo$_QvL6HTF6Dh`%}N{jjHXcP7kOx=*_Q3{T7_I~NIVBkO>298ib)d(uo z<+m^P(|UOX?*qO(L&Q6G?)~A7w^x^|g~Exsh11NoLZT2E3SgK9@@)!FA&$>JAoR7c@dmW#3Y-O5 zsNs>ai2~!*T8+T~%`@UVS~pNFI=26Y3wNsG5QMD&lN<2)1dtf~nuc!Bi{La3w}<40 zS2yHy`WP*2Vt^e$*Q$$7>?HY*xN82!GMLz;^)napvQ`7b<>Om@J4wK0|)KY9GfVZyzE_UbfXcZyBY&l5B3}Is1B$RZ4(03wb%z|@4wD?9#DQW>)FqjU9);br z(Vcz2DoH^b&9Gi8^#%>*-kG$sdb?D5P4yw94)_>x?^HH=-D;~< zWssqq1#K_rU6}{4T?fhbgAYDHojx}=hnj5^<>>dwox@`^fGj)w=%XvI|LzYftL4dw zQ*4xtUw+64i55|iO?Tl!ELw!WX>=y+CG7M3mcLu`(vaky*(Y4tCn;e7y9mherjk4b@-1-F<$K^~;nv16txG9UZ zaArOTQu?sN%sIk5Z-jW#A_uH?7#;8;0;X_8Is%1Q#a*TbNmmQ9iS&XqwL%-9Gh_O-aW=F zuyHhP48mW1^;P%Os`_|>r|-(^;-9`3-~YxU(|~{J!Set7U%y^@P??xKJ2iC*XX6-A z!68sDS1MIp5v4O3WMi=HSfAODzs4I|M?9UJ{P9Oo}O{xHpNY)g2F%*>NK4;Dlj@12ICreI_d|th9u+sI#-rTOt)ZzX;;J^Y>(>Z zu;C$u@~9}>l$mJ)1xDhr7@G_v5^;>+n8AX9H(H1i*wOTSk1ymL zu?OC{O4VD!#pBW3{Os98yukM0uyj9OS7S+-p3E;+9X7jZg z%T!wRx)?pM_bP3#VvJPjl;v(lbS|25_rmCvxg5Qy9$E!m?WlVw880l%J$rBIlhV!_ zD#LiBXtRv!>UbKD<=A_))2Vx}t6F;{aA$AXR*Kq+UTS%HnWZMqTa!!ZRq3hxdD^)* zRD#LJ!-pGh{_#Sk+?ts>mW<_C)}a*}{XVO=^h5T(~YJ3+v4;T)t5<-M;V>+f%jJ%o7LOizZLF8fB-5k@ml>m(^ z7yDDD2nrtg>jJTV-=9*e0yaKgRgK-Bmj2>_5jnJqS0cDo51jXh84Yy^A8ly(KrF<}m&|PhlfKFR03WrLEeV ze|&%G{#G$}Je8P&NDxJlNM-$5t3vMCOr9m#(361~QiGI5+}dgv7sV1aVT$~T_`rZi zgEX!1X5dC6j|5J>fP3hfzknGQe9?^%jcF?FG-OIUVmX*$#||$g7hBY6{Q*(ELR5@| ze4YyCx-0rWH~=#JIq+EqE*r(>QVd=Ce7zz8HV95~xf~$psv-M!so7k@14~d-T1R8~ z9T>$cOC>6};+Q52=kvw6xnqn1DwTD{1emUB4Xc!J(QIyB-ZFd%7K|In)unpvyr&S5 zEK@k!2^D~F@FIV5Wa3vC(n3y~fj%LJ%waG@S zR;xfFnN*g!F|5iwY&+UCCMJPcR7xiy;x>6&9L*zfva#DDXd8j^z|7VZlSJ5T;JN@{ z$N-KN*xDZ#V-vaop5qc6CrwzKh-<-yHSlzK3uX?^j#yoJg1J}j9vZf)*!pR^X>}J! zy{Jk$4tf#&Ss*60VtO1kfZ=3_K@GQr%l(1OcEkS1m$CEnr?$(p+mPrE!P{*_S4c6^O;M~Dpl_QQHIPQu2 zbe%rU@J3D@+`GH{hd;hot@$S=PNY*4uwsP6!2o;a3cG2=6RC8j5Mp9hi?@wG3kC9R z3jH~LYV_hE-3ZpBXJMN^(5V~zca|qk0X}5J%`_N>SrA`5%2t8+VDO`|hUE}jwkw#i z5u_Q0w<5a3xR`p9^$N^NAQ8%4fp#G|`7xx~U83ox^+Wbl6;V9PL5JPI)t(#b3+PpB zK#Q3Twl-`q0Jq(Z@0~qX=$;Jhv1-VPcUyJ$ZjWzLgxsF9#-!72(xuvXL?%NBM~oGK zZ6c9NCUZ<=Fu0-F=*UgfUPB$jJPbBa52wY;EF6_qfZtVM^x~Kp`Q8o;uXQ|@|cC;$fOYfm|U$Q-y z>fh)MgYvgDu9Nx~H6vn*1~uxea4(rzSXg8Ve!H~R?o{kCY6uzurGAnf&ZnnN&d#1p zr6;HnwL(>4y_PySJ|%KE`O~WF>+3WuI<^;Id=X>S4?p}6mhPH;Pqm(w)2A2S?N;y7 zr5m?zJ&J^j$wVRO*Mzp|zQ7*pu3e&8HGmfx>ZvCzs4xYqrLYA~sEUoOxvL}`)ZdK2PGkzQMEeh_u*GIw8om&z z3vMKweW*GtRhyTh&vJhbz*e%C6X$9m_^OOzHMp=pCrs=qO|Rj@UrlayW_B=WSIZl; z2C})5*t-yco-mc3EEE>w(LDYX^MwhNf8^mR@8HcP?iLZtVc^d{|NP05Cof*S2uuI8 z7u-{Y!+H9Y!W$Z0y1#Pq!<*d>3lAq^aT}qD%5h8BV9`iCkxazXcq@m27?<%rzo$EL6dq7es!uNYa0nrC8iy)Ze_y7fGw=C_wwV&K{*RN z3bv307H%0>HvkvqzEHOt?5W~B9>|WH_Ru}k=_r=!v?n}%wfjKmmW?}``zbJZz?crS z7-04#+FKh+C*ud1e0e6=hM zjEkpKVkRD)U<;@D`NhS>W6lXYg;{;nEa=SfLeG2$RmD>>6B9`3R^NTK-F?SHd}clF z_?sW%7k%v2aH+fV=9}+sY}6BpLM)COV+MPm2(hlmlrI#=EH@%DC!`ZB`E@-Zqi*e4 z4X{Vhv7ALaj+WhtOT$qKja>>^k|8lLm%S$n`UsQE*mVo6+-G2EQn`~ktz4)QmM+De z%D0G+xq@AN?!hWWwS}N3lDHgIDXYR0&t2}W1vsZO!kaQeuk}uH6!S#!dli1}A(>KH zEh$IB7B@yjw}R9!j(RAsWSQkLQ;?dPJb}ln($0Fb3Bo1gsEec#)z9KsCX-AR`U6ei zoqP7&@#80K4T;w*Domyd3UouSz4qGa)2DCTxWVNUwS6jXh-SwP{ZzcM@z1|}@bUGV zE2wNyo<-dnBR@bwqgG>jC6&y^uv!x|k(QZ;H5)WdZ2<*a0^twz@fM_E<72onnc31A zN9x=7S=b^c4mkS81g+CWwr0GI^)>ND>q-HT31*r2<6YyVcK_Tgx>618?tW>u;y&YemM*|wdX=)muX2RpD9|_*|64l9QcILa5Wq;HjJ1o$a##_TF}5?c_~Lx zE5XsGC>TdXtvWO6xF3T?N8PGoQU_04u2~!s>W>q^VHZ%gE+wn(1>89QC+~WXTorh% zswxK)bM?^WV{fo~X{kQrfS3-qdmm)Gzf6s6xs#}Gtw6hP!}>L zca20=YAl*sO&m(3@-wr?P*0S~4+q1BzJp{X`UQ0ed?1qI6B#^DPEDRYb2gu!;Ay+v zr8^{l>V;;M-N>j9@;N@zfj5!$p`Wtww81-2-f8^l&A&W+Sc=6ma(fb$y$T;4ZFaq0 z#`k72m0%+QU!Rtdz6_25j}`j$hr(7nW(gY%mqjb0I~R11o8sppRbxg5ZB2E_bc8iv z@G-gr*fbN$E)}KQ)Q|?aGF^jv>x4goG9;R4UsuYOhw4@w9!A9r7lQu&Kr}`1{vLZe ze!yMDpw^!m++%71NMO8}!As|NaBwB^%raJ-LA%qW#|#JAs{|c|buP?h+XR84*(Z>Y z!ydsL{ozceI6Xbf++m|t_6NEw$t5or6D1!eKo|{FD;1{6XXh54dFC0G15lw+hog;| zS^kYoK0iPIz3+VwGgY{~(py2w>FEfxrovP3vU*2cmE6AdVCmj^Dp82X@{yPZ*y3!g z%G6FD>=_nhTP*w?F&{I~{I>gZh-JVi_X83)<;+Ynx4a;6q4iB#4@pDnCIo6Ns$@DB zcF^=RTiB?{u$)DhlE6o#CNSeLUA=~GXV#|@mEPUgtuOpIZB_k$n&fG&weqnNdgs`|A2IxgXTgTwgJqGlsr!EAG5 z`{Koqwdqx2A`nhNZO{{_WI7ioh0Kkyj3FFKz+Y{Y2-!(12FKJ1`wK|19c4i6Iz+YF zZp$fu;;1}s+I=e<$ck>|ga{vFa=H>mIQNo@ph-p)8Mj(0%V(6YCXB2rF}fGDsf;=e z5~>LIcFJrFBraSaBSqjq9^;6krw9CgkvNn@gCN7;-zg9PvZF-mWcG*AGpmL~bXI!H zJDmZV(K5c7Y@Ina1w>&G&M$uwnpjd24rL~abI40uTPxj8Lo*P1tOa%$+0dR_TP567 zbD7QN=NA^kVZ3FLkLxYi3!#clF=d@ObLQ;Xv$t>Gb_{%fB@gvAZE?7RD94D#-|qG< zU%9@rRt|;ofj}x6NkVEo0z&L|htm?4jzptLShpcgs1va{ni9%cb0qIhbyZ~ z)FRDt-B?^hde_ekeawJ>aNJAb#RU~Q-Z+re$LxJy4G-(3Hv&AQuV=^+CLr;^+QaSZ zHj%s1G{0JCJxGCob?86+>%(PYBo*; zI~R<^yP1pvXm|OOH9cGWQtVA}4r3lRiMVX_UI?XbmQ{Yc{bVn2Xi9uf@4YT2d zA~lf)!lep8`WMq9!KeW8p0ndW*68~Wozp`Q}5X%=6yp(<2E42<7#(l z=`Id8utO#PU9E)F69bmIJ$kfB&W!m_oH#+vaJo1#F(G~4Qxgt1_ZFdv;(P(NtGaaM z+S*zv6pGtwBzTW8A5C;K8P<)31w1h!c(alyXcX)ySCTo)GuhY7k`9`kC0Yk)ATC1JP z6B~5XZ+7e7br{$G3*=(0s;*6p*Xwl-PG((|8VrM4mVD9(Z1_nd(7Gf<17ELKQ|Sa7 z7idIIgGe+7s$e_pW1(Iknaj>6lX>RJnw_owu-@)e@hfA}3nu8@<(1`Y*FNcVTR~*} zQCpHTW1*FmwbC{_v9L1=u3!=7w_LRkuIORBd${4f`^DDRH$J}d$*>Qk;o4YeBpC;S z4mshg*J2T@7};}I_9})`p%;j&V-Wbr2W~Gb6eiCQ5p}(rw*&JS9Nvi~BA#KikBu5- zB$@q!hYQ#cu!(>yrO%UXJ!*x{xsu zlX1B`yZi=AJ1gzZR;OKIhS7C@_@Bg4-Q9b)(VU^YbWLUw5YGpda&>j(QM=v4e>*jy zL#NyPt2W7hw#*MPyd~vASkMa-QY%Z#l}aNTP2;s6ViZqDutq*;^G z!r|X2zx758I|dqoV+LF(=5YnZJ>J9htYk^ofr_3!vEOIDJ%z8@&CR81ZHs)YFvX>} z#fpc zLN>#2Nci=-2D%|V`j2KwUR|k#of+rW1;JkCv4ht(exEGf0s(eEWU&`UY?=V4d1=3a zuUx@XWq)CDE*58j4HM$Ls5%bi7xc%I>@}K1$DT-ptF`S;r)qmV?Y15tg-u9VOlr$r zJmhyfn8&k~YJYR1B(wiv;Lh#4m2!o~8h1sHRrD}kh%66vpug@tSYBRQe(3inG~>z$ z8%hZ=ech?ncED>46}nr1=^BC*4mF}KCp6<1DaFnqD2GIkxFqw*)uDqYRHld{?yEeE z@Ssexk!TRWNl+BwK)K3kx0GZA*o(!q*gQiM&JcYMRJq49{U3EE5<77=%v71Qe$2hw zw7Vra5L$nwFKab+UCan6>i5Jm_mw!psA`vpu~A_f^CAA2lBCB&u-Cf{1Awr!Q%R-M z^YgR8a8TL@{i(sM!GpPMK9kPU|AxXbt&WviPGt%IqhO6Xt{M-N^PumqRU4QBXOp>y z_qVTqe4X{a*5mB2s`uGOxgCz*Lkw?60YhAefArDSb|*9p;1Uo&yzI`W?I|%cX*8=C zNU$$A13VF;sD-15j$m3Vz{D>LA`)|(5^lWRtZLkal5z`$>VJ9Ai8Ep!+L@+N1 zB7Vq~4ucpj5;q(o#-!<8t9+{g)v*&3SnUi*3+?ps1RFG@EeMRcNzKOqHYnZ!uw0E6YbS~(h`{>e*N86j^OKmLdd50%+ z`R3m_yzutEpTAmZZ*0~>fkfEPI%+eRl4(R2_r_2GOG?<5M;m%!zlQGBhQ0vWOKmbD zay7GPn5CfVA&4U2Mv}>Os$RfkcuvK{M}Q*-@oOH#=;iDMiV`l3W!nSMphm6+03#*c z@o0))tpm^{ZI6R;vwPkP+Cz-KFk_7jJ4`VNF1~l)H`m zY47{Zy?=P&EyxK@)oQa=?J^(crmD4LZkWw?+H4&weR(9tcV=+|DAacz6N})5=u3B? zkva%OCxq%%s&AqRo{Y=^wg!munoMcXJU6XSBM4<7tv7*9aBp%yOwpN$ zS+wTp&0XtA@NP-E)o|42lb9?+3_1NWE}Kf zUQo|;P@pE%gG$?5kU(dqKBsd=S1^fdV#1S&FniN4BiWEV8foxHCS-2-Rc<>XGlx?L)@w^Ldo8jgZ|>y>y3AB(zJ=C!k3I&u62>%bD&|Eihw=Clwog8oP@ zH$6LdDjv_$m?X5y5N8bXQMctE=8O5C{OyktiRf>B^Q#X(yx3}1n8V1X7apw*uYYpC z-D1hQJ{S30KXTx^e&cT*W_UvorBeCgl}lYLI|VACO7I!>Yqc`^+e9pdixioWxuqk< zd&bZZr2szmp$;b79sHt&{6SV4!+{l#>>Lv(YmtZ$XOg|n9o;bz+lJg3tIHOBfQ44a zG;Pq65Uu18x76vD;bXL9g;QURXXQefzD64v0v`%fAf1GQ-Af9h4CU$adn~&rE?l&| zw=Jo={p7>F5!EURRtw;%m$5&MJ9wl{$EqlgC<{o(y-(REc;KM zIQffT`~tD--~Qi!yK(#SW@$Z}n~BBdKKS6q`Z}{~mbdDx(?c1aY?{OKnv4uLHr5}m zu3;Z78idQCA`gYyod(n0sYD)PgXRz{MI&0#Ay6q8z2Yv(KfvCxz`zgvHx7V8fh1&O zv1}%HfTv>m5aHS5;GXLRBy?6i;4cK@D%r?EJyZru^*~VjX|uG64uE_DT5$$tscyCy z)MY~rxTy$=0S9+#e4%%Q001BWNkl?NdSC6gTG}Q z{~f)H-sj11;8S;V)I~g*Xmm&QvakyaXQxAr-Qa^55_}}9aE6_EB+9e}y$>%MiiLB- zLA&2?MMAVE%|05?_&FgDeqrt>GU&bL!0B|NI{^+05qFa<%c0?W86O$JW+sA78zNGKDrAz0=|R z6-6A@fH}#^3O;>0Sb9TM&;i@)FnX<2+3kJE9^H_iskTHt8aMM#1PP!(rTA_TBk^#e z(_`YAfmq|-iz>oB)KO&xa39svh~Ar_w`{!h<81ckJwAWpDK)Y#N587o=LB^w zdKV-H*PAGnUWYM?HK2MuJ*T&cMnbuuFBZgYIk@wMqR|wcEK9zyKtP+J9!Y_>W0dXN zDOVn>uCg-z^s}eVJ%_I)@}ZB^V-=v0NI0G-&di=mWoE3mMZe(KyJces@@GLwxm0GB zmUE?KR*B5i``!B;iIdpL<{+fH?BV@mGR}Kx3;gaoAxlB9a?w;r&haj|Ne3? z5N8WaXoNv9jM|KxYtdL7+bKldkZc~|t{OPIaU*mjJPAss)a7KL?J{vipc!v%Edc5e z6g`ZJHYGhX!z#&Hgea_Q%_5ybBntV$eHlS_jp2!&BovDF$w~ZqA3cq(>0D6V(bL#c zXQdlObkO0N*I{>V(Y-yRc>cVLQRIVvpZM+)oT<2jxcZ!NX$NPp%fR*eiX-f~RJ1)^ zBrT#g4EkfqM4r_+@Ko6a$`!11T*x+P2jg)p)m&w)24vP7EZu+b@ZmaJ5WV{Ha|;Uv z)`m+DqIa`S2yI9pUd%5XUwkp1m}CPJy}ka_Abe+2MFeWK#`WvhcFHBxr{~U{`}<$~ z_iw%Ue0OlOT3gO#XV%xsxWT4tqP1wiPkYC2`u!(9^Edg0_7FDTt&hLN<>j?NFpX<7 zA;7fU>=dVDV7Ne@3AIPdqt<#f#GQ`_i^cdX|#RsF8NlS}*Y% z#>66U5g%C?wnc_a1EXh0=GPtoJzS$opq21W)hs2%sPY^#A8U3|n~^IA2H#@ff}Kaa zq!5lo$8;#HeeOc~Qm(1$>NPCW1G05xkhxgl6M_7t;FB)f;oJf0iFkW&XkbHZb!!$> z1#3t+xNg!)jECUf>?ADD?b43fAS4)yvf_nm&pi9z{@Z_j?)*fle6!cD;m>mI;Rcp%>Y6mtvfTH++o3o=RPYuk6*&6gYPWCQ zEtl)qio3xzGyyTSIt|usCt`_CtILeHhTLKaj^G^wk!TK)W2hXHdoU8QO4%Fcamomu z6i!?w;kfq~#Dx*DK=u;CmpRrjwp=7`TGLm~iy{Q6oKXis zY@d&v9p@I#6ebq^ff$_#5&;cvaP=nJN;_NczWWvnPVlUZZenq9{%1e^@v#%BdSjK| zdgZ|~F4+v*ys2J7-R9v6hYH@~PXlYi2f*s;LnLNqwqY_5poq}duU9MVjEB$&39>-b zzNkGyL2cr>2Hi3a#d`xIc9w{OZaGjA{gE%zWCQ*nFA1{tXS7DyLY$)y{E##STOS*A zp)H4kWq73&h6S-8F=QgB=yA2(i7`WU6!bC38mN(lUR7T2;DTj?I6xm{P7&M_GW;|G z{p--Ja&>QE;|#kLLzir>%~h~1$6mY`WEm_qR8IhaX?gjQMC5MwYHc_=Um ze|x)j_2b)>ay^qxz4X%g*_kQ2Mte)ev_kbc(y8>!%tDe`H})IM6f})ybkYo5+;E|f9h}K*nuSEVXv{9mv?4(7!_q%yTngK{PH&_pP>4> zMpTc+2M98YH|PbU!CWS_kcb!Y;EoVPMC%P9ISpurzE-za?e&{dTv+w&rJeMH&kXDilNa zWGWs{ym#Tkox3*}$1t~f=G3Y0egCCizr0i4#Gwl-mlP*lNH*LmJJaQbs5e}MXx*$3XhdT9S(}~Dfjjy<#f;0p7W-S&!qZL6qjrhCySHETb+KTR%Mfesp*s9NCHPUM8L}MnP*O;{`k#reslZw zO+Gze@Y%EYPR`aFwbD)rCBeAx(aGWY{W2f>KmA*K-f{lS>0qDgC1T|3KY$+B^Vcc(23fNv?ghDv;z0X<3;EQ zIokU%jES%b1O}(WK?tKBn@1!YwXp5Rfaud}b?S|JiN?|7w0cKZ6E(uPA$Yp+e=Hs=&dr?8WD6J?%Oz$|av2fm7m(5LbAI;p z>4y&={@cI(uiJNSGF+OTo;?4;^Qhc#&xENQ)w2rjf3-t!eW>6Kneb8h&zF0!vdov$ zZULe^;GrpEWL+*X4?$)_86)B_N>Lm@Y9&_=2gOleCB31wAWg`Y+UaCG zP48K$Z`GPRlD(}y>XOv+%AY(NM$ka)p+;A@H{U%a=oD$|#?>43T8qy3nN#!UUpO6$ zfm_pbYZy;{1ipDRlbT+fKOIjp-|1^KcUm3R0w%uo;>$0;{3<>bF>!tQ)c!A_BEC zu*@v3I6vj~`p!j^^)-6@DS^bJ9^$~F4^Czv=g|R4xP@#1PSw{5;-(b`S(vH$+P(75 z&RW06E2vbSlLfmu^ak~TuPJwwSP$?8?1c`@o;krgcb0BkyVvicMT@@j>T`?7W@uW8 zC)S(kp!Q-+ohTF+3x&B#yjZ2H+^IzsLpF>K5u)3X2qqT$f7ttOWQ|?Vv1ts1~jIOKbcI&-9``SzX zP&l}Vz3D947dyDjBuMXzuRcw;B*&=F5`yuI77nH(k(3PieT{Nulc5j=TQ}-Va2X;< zQ>bh;w&CG!bw_9XlA}7bol4`%$2R~W^3%*r;iVT(rxWZ(sBRR&MgtED*G4k_NGLr$ zd2-kfqdtB0weS4m=l^i*_=#*LH#0MX1q4H^WFl3sS1w=rsI*m{nVS3APk+{KwXa{l zj`mdF<}il+pX{6dj`YOrkF&9{Z4w~s8V{Ktuo;@T|@)**^tWwJoBPs0FgZS$nvZRq7gq5C3Lk^UKmtQvA5u)KRQnk2%mojnTEIFQbzUF-Bp3yYa#LS~eScv7AyT(F2PHeC-wCe!0B{HT+VyQ2qt zBOg@Um$(O&=mosS8YR^Gj`|w40NouL2YfNaW8pLwLCEK=Hin_=y*@&a#3B-Exe6ST z<6(n0WQNXWd#eO6qo{D57-wX~*t^~CWRf}bE@0J2Q#31X>HP}Jh~+kI)9w#i10Nq>Gu<49*Ec!GwkY;#`jSaqiWGe3_62-9{r|oD=G$qiFgGF6faG zwUE>)4vapzQZJ>F{#RZ(mCeK%`6prkMhm1B8H$FsO?V(W71q!|oYW2!qUzY64xD`r zLAj`gyTLA8%W;#(iXuiH&|2<9ynwkrn>+24*BXr-O(xQeN-dp)B75!Q(s?zsx^l2z zUc=@!nvLEkSMO~-YB0lCEaqPR)^n4^yt-62BvZR8zLcHnXQP?)Y&J7@bi`yY_JHlTWUqym0T})#I@I7`YslmvQgW zXtwU$U6M5-Ev2h+sN-O zjs}Wi7hpUVP3E(cx!hDbm1Cb#$O}57B(j2@P`hIV37H#L7umRRyJ&5M`F&09@qcwX z{9~WsX0yHh%;~AW{qeU8#Vj2bn}KK3dAbrw!WOLFDp6)P;ixR_D4bdd=LQf5a$ZaT z_!@%pGnT2&MH&aau-AavoSfZ@G5FyD=4l~Z8z;hf_TvWIJ3A#7kbrPxX(d!U=)cuT zy2EiWMTz7c*OBRSNb>5hEU(|WyV7d+5z$YaT72%sXX8n2vFh4Wjb>^TwozvP;K|}~ z_Hlma-S^9tGEGOjz`f5rdvg(1{a@Mtw6L?|%P#FTQmCd@-NLc8&TmjEu+dg@Be?W8G1Qf{LFd)Ugik zyxAhp_?02Y6;JlAm)TR;S3OmZyrNa#Fv*3Qj$t`Q1nEQpzZYmD``s2#fCK3lWV2?b!PAuZb+Vq(Em8Ixt*f>`%hoi3hhR3*v~ zIYE1ZsOSa4viW8~NwZoI9QcNqbT0UiR)RYA=i2GoBu{~too?GK9gW9Q>@I9jG-MmZ zJk;%>W-EPkP-Vy)j}Pr;ePeMU|Lxaa$flE%#munRqVK`^L@rxI;-xFGQLDZkX*5$8 zj$pab?aR2`>poOjm82Ka(f#WDiwD;bWJ9lJ3r%*D@`zx$GMHiQO(vI~iAQtvp|$!J z8bNwMHg&;~RWv@RH6GP!I55P5#lcX`1s`XxF_Wxzv$YqZo$O;+XU8)}=$(EKxL&`0 zTMRtto0~5@cm6~=%?zbFOZUB`UQ=%%E8U;UYGW!kSPm>)#{evLi-!`KjU~Z93 z7m(ka1Q?J6sK60|V(kZK@M>XH{k@0+7>kdE~S z3^r;|b}Wh^WEO^|PC^JkHaE&+{ORe6t>DKGHYn}+a01b&1pUpwdF}k-{2Z$>jxS_F zp$dzu7}DmmQ@PB9dML>qmY$yg%rh=w1N&_@%9Z3HOxR%Dx+04xD*rM;dGH6%#dHqG z792+)SLcR9>0m4o&BdeHNGO#}Os1lf*(8?XzS7Qmw_OEm%pkH=Z~(`4!{+wRgJ!!% zZN$2%nN`j@NtLoEsO}E3CZI?zqR*q<*bVgZ$2Zs3OE|1er6T8F#2O8sEhc9vh6UPM zvKj-HL?%7AUF!bk^*1)Rw_)iN2$-j*r+@ULAOHO4f6rFX7cN|2!t8|?zV+&>uQb>R zq2Ab2jYD#J*x-$9xV5#7?V(&OVSfUYgE$7M^}B;Yep)*OI^^>CM7-j}h5%;8S)MIT zD~Q%JBP&jjHKhs?+Yv@JE)+ZAPt2l^NN0;8tWW5*n(Rm0O~g|Pgi?({$y*EsnO~UW zzwxCfXh*;^YVHpD)mH1#iDTLCz4}5Xp-qeCW+#F{N?~n@R!SFh6Zv#8%wDDRMPzCJ zFwdeJK~tdKM0FG<>2V?D;}N6bbb7GeX?VX3lSsczHx_OU~?0k}1Xs_8_7ab0vD^s6HUrMk@v z(K@I-mRBC#xy>@K4rrg6%D(){xqL3oGd_gXP@mS46PLxf$y|PF>A~t7fBfUd=BC3x zG6iltUVZhu-}%n>Z{524@yAzV(b)O(=kcj|#J$I#;6LrjunU`OG*Cq0(M!O>L`{1| zZUCTMmZkp;tsxv~$Ycx&AqmH@3)!K=V?`f^NM|bv8gZB=*_~i9g&R->lcu5t@ zH=1PII_%_FOb)=9dQnd1A_fCjLp$`RJ5M$rw-6jCu3X;ebhdu<{a4PNIT@CDO(>gV z%W;3J!7LrdalS+(F+DMx%b=HL3QB&RAZ-j_SuzO&*Sr*i1`2qh5WT_Y2N!1))BU=( zutq@0#UiMfo12|Hg;%3=YKpn2Y??`gBxXX9P=YB#dexnBna$f!gRy=K*TvyTsNJoU zwpXo_qP6A2O07==sUaV06qQM53Cq{l(KqA>($S&d67%M*yW87rX@XnVV znD{ASS|kGnYL*SBB1oprhC)6WM}j3!xiD6wk{GM^8Fwb4EMY9NI|A0%V)#hXk%$c? z#i>NOI*1_m21M9Qf=(gWYFDSHvah}RS~i{4;56W4Z#}fc7`mc46I1i~Jrv2rw4quVX$zvuI7_$5`7R$6ct!iU?=x13TPK)spPg8VCRlJ>T zu%d%uu;aLD1&46K+zYCrx=(KC9_3SUS9grq?%rLwb9<@P;&X%x`P>UH9-o@d=%o}> zqbWvAa%QK|3&Kt!mzl-fC*XuqN?CB!BhU(!0EZb-L_sLT zBQqly4HRV=icUy6AV`O&Cb}Cj(HEfQ)*aW1vWx4aTD{zEqmjml6Xkx0 zeeI_U3v-jl((yuQm}Kv9^lOyDg!A;oVkSMQ{fwb->gmv-6RWh9Y=_acUdo*lbvIBn z2*KJj?2E)hnL=uIx^Qf!a6Frsjt0^}Tp%(3WqpAqqprM+KNig<61jn|Rcj!Iw8G(3 zG?Hct3LDi{XS-ZpW%)XLx~W7Ut6I6X8#g;QC2Z3@A<3HojC~V*Fro*L#I9evxxFO@ z&Z>Z8i*u(=9^>Va_|cLmTlG;US?LE$wc@dbbIEw|!w)b2>;L$d_ujuysaDLEe>gKU zfBN+4TQ>A*1rEU(%cc%b;Pc>Nw_0OM3K%9-g2oK5JH2#vB9_Eu50oS# z-$TUWR+7L6J#^p(=}~KlW`Q%l6gquhiw%rGqtK?*$^?$WH26@vj&V(|0Y$QGbC5~o zVqr}E4Q)BCCKL`|lb)qVXV zE?zoTRyUTH*9(O#%Ys-?e)gGTH$J|EZ3;D4pJhDM|+06DN+J$Mw^V8#lH# z8HR6s`?YV+PEWB`=-Fq_w%fIL-hB)I%k?^De@b_l!l8jTABI2w*4AdF-b}>v$Y{`X zhkf3A{o>>dYz-28j6GX?s0Q{9180kG2ty-2BRWV!@bf`W9hM(qu8asu1n7~`okVfT z?d@*2K_nSZ1%ku`7Rh8rIygkxKxiUAjnaOnye-1y85t@|>LrB08!3sF&ANBv#LiJCgQQ<$7e%PBvN+3)F#-Li|U6w5{t%xU^bnKM}6h(t#WxC z5h4~U#Bz~zI)_bly+wCdZQ-_mfLn+`P|K}t8jrj+{-qD(#N|o7*>fSxu!124R;96o zHu_6MlHm}e04=dpwUo+wCe?#Zj(d751)dK4(RhM&nDypPrMZ=ePcu+LeT8$2Rh`vs#+_-k*{^GIuL@LLaMsQ|Z`; z7vC?HO0`;z_OUsRQA#WK8+|x5@aB_xRngRfjV&h#g9U6_CKnKP*zVy38rNbaDI zCYpxWu~md-QDZ@AHUPs4%w%{YdieLC$7&5trff;fE{t%H`!3&L8{PPqDkeIgDy* zn8SfYXmMe>Sd6uMJN>~la;_7JA!DTaNHEM!_H0idi}=>pmP$L1I_*XznrDSYA`JBX zaQJkJS)Y2N-OzHmHm=uk6a@+>fc0A;ODE0Sk46w73C`i@$o#mI;O zkKxBMb7%Hth%F<+5U?k2#R1s{cs4NV-M_a251*V$v-4^`n|k5=xtrIQHn%JIcu~AP zH6k75qU~b`!nvtu9xPw0RH`3cx->O4apuf3GuWoj&;Ia-KU!XXz~lt^JN2qn#4FC7 ze?yOl2Ht9a3|Ej-)x(>~cbj4Ju$#$Z?8Wqnk&!xg7_dp%MlpO;W<(%vaa_^7XhA){ z7?fivuz&XQ!hB7LBpYRKvDiYO)ow7T2EbC$vz{D*7F59J*{?wAC^~>vA{GsXlW0PveQqwlaBO<3RJPaF_XXmrjz;5LXbK|~O3g1k+iJG9cb52?AAIna z*Is$$+}YEqO!CJ+{?SJteFzy)9E(O>Ct{WO#vf>l!xLD?%PuxH$qWc(AOa0%GX>bO zAqDsnJo?dzUz?D@gn_qsKa?hxD7BnL6loK!#ZCyVhG<1eEx8d725K7FdaO%oxEQNN zBW$eUT)Q9_An|PjSDDaA3WZdKZHzr~nf&bZTp?FzcRMSqcl(3VkA8Um+pj$vi^^Ao zijmN)A8M1!q?zDlQ8%K#REFH7m$KeQ3>I6K4p_h_eTvyK_D-`(x=u=kG6V(W@em8S z66r)fpPnveXN$SniR|1&b_P=!ID8_Uj$$XSzKQiVS{UbbbA}Q!6s$axd);!usz5!F z_EA!zE0FeqipL|FR4mUc*RfY??nI-wI?P0(S_05!zs}kY(}!%<{TV=VjX;md7qqgh zvsHO~nn1hNTV7h;#!-16TlYY5B6I%y>2wBj<54gvotjYuSXWcZiY`4lwZML_eDuwY zNB{D#|8n`t-}{UDL`SA-fSX0#uF1W(+e|G^Xx~Dy3A%sCze?~lYaA! z>(dkCFtZM;-6|Jbq5sFnlWjJ+Y*djkGINJOB1yCWh8QfO?h4(}vX!fw%C|7a}|B-`grYTr8_g4>KW1Ij6#BUBA>J9O> zU>uAc9%Q$74j71Wmpv)Yom*L3U1D588&nca90JS_HAPMKu;6TZc6N~>ah0=@ zFMj#U8%*ZE@WM-o_zyn#pi*J$5``@eJ3(bV!N=#vIHx~YH9~(|k`|INv^%{v+KGiF zqILB!yu&|Da;opq@0hB#lwV{HRSy}0?vx6G!ucb2+ZZ{~Ym6Jc8jeC_+#|}Z-Rw4c zq;Fs-EZqjDw?ly_MlSDDHj5~#)ynkLl(q*)F^0m`2FU|)1dt7ae2h%A4sxV>%smJO zD?~o8otX=0=z5ZvM56$Vvul24#viy}Z`Zs0)a<=!OkmW?I6u;-2loU+lN0mBVz$$5 zkWgW$h*Y2&t7pX_z-ni5T{-5|1BN1F3A?Royt@e&4Kt{oD*>h+VCf)RkH*=tp6g-R`t8C-2pgc$KR9h8CNoPC!` zet42f)dV16J^zC{dl$}~!S%>i6jM{<7cZ@EZtt}UZfhZm92V?a1+={7^GDL@g>orh zDIa!v&42#!kBL_cMkY6UnKG^fcr|)zk!u@9f^HHx4dd zTzLKU=aWgPyAz!;Jcpc_>0Vo#i^Tek7TzNosl^yjtK^JD#W4!*_gjbzqS1DD1y@>Fm<-taDn99zK>|c0mRD*|%tB?wmiA!o5%Q(~tk#Pk!{n ze?B_Q62u1P3i+a_=<{-Xe%Kr4B=EyVr=%IL;xS8)T zz6(wjI^SadKjkg|y%M{`Wq)`3ccSymokWL?f(#V@QVJ zJ&Av0qMbaR#5Nqm++=FC%MJzX9oUfSPNbZ3SN-dVQ~ho#5mnY z3o_8d!>2U`B_2RG_E5H!R=zh@A9yqwMkaG!SJlQj;E<3~zn@{hO!@|@y-|xr8D0*n zb|d-fF)9&Qm0QM6qR~+!9eElhDx3xTki9?U!odm@C5U*$;Ko@a zQsXkY*IJ!YsaUI*`h%7w>n6ON33CpyB@aO14Ew1Og2cy%+0XED=nazDZT@p08FcnD z54QJi^*ZIn#q_JMK1pFGUjJ0qy5TD&{ zcdLcULAJ2nXcq8J4j%%kS_snBs2gk&#tYshf4D3br5xbYL>ITaXiepQw89NCojSxj z*z_B9&)c}c5CB8)?G^6PBx=eW=5erD`Pe(T_9d+*?0y>%E2HJ*NY<>G~< zAPZ4d=_B0pf)zZx#4i|oYH~a(x+MU9#20ju$=3qyV+z+D_qEKpg*vk8Wsp(aHvATFoMH1a2RC50BRVLAQ%iJ109J~#ld!ew_E`X zNez;yo?Bm-pPi&00GuaWf#~F4G~J zXTfKtNnLv1KK6|Cm8?OdU6c|NWc^0Dnm@`yPx)2{D_w@M4P8~HPDQ?Bc=fP6Q%M0} zI#EMhrgJ)jRwlo5`{9jTWv|gIP0sk+sE zrCS}0=Te(>7h{1i$x=cooN7k@$8B=NiXXNIZ6OHY#z2T^YE77lVT{tD1CfS4k_~!? zD!?AD21ZV&<9({!^Dk*eTr8*H-ERi3A#Q2-EnO^Gos?iH#>oBKD*jSPv{ z2ZQQMFFbu=eKkU`7!VlosT3VhB^>aG$zd1@nVv|UU7N30%Y?d1nCTG_uzN>)Dw+3y zeQ*gc#cz*u%aoh|<76ld+|$-9-Nkz0uJAW3XLx`3$6%0{!=G0#*N^rOck<;!jPrqq zoC?4I@8CIlciTUIop9l6fwq(+~ad437bqTp*@RepIrg-~g zCut&A7vM=kQBkxE?U*zct?;DLiV{s*8f^pENEFkenr9a%hoi85r2laNRxHLQd()Ft>crqpx0LEfgo(U8| zA^L_Q`4%BZA|awvSrbCw7o_Y2kkP9i39^V9b6nH-BuRtAU4=`8>(6f=3NLN^tFR1&g0mJfi~Mq!bm;e|s6E@RYWT&!=7uiTW#5jV{zCHEC ze|;XA2;Z36gUXry~sg?-3jK|}eZ<9+~1O7&sVtYMc`C6}#ct!SBFNKVc8tBnH7RBa-P z&BL|(w>_Z@s(8JST7=m*TBMe!sQJ`Dvt@d4aBAkd+ROaBD_qSt@nwu@tuckq!%P9= zrYmMk``N;7y;))p7EE-?<4s8g7zlwll!T_s@u+DaB&OmKjB&EfYcg!ihs6uqz|7)j z+maEMB>^OBSQIr#*T_uZ!;2D()FCi9w@z@%*`z2}gepBiu{}>NUwrs*k36?}V{9yy z9$!7X79x6FvVngzUX!LaRmMy7h`a`n|h5rEN8hgeDOuPPXIjm$B2fW@Rp$UVA^hH zKrm)3$_BLT$Ylyds=ytnN$Fm^>xyQPx0#*0(B6!E^{DAgah9Got*0}iLY+7Tse3v% z<5SwhYSH7UA(RvAnc)W}w%ZCoX|;N_&RG4h@L+52qedq;=+|*+PbLQ6_=DHi*B7+F z(uy)gH>|={BnS*3)nGu_$sn1G%r7K}$V7smpG)PVV&$mat;_btj~CREY#h`igi1!! z*~7hVw+e@eB@J$qURHy2xM?qHG3lU&sGVvNMFD@MQ8>tL?j7DMRWroo!ipN9*bJb1 zkY_p3`4A66h_vpIO}Qg>l!C|b;HrXwU}x>(#(Q#R*iyVy8cRnwaFUW+DpSbSfnsL` zx&}QRoTeHLxkEjre*&06{qAmVd+PvsN+Gc9^mJlrd0NI62S&IS#K}dcF%&Y_*2V}k zI7f*z4kpv7#b|W;;pWb}@4gFpn0YXiHN*Oz%s-kW5C)#`1M``%G6tjp^5;c~W+4Je zL^o;{bcY}#T#Ri7bU+gbb!m9>enGi>j!EbEEeHTx95UpJ5yP-Rh!&y|QwpJK)d|Sw_g3~o3BK}TFT61w@Mn3vI?_m z40aJ8^>c8U|2#$L#g(h;@sy|4VQmQkE-Y^(p7IdmpI0zJa8_eN_&foETiE@F5W<_NS_g?tEQ`+!$YdqPMrp# zZ;>vHM21`^Awx?J66-0D&a=9GC;dmk)kBvj$MjB9> zBMy-z2L#e=YY#9e37d~GpZXU?9$R?zuRV!DKE5p?QA)pEoR%j77PJGHj~@j&D=Z6Zj$y;xo*q}F36B&kHndf$sv@v zv*T}`l*AeyU==iy(-q}O<0!&Sp$T<{K>S#ZW_@aE!XPvcCSpMnjgMMw<bp25K| ziK6xD=pbkS_Qo6b>8-nmSxbzAAoqKgmS$&WDVAAD&7`5n5GzgTT9wsp=L@7gim*$O#<^Ov(Iz^T6fxU7x0jc% zOr$kb!QHTXxW`@#F_I-ou8C)88mbKNDTFv5(oo_-K&i?-uHaEMPF3q`c&Mc(evU31 zzv_ojVefG6m`4^erjpdUTzIBC)h+sumzwN|OUny5BD?JqfgcWxnHyXu}mr5DfK)w_G!mxHY zh(uHI#CWrrzjNpQJMX+RHI<6S$pXT`mueXvCr(F~PVe8(0eg#2aBNp9%}^l0J~*sN zJkcfehPp=wn`JZzhemf{i?aS0gHW_6>r}L7>Xcr$L!9Nh6@o+_U`X1*E4%@%NV&Vi z&Upki*l1PQ*$m=qvWTLm-9@?R@iUcGEfx;^WBz~ohws1rqqi0Mjp^Wz;N*|6>sgrP z(d?TOBhoH44w1!zNFFT3RG1`7gkO;Ufv8o2tZ4{(W^rLW8az;J3r>D94IXJG1@{4s z{d5?Cx0-d*n`B#apdfrByDJEGS!>^$0iCV$vj$xT?t{6ObYG zkQ&?*ca8A(h@}l>qozM1eD}ZzDMAv@*xN*#uz1_gWTXrhq0x|NU&z&JP5ULYt`p75 zJ(WzgIuo)vgDK@1;0_{B?d9X#dwLi^0aKZCI)l6S_bxwuC6Um&-9#+1ytELF-l~@I znR9^jG3LF9IAY#}EOJ8-4aNbxFb1QfaE`|(^M%IyAKbWf=^R@PBbE#xD?o5PVaMly zy(QG?vQn`d2u%3=aS@05jNZV{>d2QLFd&{=5|iQ0)_kl9aHvgTQ)5izifA6|zM+}u zx>N+GM|GGw&R>*|x~{jXxk8rBZbOj}n-F`wv6o!lC&S^%WU_g9xc~0E?=3DZk?KcH zF*LX)KUv>TJbQzAJVHlD; zO_VO0)6?oay`nysR@QI((#i0!5%cI=H{ltyG!Z2Pld-diwiZ*Rm;@?;%Y{ql=l|n> z{LcA{3z&^E1t8QmuQ1u`%d;qS@8IaLSSP!TBv8NJXjE7&NfM({<-?u(zxdhBfUm#0 zGW*o!^BWr%*3K;?lF>68le^hnqydC22pLTG$4FhsRNvIZBvrHAB|SNdmvR5#(?api zc#NIN(91^8EMLLW1vMIssL4VD2!M&SSQC?@hvYC8;--*b4+#<0G&OH{@Q^O?-=bV} z#yMAyF*&^LX45ov!Q{`Vs?qGp$42LheP)Sdk8Mdw z|D>yCyW>%7v~m-%-khA{2?Pp(E=Tzzyo^wAzcYwL zV&ju@4<5d=vwdr6<|@0JprL3Os#5+Y<6nU(Bno6zZ?>~p1UvwgOjz+(6&zzzkDfT} z4suKk^c$ZMR~qy1k{;kcFt83B*8!$E2{2nNKu^TuOo#Uxlmk}u%CKt$sf;b40Wd}* zus3A_wS$5atRDFm+UycjzkTc8(^uDn=?JDxJQ2Eh`Rpe*@03bSt5ehhfrO%=dZWxH zbaHc8;3`GoS0~!9)ed)iu|#|>o7?`yJMW)4vpzF3ZMbl?Jz?KZHhUYgJ^KeoAAfR( z07G@TJW=9qr~?vlBmjZI-mD?PhUO|>T%`q4h7%saxI=f_1nCL(6>(YV5SO%^E6=XL z4BX;dRj5LKs}%kPBV-*9F+Ox=Gs{0bV}-B&-dA4x!n368mC77?;#8{MhUl=@%|vAN z2~^C*=pewhV$e8*KIr=ipJ`b(36ijsD^)(Mc_o{BA{wdGw4I;)0&uJ~7!O{lSRfq| zc`VprE167l`Qg@s_0`P80@lADD+`5!+OBI_JPGf+ub?b-N~hr3q%8xr)qJ2ieQ0C1&JVOVsz5>SpWba z07*naR81a(eQOP(U@FN(0Iz^L&}ziZ!7}2uQdy-#q3Ye+J8U`3CQx`ktRYX{*OSfO z&<(L8yE~aup%xC$LPc^~ODWQiBMRe;DQU8PH5qtgi0J{vs~LqGYhv*!^4ayV(V{vM zCRG^}1`9y?#@5DlqG~5O?7BpRqDcUZKy$z4xnYG!fc2(CWs`fX+06dIThD*z&%ZG- zp(LJ^B59!FtYi}d0vY8d1~7m{YO38Rj+<>-6A28$QSYQD)*mDY;lRUODfg=NpKkBp z6rbXBMlv9S%-7B$_I{(+Y4xMAD4U;zBZ*w;@ZrwwWO@N_;uy)41&Nx4s1Z1$Lq@J( zMiPW0T91M~?P^!^5CP65uy-+BxN2;~P(Y2?~{f9sM z*5ce0SeCj1Dia|i$W-!iNt{r)o;1>zzz`v;c=@K-{l}6h<54FhW@;k3x`H3E!A>cH z-6?OLLQcRkW3V`gX|RJQ`)_v#we5qC8jW&73tdS0?3m(Y&By1!XJZEVP^~&XXw+{w z>@`&{>;S_t&c%#efhirzHF!1_g}wO*WkQB#quENeTPl|DuCvTb;zHhW`?5k@t+Wic z1bSZc@LB_)UZV^ZFCa9h%`cXwkz|8?f@@Xc0yGVVYi(_HnKfy=#ZRGE(qk+dO|a&N zxj=IJIOx@0NjM-?A7~aPGR~my=BKv^hM^kkx?@B=87FGW=<{Sid=g5u?%rNzXYUB# z41I@-Mco7C;CXcv#vf%q>yiQ;3teMv?s}D6(Gj4!noH7TL#j7&c~lAa+`;oY|JB=~ zXCoI3Y{k;Zd4;9WtP~Gdm(u^+|MIQNm(EhBv%2kFy}(;~QT1}oSlHF!E)DMtFAd?e z*8tkA>wdu3d+PG)(qam#W#BC(E6#v(WT^8d!D=K_jKN+(rG8o@M2H=nRCXz%!N z9eMoow4Xp3l}hd7n|G^qMp-fVORgc*wmOR57&eEFVP8SQEzuubLINPRhv8~^kZbNq z$U!H^-RQ3Bwp4^xL`bO|-!}9Zap@A_Bl5MAuoW((px?&f0IG0463dV`O*E}afBRvLQA6NEt6gk_ zrWGUE2TMkVwZ=CjThJra%s+dPa@8xoLb=2)F407U*d8wFrfe6qsg=y*n#T0uHRN?l zW8wk1CcK)Mbl};{t?Df`NDxE zel(jxCCUWDzJpQ%>^>Nodw4(h?mIVFjA%0DU&h97$J1wY=OlZ7Mj-rutQJ4b*ip9d z@Zs(lyG(n-^cqCqEKB;*Xi7!XE3mh@ThRkOpS}&7xFt{ zKT|<^?gU>v)*@M`gtlPvFqv;m3#ajcfq&bf^2FBG3Wv)Rj~Y`0uw|TZj|uf+V-C&1 z)f)9uwak8^WP|6rP_2fbyRA%ZQ@Tk|UC>sW_c+8f3v+>M>yF07^6GUTu z_BSO5TSzW69X1=vK#BBq0V0UVoJH;(89@$w?0nX+lF*uNVaOMWv*7f-4?fu0-4%PQ zwkPR$jJ=-}=+&om)ZxKlrP3hTsnMPWcpBlk9(SZ5->MO2)yDy30)$!|Aeh;r zZw(jpk+(pKOmL_HqBT?Jkkkc#SfN!$&-=`0~t9`#{`iuqfymJf-ICyAgg$ywuu&W3 zw`@x(hURSeSuSa}Icg^b`sCz<&2sBO0JEyWyf@4~r~&`c(H`4I6F&hUltbJL9txxh zk73Bf*w6T={L2qMCPRjM|G1^6|3pOa1RkOgb_=}!U=zQqk5s1&s7Hr&pS1~PZ8;ur z$(TPFtrXCXxq+Z~j=nOEW4gtuCaB@WAwo8~p)O98`WG2bM2O6A_i^K9D+#i|-CQXh zO-_aW;A>wbonJnCMD!Tc3}rjEpd6WtB7Aff9sjy~BA2#T1vZT7+snxp-B^u2E zG35kl;Z^Gq3ZuCoQ}QxV3l<$l|Zoy^(b!}fK!bG9S~@D3eAn_o(<2X z+qq+pgHmJ?g(E3=qFk=-?q=vJT7oljZH?7qw zPifE*8>ND7P>p!=1@QjR1I-f9!b*K9N23wh#Trvvhtc8SFgg}%dl%);pMxAR#>W9%D zPAlR)!-284zVzCgufNi)SN`^|{%RtXe&MAT*@q|=jiC|PdS2thKC@N|t_HATA59d-sjz#T%c zRx1%N%Wj_Vh}~3kf9)7zNjTEszA4W}C1z-#q(L{`#N+}9AT-#cP%u3SFHtwS>C2T0 z1Ml?2xIehpYlzL%7LY6`1t$+HV;e$|t`P6jAH>fp%0V?F{s^kY4p2~Spwa3)+}gX| zxReS7Vey%%@tNsyys#?E*5@F1cuBa8N5?#^!|YZ(8Be8{0Mif;)Ps4Z$@xV(sc3Yv zR>|JJy?J(h4OhHc`Gg!#B72LTPeb7lm*F98rBfrO(M7I7dGG+#L#dQJq+@&F#M`_F88For^uO@T`LDnJ+N3X3 zXqN(GzQ6d(|NLM6>))-fpFMy6{QTU!qD{+{qr(jQ)S4M3=`pdT!=9YprjAjCzzi?s+q z7MK|_*P~31_8Gab{Dz75Tz((x!9q~US05l(AAKYMc-YJS=ZQPFH=lm`;M~Rv!-Rhk z1E=WblgHjhJ6K;O_HZY`0YSv_$x08<574xD70MPlbh{{Tq&(fuKknEv0*8I;Vo}B; zJ~v7^**Bsx(UuNs!04l3NB_e@^jj3q%1lqv8+>YcIb5!6{_MSMAv;EDfr0m*fBy3y z{QMnsFG*yyq@&wMMY}R73}wvPL?i`TJtm>Xx7Q}Is^^K2);8Wm$K0~`_-I|xMo z?9|y@=A$os;X(Ha4 z6Z`x4m&$P-a?UWZ)fwPl5&3vNNQqY<5t^njg-h8D$mM#I6f`Z2a~8$0qRTK1_wfJ> zhC7T>7-?bqDA|i%<43>C+85(+NfTY{^%=4y6G=LZwI$oThh)VG1`xjfxy9*lEXW>= z03`6F!|4!Y7nadDA#A16;rRH>gg?TbPV`GS7;Luu)JLZwe+Xw|vhC*0dn+r;mZ|9& z36D4aRQ-PP*c(Mk)W|{R@F0`(dg(~4FPo^8`lgE^Y6t-AD{}*bTG5q$YC#r47!^P2 z00`Sz+z=CXn321q+tCxo)sTvQV?vX+kfPQY^h@w8||R3n>1L-1yCP(H|HZ{54^W1(0)H9s?p&VTx; z%h#@6nO|LSyzRk_uVxb&~ zOah;yir>=q({dU17OkBYaQ2V?E7Hw2PcT{DxeFj1vd!%`^JuhT_|h0vh}2mq+7#Q5lQ12&fwC zmpjcLzx#9Vpwg_>aQG28##DR23q8a7ltC1gEDZM%duZ-X!a>OgWPcLLO8RdvyP(`V zC~tl8@SX3!{k^kG7cO78^6b;kT)Xn@n_tLp?rz<@vw7zp>tk^Lj4#ha(QGLE{0kR; zdGr23mVLznDwF@BenH6>SzXCiKrnkT*SK_XWpeuN*5U2h*yVsv%S)+RPaE#+aZU|k z0M7^+hN+i{0P%%M{3zq!xD~z<&JDAA_xLzT^gKbsG|jF@95~)!h)o??1yl(Kf(Zz{t_%^hl#N|NaR%WGx4Z31vA91SjC*}iV4}t$;OaEo{?SA7 z?>yX`B?-((gi_FHK78N)_O}f_A&lc>_qZ#k?Hk)_e?R-~J0CV!F{La8n!vzA!!FGX zndoit3Y$*1npIX3kSADFhI%Ds0zTvMq~maI^WO@xW{nH+bl9x;&_qyZp@W0$ojZ4bdE>^`_7*B`VPSFY>>0Ex z+i3tzFdji-p@G<)^)X%Zn8=r!X0KBK(Qn3fO&2V0Oa@a-TOkO>U`sRJS63H!b5 z2Fhl$fD3(L5A<4NjM8nk%P83#wo8&@Ox_oJN zWvN&!5DOAz$KOyWol3s)($gQ`+REiw`RG%0wYEJ5HR5!d!$Pg(_|5ujkw!e(A)0 z>r_QqaiEv$Vo`9Q*>A?((MlyF`#cb)II)^Vsx&H9R=VMuR*2ehc_tW4hf5G(I)O-; zY(Sxf^BoLw!7-|vDiDjPXe{!2wejHI*7@^iqXE{C1Xh>lLw+C9T!8T$b%XPD>hcEjFojBr@Z$_2)H+ElFN@uBPC zF&2)YA}|_4fhfwe*Yr%p)~CZuNnbkZPX?G}^EL;8%3k?FzH-F!>||uRQDbLOrpvMK zvt&3X`kR~s;Xw!n&1`4BoBzSX-K{Ua_2%oZzPhlsf@Kbfuo^RH7tb$Udv@c8KYGB# zlV@x=W>LG8S832DKWQ{h{@VtH@}wQxQ$Vpx27f5T6dF7K4yK^2SSe@dbN#J3)43)lI=7e2n2;tCF{a z$g^I@yR&^no(wWQ`F(@wX#xe}^+r)8yH^Ae-c9l_#q-%s#ygXfDK?_Ozz_Q3NFu)v zBVUsef<`+$hw-93c(`-s%-JZju=r6Z%2A0RICTeHVGy1=zik>D8V%1|0ZI#Ah05RwCK?CofX>rNi4-%dV^ z0FhSg_2Nv9j!#3bjII$h&05*hsr6x8=_vfT0rKeMKAM@InwXkq2jW09oSvRaCMLEX zeEh)=-c9-NPd1tqBv(nma z`}%QzoTBl=x9jZ(54K`Id!GQ$H{N`Gi7kN{*)uEc8JkSSuU|d?(MJ!Dj%vCcSSM^gD;MAY;M02jP}@RdBdAnl23uChfM7Jx z8TjwqeelBd=UGoC@J{zJGR}pm(+#OXS8ul1&$(7>`TPkRbz5)C3nIDAL8md^*3u$H z5lgh4rK zHr}omd$nSpjkh$>g5lUdbN0;3Z+>NBY7V_k!8oYUB$MN@Pu?f6vD6-`MF%r%3dU-a znVDqMLlP!7;t64&PmU)-@r7P3#|%+76hV8@?k<`gU2^x%{kgfB zXRker_>xdFfXTCZ({Q{ z+s@wG+X^Pe8Cmzug&`6+ffiA=#~0HPE|m|-)96p(q7%(LdP009j1WW1nXab7$A*Nn1s7#ffx^PBQO1MVNpPrz3LMD=Ca${@ljuQTFi8 z-960pU|<5uL6FOGGx9Km1hU!U_Rika%(#q&QG;ExPuusftA?F&+Ms(J9#5%MzI*Q; z%X$e47B?D4in(PoiURo1ujp0&+Q;G&88w+@jxv{)6>%!WQBPBX5r}BRPANsqKyi*} zO~b2b4g7HMFujax2YsnN4+bLsgsmv+OFM(cz2 z1EvEN7AD#gpPQSC-Hrq7%@n@z@%<~8Hke(1<>hM!|Mkb^+!nbR2mUx7e4*e3=kl^h z-ycgRCJTjIh0<;;kq&q*nVjKUXfaG3(~s+vQNIbZ&b$^Nf=1(J+}cbxciQ!4v*wSD z%ZWy(pdXbfaf}!NE#3y(q+)ixV-sNXob>?3&@o6}TC5eOSoM-Z>Q$sJgCVWSMPlOe zAO^WoXLq;#>)lKE;4llOr>BTM>NLqrN0oZgdX~`usa!*Z(?ue|<(1jn_wKWynm@>P zH-RQuWdKYKgWfPK0)$gM+}ytO)J9Z0O{wNndyKR<00QT6FP%zw>C1zIquss3F<(Ms zHtS&ZHUGf8tT?eMsrfL^@QCA&g{I_o^DzJp9g6^wntByNp^vSH)m|r~!2u;2hZ{kf zI1pZV7(0_N@?N;ZGzvHERqAABB@s;Y%C$nLRfq(7)oK}+4{MBZ&amGV^u%m-ED^f? z%2P~17qiWO`cLt`&|mf?wSk=myPsCv=J?nUzS5=Jo9qmdLhIjR$6^enTWJUmo@i*tej&zjsh5 zlxJrWyfHOB8IMPsY);O&P4TU~CP4+61bj>`Fg;gWTV0%;namv(BN4W0WBBcBD@zPd zX~=*zhCCwdqF5;6(?paDQ`|U}hfQ^u>=%#*>ZycNUBGnr{rlVOQAG%mDJ42ae9eCj z$82;qaZ6}s>wC;IdK}q|86{>uA!{KNiX3%}NXF!Zu%O=7JuAYnq2lFS(?V*544I15 zpIo4B=?>^Cmh(;FWMD+Hw5sPXEk)BwEocyAyw={{+4=52e0O)Nw*5(Dytx*h zOiVZYkz`_FeuWK7&uwhXEUoY7dLQ1&-g}TKL7@Kb^6JV9ue`W^;WE0N6l8%!^Qn zj}bv7lR13;`DZR&IQPB1_iEK*EH)_tz&}xkIvwC~L9JOG7yJMKAOJ~3K~#oA zZ)6Z=z#JwsV!YnTe*8(RbcDZ#VJ5L5?178Ihk`!2@$vutfBwzEb}2PKdFiG3$@SRc zQwuM=_58-w^Dq9+^@a1(p46b143@&d1{59~JpanI^~>wi^W%%l6K6N(HZCm9&!xl6 zs>ebTlj+s9wX^H%Y)&E=a1pV|!I)=xcH#>!T}{N${S9L?I7O@gePW(QA`AVoiH~kR zyuZ1RH9j?wdhyvyu>jjFWUx#`#J_T=i3o>4I1*1yuy`t8%$Cbpe3q_AqZ|3sWH(EQ z*_jkIrWA5eECj0Uo1(0nR6Y~+ak#JD$hTW1TZxI21PRu}rzTtxB>)>66I;tDimqW; zgaPFa6-J3Rh~iX*sf~W+gZ3KFj3}+AXq*(;!)OaL45o5NI-aKwBf}iTb zp+u|I-QC?s2C{S{l?+$Q8Fr5$r>ixE*5J*jIZWFH*<%*}Ik};R731;criVF$Kie$aCH6oaPPfp(yvn>0W8X(JXDUs!AaX?6 z%cOVbP=iif(Zj#uYSE2GUHlP=pfK_Ai1)cbZ$la?5jcVb$1s;W8%`8%-hKP;{-K)9 zp_O=yXIMqNxVZRl{^*Y`J@u3?9$dIEvGHPhV#DvB?Oy-N#ozh2FJJxAxzNJc^abC> ztEu>Urya{JZ_Iq@D{qnvP!(xZ&xpSV15lkN?(_6&svZ#awA%d*k?vn-| z)`jsg4CWT5$Fn(6)oYE}+3D4l#imy8*M(op6+<_wokm-1|FpM< z69n0Gs*e$S10+p$tv+o4!&J;2wc8ILJgku@*A^!Nt88Mr8hewOR5{KG4Q=F$8Fv5S zF744!4bKiwK>uO@HS$E`OcluH76%)J=qBVkI#jQ{!+lC%s!4a*h!0)Esnx<0PPs#r z%4EjCY$7op>3iP&?vL-hf1_I$cZvO(cnOEDz4ZJy{`B_~3%&B#UU^U%#0K8+vG`Kt z>Ko@13(>K-&p+jhE;2v99hobA?b~0v_Tn|1f>sy8iq+dJT-UgRDy_S8s*n3?T?i)9 z6QQ@he0_N(J?3e8`n+O}C~*oRA&`vE27;3}@9u7GAK-hBg~KmAcV&4Y)u`_GI#n8I zjUM4cZRVprG+8$e4l33CN-0CEpHl|bHsOuZ?TMT!ArC0*NSjQ7+`n|bsZTrE4zyHhs>+X$Tl86K&q3h{)y<>@q@!$W$FMjLK zpUss2+h70ve}3=Ar&$6tiGK`vij7t_-`v{DesuHQzIXR)|K_>h{r#6oZOWPxFB9Wf zhOAx^#CE8?jvwqN?blx*6;Mq6o?V;!`tQFwH4!GKueF~bIAj8RFL$|V&i8Y zeN66jMB~h4`qfu1$6~cweV1`7WmsX3vkVQwbtoR43=t^qY2^z$jaHeA%!Vu;*7E{K z*x;Z0l9$4LbU|8HOG3<`)^uS!mY$nmNTy=Mz0xIm!c1NK>hP7h3S5xC`eoQPY8`hB zBzaQQkupux*X|J0>Ka2WiXrI?Zc4U&D zXEGTqwbhknl0c9Sop@yA4G+ltk!q3g#5e`>zgQpu2GMC1jvzQyf6a3)`Zgp2siTuq z1tVS2^JFr`QnBS#nrkyek=sVXG;DyZr4csL<_UB=O4YJ_85OGYUE_vi zpsun0;oA;=j2;m+i5y`J#0iPNr8}q(?_Cu_heoY5c#et~jr)V)bi0)+v%_x8pYr${ zhne^P;U5C^>fFYeFq>TjL)fE<@Zc+NJ~J8X{pbh3`0n2n7FQN0rzc~vD8BAO7MJ*L z_VD1TOJ|=szfjNbXX;rZs0rj^(I^RH#6b>70qca+5b8%jYn;I3Q}=}z*LL zKx7?exzNR1NHb3&5}Waqlka_c>$$5JuWg*cEpYza{0sSwfBxBndLtKM`KRrm>=3L9 zRHiSPm`cTG2Hk^xt57OG^hY+lKH}JnPk2Nk#@KCy$z#Y2OAcJYEp*`n3nZg4`lq?Q z%>uCyu}I`v!L$xV;}Igd8SzS@N@(!3TqEK_dO#_eT+3CRj$wW7C*Qn*K~10ipp4pi`k02uEFP9~JxPFxoQ8b*7njtm`FMdeE#B zJcH=qDiVnHYO$cq~c=*okELR%f@6`EX@z>FoNs+4L5;X;s44BC+84 z^J^cxpWfRq_=AbQ6o%DG&1R)D5MzxBJ~l-2Z=jqL@O_4-roBJI`u|5&(>I7x5=}qY z-0k+!Dk4urxlpY+8;NIn8#igAR;tztIK7mcNwzDL!Q&isCGQOF*I|W@JRn>R?1wZY zVJ|(Q4%B1nd)`wioT0r@q1`c@TWodTZZ@icI1|M|QyR#2Xc6@sZ}yTTWPT$+@`+DhgEEt?1B`=}fgoRB_u|s7njDCqn zCZ{H5=jXXWGqFI`%46672%wBQIsLT*u$3`ntpAEM^vvBNE8t2D5{>LZL#SGP{m( zEG*1@^x+*gF}D|}L($882w9=dQmI6SEEXUV!Fu7s#zE$tZns9-MGfO9pNee%Qf6@2 z*A=(?#63=k9hF#DNB^i}avfdsRJS(=!zrf^sY2027=rAfhd&3E52VTs0=2+_EVSxG2^$w4Mt2*<|coKJy-XSwDC6{KlDe%0G90aXXvMynBz`(R@)L(=Lm~bJUFqI!0J$ubxfC zCl;Tb`RjlDaiy>q48#E6$sO8HV+?ykWD1($z*yh_lX^}zGmZ9_%2gUZKQoa%+VO|u ziWkSU@Oi=!+e*bcTi68w>Zu-y8JK{uhEcu{Z=%GsuVl1odx1b|4W(q|1}N5}W1do> z(rAjKam3C{Pl#$1#G_4+P4@~oUJM4K%+BDK;}?mUHqNcT|NbZCYB>_s`Xxtj>{w;O zOhL+}V!1zrIlGvzZ>2xaG1`|3Zs&t!y=Kkd>9K4yy@s zL`H}h^bdcV+~)GbiqBoMAVT_xA1Z)L6f(SHKg?BQj{Uu5`{bAB&dvoc?=LWr%Yi2 z4n1XR+X0{|9Q*>_)jEQdziPP-gP3!E0RR!JFTZ$k`*8a&|LO*@aeh4YX1_8B7*DL$ zE1RF(d2sXgy_Gf6Jfxeg&h_Uml-s@cKi*?aUNky0)+0HQlrzXd6ovfJP%uiA$oZGA zJ@@p++aKJj;^r9Jwny)d)}5hgnjxTM+W!mv{9-a)xq!EH7_ z&`QsEGQomvJfw7tK$FZtI?zG*&cjF9e6d`aotNzOkZha}P=$)$U+;L_@r1 z^dxfVwc7bcgE1|D4G*A(0)nArt2I__wmd{6$0PoDG?+|<*@`k2_mR>l7WKx$9x|#1 zeJoBvRmr)}0N&##!cLSdEeTgkv5<@xnIL#aRTwNZ&3O0tqB}Xh=4f6BQrmc!^xI?7Lz;l$%UcPjRfdrngL?QtWXftbYV6_qJfdY`A@+A&!0A-SlGERIXMCG058vF;h z5hzY{GM#Sz_kNxfP)F<~q?VIVogh3IT0E_f5YBaEF!96rT(OudP!6T@?!tX`3!AgYnlz(@-RlD%GVe=pb3f+c31xCZwsQx_VW6<)m0 z9o$^bmJpFSCeXKmM?Lx&$?3#2hHChKLp{=1;x;wF=UJMc`SWkRb?wrWr5mjjXIcWykq`QiOR+dDBiJ(W%`&ZORa;pz3obhnZ1c8dcKnWP;Sip6*crbyVioJ@GeRkR$PbWnbeNS$nHpzPwDfqA zy+kn5Fv4YEYozUplwKz6%+i>u235mhXtI`=9gZnJtcDvt9If3>jYU8_NTMAaX7}%J zHk$~2_7x0|rAl(&kKw3iQum|O`}wn8XXnE$7rWpk0za{bH_`S8?lk}EU~dO~_4 zj>#d#UT#f^9kIQ>PStT5*?WW_VV#hNy`5aWV!kx>#*pPequF5Ko7`IPQkA8AAyS?r ztnpb%DGnBI}}eXFGg&GBvfHG1@a z@Yh4iu?LU6&>>9z|6-d9|^Y>B4{zQ6mwO04M^Zv(MdppeZP0mb2laYnR z^s6skTwRED8;65#acrz10SR!h9A-&!_OM#t%N}04`qahqtCiYbsYdpdj#!ohdFN%z zULx~Nf;nT#fou2m2wejw`Gci$jjcj1UR-At3AxaSIOA5p$Go>}8R1mg7t;z$d%(b0 zGtV;5DTo$YBh^4_q+LgDAQ1hmU}xgHtH3ouZ2iB zh9!@hY4oFKjFM#9J=Soe8xfgq5ZQ|NoC0wIt;|kcTAOPW4+fnYYZE(jV37s<)@8QMcVAzxLpxSAN48q;_1R3Q(!U%X%+e zS^M_C`|{*ecdVPmL?4g@iYS-JWFRvAlMinG?3Xtx^=d2?Pfn);(ZKT3^vl;SE>A@o zC4#GS15aH!o$zG~>(SO&^xnOlbTskBm#@#JBbCx#qft-!)SFr{45`5E}N}Xv=cgS z;)+{cU1oqqz8zMn8#af%4GESija;@YNOd^C-1({aew@8e1yBM)2xIuPy}fgENInxM zu!qnY-o=xU0kMa*N_k~@d0}zMCRdRA93Cyi#Fd4$E`l2tIDB8fr6-LdT&6#k9MjX{ zb}93d3g6x_%A_|b8?m9G-Q0BYy@-~a5t?pPEo-!~HyI_khQZMOa=yu=%5kEmA^91cyzmQ{f zT$3f>Oj+p_gV^wCKM+;qX{ss(4HJ{xwKiELG|3JSsRP?V&D4Mne+qWB%rRY2-#`h4 zJev*Wc?=oCpc*%$aHAJZVrV=~jd<^ZwMva`B)A3i{0ARr&#d+bq;PAaF=RHXIci6v z)-2=;vM?YXak&9DgzK~aW4QY4!T8M(U|by>?6Y^IhP;~OU<9aDJACLCqg$poYoU<; z>XnOAX`G_sKMpOm$OS9F3zO$tR~*oXwcQl4|{@M6Gp$k?`!oLMokNt=qY^i7&r)d1E2ouI$#T`wW7NBZA@3#Gn_y^~pi6 z9eU}RtIu3m?9?;m${r#>20XU0Y$*Q8fHJxVXF4?=6nvCJ3LTKKb@yRuYd=CTO*rD( zDvj%!!EZVnvzU-3dQ=nQVnK>A4CV z08~Qfy8czEr{g%i>`lM1jD$SZ?93$t3l^}B9I}WynH{Ct#q!bgOk#1FC=vzw!+!jy zZ@G_kj$9tGhq2HI=|)}dhodDZkX0+>0FeEu?uL$#|D3o-RSbPO#-jfKSrPmp_6$iy zqvu!WqoGbdzhy4;QK=q?JN;lYTdlV76S;{lE0t0lI3o1_xx>LfYK0Z>8(%!W1BF5Q zj8GXQD9=c>(ySD^%{mT7g7wkpsd((GUw!SXzxP5sPOx{;?``>dp>%Y$)lB~VcYkr` z0W3;nXmojHB|Vi61^p}Y6JLGpnHR4tcsl#J{g0cKU0<(4{D;pUy}fmKWa_q5ZFK$CWx$zh*(1oHK=Da9& ze}9LSIoygwNwT3)gb5m0Q*Jrl=UF-)8G$j6Y%&diw)YYVGc`4i_D0rNdjuQRQ#Bh) z;obd>o${Gqe4M?7xX=Eu?qeVJYU5x(1HwT+L_(KZZ>UE>F5HK^wb!k(Qh$7$#I)o~ zG_8$_#Tpzi@q=-$`3zB(7aD@M#}Kh^b|FdhqFBC7Lr%ZSr(AvG~Xh~5NWwr!9< z7K(*@fu)7XS6;a2^ORXr40S+kMs30VAVIwN_I^=YeH`Oc1-KuhB9CwVE1jrSfDIg| z?M@rsZWZ(Ga*-%nY#$(j&f$-AGWd-@eD#Z8y5#X4_4`C$4}!k&>8XvoxA(vIy|)X+ zI{GahkIyeHGIho@!Te14E3aMt#+RR4o$=L>!tb;)P_EhtYOpEW$HUqqQUFm(xw&Ao0+2ysRwoCvWphma;ySC+bjt>RTL+ zux4t9MZ$Jh<1S=?AkiCAKQO0$P)WDbymkA|&)$CL=AGM&^j^Mtc_!?s9c^Rai??OC zqCSJac=wa-{Uf72ptZzj)(Sv5(UxJ8e)}H>&u_nfd`HBNdD-(oo0W10-){rM8$-s! zrn|^A8J>Iz!Q^%EEzHjR@gKeQ?6tYRf4}2F8~eh^)!l6Wul~zFZtdDCs;^(!yGaQ*T|tC(Ta zG^C{966$IDs0l)})VZ23yb~-Fs1EuC(l9ak5snbkhk@K^5>LkK=9Pp&dmYkmF=Zv# zbvXR-?JlTLiEQMyNeWuY^L|J|VT3$w!y_b#&!5d^$zDx=vN%S;Gvo-s#vzG?6$PSb zG}akG5UdFp)+E0vH0Wg;S8_a%g2DjPfP*HWMA*%h6nX~Osrzyo>~w(zt3eek3AlUz zehVxs&4^JYRAGccXMl3Hq#~2<`uZ7m!y}->$b6^{)#O{k#@zHT!utztXm0vJAYo@_^+U^Ce9T*8l$RzwzqTv&j-uublt@AOJ~3K~#wM{`T$VauiE(Zr0lS$)PFfjQx*9-eoop|uR%D`bbs7huYW z(zWugd(V|N1dZSs3y?y4Q;&=-A+XmcRCZ};neiWLKqGI_A|LqzB(cD%Fm2sHNvGpD zjqD9(Kpv}h3I)Q*MFS4~a?q$ZL8-2=nFrmoFh5HoK~T$-bdpFz+;E^6r>H!wEc#_% z_!5II7M+N(I3R8Nh{i<#k3ew0W=8pRql_zA?M6U6tGm{1()p&zc~t0v0vXyTXD46% z`d7d5Z~t`u%9X8lx$3D*P5X=G`<+e&LBadPX0%%VcYkr4%tz3h1PGu}uEF72BzXS+ zABGlVSqxkD>S9aJB1s73t#BU^xY;Q(gG7I#MG}ePaq#pv)))TQ?|kjcZ(I!cvtyoe zJdtYk(*MtY{ptJf-DDp`q#nyh6B83lE2}ee^Jqo*1QJg~0#`QH|NNVO_#gh{k6yTT zh0Xfz+`gNhOr2d{{OVh;o|%bv3tMCDA|q8e$Rs47aHw{vZP`q^0G7G~Z>C(1PfWxW zl#2FdCR%R^Pxww+b=LXf(S$kG`35{aqhhT??V>nPeMagQR)fHGv=d=sJns-Lz3lT< z34zMy@V&9EMT~Xrl2}%#`!?7tXSQZo1fc;5pge|cxU{@9kse232y|YdB9GF=pzQU- zh{mq->r@>fAmj3ILg(1LGaZ7w_Esoj0yU!)`r{n((iD z0H#_YMI-L6H4$pC56y%{q`hf|<1y#{k(Dk)=oOZB`1)tgOn>J)fAHVgd+#r~uIt{j zD|F@9)j6UY86XLQ6mybfMN6{QldSY+-t%ZY^NZ(~S!?X|e)E6e8P8gtnYCs;+b=li zNmimrQOubHK!PMdQ{m(yt;P~jViVwAVcQls9SHoIogDO;1qi6)GayGn6#TC@% zcHXO4J_tkW7;zRpr3&X6)OD_?1gwVoz^2hnhq^(@jt7um_HEh| zMqxHRjb|Z#^#Q`RfU(lYSWDc9a7lNWc?koCuWQv%W>-gNZ*R}+>?rFq`J359vhX2D zkl@1rN3U&|v_a9EiDkb5|9hV=Y18M#OU>_VT`C zqvI2^$BKnSGTj-8bks0AlN3Wc)eaiwlT{dwH>qR-9L zZri7|j75u7HX14oo;5`y>+yucp-r3mPM$nX04Wwj65@D)5^eUP>G2xb@1?}LC*BE41k7?(uN#^>MXo*-_U$=3=L=WR;z4+ z*qC3zZ3^O+-347$0h`_&l*biCX}PYO1~|Ow-cxS=%XBNBT{`^M>!YX6+;jJXU;4_I zN49RdW$#VnQ)B%d(Q~6`S@*}1Lom;3&G+`P(+3Z~-P3({u$46heYpZL)}$Nop|uJ` zhk_A=4J=WT%cMt?NJzp0mPIMv+ggr@KB+@`N$;4gkEaD)`nSGuPdXKP^s!e)&&Mmi zj;EhFFuZx->wox#I3Xn{R(lctFa|xLAcFM5^z6dS3_cZvunZ|SVr#ivX83!$I#(?0 z%y+xL^}y`HYljaXeDkfTOP7MtzHnQAC=9XS)Hg}mAUY;u@o1V=)xf}@9Cg@wsxS+R z+(PpR;ZD^0luiy3eP?k*d(}fEZ5}Jxh`Q+!&1W|bA^@$%fu~iw=lY}D>L;1e(k(2_ zl$VRah%cImP$0?{z{wc6&9U&A5o>`dZ~+L}K)K3*Cr?*zIudKiE)kfK18Qj!WuvnZ zU1?0NYuCp3+@R=?wmL}xINoSPee?uFNOZXX&M z?$d%n;-cylrr)^a7WS|$e<&!mFURq*S~SU=ML0egL>8nQV1>!%s#v3H{~WS2u<>~7 z{SWPq#C^a1<-wzs;>_IKKmWJiwzaq4ch7BM!qKX|yy4?8!Wd+L!-rF;`B~0Ho+AJ? zPm!lE`|Rx-=;`aJVsTJmeH-cN?6_s?=6weao;Zs>{w+^9nN0RXL!J10vzCBjgoDwZ z?s#WMr>2&ziwd-eoif(VEBQPyP~)U0uuMX)5Y^fMN--DiT5S?$@gEH~`7vx#BRQnS zhykUVk%X`i%cX2~v0Tn4lTl9d24tv*=Wa%{WTyfk$+o^}1C)^gE7Wzy-T z`DrhKo0OARJ+fNU(;GRVR^!M0kPN!eNX#o(2bpcJJOz{FPgF3`M=gi3@L4^HbQq#A2yK zZ=HGSnS+Z0=CqrGoraMR`y z2pmfz8i0WZ4w9Knx}ysO_Tu7`3I=u!k9_YNU;Uqc^l!fP;H@~JElwO?m^)LgqRA_P z;aHn@b#^D>aYs5q6&VZYG<715&$II4L{aoF6mA%<2H5O1$Ij78>CxD*l!^;24D-yH zVtzaA5Gr8Pt{99^kJ;I2^ydHpC2Jkim;;rk?E#M*I8NAC#0LV;X0%#`HXuiI6!D}j=d16nS1GSB!T$v@!x}GZ^ zZv)&YV2{6fxaaEj)qrpTBj@}v&R9z( z78e($Cnr%}%r4ADQ?cIu9+cp7mnShR!f-DYk0c_4gB_i>Z`=C({)77upPnvGCo{eA zNGCebj!stQgjfduRyifIRN{Pe&R5QIiU7Qx4iUyq`Hz(9!BTA(#&l#vr)a+-FjfVRA^zdsZbA~MxB zEl8$@I^w{RFAu4pVazcl~&6VL40 zF*rQb&W@DUbZREaecI*6`%s%z7(2ZFKqP|R9J?R1U+~@K8lGV4Ai!&tH1l%HfLDX8 z|G+Tn3qqx~?7nGJgp(2Do~NF8{@G_8TkUwg@J_xWti+l?Z+&?3QUZMX6lXOpqHjwV^qJNapz1!<8`>2D7=%K!EL1 z$O#dNxX61otk!5Gofh_U-}=!Ucq?9r?`PNq5*jX7m9mf*!7Y_eWjfl%E-kRtCOE?1 zpp09q({#AuZI<_0e@oWgU`bPv=LqjIPC~L|XeKvsEQmNXFHiK@{{DXUx|>g#17?cp z6u!b_fMr%r%xS%a^JsA8GYtzgmf7IHfZYnz^xOOi5Jaaz1{tm@+m)%}%H#Y;>rB@FfUnu2+;UL*zT*4KfZ!Vkd?e4jGu#4r}MYJee!p|duCxik34{sZi0H_buC#zC3MkkZM}#n zeSOduP$?9Sw)ghNl1Xe5G-{X?)>g_h6ZuQ$@7=lefBknq{5M~E(CaC#)bc|^HkGEY zUdU$4)d~Tl7Z=gsuVP!KY0=V2jT3@_=d@T?d!#Rs#*qz5RB7CDu+ivfgX)JvA>2z?#|gx!*ue~6?l` zh8~|;3*K2VSXltQF$!r-i4AKSnH>Qkk{N1Xg!hj2j`mF2NU!dbxHggve#yi|Lk$Wk z^criq0z^UcU>U76N^IP4rMns^9cwuRbdIVN8@zgURln85VO1-w@k(3D7l~e+Ts(I2 zWN&|eAmFQHOUI9$2>ARx9i5(u**4G0_IvmI>gCst967lf?Uz=(J-{PA0d!+-ufr6_Nb*K!8GKgnXtwjkC0uma!?liYEo z^A;|LD2&kTu(n5^(2Y9&$7IbDE>$^sE1g@KMs`J%*tv7(h4W|6ynWO^pMB%y z{ei{&s(1CluRS!lW9L8pZsXOktg%zUV2Ca2XxVol~_DdMt z=nxxTQXV1|2Scd1F*p<88L+Et8w>8Zv1^QA)K6`|b3rZv;qK3>STl&f=7GnX%1B2v@oI5RgtH8Wj-buYnS@y!Z5tP#m-lILds8khyUHoi%~Y$8l?B6oe;&aR*LI`g4SI2)n{gAFquL;M7VayPwnJn*+CY{N48^+Lu0o#oXs9m7YAc- z)Cn07^4x7KT*2=K`)KCe2;UnEy_o~a#C80%`I0JVJ@haW+F@K-Ce&V6S1;C1PLXbT zc<94NpA&mH|F?Mu;?CX|7>gdH92KqAeDY6#Zq&Sylc~@$%@Yja5`>z$3In3>CaSDK zv2O4W&Wp%c%ayAr=4;{O$HxBgAAWV;{Zki5&n`|b_V{9lPfsRStDRB*_^Ht^e*XuZ z|4V-_;hnp-g$R~PY3ilm>P93hM^J5msy?A1_DgXkyLS`J z>Ab+14A-mJ3Sgw%IPuNEaOT(M%|k!<;dc+eed6TtGsGFa{q~z;5m+lF8dTc_m1$s= z#BWJd!US}5cI4rha|@Twp3lu@TWWy|=d$Hmxh3MSMSWYgZ$+C2C&YYg0f~H`#mzzi z<+jFI9Z*5da^aXj0p)Yo>a;$9m|9IK>W3W51VtzW@HC_V*ib3W0`01p_gCK-zJVkgZa-IEULsIGj0uVdngWpB8iZ zh%Zy?*pe&P=H@T696x*L^zC-zQ)F0DM?a{@WGr@*XrT-_3WTmSjED%o#$Q=bhoAq;Ev`MbK? zA4uKV+tVxIwp7Mr8V=TYUAfnA`^r6DWWd;2$aHi}ynW*0+0nTY-lyTYdOVhH4}>|l zsX8udCvCj6;m}+2Argyb1A`)szQ9Ivtcl`~cm4(jwzjvY&72s)%w|FJ48;w_;!#Mm zd;o1_C@( zhbtD2#LIz*H<8E?+99`q|92@C=)lB%zSf#dbyfoD@%huKiMf-n?CaTvS7rB)zW1G- zTeke-m%n`JrI(+6_US??`-30+F+P;|5{szGR_+ESHPtnj!cFkB8v^x4FFsIZMshU9 zVqW!d(6@8vNV&8e4A{OC_peu&WncHi>y4+99KDXIU)~>?^JP}!gOx}mUz!^38Eo(9 zW}%K2v|L`E7@wG%oxyYzaTlctXNAi2h^jFbyd1*#1U{BU1e28UV=h6HjB

;) zrK9W7`(pRk8;<6ipZ@oTLvPIpenM4t8dyr97-P#?8yJ?5n>owEGqQOo9!IwUk=2;m zbn=M`i3KKGW%D>V>o&_yo1{>feU38nfbdrZ31^$w1POPg6ONo%0xaHx1oV-aIyZ#; zJhi_@HsjPL=t~0~ZEqcWa%SpMk`3K>deuKLH-GBbkt5qq z-9FMr_|f1!cYm(0zh}=aH$C>);D8ShJ&yZrXPQ&;L3_Gm-8mmn}>S$ZtvWC=hlaO)j*+`_tut!;rNozcYbo}?bqL2 zUdVB(1sk%%Lj&LW?zjKLfB4`2?T>yK^m~8u&p-LU{-6K*@X@0f;@wE$ywS;PzSMYu z^hZj(N4F)?IPCfWg}9nla)q<|4^5sKuX#fiZ=|x~FXo7%mnD|l)}1?oTElxWQ$KfZ z^z@n2`9cn*X`q#Z%~8IKJR53B=CIP-PwGZF!UQ$Y&bBjU;wqM{Ng^B5DZe7}nB0Yq zqdtU_LR*S0OimX;ULcQap)1B=v2AzPaAM(IyYD{9tNbKh!Ez=NVR6oqK>9gx@8(mN zXM=ohAnt8^Sfd9%HO+t;11hVA77vzel~S&+yPKeUHr70CWZ*Ss6?rj=QKcV=U38gg z06t&^=|pm27Jr9Alsy|3rB|k@IVsFMvn??JBX>VwgJ59u=w_c6)-I?@VjD>jLI539 z1TC@N-kU>S!OB=Oth&1UmQ4j-ACoInIaLAtnv@Qhy6qSjM{tIP0K z@WH&%1|Y^}27N0|?tF4KxKLUWw<<<&Z^Ae226z;nA&qHad&l?~r-icr;siI1xuLq$ z6(mtHS+-(pXFGqowbpYt1`-+xT}4EQe5u5&p-ZO=)S{9$QrbZ1t!Y!zq+vG1l|&`m z_SEgV!hXV;+cK$e1oP%A$>SO5Q}06P!b6VckL&G(_!@N~QBT&fG1A>q*KKb$0+N zir`tn^vEWKdZn-jXSJ5Y)x>61&l;TXNMpXH`y2%pH6EaOajS!M2q8L_uC}TQZ%#{r26vca=&-RL7B!0tq@e`T&S? zrTf>tY7}H&dHMAY@E$y29KbIM;j-AUA)+JbC;Kpfk@uxjNeW{F?SAuwXx zl_mf=?27S493?||EzOYBwDloj8T!k#GEIKW2Q%%QSbVxzDzXbB@+>+)iGl!r(K2k` zwDwlaWlGV#W`DWnhQUr9`8;>~*!wim`TXfRDzAZGe`nHKES-HDS^S z0H6aQ#VVOh_!=h6t3;>n=~H+XTW`~NMpLOt8W{8>z~P3NXOIb)0}PonWeLp2hPkce z^oDy+j2L+nG{vjRvr?=Q7LP5H5`U-w$Rz-=-0lTeAD|1>U=e{jM;mxlglgIJywC*! z4FCx6$vxG-Q1Q;>t8W}UeCgO3Ph|zs0;mJv_(L^-UJVnSWSldi=_CEI4{O{F_^?K= zwcp^F8eAtnQt|7`Y6AVclw&Lxb@qj$#}4h=mtV{-t$1e&Ev03IBMekqHVyRNvU`^_ zVKw|K3va&h*4cAsiL8j@H)kV>{=t0xt&Sk^X;WA%ID3l=TP>Ps zr_v2x_3~8}fA}BB2<}fMT5^q7`&}Ozw?FzeRcMLO6X&5ZszFAFU_1kzf`VV zF0JI{Sj8~mCFZ&9wp;r9I%Ny8x;lF9>}#*RHa9n)N@W5el%|r&L2uSpHnylx#fr6h z24ID?)Imw=3K`hxAn+b*;N|6Fp}d$Y&li`oXlEG#c2AA@k{MlT3)W`rM9S}brAkO9 z(GIoNjY#7Yoi6hxud^%cWBn*uHi0Mv2qoMKWSM<$H)R_Qzc(Cu+dwMnxXI_hyGB!s z8c((EsU%Zz4ElvR*FykqYVt5{77Fo)%NRm*D{j7o9D!sLwadYwiqxbUhO2NOhH3Ib z-TS(SySoONI^2~k1KHdk4PlK2>I!HOE&!R;Wa6% zR4q-+FV4*^9X@#I@WI#FcU9ZxvI!&r03ZNKL_tUcSbLQ4<>q(+x+z?3+MZnnFD z=kBNVe?7E*s3H^iNHOgx9=68Wc&I8B&D77avthU3e4))>4fhNBs(PKp~z z{?vEU5L|dSmS<{#X@Ar| zQGDgOef?WE4eZ=XoG3w5GYOE4^4qtt-Sz#$0gQWDB{d+Eb_!@+DOQ_(taXJ4y5R=H z#-rJw5BV*`YnEzNh$l~-9X;)M(6 z_wU=6%N5&F?F4-h?qcdj5N3Y}z6kXLi{PZR)u<*d2D{X9RfP19y)nTge7;OaXDUhP z9x#?26AzZiD_N)s7!C?E9on{#y|*pR|1t`f`@ZWfouF!PTddox)*2749t?Mr z3SkGDYYm~sSQpoQ;p*2v)n7M&ReTcdMJm&XNv$QwXF7E}P`yro0rn)gxTaF!r}0C~ zAtGT8bL5B#p|@t*>tj8Qyq!!X@I*4M-k1iPS2sDD7nA(N9H0roP((RKW_ zbpU0KN^5Bi662M=OkGQrTp>SSSYF{QY|tL1dUa`WW_)}!m*aeFzbD$h80(&0jh{bx z>5XSzD$d9ukt%5(pIifHV&it9J_FMB=$dZ6&rjj9xD_qqPZmFJR5XT+nEpgVgd6UU z^0;W!WLNJ~!*w64C(YJUG2_LEmFB09y!hhikqg=7@JuaUkMt+feXYUdVs44e#M|%K zl}-~E)q|J#3opEI9M(wT!UjM^1vP3s1%lg@rxh2fGPsB+ z`*j9IHS-^xj%6U245FsMRfDXD8z`yg8!Z`(3KG$G(KcZ@VlRgP`@F=mV_2`-V22Ti zOyN+lSjuyN6p%*ukj7Y$q5tUX>m?SCRNa7|CSHXb5z#k4m>&t>HrE6*;4Vj2nKW)_ zqFN=H3kKu~s8p%sOO+X~Z+>z9T)w!FKJ)k@i^0gO zH#$G-dE<%Kj_*6j&c1^kDpuXDHTtG>Eh<5B{ytQ4pk*DA88t`c+JT;~BzjGob*)}D zFLFD&|eArIOXBNcQ3^Azm=!BTCsi(>Jq!H`t0sw^4up$S9sW~-c? zDmh@oQi*!KN~rfG+&XPIMfC_B!$F_C9YpmS!hu&Zyhy4mOjAJf84LlNtR)~cR*?wr zx@5lq9vTAwmZBDa81$opCik~4^Jjj!G0|J15f)|`8fwfKLLg=Z_wN=CzJg}H$EYzY zv1pi3AM9EI!|+-hk%_CzuYrO7VkKABhNlWezNTQl^eO6%tOdhkdQqshM2NMAFLIHH zzYust#O4+#Q)sUtzf*R;G>6Xno_lW&Mla_)XU40GbHySiF?h4a6RG~bZ9QE(h-D&A z#T8Gv=AT`Sj!%^iJpRI^w@)q?D{GdPs+T0Jz6zM$qo?nDM7tn6P(m0GJ4F}|FoNK? zd1vc_pV$oPCz}FxAK{qDb(s8ov}zfF|79r3)RG&r>*QI zsHk#CgwAAczwOqJj&`u<{Q2{b{`R-Wj~~N3QyCy-<(gs|6Genv#m~bx7w$lnE8OUd; z)asX2Igj6M2=%7d)0RoF)ALI>%BMAiVL|A*{!fvwYPYFtZ=m;qxC?DJGcigo*aA)%1{^_Os@nDVPLtDCf zdb|6F2;GC|7>>lNM0D2KSFMXJvB*m0^zn+?j)O+83cZ9>i`Gx7H zo_^xM!Pj+QuZXdDDNVCdX&$319!fPD05Q#Gm5mXQfP!^Ov6MrfN?=4>0HEF3#i{A( z^9u`8C|%kz?UGXjLh?4p4#kNAt`^)HtXLJN(lr5)Ju=sZhK5s#m`H=_z9!i%mJ4_z zA}DxTVBKttF|gM1>%4Hy`=92|4T#=!-wT&U4qsSWz&F$HmGdQ{l#T_!%|mkQyWu!= zIndqR#mSTCY@~t(d)dKahbEibv2$yCM{0H^8%wg5X6uELv8Yt#UVZ*sU;m>oeq->!z6%rMODmo^F&=+#l_>pM zQpRVBIp7TCZ>7aM?TPx!D=qtuvia9kf5m zH{+Ks;cZ^Z7vN(A^pruTBocW$*q~96;88IQVApn>Ntrc*-`~G=Wb2-rT0;>-u=l90 z(F|9mwTz7fa8hiSKi0D|XV1L&^Iso({rF5NJhl>F@P<}UJ?I5?wpQW^-+lM(864~) z==zZ(M}PCk@j0y@8_Sq5T&2&}xS{(BO4)n;xKbFPBy;#csEX8gYOnxJVub4s z-|v+SlEimp#MRl|#hOAYVh+$_?Lfb5IVqeL&lX1Tf}N8p%{IF_>?tusQDQc=1`NV& z4BxB9E6*4>LkU^wKp$DmPK{o8=9j;FYu~ZSTC+RjSXaG;m<>5Rtc~WXk^JGM&!(oy2%3KqBgv=DDMj)FLx^Q$F-#Bg z*>WK_Uae*;)nXtVy5o*Jum$9BnEaAdbO>j}SCdW_9xLxIFRFVO20ksaJhov+a$%@2 zl_kW|j$OlpLxbEff@^iZp*pWKTTh%{4HpQw zec%}8%75^!ul8==;*B6|&HDqR;Aj&u~M|y zhu>Q9)TMDW0aN$_snb}zf08huT#n~a9;bm6OH-%Mz4DtU_rGv-EEk!qhw`52DyRQQ z8es%!1SH#c?>)B-4D=H1?9oSl`{IiS2;~wAw9_`94+}8lDQh=_EV|47B^1i7qC^~2 zrRt^88bh!V^%zsRyqt$}w6?Ca`mj8x#N&yZcJCS(9NNGC7#cZ7z|Kdlc6N0!)V$6) z!^8`yloY(l6(=00ne44sEBJ zwOmG#j$;6<3>#x~shc)!ibQZlENDpzzz9Hv;m~1(RRzx_^mdVGUz5aQ44`xOg+qZv zE3W%~qP`)q3;qoS057?YuB>vRRv_i;3RZWIpRE64@$I|6(zauFUr$f^_{rHoD#JVz zdJQW}y26(Msb{67HBSiljRUU>dcK3Dw8xBqa{E!%xDdS|dE#lGR-`tH5QHJuSE z>n(w#4TP{o7@=|E5nm066?j55x!K68YtWnwO$dFrs#KtruA&%1RE`*b<_i}Nz5V3>wjRxTi0j6Z$`Jy_c-8N(ZQjy<{{wg6oJ%~(U;N@1xojm88)&JsLxIy3 zxUGM-k0q-lHcFyCJT48DXdiz{?n`}Twa)%Xb)}j}w|95;b+jjDX3n2IcZ}s3)2-R1 zT9$R1Euw=|2M38>EKL~OSg_ogNlq_gi-XN-)yjW#w-h)$(#d&I1Ye=)+FpD|vIglc zYzDC$3=fCHkZ+CiJ0S9X$MYS<-{2b?5xwamqt@1z0ylB=K^_;L*H>9Sv8^qbghMsv z`<=rfv56C_@MQpvIR_F%BqCp_oGTZLotZYyBpbVwBNms5YKG#71KM`sJtC~Nwq-iw z(F8;R)r%}2IG<~|6sl7oJVP4Zx_W;uyXAAY#4^bS4--2PF1>31&xpmK$zTV8ig9rZ0fBlEc6O+-{kl&xG5s_7; z5y{-zrE;0=70i>&WKGYMM84E)`{uVK^L##s_PV!cq@!~%81#8_OKg9!^gxw}Q5v}s z0igq!LlLGnl}cJgvPZ(jXl8O2Co>F)DN<_4mO36s9B{UE+i+VNTP9Vhdf$=2VTa+s z;?}KOab>{{S}lfzRN36YLs4%L~zH2P7O*hHQRnabc#vw`=R>O&89;UMwvJLS4vI$aNA*`7ba;WYCJb zqhnJj7zdc(BKhK6Hb2i^7aJkk)0MQSiRTkqKzJC!nB8&T@c6m8AVdig$IGpy2cZ z4Wv|!1|baudndGzk$D2!H&;RD}Q%5gPR03n3WWfu@hNPzVG)`PL3cAbzX1CtFb7ErRr$71S$zvCy!M;`m zBFPjCi7(&{q3qYp>P#pU0!0KJC#hQ_46k*?1s_yjN2yjQ7NXH)GNmP0u}olNoP0Rl z9P&^rR|$&T5@gC+@ExdhbhZ&DKpIrzx|qPAcHjg%erma*lQD{w%3^0%eA|{Gs4=Zq zUDr$YNDr9(TW`IUHUq05_T|f$&z(DmerMCBO$3$&$u-YL3mn8=udq-2-bO@k8&{8x zr)c#{H7ZN)8bM4s4MdyXn%%}K=eolKvq15lO2-!#3akr>dKikt=jQ7(v$H7PhlhuJ zzE`sO2}n4=BDTg%3I+iuk!*(UMCA%(tVx74~YzgS#e zc;Kry1tQ}ojvOg2Orvj0cXhL#R6A8@D<-I%V*wRG{#OAc69!mx5+7!+-r-%Y`%Yb~ z%>QcY{MfzU{Bq|=UrRUu>G857XI1JAd+*A}`~6l<Qm2Nyf8mkNzHp>C0}S6K8${W<+BZw@_Wl(PibUi8^rn_|M4d; zzkI+`kNf@Y-j<*&h%}uHWLRR6+Ya_RAKpe($gQkMvT)@D`$H$+1^2wt|kFs&QYuB#ZZo6${WCT=q7{2c9 zPy4b7ZJ&0%?^T~B)zgBh04G!sblhT2SCNB3TAnzle8<3P)?J~zn@%T(h6ctiy;&(2 zd>ntF(5s$>xhzx8wpmAKa_sVSxzZO3whOT-k$DH2bcAp?pI<})8#eB(+K9?h^OvjG zpJV8v6Oq&a>cZHC?19Ma?D%ufKHJgRdjD64L&@wvBBS1}3Xig0ji(J%E)7 ze907B1YI%`WqcD!66N}wH(9IJ%i~K+zkNPGK6&rg9~`>lW`8;brZhIJuN^Qo;+mwU zT?ZmvPClk$^r`)iJo(nEZ;#Cs7gv&Vo=mOrt&NzmJn2ecj`BH0MNHBx*k zvps{|Vg$jw=5ry)c07%yjVD?IV@B%35{|I;RUbA)Sgt_4rNgNw@y!kp2bx%{Xc@6_ zStZW73=!By;Gp;w;xW(fz3rwwdu{^8pz#UlFp=N=f+WAVQeLAkGR;{R}b)& zK@%Vtc~-2PO+)<$_P@!2kdaV~r7t4#JZ!d5jm6Siwv3!Te{nv$*p+F+@X26|3Ylt3 z#{7iDk_=2#ffBx2!YkEWp;&}k`((jpd*%uS;X?xtOFn-5Fn z1NX*z`%wzR_pgE}mHUoFrIkjbWpgpoXeg*`1O~E zUuDCKNc9D_IdK4I_m7CSgmYV4$#bWOl^ju!iFPYeR3_9%PhaM~2kvM`@d1Krmw_)@ zw${96Gn)_e%-RF2oIQK??YG}97KsmmzHc>`%N;p#giUoU7h&VZldin}DPL_w^ai5X zbO?u7S0!5N=dnxz8Soc~#0Z(DQ5DEJs{W4AGBFLF=N%s0(%;huDJ9~r--nw?jPRJ* zTt1mdZywnajqJ-VF1E#&*(PBswf>TWnwSJQN8Cj?gp6CHP({3BCniJyzE})>j~!{q z0}&zi#_?X@oadF%(F-rW`0Bu>@AVDz9X&E(j0WHkDg%5$e>m5Y7jG5d3k^j{1VFGN z!7TucwN$|qLq_zqgjO!*7JvS`@ynCnkPu3<P*pVNtSgWB)_5WgD2BaF(m!;VJOKV;iGR9{Dh|64Q|1 zACenrsre0sIdUfix#ya*@`(P;HVJK%bV^I?KPyWtDquju6JW8q-6HVT53vi%Lrko+ zv@Ut$3;vFxzjJn>eBjv^AO6q(aOCAzmvL-_^TRr&2vWJ%9RihqgA(PtKaf?CF=%74 zI(_WS3;*;lzxyvgIeqxVWXU__ZJ+ga7FyyfEo_6Cb(fk&BSppV&&QF@*IKGpbNlxn zAaY?i-0SnD>NO0CltGwEHs;f`9Gv`AEOU%9tTm7N65maGKn{m&B7sQPh;mB{Gu4#> zDz#vMoiq58ZDOe;tkKwjtmg~GiSa2UFkYxG=VQqbhsj!-XdWA%#mR|@YFUo@*c4Zn zOAkGCA4q81Y2w=-Y6#&9!^6XzQNsm_^zVG8IiCDAgSyScA_G zRmI22yaCbM%{eF11^fE?;)&?;N*Qw^*`^?R39k^EugkqOoi-LKfi1M{J2t1&iR{u0 zZU!6yUoH{$s{nf872Mz3)6$YF7N=N8f|=SEWB#QT*BTH;ZT_Ty6OI@vl`ZaoKUOVs z=rm3XNb$fYc?tE@8jHnw1p0ywa7wCyi{*p#sO9_kYtZTq*BP0^bPRsYOYjXV&cx8 zyMWvpjduGzZNAlrl#8Ni!fl3|(E+6t6-jn1x+cDr3&8%&!`bs7razVE*K{`}AX{J{qwq(FH1>C>lQc;N*UZ|0{+ zb~ke$qKc21bt9s;a7V1v)1K+<>Fv{uR4Z&kgF`kxnuGV82Vp5_*4xvyd-sk~X^{Xa z0bdLw^u>h*kP}7M_U+p{I?|jKS*_kZ`wz88x@Pio8HayVFJPePK2azh^-g|t>-a9hN$gd++# z877}+-hx=3a$c#b5xBW#QzaJ-ZfQ->I=E6Qf`%3e$2E&gE*l84lFu#8&Q1UZm=_~7 zG2X})Du-d0`4gK}Va9)Uex5^NSrb7Ih#Ax0*8|CArW{Qzm%-}NGRn2$TyJ0UOJBaf zjk73Cim>*7xDTcmOh(K^YP)pl(&*^uLk~Ulmw)+}-~8q`)9Ey_`tjq(-+c2;FrN;5 zxT0@F?hT0EZu$j#@o20MHVdA~0c;t`OaxHEpHwX*@?4edv3-aoL}HPhyS5W_S_2nUdT<=>O~wZ$Pau02dL-)ARLjjA_r#hqm;CbWvRAR zS=S+@3xnMY*hvTQU2S#StrgDE0i;-;>s&h#j0U}yXaGjjVnLbE8MGD&qYJ3S9N-DX z$hgwtFSZ2p^-#Iy>Fnx!=%Fu;^benS?Tz33{Xf3(%=5YFX)zvw^IF#%n6UQy{V$qt zSQ*qQ$kVXui*JcA{D-Q}oIC&gKmW_)|Me%A&YtesI(+xnzB06Z+o}ggYGRkQtkO$i zw+2JrR&`De!i;Y|n;&1UE-kO%&y$Kp`+~uCj|U6i2C%8OuJh`H7{6#8B+%P}%#1q# z>uL>`kYCFl*BuGfEPu)+7CS*g-*^%7)l}K}Y70#m%*F@O1}+9|IxcKbVjg+#MrT9(rx&4z`lup0=#LinXAT(uYK!9VfB@<=Ngr_ zr@yav*RE}q3I_m}@FAa>nTDW3Ina6cqLlV|@Ej~xap%&m71AZbau8ivFkIvaJ5U&K zpd?|V5Y*=*P(&%0TSC&~rlAEqn!p1Qw%l0QpE-A7YHA@Ii2MAQsR?QgIwg#P1ymu1 z&3j_t2J2>VRpnCv03ZNKL_t(aZO_Q8_VXtxz~f)`1jQab-j43>JMX*a_B-!dn3;Y2 zCqIAn;YX)Wovs(FSkY3TM#KIKKtD`!W5r8cm_PuQ3ZJ-P>jc8BESz}#;7|YVKRx;D z-{iB|-Fx=l^QAu+7}?B7=p-l(9zd=}oNm+$BSl-mQg$Ynn?{$$8Oh;LM0P(Lrw4K60yktV);X=NF)!(HOBYK;~8-^a42_)tanT z%-D#HZ%%H--(0R>0te{R$jA^;dNfFy3(e>FIMJczF_PW8clWk!+qA19n#<#ln3&R3 zDs|IMH=!PaSHJYqOUQoge*f8@{n?Lx^dtP+;p+SL?VA?Sfr~T}Z;_h6KB;ft_rL%B zPpa&XSgxb-^j!UCL@t~^KQlWOPsDH9y*tyEF$@uqQ2cuj5Oanm7K6mm(X&g7Y-{;2 zLEEu&XFAo!yO+lRkU($0FC95{2>Wu7Jra$hY?nByLIL+xELdZ#?mU4~5icSHbVD@{ z4#tbim0UO!wn%#9mE1=NH-ZWQV`CS`CNAgWu|A()Y(xVfu&JS*U06~;5_V?|ZqYyK zp>+ama(!`O!L*3wX<)S&tu6I;C;NwoLmZ4q49T`OgpHF}ypCQ(U!TmhwaUX$a)5*a zu`i8>ecF}PaNQ5e=g&0(6cy@eFqKyy)#Zf?mtKABi6{Q$R~Jv5NoU&jK5*~mTXqv| z1*SN5?&9d^_>w14@+Q=MAuI_8Tr|crg*?JVEfh+{qkWM8(NXZtV((cE)FOp%wbmtD zfQgz2>Ag715{aQ)Vr+@Zq@4nz1+7-C>~kZ*6%gJ3BRfsZ_}-teB7ybGihY zUbJb2Ji+=fNMt_`2sUOV{@YJ49ywMklq~v+6n>3Cd5`gEKB5VrWiv^- z=C8)GfJ3qY$F~ms=AVD|?8A>O&CG7yz5R|aJ=C{*TM#EIlVYp*k!l+t0LL^dPl|#Z z7C1VwRLBu=BOdOFNBTmo1hmyzyiiSs$Owpth-MF$@zU_{Fgh@KdZ|YY1iW4)eDDEm4qfA$x$EuiMJ5Ng4<9~^h>iq7ly-FK zKmPHLzxvg$5^3Y$!Gqwxj$8N?(*{Ow!2*0B$YdmviEMT$yR@{1&pdR0?>$zq7t}4c z?Y;dE{@{UlBEXTom&PuliWeNSgcd<($F(v$JyGTeQA^A?41{fx0`VAYxCG;rD&u5< zflOa8W=7qVpPQW}MyKG5MMP^b5l>Z1t8J-n4%rYxZ6sKe-h&rO(AU9+ROy~^Tk>NA z)-4-l5gm<7BMsQY2Pz1xEVEfN_zAu3^>!xu@49)<7w!v3qx&9z`jP+mpASFte0g>r z`9V!{04lQ5tp8oU$zshSqh;j{HuslTa$}SGfA_>s|KGpe_xuZ()9ktH&b<%b-#OIJ z&K^q!lvU6HG$81(YIxeB>b6qqUZO8}g0101v^N>s91isPT9UOoMtiIswCd3as3Ipb zsMm&0!fm^$W}q-%%yIT3QA!m)k%D=P^=dY^I59ECoR zE%`-DIk38}Sai-`e7>>~Xr+@mVpZnbBSd;JHzn`aTF#G`v|2Ww;pjit8 zZPUva^N#|&x7RITh&6;#$%Hl@sn<4b@6~-RDC_K()b`%CJDLbQ`|NYsCHAx{fj|^l z0CFA-;6k3@NYMG&8P2G|`Gjh5_2h(lv}iDs28U@bF;%IjZl*|ejASxtos|hof#)Ef zV-6LKVI~f=!JZ6CB^R<(#{iNWD$KQ-t_io5nw{XG5>y2`Duk-ecKJjPIN z(?BYjOrILPaAx%3fBFgM?%n;BFJ^`Z{GpHp9%NQk`i?|-8V)6W@>59)Kv?Tau6W_Z z=~th8_U%{pbDH0-?K`&Ka#O0i6L!RaWArZ>S<4pfDljd=Oe=*Fc;*eDAt4+Rfmy6P z@{5ouk8&xCNS6Lt&DIbhrk+FdAR4&mRjbKFn?kH~EDe_foNnL^MaxD~PMC48|;UnZ^Pn+1vxkWhpCr(hmhgB1P$WRB4`qm1Oq_sEk1G1f+y_t^gY!;2(D(+yg z0b;XodNo`rna2JRcSs;xD9j%#bM{v`lpYp*A~v|t^Rnq9wauH zr`X-rI=FQ>91R14^x3wIS;P9V=}U0bWm}rF2Tz_jK6>)BceMt83q>P{1BePj8g-n4 z4aeLMTcGn>&9b`4!Oqpf#3TX9pZeLaj~qCNYt`Pn?gF=C?QJb~N+vidJ07)EtJ_Ow zFOH2b6+Fo*5n#pAm0;v`If3fTD5`Hr+^W=c+Emti^`YOcMl zI}uMq)EUv0<-+vzC64mUWI8$bPy5*Dy>qji{FF)ego0Z6i(FDRt*~)qo4rt+=LpGA zFxu6XzU{W%;Yffy)^=qDuR1$B5D6Q%)F)bIW6}83t&foC6BrKNpPHINPmUHHS-rEf z6X=CR_Vx84F2cP5s)2z)j>@uifoSnZsOy8jvN6$nefynXj_1sovjnVTF%!ZpOq27$ z5gaBdIt?AgHJ9)j%yGF~Idtgo`O!;>L`Prm)>N_++f%gS965k}o6fds^|KRGD3%GP zUtfi50>)IiQmV`m^rtP;l}aIm`-#K^Y$6VFuxP1-xx`{R-5zR<8hRuBshz|LD3@|9 zE)X3tk2Ul*VzCBQWHSKMw=Q(_j=x@wc*lpQ?;vo1ldHo;xsEj?gJB!TZ*hvZ9e0`-{xpemY#8j^6NpX~~+H07r{_2_=P9)(%h^{)X zmQmcjW?QUPtUg+b#mWTk*4>>$_=?FYXgNPQHHu0#-A0V5e%!)DHtH)&OLH7H)6v$4 z&kqPi@oF2j2}$JyUajV#|3q%sy?fi{tpn1~X;2OStsiQoM)}4kiUr1yZa{Ce<(Rwd z*|P^=1Ct>rJw3gs^o|`n76^oTdb(jGpHMT_cWmRMx45_MY0W|xw`|#hY_q-tAMo0S z5;c#MZM=d~ZQs6E$0sHe@y>L*KN!hG6RBW0yj-s>NyUxPTd+{fWf$jzt#S6kRSOWr zxjN$BI>j=X=!|d@ecd}ZI}Hw_rv<_nvy(m!r%$%y!2%WheTwG=yI^`VhX(FB2n#iI;egqVg-!XV7qlbLj;s{^1PJ$B;!+sE;c zNTgDP4pj(4$(yQ4^{H$t8eXfIa>e;e<1ak%)Dyq_)%jy5db+!Ax%>8Qx89t<&4yhg z;kJ;#>a`-QwJYV)#WUx}r;B+{0`%sdsV}VAjqWtau0)Uq(ou?9(D>taBZ=(VdIdX^ zxqM+F9*<;Fgu!GTo}Ze&I5#&LkEc4j5TtRfm6QPYUR;>PKroZ(##4w@k=ke_TYEXk zrd%p7GQEj-{Ej>KplDYWT6F7M)#~b#O0*CF!@dO;&DtB^61K3_r0m!^+Q|8Aym+e~6@aEIE=1dUNcqH06?cVV1D4 z8)3sap?b^cb?VHSGsK)i-t6xmpvy>vdv3Y)```QFU;m%~JKm#glCemH9JsE1v>M;{ zt=|LgO&=HpwkQV%h6sO;@XQ^9q4(|GRT&WGW#TiU8km}h^W5!@R zUZ3Jdk-$wH5OcXKsykvlh^q@Twf-duE3W1#pf;S(S6_+Om)gU%O`A7IQxWXLw6c}P zO%zFp;r@(!F&r#S6NyBoy9>TOGd6zm(BZl1X%Lc=KJZr)@FO*rN^@hEkH320>0dwc z!gJ3qF3fEj9=_wAyLyHO0?`=f_Nl=%sByZR+Q~n=rzaSnbGQm?@2Le$d5MCGtDHlQ z28gOF?gfYPY9mM?QsS>&2UgDYUZ{fC;E0!i1ijMXH)?d>z0kO2z1$EvPK=Y{n z6HLGuJQ*`pSU2d+b~m~-L{5Zu#ud=*>}X$HT6q2SgEXS6s|z8KS4f{wn|?pIH?x8g zlATW*2!{^>rH_^?l?ze)lJ7H(-#=9Yq0pDkcQuOgHOZo zD_s%X^NY$XE8NZM)hpbRL@T5boGP0YLI&iCDv>}lvEH_AiJp%0r_LNX@aCz*$9sDE zw(q>Dqq75_vx%`w$B!Nvzi=sED)kHx?Am=(rmK^HakgKl7O7CHln*YcOO0*R!i6>6 zcp*eezfq4f6l#vk@Vatp71>lDt3WOnob91xoT6c8~ zh9ks606rVIZRAiA4aBWPV6<|X0P?P&W;5%of;iQnRx4!-$X_;$ddA?>2eM{P4qgedB{H_Tgz^BEI|GKSo4{fg_(2&WVL*0~9`iHvN8}x1f#x zSJKCtDn=6%e*&knEJHW$bjyNKd_dU470R=d9Z4k8>;e(5uY$Z+tDvoRJFdbr(E+u_ zKJWpLX4?DkSh{@qd~J21SXr8wx(MeX=m6cgiLA#L7`?xG$G0R`y;`qPt^jIGD<`T|6^7dg}DKV<%0+RI8NAEIHDh zo!j=@GPrp-n&LPYAGl4yYLy|cRp!Rp8lcKtV})O=X0QRUePp+y0K$}8wIIw;x}?O z>#DC(S&2m{%@qh0Vb7G1t$C)bTrJJb&2Z>D#iS<+&hh`}0w zLQr&}w_%u^hqaaz5SPlt_YWtN{oxQoH^_#V$8EDt6_f~TX_bIWzt~>I!@QRgE|0N! zba`g_LOPZ1?AYY>2nOM;%6J898c5#kR|B^VRINzb1G}SS+NQ%5Ko`R^M<;NYfB$6nmesll*_rb$qCcprzxd$G&|LwOA|LkW!V~3m&t}Ho? z0W=zR1DW~1QuHRsCZY5Qi`p7se*$;_QViM!vND9kVVLtyu*D)$8#**@0;Y0`BCFum zU|A5u1!yH;21eV`eE=Qi81svlFN~dld$+X>vig(@icrbqGhqQQu0fj$G57^#42ezG zM+QzcS>*&JpTB}ONhQFbz-~x`1U)&Ks&}KK7lVs$5~n!JUGDrcY7AE?EKd~{My#6S#8BA46NpbnC|GU6*s4RAOaus(C*LYsEZ)9SH3XDHDItOp zVUT6050(s703jeCyg{Szgq5gZ4AaO8cYV2q{CFXo!(88A^?ES2@!M*_XoWyicw}o3 z%4kUJ=+AU-U7}1Ig=%>vOIW4lWzKAsgBf}z)XTzcQ4L2pH1cY>y-tJFJSIg)72;l2 zYUS8q8&5RmOW8$^WzTeEB%YVE#XQl}tU+oN#b^XRo#f`!$>Hqy95`^`(MKO;5B$qt z{xV#h=J06Sw(WoPM}PD;fAcqQz4camdj>#cM@`MVakx!s{|eC?@9`B3RscV&RpH)1 zl1;rhGk^eel7W#y8_j(N9E{PJi%W}zfg}jq+%Pm1Ted%Ym9o6ybgCbgTC1JG67Is- z*-e{wN|?oQRAo{KtJXC@Q!%R7p|wamg=36~j%mD98oxAKe0$;oXpAW)yqi@oSjh`; zYr+QFi&$R_wS?Ee6m`bO6YC3|A-XkSQh-GNlLV)5h`f9syn?%>qXy9m$S_J=-xZflP zHcczVN+Oww#WS2DSSU;{Ei9_jY6b7Q7V_(cVvp<4yMJQee&?Nco;!DreX^&Yei{tN zaFsUDB=8xRH5m9WfB6eAoO5-$y9tah-u~|8eds6u8qvGL!E-r+A_Giv75rV?HPVAar%ujl}C2z15n>cphu-IbByXwI-8^(neiQlpWr#vDkT%4U( zAUetD@IJ{AJOHcJd=V@oPf~;{3FnQDsKH7?9Ip5UdRrEnrvxQZfe;ctrJduiw(P-z zrc_>-X>V&oHc_s%vEy2=X*F!!)RSuxxv>M_>=(RFmkKi+Vi*i!Upp9$v=_^>b&hjG z#E^jiqLFs>Ri64uo7F<;4>2%?0eV}Bh{~Ag$OoM5b9q>Idq)@TMC`(Fb$Vu69tx0V zwb1oT1%1*<1KLb*>CKxrqaJ_!@yBr^GZ$0_Ed+D{C1}pS@r^$`c<^-;=~%yT9)@Cv z(%*NETC>0p`~9yDy%~H=z&UXYFoXY?dY0{BHzy!Q4H>vZG(SLOZS5&=719_}0!d7M zZGen}UpJ#B{RtR>;6OayK0F-3QWZn9J`bixSp;x(m3ejz-P2rK0g@ zfEbc?h%dkjUh@ZLu)PYH6YZ#0ui|7nGc!k<;D9){INUIF6+W+(4pt)p7`lMmjs(z9 zZs08j@5W&7D&R4!1r8l{tMO`_uU1`I&b2JFc#tQS-jNVtC`8YB$?7z**oxEd^@-oq zy}VkPTbiv@IasPa74MBkx)7IYSmG*#1!XAIw7^`5scJRy)_$IufvT1uI*CXGQ7!f3 zh3f}%Vyr2!?MH^sWtWJD>1Xl9yX%H{ePcf9Yubht`t7&hj+f}Dg+t%Hdv|YdzmWim z=(paw_nY7R*5Cf^e>`~bjkdOS+{Ftw4vDrFhoj)x0Zo1Hx-;flp6+$2GQ#$Ll7;X^KtS5Mlt~A>gp`ZZz~7J zbxjiRT}f9wu3(*Ln6TmknNdEoDkkV0g>c(HGJ-8sKPK6yPaWe3G?0*XbLvA_9&ebO zTH~&U5o>t%Te9 zGOFg7mbz`_@ac-OnpCDs_S5J9MgfUvPb}UWY{iapk*aVmTxssUiRUyJ zyC#@2kG$nlkpS8BHknA02P0j2g;6)Ho}Zu3=LoGqG*wr%M3u(Xr}zbzW~Oi&Bk_O^`qa0l5F5 zlSf2L2s`0;eAuqU;eiY^f0}s}QPZizEWeE}30j2?l4g0XJr~?Ph(JU>;wLsh_bLds z{WI>6-|3$z6wMS%O)!C#q!eS#S#y}qPx6z1X5t?-#mI4w1KY7M}1T0WD@h{@qZ zc-yuutm3-5GP&HsxzV#gGw6@du7H!U>4qAiA>6vMts`r7iTVRd zICyKvk#`v^lL(A(@Um5Buh~;kC&j0vX-F}&pW})W^)#rCmmWrkD%xCT*&$e%pC|T~ z^Vw26J`3E|0JLzLb&w;+v2sC+jtc#jTW&=Z*Fb4FydxtcsNBGCGN5e75hashyIzxH zZ-1;0LGABpqW|Fb+}s>K`X-l{sp`1yeUKH?&K@uZB=fps}#fMBp z#i@niENp!WFs9`y0K)|ECm3|e{jj_45uczdx_ZUv0E568<4Xcx{RwkaIDoC`)Qk#B zn~#83%f@d@- z)_}%B4?d%WY=uK844nF3dg*1jG-TSfg@FKc2`}-5FMNSjA)2<+r%wUTH>#z-$LP%v zU|5P&Gd4E%0q2iw4C4G8L4P=giv4VYF}N*Yffb3ZRFuPla$s5LCSWxP2mbU;(x#4G za4oo6m-NH{RtUy5uTZ6(R!wn2L%`66oZHH*GD(dK`yrws1)qrsq9F~))EBIqB3N9E zo;y26V7IYLL?Ck*K-pH5Yop;99C=-`Hd|$M!FaW-bgm?-TKiL7YO8yPD_SqH!g>R} zP)=#t)lG0-$WVt^9v8#}5dL%~J$iugr8(Kvh35cLqEdqhP-gwdFF&yBwZW=}l$Hntp=~gt& z6jo9SLi!tTzH$7-ajw}9(kQ$mk zYkpES_&_v8_=ds$*ottRl_|L!?1)myh_)M{ zz-l17{b>k-B_+@x$8PWa|wB&(i&r6xAivV z>#lIg3e&g!8Fo>vB@F~+Ns2I@Z*)sCi^zvnZw0!-dEaJ-c-SVt*v^_w4rNt2lYj_K zRtfKu6RCn&t86!535W7rRecmNZw$i6|Dur;!mJT@dDEuhix)5c?(yG&=TLnsT!YFK zf9-2ud*FcwnWjT;9X@yN92XzI>JQy-nnFVrg3C#n@6rS{*#PTZo;Sem-JX7s`-~0? zZ!8BOer^Qc`z@M{l7l??d=a}3^lE-jP~Zq>()bgW2vIL5Ocr_zOm$ljBlLkg3iiYz z03`vsgFWT;)_eOp(Brmu#v@VA2DNv1VDq{ng|~zYem9B(sGG@9fwHu8R6V?7qAzfa zh1}raP-kaXPfsuZ>7pJD z%H?vu>t~}3_th*@L%=||lH4F^h}IWkFK~x0UkzZ50vmbPy{5LafVXl)s;vE1f+mMr z;N2YcS!S-y=*2Sfyv0lJ42MOt+`yw|V{$n-VR2~**FcS`Z3wP!;irGin4=hH4;+&H z>Z`BfkBnK4+N{Zw8|jW6+lfk!3_mqBi7h&(2siQnqc`^I(fu2$Bah`uzFvMeybX@G-7H?5}*eIP-CY1=(g@0tU=_N^8m$)iVP zb;ohjsMcAxb5k!}jcIG|yx)a;kC#y|t}1Ax2BBHCc=@_=83G%H4^XBGMDZ`%Saph@ z&2lJGiD<@Hkz?D-tZ<794Kbq%>lRU#NTPm`Fl!68Vz?dx^Yi&7&4-Pxd-_>@(gqmJ z&Ye4khc^*-=&7fk;!|5HN)lrT&xG5__rCYXgmPihQL_QwOuA+Gh#$>~`CzXDL$nfA z7D1b#i(Idz^#vFRiVcy-;NDuxV1TMduR$bv)}FeH^~JjDYchbKICa7mL2roMS_!U9 zesV$WYj1G}X%>=6BwEa@Imaf1uNb>xVwD^!RK*Wrd8Gu<$m$8%U3wk^UU3y*3KMk1 z;8l=_^XSaIgsnKaSD2E?Hj*sPv1$bV#Qx2SoA@C$j_)XA9j8J;eEDw+wM`qWb5Yn{ zV(-}_w+}X-iMw3Xu8+>v5w6e?OPFDb>;8Y-z1NdmS9;)?-uuk*-k}Pp0;&p@0736P zTk4k7y&*fAiGACNnTUPf*ndEwC+*Je(@advtfVH}unoJ(CP9J#VF z`_8Q@6hRA0YO;9=X5GAb@43f(?tE4onzSSFEljWA0mB7!Olo7WJ7f(>U=d8wzyA;a z;XnW9|AbEk*se{>r>1<*bDw*v&8K`~VyLm>Anb*=V@nWoy#`AfhHH23Hnewr_nvDv zh&awTXj8D1x!Hb>JDGhUm7K73l7-gtYDn(^A;~ET@@8|1O0}qTo{CE9N!;ur9Wojg zcp$#%cZtPrkG_c$){!(!qod;pUKgo8|MABp-roUI7M5x!-bWvO^pQs%hJzAnMn9WYX+OM@HacI_fxIoS2_72x9r(E}kfStvAtc~&0hI<0ZO zJKNmAb-pq%aG0Ap2aPqz-o1^V(5qooK;YT?6Aki}_PK#}IHw&h(vC(8VP%aCO`%X% zYjamV!)CN(w&*=x2c?~LMz`J7Z83Q=NmA+qyD(5gQ)9^Gw1VD5EEo;W=GOjv!5Q>- z`Fw$F2In{E0= zl2B0&`4nD#&%u=)Y`y!7cH7*6@M-*REbA=h~Sw z@4~KodU{w^7F0&7H;|<1l~-Pwn3yEa3=Ai390v#a?Q0$Pf!@4>eozk$q5`6#00g_x zS`)U;tF_*9!aW~+@ByF(U_qbQ9zzuPN?ur;Y`G1o1MLFz36$&T=zyj0h=$~xfRkjI zM2ZFvc_UEU*Vo5wv^Elx< zm>-!rZ3IWezn4R#unh7w$yE8_<*HmiCUe-gL^bxsigG1Owi+^;w_KIXKWh zJ2SI5JCn{XM}66WeYVbyo@k87@tj&1`llF;@YNcr+o=AR&cvo>CL>`UN&01g7GBj&@M-%0Bre|hz`3&IL)YQ<^*Sx+ylSr)r1T#}9IGG5+aD0fMuHM$# zOxbhhXY9}@YFNSv@swbsOUp}ZYpYO8M#>})3=E*TVdg>a!NGleZf@_7i2wp5_Df8rWH*AYCaCHjB z+3m@+E=gMZV$n&esc+2@Y6y;vADUm7efQmWPM&fOBsXKQZHfM8Fb37Vn75n-+Z`}BJ zb#*z^5bEme!mTnIAw~A>Xl#XqVdURKUf^OXl?LSDx{LxifHkHNG+(RQ=1XmfM_99Lo3Sg0j+q_yEIk#~Iw#KvMuR|zhD(B|rxB)4H zZt%F@=OdXZ5haU@s|}68$(y&}21gGct(A0(3m|aez~I5=rk1JcTVB5dxm~uo>5e^!4>`Y_7wxVP#|E2SJ8AQ#Tu%LPw8|9XocIn3i-p z`@|E^9zF8Fi3d&%509X}O6QVjs`jp$VwMc#iw=4sbFH=pY{K$|7_nn8SFR&m$Q*pt zgFAO*G4}4#0+?Kb?J{zuSy1h5Hwagz&QjH2vY0GViAB9eK45v2l!4)so&^^dMQWuR zK#0YHOPmD(15u83`KtZ;x4)0sgKvQyU<9F{tSOMpYngZTDby1z!we3R1HB+QMEvXZ z>psw%7r-;YPhQW#IoQrujq%>|dSH$&(k-M)?tvV@TNnl+I`?Z2@+$-a3`GCICkKOp z)%W!Da3`bH-U6Zm(~vrD;0iBdg5bk&Ga#P!wO8{i^TmTS&J73@JoVB`FM-vNccPbJ z0ho$$a>``#nG|C&!XY*`H~RVq$jcQA$4n&ms+FVB&Az^#d>*56R9U&Oh}DVQ3N^RR z%&moE$wVr*zM8`Ct-H4?9Ni#w0E`r{7sm>yfk6*@UtFB>`dp!4AR3MkU0o|z*VopA zzJSwiTA07p*y3}0t?L_$T|MpGKRrK}%0xF~OBXJ^XSNsuJ`ZV6X-`8JA=*gtPA3}{ z@<}pd*RNfB_uVrHH8&@3Zf$M$_4I74uM-FZai=&j^%6Qe+i;K=9v=FuzxvD8HiEHg zgZqZqn)CgQZJJmPn?MH`KNcH`BYABls6+<%;W&Z zD9uc*7|9YNwbhL_ha2-)KAXoRNb8?JqtrNV717!P5+~yw4(cGZAE1l*X0fU>l4qeb5 z*0bv0n?lVF%CPW4d;-|^!o9(m-E>6trBU@+8J zr08{7pGxGN-o}?-`m<88isVvFq#Z6h-nrlq>j`wpVhQ32f+>^RUA$o0HQ>|szi6+7 zf#;*-PH>a;*+}vh8ekIC7Fe1R01%wNXP2*Cm*2DlOcwMe!c-o@+NIquvcA>=qXG!@ zlph1t>4PF8e4wIaMOad2y#V1(`+b4~+&~Z6ePe2hM>keiR%=HEkhHGsy!0FX3ui{_ z1gHbCk3aqq;0gfKc~(MwN}L&5boOG1w_v!o5x(C}e@*n}HEOYU7W|X11)jK|eQI~| zspeho*U*&{u4sownK%dYk-8ZYi@{g!WXwFvSEd78g*o#egn--FUhckvd%$zH`V?Db z(*mo9xj{JCm?BzcJrV&wDq zi^Xk@#H&&605y;-AdLU%9bg325P0LOatNavfF!*oLIp9|aOOVDVNBF;pv2pZTmZ?3M{bHI_@F@TVYQu^@JF0^E?dhlcuLP{cuD9tInT z4ufGKtV~SaC`)<=w8-M#15LvdhA86k@gpdc>5(AaHo^en#&V&)Z{Xmc{mEbd__cq$ ze(h2=l`4|~N#xrKM%efPwP6JWRkd#!_1 zJ8_JSv7a0J)vta9dUtpCc)dOrm!W<2A>225YprW|#oTi2zK?V5#r(Q^krTes@7-Vb zKEnOloqTc+2+1ay02=Kc?JY22?Qs?f#O5okn-g~CJjIN)AS5|%st_+(tuV8SQXo%a`ZgRsJep18?osd{F{9L}8@%L2z-Fa4UA=nKC9DPQ z4HCE+wZ0M+g@u4iI8@L>`lI9#a;gBFA{PQ)Mzg7@p$XkXII^~~Jnyjks8#6oyTztu zw9d>dSgo>+EEdb+7+d4*?4{E%AvJM|ePy1??$CUYJX1LIIRWQke|jv2RKL zL`qT*$fJCvraH4}%NMixV$Nyz(+qb2GiI!4SPCO3TcYjl$TR=Ct;N+z<4&_IETjXEXIeWn<*v5x?JCDkdL4ebWET)A48oQHM-%Mt!BF zrKzp6{pz)=4CLu&o`3e4=QlRi=NA^AdHQL$$6YR06Y=CG6-x{bHhpH2zgS3LBuP&O z_w5e`{?hGsym#ieL9gfd(W71$^-N?Kutc~tE4u+d1468iqt* zp@-PAqpH;XpI-QA^4l`s%p4G2NUeEs@0kOCVJwkm{5${xtve6{1g(VMwu z-_IxRU)|l^OeIJNam6S_U+EC<-aWXDZfKvJaDDGrt%v-|K_l=$3|eT&@hwAn4)$^b z>NhOys212xYg=?KvRaH23;~V#O0%>8Q9#GYr>1h`W*j^a%i-tTL;KtVhEv~rWaJ^c zwHaF;xjqga7(RRM?at1Q(a{l9Yr-G&rc0MEPy~lcLz2{`?ic=}H%v@U4DLVR4Gbp} z>&-148)2$_EDj9pqpm1%$lQT4Ox#tfx@02V)!j2UGjsFi4NL^c`*D2A&;}cYFvvZdj|&k`}@ZaAARL}f4sJ~{^5rg#>PhN zlpm>7#p1oXyniU+bQ;kY;>KgO8esciIQ*fpsqNKQe~4s#?aBq%F)9+shh#QnH|-Z|Y!b=nUIQV18p`69!I3hnALR zsIT;rNfEATL}Gv9i6=?bgtZt)biQ&xbiZP^@5An`wMe(XVfZJkl3gyoB@h+x3h4rB zghdKO0@XoI`T_cBY@APU64b>KM&D_K)-;aIz5-lDkpOzrGWx2yxjDAqnqiP;Q68c~ zq-8LcXW_$41YePDc!YMi$V>U;S=>C3$$1goqh+YiV~;(?gWx$d=-Ra#v$OO0ya{Ko z?w+pIl@-idXt{VDN_95Cu-xhCJ3gO(|NilfwHSV?KEG=#yx!WXKzI!aih_jOw?y**SmTKeSyYsINRNEG?#UIy#B4orq$~2Xc^mD zskQ|NHkLLfCa#lKv!S_BXVEpav|pRN^~NuL#dLP}^sTL~&Cf5gA|wF86wE?kY-iL+ z6YS)nq7)$)1aLZWOp(om!RWO6TH89P+H>~Y*+Mqo5o&c?NFHupi{wANwDjKl(@P6g zoAp3L!)cG_u))}>ucNjA{m3PbC;ocN;*4xQg|g6L^EjPBnDRDy3(Xbu7fg`wR9eWRq40Tw zCKDPsVe)8xV~O>AA&q3-*V~IEr~%#=^yl~a6P-Z_MNfr*iL{8+$+pt5og9vF$w8ly zL(waP-asAQgCcO{EB5p2pf|6CQ6nuQ3A16KTX0A;-dqIDKvB-=1fL)kT?CCeKzI%f zOX(cf!97hzMTF=f#*P0>P6PY)IX-UVA`I(UTYe@q8z2?og{T2r*f{g4St zL+})653PYNBA;`e+sc*7xpN-^FoT1`4Gq05Egf!`I~<8@Y_0%C2S*OO-9gAd+0h0D z_P4ZjFVAmLgACB|2Ao@4>n@k4t+lhQwVf=Nz)*K*|Dl5?U3UNaMg;NCXf)xP;_~N5&qd)Pc?3 zIQg8dB*{ppm>=XEs@5gP1qnA=U&Hixlgc<`{r?8#>9E>B}3Tf99x z7m3CX92h=&^h8@*M@w_t$&(L0cm}1@U5@;ScQfnIDUd zEbhow_{=!r8;Ml>^2b*&7uzf?6F2jhuVj}N><;rtbHhoWXT)e~uj)L=^n$J66-042 z`dS1uQC~Y8I1%bH*=3NNSb9{IcoK3qzkeP$N^8uZs6}#E(TRI?xqJq_a4?bVMd~WY z<6*P|9#05EhFs=1Q4VmzHbV7AL|JZSbC9=Loi4jewuT~f)zeuN`-yQ^<08-Q_6JtX&HMyHavRqE}_3cQuH|eP@8x> z4etWf=yN8OK?4+zC-FjOi(A*3Ft$@wXMJVa>GV0R4Vi2id4$4uh?}U2!ilA1DzB^f zOZlKt-(k`>mx}Jqjbdc8Ud+4emBx6CY6@tBDT=4hX7stV&Rp}@4L(EJ>9Kc|@~)e= zm#batwdwGNI}vF&8Ty-p2mGEMlhIqLnFs;i}zV5zWyRvtFckky! zJLhH^=ip{=hU1=g_z964&VyF~KWU9~arZ5>qjf-gcK15FiTB_CAep3ybin0qs!+U6 zEUgvF&6e^di#bp!8}ivwj(xP4t58YMCQw6+t}7f}r^Gjqihp@FLv4aMs%*F%qLVnY zDBxw63+f6#!vPzQ6d?}PLN>9wumDjimMr+`&>0nKU5dt+=^J&9*k5os}tGc)(`*e`_DiB zGB6=4B8*V%i^$|Z{n^hhU%I-qxQ>>=OjR)=W0L~)idY*tx#wGJ2c!N}rS`j6q1(cJN6~($9>wU#g zx0{SEtHqGX0Ixt$zpjv-NLeq8+bFYOend&YoVc#_P=jr>B=9Qkfq~z0V zv51GW%?ymb7E>65@Q>z9eFvps5u)i4`H-Il$ARD~b-<8x1qY;G zhB_f&1w<&;Pep>7sudGO!*Il)XdZ5u1XL1>jZTm)D-dqAI&9V;f;Wjh1c-T?f%r#3 zB#RM^pB1B=RabKw%Pw=-X)6`WTZ!!2Lk~an?6WVC0bjZ+WmO2yfjAOhRlR-tRyeX@ zw${lks5e%KX2loIW;fw-GjaWTE}s?Ulo-2(3yV$OXdN3p{_rEGtHzCd_LkpJ2%0Rg zOBA)l&5E6ne-iS+6p3gkaajht(a656(PnAW=>oc%rKYEXKq{Xn)(vqcQ7FB z&@4D@vK9;ZY)*wqGsAVA(}8U0B<^x`b&cJ`SA?{k-u;{Z)%t^!%BB)Qcy@O7z4zWD zhty6#MN1{))9c&Y+rIa`SD?u3!!KXHgt8q%_NDOuFGBD89sN$Hx1Up8SGe@ahVHp- z?~jZJvo@Y8yJO=D$KHEBea_A7*imsCjZU`tGCrZUV+0F`ik_>@3AU6Syu zs)pOxda1@mrY6CA!8yF7(45I#g4-ap#5!TQAz~3)Oj95`(k9A)Y?c@ag9YALub6cu zn=a?7#RIiSt10iR=gZ0E*w#nM+_iFTO>f8mnq~u9E7U^#GaKq=ebrj8TJ<%nv1YNG z?G6+15um#KrmJU{S0~&))6>s9-Q3zi=D=#5yd?z;U<`_$LQ(_?V0C6TA}G31_*p9z z8|h(%CF^T=sxfVqN*MDd5GP^Kv;*n4JiciDFH+}`kV`~k^Lb$-I@`De~E-ftrv8rP-7uo>>KYH}Yv(G*i z2oRvPswG_5`SElA{$A1hb9?a>egKD=2zDSS(y^8y&+I<*1>}HxfLdhy@D_2uRpv;N z;FHW)uP@cu?Imz$vrtJ#kW>=30CuWb4a?!lxTxBW96Qz9KLi*ngi$1u5@N6qUM%nC zFU&{MeTgnaz)%@3C?=oFS!@oS*^Xm~y_)jY!oliRs1hCWS)LjndT6xGZCy*mKHP}> zCYHL8FV0u$(YhgpeFsjeVO)Kp~7BvC5i*~3SMQA6T6M<>ub ze|+`Y>#x6d>C(j_5zZnx6L*Cdh+SW4_gWus^gpMs_S7q0TE)rC?Pc>;UtU`L-P><1 zEX=9-6gh=Zx#K5}BnlfVvAL=)XEfCCQ-kV20?|7wwY7$S&@6z5SwUt`6bsXd_=WJ+ zyYa{wlkU#gpzqle!-txJ&9$7TvhJ;JxN1>HEd!b3VX=1!dNb96*s?~@Q|OC`5{yoR zN!gG})>tFn|ri43@-vq3Ia@AU&(j7-V_piWIqV=dAgGE_J*M>l70F5wn(DVJaOx)1t%V@`X&S(5vU>`O9N2$Hd0 z2CtOB0LY4XQ9#32Pqei+czx_OATDHah~wKt64=*Y{|Tsq+RWqitZ#1CtF38o$lSPM-q$#mzHX)sea3OTIRw-oDs21&Z8%8|5@dB=GKw@!`|Z^KW`Z>kPom z)*9{&p0fi-K7ZtqNBjDm{Hl#o0iK8=0|WiIUE}42E{V^co*ou@R|)m$uKvNG_iopB zXM`(Xx>On~V7s!h83tb*E)Tk5-~e+=sgNm`iWW1uP0iwM6z?wVb`44tR9EeSL$& zLqWV3oQ{e?A82eMVl$l0T)%zi(v=%{A17888vG~x{w|xPnF3Xan>OIIZm_c@0O(~u ziQu584yM=LbaQeVqZf|ysNb-7XHr?pVqUs@F_B8V{POp_-aw^_`T2m?ebS;2RO>~b zcT87GY{a5AFXeL!zj)(~56+((JvhpEGntgf<044|vi-vRlCDN&@@9-%XbQj{cHCx@ z-hrB&>ZR0Z;-i)=l%u)KRAlQyrMA@BZaHvZgz33nZ}PZ%x;myNZ{EH& z6^$j#k{`{+AlSo{kO~AXnPcUJCS^$l7okC-9u%$&#+Os+I3z_^Ek&b?Ogs%^IJB63 zY*3hI!EdD+;n{6c3pSfkWRh$r<*@tNu0t$rb|<@XEE>f6={k1d=v#3DVgtjng>X2~ zmSHDmuSAq6o*nINSYajeCxb*huIBLfFV zyiE;8m%UD9K6E}FZ%1$U=%IteVV^j9xTVRP%dT#2ew5A3l}kwyG=T*sossRM8y9tC z24kJQGf;~N8q063Y%F#4wDtD26YTuam5=c<`sm6>*iMKBpP8MH$BB(?3I-o?SbHR~ zps`k{QA68=PP=Z1udL2qzj1@@DBEwpFMuTp13TOUoy{-a_>Em3+TVG~X$+!r0|JG^ zQali4MJbifh10p&NbFo9aXFjCVW#%t3lIG5zx%WA|M5#l#>ZNln+el{-r?KNgpwLM z)Y|M11+B=;nM|#eG1qda$jHWBz?OB;%HaIH=9gtqEv5dYaZxF zDXY=nZv_Ags3```2{vt35FIdDQye`;4vydhqHdt8+9*Y%iQfx=cjwMDVWc2-cXu~5 z@AC%phsV7?ZzP{_UFL*cT?HR(bZBNX?8nM_OWuWA1%3q(5z{E_i34obBq8lwJ_X3+ zcA*i#4mvcrOvPf5Koo`jxB#FNDpOI^ZpWO%DkvK)k5-F?^p?4vu^Vme%?&++Z9V(@ zeW6BlMB=|{#=zwaH8c`s;&3BS7?Fts0pDP6*JGzooIC%~)vMFDZ{6D5n%oFCy6l}T zzJ2<}euJHe7pqbnpzEXLUuiSEbmq+4V@C$j`>n1nFD>Kzw5k#_>K5k~YIV{lKk9b% z+Vz(H1~^`Masz+5)`0KC@_Hf?opoSpGZI=GzJC2*g7J{YX%I^v_6N@2rtruea(fZN4vHfgqyzp(`!muNTjIG^O% z#=D(fNGSw>D?CssWfS44_GZWEp`qiak9H6A<28aGm&uCB+}#2n>1g-)gLWLj*;a~# zAZ{XvwJl9eBf~>S4<9^!bf~4(S=C45shO3?%tm~T9jve^5@{Igi{U#T-+8l8TScYr z_4x^s!D;!%jq4=(XLN)cmh!~99BT}o^5}itZr8!)K*&jaIH{hYBth(f>HJb%pGO)e zEgXsiLTgAMLn8E#KE4!*uEis9ueAji;cP9plANF3oVdMwetzx!nrW`1*YfN$?pm2B-V9yt1TD`HnfH;Hlkni)nY9@I0AJ zOitd^tYWB-N$fQ|GVF3`1&lTB&HBSxBvusPq^Ud8pf_J}bo;zPeYeqD7K@Gd`42B` zZN+^4mQbi29WWZBWNHid6!L@-RD?BGA+|zeje#pr1(SGOlllM>SW1QbV!0GTxIfTD zK$1fKdODK;hMaZ}puA0Eb@g02#)k2^r%oL^G8$@aWI>?1POmS7+iH6oh;4Ja*d~ey zAcCdP1l}off|z%}SWjz9)4`Dg$B&NeA8c|vbD8wq(%Q$%Ta#OfAOEIot**(PPUL z)-%~fo7Hq+|9;*WjYJS+rl+TTUSDfh$IQZFmPj#OetPBO+cWQNMXtELky8)0{qY|? z{-ZyA`I#pk+BeV>3Zkb}$=hY7gchpll97n<5Xso-z}d#`a-r`iBiKN{oX$qvm0Oz0 zAE7HGYuO~mG@K9$A?pc^mzQJ+=$s_U&@?3^vEf% z*S)d1wiRA3m(x&YoOYOb6-*{MnTbx4;2AM`yV!Mu0EI#(l?=1f!I#G;=a-gORtTXaTD+%k-{R8p)a*noHC-yrb~e`^Jk|U1 zD<@xi>EQ>E$XlA6sQW~R$o$A0Dd9sK!p;B$VE{w&W?1cRRM&2s*KM}hROTd$%k64u zZfOj7%oq%D&(9{}nFR5r9&dx&8KgbPT#hUg$;iRs{e67{M0=t#!&MQ_Vl;gF_wPG$ zY^<%LIbTR_Y%Yhj;DFTnHjqoV5Ra~)CBf5~=s@n08^28l za1e_p2_H_T*gp7KX^dn&y*-0N`v_XrI;;Aufro^ecsyS8EW{Ns4xC=t6McF>-);1k zRlIRya&qEMAz$z49I#s5sGad@ibb|?(!#wNuM+@5R5W0*04p=8341#Xl{phMN9wL3 z(iid>pEu<3hA@f4kg~Zr@-R-$@EnDeJdaOkJ{FtpZ1W!<8zH|b2`V~!dz?NmI$ROK z1qNl2#4aQY!i(gKwr=t+!3_Dti3W*)BEMdbzppxcg3&*gNDB9kmjm7b(r_^Y zcDwoDp^=7$AalMw$78gqaElg)~6n%T-u zO!SbF(;=I}37OpsdsKzbG9$u@(9i&+aA5&drS$*~6n}-EfXq0;gOkiDzhkRF2xR+5 zmGE8MR%<|-BuWzGni>aessb&K4_{}3D_ zB12avLaS+QGm1xd|3Kekk3He@1yNIvkB)@`A>7DGy>{iwW%yG=L!7QTb)`0+&t*|| zYH1VeU)^Cgw)?%yxp<;n^*B9;$B&?TXlv{E-XFCC9PJ(LIG}N5^x)Xlk>UB-2|V;W zhkASZ`vMIOs0pNF@}D%P9lKbf^?1)OJM#L@?I`C-!J${7NO-QoUMca{GB{ukdM1`u z!r3$vO4T5%1^ZtynOfJ^i%SdhY{T2yI|Kd@wl)~}^2!>5M*l#kKj0oaINH|Idivz4 zciwsD+_?*L)1-C>rTy#(5Xm71MM-c~A|@3PokX|EB+2&JoDg>``MkFW@Xh~`p0LW0 zas+G>Zqtq~y}_}u75@0D{MX;#%g7aIX?+$22O=grqeG(yDNXSY|L_mz&YdU7ifxbl zwCDIPb8kWBa^>2!>o+HF`@OB9#%`!PMW^DiO(Kw7o{-T*pgM#L}n-j zn@G_3up&WY$0-%EG4cvDHFnsnE~c>n_+*m^MHVyq59O%_*y}6g9;+5NA3HJD+1x0Z zPa7KSQp{ClAd%+zk2R3La_laLoa}tLyGUH&3;!XXS|aiITko7%U5~u<>K{M%+zVn6 z5n}RgDM%0;3T>u>{V@)ANCXvwZY>>O4Nruc%cmbc zLh|sY#@3FGPSPzxxdcAgwUUpz{bnnUExQ=2dj6#!+GrHS$pBe_+^ARKqo2v#mXOa{bHj1BvpJoOB$FHHJIBXHA&D}1cMti36a~Et z1cIxpt0+yFRM49%ciSY|?CvAqxics`VL~!p z&~xw`tmbc(N`cgj2Kl*S(3LSkql4GiC_={XkOc8mBc(Eq=@?yh(Gp@%)06gZ%Vw^1 zG_s9EEo=t2HF;ks1@JAeQgf|{iJU3&qEJWuDmQ4zudzxt1~jXS=Q1CBeEH0!3&CLf z11C;7>=L~!4?sC&`)eeYa(LuG;_QdrZOxmD%e8t~SMO5k7H|axJVKR2e+SXYUPl42m5r@buHfMPe1JuB1n{_$E}~WBy7s-?(@0V);3AqaeHoVK8VUj zT#VJ!N!J8)04A&qI6U1L&OkCu(gR-dpJ@kmVf*9JOBLp zPdB!<L2f7frucub!Q=8#BD1``4OeEBQ(Hp;^gt?Uwr1k z{;md_!Cx)7GV#*N-2Al*tMj)bTaj2aO#&YJs@h^>PA)~V3HY!ne*XtA{U875|Ng)I z$G`0#Aem1p8eYZu7^NCkIHXkKwC1yXcXW3_CriS+g9?BeE@!RoR* zd_W^2Q8E<{HU?h#!S{an@BiY@|JT2M{*RtNIMmnSb~G7koMc)IPC4QSmwgT%d2Y}%+)r`2$7aU>m^u>+xhd)zc@HJG&eU-N}^aS zp&(7*;X5gu%gDw0S*Z{QN+A`uyBQ)!MiDA_=QBydk5ET5N$f^p(E`pg9|lRGP|sV+ z8GE&0ujHNjoXv?&%N_7GwRJSsY|iPQ{w`~p-3ER6aWZmp_*Hp@bUIETW>F2p`g;f#sN~3tB4d`BpIIGxEgFRc6K)*2Vhp+ zVcj&bJqj>yd3oj5t($0}2%?6`VqBcQGhKY@aa7QE`}VcZ6lj8tAZH{Nr?Md)_;7CQ zS@~kDT!stmO|b#{OxIDvY?|D;(h%7&`U49Iz7GkKmPmwx4L#KUyAuXO^{_QWQ1Ghi2_z- z=VaPcXZY0k!Pg$s*L_gyIHaeS^_!%0T8$!6OBZ^{ZxFd zRLTZC;&u*J!&V7VG}TKcLZe6ss4u#7X?s0~dp6~VTH0H?2fI24hg!S)oWbDb$?5#B zE?7*2OW?sQAPVjz=jRm9oD{mJu92*okJ}jE>29W+zk4f zOcsy1ZcLYQ3u|+^>c;5@4r4!pNvN#4JSRe&Ch`GViA4O;r3+hI1mQ?GQCB$acJ{YI z2!v5GT)FNkNLcPWV2B*2L zx4n?a&a7;ly)}oc5)WgsfG6+ih7#DMd!mIV*XH+LedVK%E?yBo{CqY;u_UN@b#Za| z;>C;oef^{cW1Gs{f;N28AMJBbgTJR!mQTnF3EQdL3hL@e3(I*UZps_s4=BShGd-Jr zFk?0Ww^}^1bPO^8|KNmqBH#@9oD{>kYQGH23wi?duD6 zw%A-w9K`eG`qstkxmw-hv;&qTPQccJ{Z@b-l!BTl&2*`lDdu8><0B0oKXe#^OeGw^ zM^IwtfJ_VVxsL;uq$j}OJIvof!fCrL=f|P@q z?CcD2U0YbJaF#fC{v6?S*qd>z-#2M z_BOTS5`)6n_~;8SJioLwN33OMcV{#bUtL>I#*;t$>CaFy6Sje~7eAq;Bi0%-1eSlE z(m1(dkN5WeGcVqI)7SW}WHf@?I0SOpLP;hTd<42(&UUInOUPX$jvouuOi)_!FV3OJ z3d7~e?(XiFUw(;DGdxwX6necLM)#dVZzflv8|zJOI+8A$^j4SELBw^v5VO=WE{f$C z%Wgy5Tqzj!d2Glo97NRWvRBw_Pj3(TNqYO57niQyTsiMG zRV~io#l;WG#^qCopQLUk31^VI5x=pcp@=?z?$YH;7q_;S@dg!wRVyR&;+l?iz~!(G z4fab0PZfA5v-_`b$W+7Z+H5&J=27^KKbMm)aWDS```T4-+;g*!@P9y66SzN zB)Y!7j(o>O6waV}Utb@1PO@FDa0sgHaCHsgXy6p#h|C90jd5CxkiZa~jvMeKI#@#7~Rdg!5l{^x%J$#Kr3 z!rUJadb4=DfF%>6P0HPQ(ta17EG4+uW+fJvow-8D>FKbOvLtFV<(r%Q4hxkQN-k^3 z>o7JncQ$nPHgt4`2*qp;Iw{HHastF<6F!@Qo{BffOp-ovahXb5b|zOOLrI`RJuTRt z@NIcB`BF>eY$n>@5om8~7EL+cA$FV9hH3q7ALVTCI6nEy-fug13Fso*le3v9Um()N z&Yzf!I#oubOd3gAu;CXAy5hNyQEtET%F_>?dKfRdP#}1CY>Z#`ABbK!bLFkcO;Qy{ zN*hl;ezdVAkjj(+eKv8Vc3<0Ad*|J=3$qatu%n5@T7bxk-heE0q@tr6c(9#6|KX_z zj=P5jQPPQMbax^4cKNHGtDyKc@eq| zup7W8id1JaTSzIt6^n#7H+p+JDAOX{;n<7a+uehJ>3e&7Pn|kN5*w0)|KR)If8h87 zPe1we!s5adwb#`_#1(d9KFM_tR%>Y$2)%~&f%EWoW&^Iy8~%-OTg{pXbPU6S^rb5o zF%8yIgw`AJ0kSor9p54pc6nvw&;jxB*Ne7Az(Q@)1=Y1C^i&;e`{56N$XMQg|GnS+ z?ss(l4+y&iI85$UA^NlS)m$$#fo;=iR{HyRzMPd;R`8!2cMiN|o=o}ZhVxN!|k z9y>BNcKC2EU!(?$nXyz2Ymvw=e|ctldd*=8lIWGvXjbZu7>)RZ5Jtu<18|t2*wp>v zjsAu}u(2_u&5F#>eGg=N%-ZtdOE@(%m(5o#HVaxEnpkcm{Xky*f#NG4X-Rtxz8mR5#^E59~6A+&-G+Q2CvWTukQ4}bV) ztE(%svomkK_0}H{dNZ9Gp%&IC3N1J$@(D6Zxd1~elM_6Z%@Ssuh?6c8eDmvdp`ihr z(-CTJ3^s(=ZZ$SH;b>0EG6{nO1H@zv1i>Igi%U!sESHyvu*1Jyj!@SVub4_@$SjDN z4fUoM$y|v<>S2&p)FA+<-Bum!@35J%mrJxL0=#H9WDRy;VfSR`!k7G&Y=@QGQ@4Nm z^PexQt&zKh-a*sUvWn@QB#IWR5iN2qo2S0l(%j-tUVF2ny>)P~m(0h5`}$W`mdD2q zZEmhp;{4HvA10l1zErhZ#J7o(*k{h1zcmqdItEIWaH*OEKHzv2>M%&2clO!r>`1X@ ziN#Yt`}rF~gM-gL{glII7VVFMsrwzx_Fxq>#^Q-PQ`1Zh>laI`qBnf`rRPpPa1y_( zU3iu0WfkZLLMsQROFY#?{ZS?Jt|9bY+j(xU~xJq2SSqk^`({Nd@fI{t+MKE6EEHlXaQ=Rh+L(k zQnl-;r=EsX{g?mpe=(3h2=vxiBqW`g5X~85!b7EAD3Jv_&jt>B&SZ+Iw2>MGMuXGk zXlv>81%ocaFB%)HJ~H&Xk@wJqp-U8N7`8C6hpA07pG0^;9jFsV47bfDyJhA|O}Xr< zQMOiV;Yh4dB;v}N$`**&CVWYg%=w*mV5Eh7ET7#P?rR|q6OoA|e6&Q2*sly_662eXOUbZ3eR#dk>UX4Lzm=}Cj70v4fBBS?nfD~J)) z!MV&-x6UuE{N(3v^!D`*?;ntya!SK-f8){aW-2i4Rw~o83)3@8Xuq@RaH$wO^}wNL zo_Q=7#MM-ZOiC)^30|b=86;OG5hJ4;S0bH`Ks{X2Aj(4P<=^KX$f!q;9ld<{GX5b4 zM@K<;)vAUP5`N1SFjm`sL*&_fz542_AU4c=W@d(zW@Hy9K@tQ41`c{_{9IGZu~*-< zv3+h2zW9e78VN+Qmji(FRZRLNks=Ldo4wIyZ;59o*VeI=G?8XMcYI{mFJzJ`$9=>o&Z`zyIO!8ggYAZRBvk%>^iBEmg$Vk9>>4&@|5D3*&Q z0FJyzR(3g}wh`)x{%LiYM61y8B0(kiN@G_Oq?QiS7}>(gg~J3l^*7SL7ZT9z#-(Q;4BL zRx+DKUowVc$;rlsT8e6gpymqZWYa1_T?)WalciA7Ua zE>7Xi<**yK;+IS16`PIB?0Mp0M5Ca(q(&%j0>jI7-FqKi?s?-E!N89?ni^DB>B8_%1W# zD+V+2pTN~o?8DeKSsnC7h6mecXJ>EUz76MxrL(c`?(PQ9QGD_hGQr~LZ^=tsz# z-&*vRPD__%1XZFpjAR8%WwNnoA{s$Z*5%6Re<*6vGJK$Au-n$?u{rJJEs^8_7LxYL zHkzdqRgi$2ngWH>d=uGQn%-ViQC8rZZ=#S09;Nw0hERkuG#ye6mqV9^=)18ILD7bX zrp@LigqiJ+sx`0m5u(FZKjw2gdOJI91Sf;^2wGJ0V#lvuEpOX%XbbWQJWvZIi=_@a z4Qf%Y>B^O>|NVddkUoGV->s#^L0dGe< zTsZU2#RCV1JRZV9ouh|FmgZL`CT~NSsEGi!zz}cUytT9xx0xtiI9n{uP`Xg=gJRPeuFW9yL5ZwtKHG?40xW?&yI< z5xwe$wT0Wy7*@sV_B4x2mfJ_CGEjY;k3cd9X%#&tHL4(galmjGb z$LxnB0_6oIcIQp&@I9Zj)YH>Ll5n(5leccR6YssJOWgcvb2pE0Ko{W5;4oH$r=NbB zZ8XB?gAY@n0%*YIAK*kT+bZk$G01&?jn(u%nDO>au z>0$GO!kA0|)k-N5PYGSn8|D|tW43}a3sKoezC;P_6qtuT(1H;qeIBDu^5CIfl&y-C z;8ZB($B_ddGTX=AF7OynOXG4?x}pA8U*tFbM|C#8u=Gzqe(n188$vFO#81#+{sH0W zkU@cJz-52**wKA`U6VIwE?l1{hiSI7Oi~}e+defliFKr_vjK6><+OEow?|{i&5amg zq3o^`sp#a*>lFRTRjKZ^lNJy zuf6`W*2c!ur_?4{6Qucl55tn7eB#h9$W4rwFW}^r%U4&IH_;Up^QlK3J^s@3&-lF_ z$*m0UmV5Xo@8wg-LA6Hw4B}WU5<_1AwWU{ySd^6aDmgmyNIzxrKJx%kSqq9u{^mEo z0Xb2mqi?(CPVUi0pq=o!djmX~15^ifVd*DNo_y}P=YIX`UxU~yE0XODJZIAmWAEJ5w`R^vbT}l*1q_JKERnp9U%$f%Pci%>Me#KQKEQ5k}{BD8CD0E0V@O<5kpmj zYOb_tmhbXr+%$1h{l?H+t@iF<>5oXXsLB8WvehH+0tMw*vKEe|*EX<&kQ@)evZ=eB zynNmJ27;}vRv0zh6(#~I3$~!(+8*Nepand(7wRsWX{aPG+^q) zLNGVX9Jf|NN|%>caAdT40&KixPUUU|Q&NnCtc-CaTk;d3=u}&K(plOOjTMY)E3o~t z?NO@@f@}?>+v+DyRE9C>6PM~b>VCfd)1SU`<~?dFl9NEb!2R0pcgHDzL5Lf`3swgy!1m&rA&{CPr_OI%GK*Xe*I@;Sr{DX z6AP?Nvg(>li~3JJwS7%~kwMEqWn>~<1E%l1{cbv$NhcCrJ&iy3{>vThEo$>baGq*R zO|T?C$Cm)LNUm7P6>dRsig`3APFSbS!=4?xXIpGDuvhAah@+)?N%rNHzLRLpiJxC zV|!5aR_WWef#&Y-zqhlyy^=GvTa}&)x|kRvRa-YU;)_d_aM)U{yC_t7aA4no{Y^cc zo~8y;g^@^DW52MN?X^`joVil4!OYN_!a_A9HH*7bsjhENh5W1lQr*WnD~eW}B&tRm z4i|)HZDAHmc*|lly!hhNM~;q) zzd7(IgR564s*d8G*W@wjmvH09(VYzu=)|;#V-bE1_}oidk#vg1Dax`d+*4EZ*&m=N zj~_X5=a@xWuDS(BU49eOAFSlSdFfdHRr4QppVUXX?-}uDocI zxXP)eO4a1@hseB(a0~X+VJL(aJ&j~uE9SbJyS!ElnPBP?{V6qy3h6X;_jG8nxFC9Z z#s}RJj)c{$!ag1$mFgxe6+0~wyol^iDGt%!P0cU-&!7Bkc5bnT@2ijq9;F4Te8w$U zuG*WLo_yd~e@6!!Q6vtV#c-g%XJ)bYgUeU2Rab4MLN<#9cVhDTBafWIxd!-?N@{dP zU*FnXUt7UDEe9%_*@{;x_~DH1AMiSHz~&xfQy}>8iDQIaUcWQP{$Frbj0`enp${f= zIGOy%*MCat@(0HcyNSByDatyD#!mjxWgwD`2@XQYL8u|*wX|U{mUSoqSh5)aqh=L<+@jms5CIwsfYp=Zq1AqMS$3f0d-SSm0uyAw_^&8u44C9_-b>eH64YD>0V=Ppt>3tQ?HfdI7GoQc=ojij_(EoDBet}XTw23a)!5X~-QUwU zHr#@9yo-dv)W8ug3m`$Ywx6U4IaS}ZOAJ`>b65MjJEhw{@4Qnm6f&p%Ob0l)L;Y1} z@}-WV4TH$-sa1o??e&w4(nbdalH^xGf7JMyWY}h`dMu{+=4OWS874A|nG(skY2Jpu zm*6zOousI;5F&Yj!{9Nwl7LH*MP&doF6kcMNe39-O8n-{x2{j##8M}z;7Ier&vJm- zRYScTa@!v|GB(_gK}(QEFj8;uyWNLJ4q|Ou3+Dhk6S@5Jxz&|bf=@`(%7lnsLMTOf zW_CKA%GoV;r=5Cb1~Bp1kwcyBlD(AakmmHd?&juGN5{9~$))u$eHP{{1CWEn4}>eO zZ*9H#o411w&%TZhhRjxm386J6p3wnmkT|Fs$PV&Tv`~ni&Xg=xE>7NN$C1jV_BD46 zwzNbR7E_xmkOU+$G~(bfVHI|_n`A5`OgD-BLdmz#N4zcxw0my*(yx#q1afw5Jv}{0`|RqqN5EdDoh#U- zC<6u?|M8E1j3*otJKKKZJ-Gh)jmzporlI?&n-HoDI;XD24v}f3bSq98eyTV}VuatL za`Ol%2$1hRSURq3UnD+!Wo4Nx9p4yw3$)XDC=gqkGER7jFr~I;7xKxZ&F9*8Vti!u zU{gn%)$grSArrXN)LBBXct}J)K6da^uI!F&XVANgea}Sj`!*dFU{umBf9Qwy04KsO zMWIs*hr{PTyg+<)OLH4pSy21PD#(k`dB97{nbbx$yLzZEh_knk($rv#%4>;WNm?&V z@nt1F(mEIbo(mg8sKUomP*+j}(wba^mVom{U8Yz&fA!<@6W6E=4CaY;d>d?KqOkTm zO@>4J`i~tRBU)SaMf${Ig9ZKFT}KX$Mc=uEoa?YUGu1TimPAm5f~5Xs!gv>`}g+`5A~A~nHg0(Y3VAiexpPC*W>Z@`{(2F43jU+M-831fn4GBJ2$s@ z?t=^dC!C=mwm`&q*p83~VJr&Rl(142zXCL1(6e%VGnsqyoikgTkoSfy|{f}RaY)gm+=$kj8N)vfT=+t5*mr!iduX4V;&|ll16%}vA>M$etg#Zp zwROKcyic78Jg7sPJMCNp6V7Ee`P{xqyS(!RZ;{^!SE^R;OifMPx@~j%-9Cb=U?WVQ zJg#0(z$xjwHY}$6@c!;b^7@irqqhr<8bkx(NmUR;3s3YB8udy|1@amSdflCswRbLDjO7bPNf#v*t(7iWmJ@{|tbAWv`$I>Mpb3*+vke!B zkc|ZZj$!HW!I7D{^_vUJRQ~GAlwvgxJ++VI1}cxKxAVyj9GvhITm5cz{N3OE9aTqQ>_?9t<$i9E zSINPNcFrg8Cf>!AQnOn_4m-lUgx2!|kq&k{@;^}kP_rx>JBm{7X+$+7Ey*O&5jOC| zw1eJk{=YHwW+KImo6E)4=EBpn`BH7Pqk(H3{ZZK;2dKKuTMn_H<+(?PS{CzZY7 zsPZ$<341DmyZK~$$U~t#n2*!zaRq#4yenmaktB(WfFf}F_F7QRR^)56aiTLS=CRx6 z^XTUZ%#tF6mFm>;(uWh*mo_)e7IH7`C)Gc%g z;L@FC6(O<^TX707*naR9<=b^uzvujf6FLI#C)L?@LY1 zhTwZ_?C@YmmsR+NP*EA0dLi5iNxjAEJGy^(b!mN(xLV=JJLt_@x!Gh*|p$pA8jg-!*Q)u%LWGN(}dlpGt8X)`eg_A!&=#XqX|Rrg&oW9rwqg1 z>=a+#2n&hI3M51`$J)^#&F+1(_Er0Ypx`j~{PWKfw)ppd|M$?8o}M1AD2A^+r2vpI zatPrN(-(g94gLyCJ$(EijvZBEp1S6CNYkLd~mA-#+Kzo1s%wO(4@Yzr9 zdFT^22!vItx?6WcxHUg4%D zdt9JW#-N4@vr`*icGm2`p=mm@wGjy7l4LQwONI&yA|L3_FPy)#xJcbIw%qay17O?& z;j+puyY2AU==k^{baU}o1Z^teXmA6hSPt%_PgKes?Ct39X}fY~j#9V?3I9KL@A)0q zktBKog@P?qp&U@~K*1XVAP5q)@~*qp-6M7Hm|pYVoZb1jZ}-i<-S7J+>^rk(XJ>ob zP0Kq{66GjTmZFnLiUu_B-n+6WgR0tJWL6ab8j+Gnb@yC?x30;X85tRo5g8d7`PG>( z$0sI;27wiT&C!R32kG6>`sq~4OI+Jp8d>j|EzYknm*@~60C+%$zlDB;DP{ck5v(ol z8t?wShd(^Zt}fE4i3%mvlXP6<F0Rq9y)ZWzyI3y?VVfMo8nZpZu&O;fU3|rVhqQ~1#csw)34GO zl%lUyfy9lm{q(0l#hm`}#~(8k-@ku9in`QT4waIc!pNBfx0@arnaUz^M^U5EU{kdh z#87ecCTV3^6oF+~Z~;jOUEFj4AsQmX2gWQI;iW(RK@S>D`slbJ684OYPF%jsTDyG@ zJn+bme^k}dXv9ey9+DPJHWoFYdUrzmJ*$Br8Y<3AtOR@~zB)fOyJ|14%+0|~4X{LV z0}H$=fz2~Be7+@%Ij^~q*k(mGhuvhxSyf3@#Rt%|^t57r7n_-w(ZoKa=vE9S5@SW$ zicxq@b|{uOe&YQ5M?b?6OAJ)HZ7GbZGf@^>XM51L)}~)P`^>w!Z8BhW;%*&ZOx4Ze2|bJYa^qhM~@v{B?$1++}9V+UA=ZyW0cnob+uJ4 zr*a^d&WIea6!=zFStw56;Ubr_wykN`1G}I7>u2`v-;F9OZJ{v@A_O1e0gf&A)cMQr z96Pb#319`1je;3cPy^M9(sC%?;%b&xQ(65#{r!Lc*S~zGyp({)^c0dAsU%y4c70Bj zpnoNSPQyJZnLi{)IzZ<0mA7C3^+&KQEpvwhqQVT{-Q9(`vwz?k+kMk1sO)e3q4c}z zNWTWvh+;i$E>4X~Gf%(0{eUDGX}%1UrafXov0Abv>2Fqb(e%yvP>b<_`8o3&4m0d;f6KTX7B*W7qdM3mQGs zlaqaYbe}yB@9#NqAm3)sz=Wptan;xwY?>T05PYbMR9)`K$Rle+I(Ac8DT&QEoQ6TjteT#Dx;E42-u2xMDZ2yX(5s9 zs-bw18d>5;AM3k(?UmOKjgHL_zm+5)K=tVY53NR@U1YHy*xS3ar;C-y8D*t4bq${R zMZ%AvY_F|^WnwfhKZi~Sxo^y=udS(Y6%S9&F>S{7W3L}PNSF#7p1wSD%I{w#LLAZB zOC3eqS{h7Dsfoge=AU2}USD7hJ=t2~sBUg7uC8SJB&GsPcKZYS_F`}z92ymo0m(@{ zph`Ibu*VmC``z~|t15o<#Dj$eDqf6qha{6fE~t?yH~-0pA49=_?2?reOiKcV5y6kQpY4d6d_POD{M}}Tq4%KjfANWZvF*YLv>BHtE?3Dl_ldP z#ZFchsHV9wvBJCpNWGy=c!KDLKbh|0`fldBbf)wI3<_|k`OR;Bg8)ZA->fx|Ggh9Z z#pR*F(NH+Mq{LlN=*l2UHyxl*6V;`8z#KD=64(Ot3w_8dd3*CgAH)JUyWN3-?T2G; zFao>~Yc>m=7M8~Qt{Y;BT~9pN^~nBQlO@J}Q*>e?w>EIPakaUbZ?4e2c%q6`5E7Xv z;6Hi#%YpuJOHrNC$hJ7l8*6zan5At9d+u48$<2*-v^5j)&skE!Hd>gQ_+DVvv>?&5c3jXOHqySuir?oIl0 z;+quYm$1uGv7>r%abj$2c52$|^PBTcIL~9maycFCEln7)82htl@c8KHfBnDyE1PzX zj1I$HK!@mNCal8clo@TbxLAbf$QYp=t`c{BJ?m$)3UU+T2E+Tzd}CHuTl0b5-qnTW zg%zKS(UqZJvSbo084Rh*Ee@IhbR_|Z$ET;+LYP2kM7fD#@7nzK79Xb`p~fTXVej+j&ok`DsRqkj zI$Q8TotOofom*h3vD4X{orBM;_ysBCVSB|I8wNnOFUiBeAp|50uR2;uqst*f4nV>v z0FZ>E!DxT$TBQKH7r#m5$j}HCH5WVQif`%CK*G1SWB;Cxy}fx>OFYLYQ@&JG_(OX8 zRO14#Tnme&+W%g_blW^Y9HM~j^iG^OmxTkO1vQfSU`334Byt;zl_eO)|9!Turu50j zA8u`KEGaF^B4nzb!~(}ErBJ^7=^yn@hD;cc=yj#45DwR?zQFrOK79Yfqk(Wp^~MN3 z8b!4WIAa1P)6h^?)7!JXqSS>;nflN`{PZ|IIZN5ADm#06cI@oMPb0h@p<{v?3UYI{ z;kRosi^eX@X1H+iB90aq^TdRnnNd`b+tt*>Zaqju!e98-)^bhO&Ye9yd-qnj-Qw*_ zCn3;-b-XJK4x0^|e0x&^fk~+x!jf)BhQR`{FaZDAAM4fE4^2v+qB|y4N#2u!LuPGM z{WV@xgG!UiL-oCov!G73xcW>=mqVo$_NHp68a&{G0#m+hcP1B^5YwS z$c7a|XreFKt!`tMS>moq185y6oG^GZjd6BF#3rgMs{l*F zEcB)hjCLSdR!k5V%pa8`ep`j{rR zSxmhJv+#exsO<%gubJVVBQ!2I{P` z(pSl|i?_V}Fgj{9@EH)`O@mWki6}+0*~U60#AxfT6QfU8=&0BuPC4NO_GXAKf5}(*M(c z`k(JVdn+ht4_RgviB4U+J~uM#uCLzn@Bv$SDMK-77iq5~>_C|Q(^nhdOQQR8s3M_d z1jO}$kxxE7%R)SJVJQY$g5PTgEL2b?zu4Q7jV3+bX{#-J=gw`I*5oVx3umfB5nt+3 z(dJf=H9KI253k4jt_{5W@@v-zhZ$SJP+F!7Hbh4AEe?r>j`o&q?X5QE#7qnmHsvlz zlY8moSyJS%*0eUabZjfDtU&Y@AfLP1tv1nMm5mqmkPRjC5yb_@?4HgJB3v-liq~g- zduzkCHfMP$)6?2|$aq2Vr=|^5j0CgHR(nx%ecis^9d-*#IHHR0(tWY6QzlzJ5rmY$ zY{;l&BTC~Y$!;qe?(R-Bb&Xy+NcdZp8c}5+qi-@7=6eZ(w<1xQ?k+n?MdwvfPBfe5 zS)vmzE};}88*Wn;Y6OtJPrlbN^D(1hTH~zdx6*0ud_mh`MSu3$XEBtp+6?I`oJqCf z@rj8Emg2=@xkZJQdAaya$N)-o4aLslA>sGNSZX39#&adsZyHc2;vqLt&gslq6tH*i zp8L+;(ijOe3&tz4x#7|2!6B=|+Vki>S4|~a9QvJ1fNesskb^qX4^@SvTKDx3L6wma z2t__Qac*E}#cZl7Fcs(LS@XepA=}5JjOmkCBOMSfz_!J+~P#S7Q z@(Nn%{ci+Y_<(l9eLRslIWzm(YX`qNcY(eZ7ER$mx(Z1nifF91x?*qdE`ppvQhDO0 zMte!it8Ap_Mty|j`D0^1LvFUcytJXMrLL*j=CEO1t8>@l2TK#c;T+%^J6@H8jfBhd z3kynXDqFj^SJl)M&~YH$Rj!h|TuQsCKPd(IZ>58=TDG;dwlz25VvDXSh98-@79Cx% zCmmeY=-A{7FTTvCjo~;3O6nm(Q0n~M4;cqAh*$@7yawoH)ggoV{A?eQlRa$E0}OY2 z@U^+nQdw0Kjj_GiG^2TqaQ!{(L1AzmaHr5LZzzI(1Rn)P-EgVyYRT$uOOgMWrWm@y(a{lBuNyKg`8nlGw}}NRlYQW%Qb_JtWGN7si)Vxk*%IJWb?2gE z-B7x^m4P}l^Jo^;Rkgr*-`N{EMDyS<6`Ecgzj%e+ad+(Rt?p>UZBn9GqkIU1s4Io4 z6qU;j$V^X0Su}!(zg#~$zT%*lMDDDD$h7Dft%<}Sh zUVi4o4?a*?UL}HEQL#RyT3d)cb-k%>8e(NgU-tUm`{3w%A0A~az(ku+n4%{dN!J=) zv|0*#ySuB)%GsgEQe-6(1IW>`MyC<1r4Fvh023B_Hk6c?*HqU!i|x&gZs>q@EUKds z`*+wfNCyQ2iKtXi&>}LcM`_7gpbjXZWht>b_U+i^F0W*x z(ad->$>hn(GswzjA=BBf``$S8?)3BmOO_P@iwXF<9_cUXrr>UdI1DdE=rP`)ZKA9f z_Yhhy%#*t;0)*w{=C!o6m`oN{)UT~Y)VImcQ|Q#?%0rC;BHNFTPvBh#H^SS}S4!7) zw}q;FByV&m9Oh8eF@<1+$AQ=H_hFbs^Uur0T2jgSJ?Rn=deRsa;Pd*20>LqZf#9}9 zSVmze>C^=*O6O0E5xVX?ln-PKUr<$DfxlpyeRP6*c~*E4NGX18)iZjjZ{6o7QfKSV zZi6|WMaJ|)G`vFOjd)78ss^0f^xwS%F_o7fD>LEqct1S$>Da`)%~l3`81~$*R&?!lHoYeb4boc;cS)Pfk{@Z<d?X7I>2~P{1u*@hLb{1PZyV{AE?ZS&bPxdxdIjXZ75s*-_q{kK2gG&L6qFK3R zwOKLUH`Z3~-M-yUtYUE^C8fMq$w`H=J)2bzM?XA%`0$4^2v;j4q;Bev%#w&v$hz}M zV9_*+tb@g=gjAXB?GbZ@CSpLV1s)P~?arB{QXm3bnp-N$D@KM#n8(&qRAnHUNQIM! zT=ASv3S$`Ds65^?X$zhwYm`cQH@|#BztGjyMMw$!g;{NaIxsjmJUBSO5Xw|gYALE> z`Fcj2?jGM&?5fn)8;Z;%;vO6U>)b6in?q@AjIlPPH`!`98E3FMnSnjJ2BMpX_mRDY zMgTJ&Gp=59(}-lIdc zCDhNH%izew=U;qn%ql4|R~Hr(XXBNWXU@+lu$mp_{K61Xnu5z-&x|n<-Lq|*yR@AC zRe>##E2c=E6l6jzx?k0`kVJA&RN}&g3opF*5~4%IrmlVRED2c3&yqfOMfn3ecNg32 zIJXiO5`)kND{E{>PNG=~<5HBmlxrFpbvl>0&(3Y_?TM`u5F#$ z5Z(EB5DD8-f2jnyB>xnMDSAm&jMXOCbL~ZiRtsUqyIb2j8k=Q7yBK~{4jO(Lhh?!Q zVsXXy#+!#f|Li#Ys0Wa`AeB_|zS~1^M|$}|YvxxVRweS3{X}UthQz_OfT+}WIQRl; z*MC`7tF5D>i||rx-G&IoEeJe__CiUirsA5ixWxku-e$~0y>4NK<0TIYmZ7B&dnw**@p3(WUU$gnH3{4aU*u zQSZ*~I3hI?Wl7n8`>VerMlzwxP~$g*zZ9PQ)1c5xsE$YUE4d&?b}uuVOUladB`+?v z@7dk!uBrk9LjJ-M@+0GLfd!T~OiWBZ|NKjIWa|-j3j%ueUcJ>o-_2PuvZh`!A7eZh zNRVsF?-k2AXkl^--+w6kZZgzqKs2jQSg#1|(oUFu^_o&(5lOERjM?|!08c!mLF zB(OF(a19jo?%&`1MGI@-pP4|>if;7FTg8Y5=0>9IjLetU%MKhwO&Y%DI^DiM? zM^Tk2*M>pLm}Np@vEwA8zF=ULT?&@wN2B4@-klw-?Ty4flQ3%nwNS1c@{_z&_v)mI z;5jd_mMpD!UVZ(|k3Rh@7zPE*Kx-8SCZh79b^;DN4D9de>1uDw&nLEFQE`bQhd7}M zHDp4UfKh8pF>)it=t8;EQV80G8rV(l7eD)%tC+Dy;;(-8^tRSkCif(*$iiFvNiM1( zgpZQ!D@s32M2}!Cb~r0sCUZe!UG0Ird!0oVj41*XH4(j=WONL0VLTjN_ z%(%sBX)eeumq~*7T1I>}61_GxckJSo*M>)qn5}Dn{Wm{*_SvWH4l^3zLiL zMk~snXt#7v9#5eE+KA5+L>`bi3GScQ8juoOG&(alG(S7t*3!_mZ&v}+33zJA@Kcyu znOuaFgnU%n==R}!*97pbk-PZ=p*ZlFh|Mo99{%9d*~MtJtJ+pjoRuM)1DJAQiJW+x zmD_~WT3ib(c~@s#4(q;sJ8e!YeUv~gyriM!nm^4MsY29yMK=_c$uiJmpB{hrgJUZm ze_Yo0(9mFsUuq0az(EX?Ree?MuI*iRTM;q(9mV$Cd^Y0HbS_;YA4r!hpQ()1uOKg3 zmPVw0DjZ2fmVJA6{vZGQ|FX2S`s5Q&BDLf*{ZBz~BUdD=qu5aar@$k7xnZ$7L8dVo z5Ni_8cD5xxb>?gU4p*LP3OWUu)F_jUPCh<<%IPZokN@F+a24C>mt?G-gjFR=f_eKN zQmKRhDfBD;xq=D>BawU9r6oV$53sO=^>zwL8qC{gsNO(+94N^w(i|BX!6Xhph$ToD zw&iQei?jc+;(w-bWpU<~_uuJ;HD_8E7#p8RB=U2!UFD^1xw!@F(Ww>h=-lGDRo}H$ z?{I8=#a-w4`Lnl_^RUsF*@IGu{2uDHCeKOHcKE1+3JN=O_B9gpMN$OVv2Me4&SxCyQ!fmm&isG zEe1{~4fN^(rlLBb;2RDh_Gm12_T2fGUVd$6c0o4VM!%GANeKwVhM@b6ftOOJeSh!H zin0Jmb%+i5LMa0ToMStqZ}q`pM2sm;>0kw2eb;k>a>yT zrhL?;eywsz7OT4rBt=1Cp{u4U#3nG2=$`H!?74k;WP}B+vicAzLlGedT{GgD`uv9u zziW3o|MtIm#*Cw@Lb&wh$y_Dn?GEyhmsAy%KrN(I9SvD4MIk{<#k_+2{5gWI5rjzof=Jj-MfA-m*Km5ppr6r{( zlORw2gzQvPYeXvoB4;|dg~bJ2-&oM*a+S&wdYpf52Ic!afwu{*BD-c2GK^3@SFQ)V zo`;@%*xlN~Ds_c_#mibRis+`-O_?Q6Cq8$iSfR^qZ6rl)=sgIK|r}CD9^gFqdm+~MJyHvb7W{k#-HSRq- zcTOz{S&0K3>?JxsCD7DT7G*9iFEd9#EYt_~_abbiYofZk(Iv;*9;uh$T7)*a^Bodg zseMAbxC;|=2IU;DFT!Tg50EX#ZFAiE0#V%9*odi&DQLnxFeH|`f#+1gB_OZ@9BN`!H0JB?t(>$ z>?O{`N?Q?f)y1U{q41GzE4tDcc?N=hoR`_SQqmK<`tBgSn^aPg7*a8Qu=T+F;>6W{ zLWD5nF0QH|ZYEPR8ZgD#y7Nf^m-@Y%V(v*A3Iw${GoC*4<&mSG#S`XYXKij?A>_g8 zoCrSE21bU&xr?X$#TJ3#PLcTI`Y?i4@v99*=NG6o5x7?XUzH?F>02I;Th zHECp{(e5f)3#>8f-M7s=_R#_dP~tAN?~3Z5ij9`cqs2o(5=igF}8OryB+7SP`E5iEyp&kO?EIHA|b zjrG`AKiNr>eWpB$Uk} z`)3Axu2Lt9Z4{WB8{?MHeY=O0C;AvGho}38v8#3N+tJY4%rnMZPzasAgMm;R}a9IdS^nn;*>1tz-~!NRle~4fN79f)bQ6+!1@3 zkZx&oTCJtxF=~=m>a~{fLgIhYgSx6i>4-EQiyrcGOUlbIS+9qJ5ANvjFD*FWB3O?xU|pP;ni?6asjg~~P?%2oAz|SpRD!uAeDaji0WaMi_W+pN zWsxjjN)+_q-}C9mpEK`hEoyQ)>az_N4CZTLA{uxj@vy9_0BOt@vs2;nR6&lhr;}w{ z^|G@(t(hct^5Sn}ppnd)3P}n>XdQFfrRQIGWq51?%dX6X;Yh41OY?It!}d6lU=7=v z>UZ~am6sIL#-<{hb`%wRqYP=}P*A5@RX_T{&k6=KZE_WKw_uhu}aOR{rC4g7d~Z@4jDEUiI^z{={6Em(-)lRNkvYU2m?bltNze zoKauYh<|`IH^g4YVX%|Rxp z3G7bZGNL3N_u*qp`l^i;P8nr zva#!+2qAEHZ`fOiRR-2HXFRmLI@32mJp0C;j*^-R0t{%h3O!3(CE*iDIg$V;@AR|# zbJl3#EW#5#?s8xM+lN0526C#Z8}joBY*4@`hy{kMOOnYlvBM&wV;;|}*E?HZ?d)i4 z!Qv%T&{7ixBLsfqLG`3AkRYp@hDRn}d*khk7q7{RMFbXo9|#b%%a`;Yau<(Ru*V2a zELG*`4KiE_OnzyACKKcQ0bYpF9x)<0vbOiv)Xvi%xJ1Wc9qTwCg-4ip5=dKRJ ze`=kHN~>TeIW<5q&M&OI@%o|4va&sUb{I_%2G8YHvK*E7<}$H52+N8Nkbrye8pF>F zMIAEZJEr|Gp2JOutRS1u(Wts4>45L*fUB4iD=#l6&_Y8)Wot+83G6v6Xk8)}tJnlwo#>O-U{%0`7FsEK*GfP%);WUZ@$wvI9pYDz-Du^ zSONXZAMmV2h^e3`N&!jht}HL)855nYO;r_Tv>*F=2!kexQdMg+lWX2q)HgFXk2&qs z$+NNn2@^&_a!RWN8zfUchwMCTClqndj+Vwom#dha8>BZRfBqy<`q*@te)fZ3q=86Z zK$Hyg9L3HsOD@*d_wC&~?+p!4OeywPeUxBbsv}}belq$8ho5`tl_H0^yQ^JIaNSsq zbmmDc3m(Xd)%I+o$b2L$zmbG3JXw#ww&rKg1|m$Vb|J&NWfd31BN~X4O}2CM#EuRu(#pwp;ZoX1f0+XFhxirADhC_geE!Apk3KtP zv9QrZGaF(> zM9t}P{$v;F+Dau9nwVE-YZ2m61^sKy4es8#IWHS|dVLbJMO>H!S)$E@0cvG1AQR7C zyzs{1x9ugCs?sucJkbbIG_kc_s((-!@LaTgb|IF*ic-P>fDh4zP5A|@E52YLDAJo} zlE()2w&r+?I}~Z8H!}9)k3XW1;sP$h-G!;Lk`foH0epz+8^h4boT6%Am=ia3{z%OD zoCIXTf!Pd|p0|vsQSUXYBNA8y3X`kEqQ0dsG&B^4B-g^6YYxTj$@48BPClZJ)HojW zNBa5(-g}q5&922*0hO7-5CLEm*?e#5EwiYUCtMSY2ZD3g2f`jt{jNO~HB}ayRrVpE zT_iygD1K9y$tOS9kCclpoRPro{+)N3=+16w?##|E@CR0yZ=~@EI4ZzMF90pFyci## zF)ZILjl0TAos6oOJ=V2N5s)UMjSBHSwIzP}iIZnudE*eVjqxntwQ#d=zT~fOnZV7C z#~NyC_x0?ot|-HPTWBf5?MF;@k~*2^M%Dt^pVy%(&k4RW5KNNz0nu=HPiOn`-1M1q z7yJZn7es1)6Uez1GBIR&0)h9B9(9%4fAz~>G8$1fSH;Sk^&nMO$z8tzhpcriG_h1B z!blheNZw(iFy!QAGu`M%a_Zet(5{jsrU1MX&XBYqA3OG!Uw#GSk(?(8Z5&--a^x-C zt5tL{BCfM*0wB>->#02loq&1&DVI_<3Q=&d(vrG@FH7LMWl><2KMaUIlsJkWpG3g$Gt*)mKBsFyAd@Z6RRtAq2g8Gd<8Qt7(R=TI z5eOF5RQImOd~*vYNP=-s7xKN?TR1n)hM2Kc-*o>Vy_dVKsi?x0Z$r;yeZQU?ky$Yj zUn#WnduPPogoW?(fD$R4eREEoI&~7!I-dt8uT3lA5qP0o!s&G>2Qnq~feX4&yz6Cg-gAa9LN})t7^JI$-&qJ!oz<;2B^zhps9e(@ldZ?+ne!I<5J~@3Zk@$)M1KouB z_IoSmz=E0*4@c%lCs$?{D%>>{jdj)%XHEg`&HMvS`Zvmw2HB{A2K+vs6$$8S3QSGLSD*gbo|5PS9qdbhjLyp;l(NU~+uq(W2QH4E@<#dG6im|vro6&1Q7hSJ znR3HwHN7_MNrM9?JDf7!CZ;N!hD!{Ns2K2?ni?6*1DI-Ndc-t@o6w`+-5?vKO~Bzu zbr>FNA34yG4GoRG_ujGhKR6Zkv$fAt7E2woJVxUX?6~S#C0Huabtol^tqkvsfLo`a zoxo+n$e?>}VerBw1|)4eyQ`Y&i*bj~VZkH^12fUlq)PHD&PSRlZk^?QdI~*dW}qg$ z{q_+w^Mb+(S7~E3mPPBR#dN~gB%sH`#Laaq8k(BE9uCd)Y;V}z)#)%>=sJtbOOYLf zE!%)mDn!mOu8hQ3?D@|7AG~qs&H068*|aE?j;7+E;;LOGbxmpMPab}-wXv?Es?zBy z&XNW2f+K}7b+whwQ#t+F{!%{yo*x3mu$MwS6gK7LEG{kMaKfe)yb;tY8!IV=zZFS9 zudLKzFxyn`E;5@Kbb`r^N=h1aq%O#xt)F}=E9;SnbeDA5iHw=Wm1`rTgqlYIwmWQu zE0XL5i>c32+1&1z#PH9#b7zT~q6W{p={O6o!&Y$V?CdO_q)SW7;Yb)QnLs^kyUkF6 z$vUYq$uKo+ln8?xk?*V|MZ8l@^n8qMWXJ|=tPG=@q8m~`0#p*t)NPXcZ-Q26gcZId z1DIpSK0SEwz1itZch!$=McrAM>_Z&$2ZraD&b!@34;7Bv?_)3x_KdFc5 z(q;I>A$69QI;EmwLohr)GUi=cZQ8c2%I&t=?8Mo|FfVCTHpyR}$gwGBb$?$^sxScs z4(=ZuKXUAgwNOs6s~kt@XxxL^p>Qgx6mXCpy=|1JEI#i{NpWGWu}15AEE!IPV=w2LIG)Ec*v`R0{qg4@Ur62YXh_U6Ydfq?w zdEd2ho86t2V^VY=n`{eSRXwHN0E|sG9+GW+4biTq_WFuy2FVOR*cF5r89Jr@MCemj z5i3Y2^7X}wuN{1IV0e^umuM_fra~1L8UXoTa{yEzU9**)r}Id_eLF zHPTFSko+&`*aR(}Qn{j{`+cj8_3obS?Q_RZ`-rt5w5w2}>nqh%=H~=^CoUd3e7M+Y zd+M=A;TEbb?Xacxf*L^}v`C07i-p|_V(W~mL;~jL7>P?K!&5d|Rh}(3e7q&6+uSg5 zjXxQsGrr{-K`pAjz$}ETKSB;O3P#TRd|otmhr?N2Rb5$GjTNoP%CKBU$5_|!hv8e8 z9D`hbehZ(#-fYLqd3bnua$@@AiBs+EUAuSpvWFq|wnC-@2)!V>qf#FQ`c3#u0SqMi z@Or%G&Rt|*3f#*bHs%TP;|6?jBk^_mmSuG2Di%KGF+``A!H+jHe`;cSd70fFuqz8z zH6!Z06md#Rq)OpeuJyfCJrp92+Vb>tZOb-ydrPs)X|odo8s};fZ9thsk!m7x-jv(@ zy@XpRjj5E+PM`Vp?_P_>^IfI&#vH;>DVGWbrPeC}mz0SNMEBCn)U}!t%aaFo*OU=? zhxt~cv)pC2AzMfy&`UiOdqZC+Wg}yg|MvWI$4{LON9jM+C`4C_q>{T7BN&KBYfFot ze&V6}hRV{)az}Y7K@Y_;A$U?r86Zf62Pxt&^iZG^cQKcJ*&?xZEMaKqQ}eTEC^CRa z*G$U{K^6GQ@GxFnS+1&qRb04xf?AD%I=94E+qE+KwhKi0ltrYcSCYs4r4TS17lf$vo)01=aa}3nA zH47^@y#sxOf`CDI78*RB;2cq$Hw4DEaKSqh})@zt1eCm z;^qU(IbDdy>pl49d#ArVgN9)-)wqg#GqY_81Gc`=>FG}z8uI?;Z=P;!tQH<*>Eq|0 zUx!2`s+f(4oEE#ih(CwJ>@2b4VT&S!qc7qDDmcT#I}AM0B5tndvtUy)`rIsjg(tS2l1$x{8EQjIFp!NP$+P zgIo75FBlSQ1oW;dcc{&EGjdINL;_cf4Y!bt(y0yei}Q!yefNtKr`LiZGK4TCk)mU{ z7Iw$Sl~4`qgjRlV=dLDqEsgCeD`N^*4K>vVN#yXE`Z7tIe;Sm1zXni*on(L0Tf&howHfx)ASr_DIZEY|2(D2 zmo3cA%`7c0BF`^e`1-(s1G{>A%gfj{!w9K-6U>v)bGK-k4)wPvm?3iTU~9%%o>%aO%pHtCufdnwT8- zVO0oFiy++<$Yh#bi6JnnSR@jf?H^j6ovUwYtZQv4V&@whOI7GL6omRmsFy2{lRUl& z`g{CN;0OdgFTeiAs|Syn3aUzqYmHf&sdyvs2;E33x+8HkXF6xRgBmmRZS=w1c5?`UxCB*U+y6_VOA8S#~6vO=Mb7Z79Z#zBEp9V3Heiq z)D?t5l?+EzE-r{4NJCwn#ZoA~9U7hbSAC-hi4pfYF+!MuR{E3dJaMIeI2=oC>+E3s zOw=+Yu;i`4(1qObOlffV#ful&0E`fe1VV$onHYoer7blil8f$eIm@3qa9_hUUEI{L zcwuRWQ>Y7~g4FN=^phkrd;p9__`JBd1U_dno9Q*iwIjnr6ofvHmd>`G*+$t$E>(~e zsSh%tUSiP8743li$tNc!bF*zOXQwec&lBjIo;|jAkL%gL`jOL7j9?F`;Y!x7UH_-G zq_N1^XmvIhIa>-X4cU2>gxm=R<5Lq0SFev;y4-i|+SP%2icVR7N&*Z=&l&&@8x-R`cu zTtqi&qKXcn2`EJc5Lqk{Sy~)f4^BVS+tt}hR9XpFm6e_AEOilSToH}XnmUBi80(!n z{nc~Nzc4&9&JG$$!c8^1B$H;6(L4smQW7l% zkSgXc_XKv)R3S$urBUdxkWbCdN+1XoBq*ulh+e~h5FCId#(AOTrA6YO)>PM^)gwt1 zwn30$an0e9IANA3Avbf>h{s1Bd4!=j zZf87!&(o~{KWhq5JTKSkLf(r>7UAIYA)R4$>~j!|q8XW-m*!TQJr|g1O{PM%^27=& zAwcKmW(Nm{m?xJBn&J{1=~anP&z6H6BzPX1J)2Bu4fI6BPR!4Zf~%dYYPi%a&pSn*YlQF{Ik=u zOrsACjH6d9%rC7hFSFKSZelF#@inx!m$fz&IqeR+RYbP}i6#-^7Br_GYytIt-sl3A zG$ydwuYdQ4&re)%mNr@Km4*z7rzI8!HPBJO0VlwMi&$uFb$+_vU152Ae{YFHL^lV1 z46JI-%V$bV?$anoZM%4}@44q+K7ZkID8e{U-U^wjL%t+;u#6739RrD0W)SBr)H)QR**LpPx7Cz2MADF zjKTx!Iv3~XU8Szds!CbClO&!b)=44_#ZvD`7%x;=+n2};M-v0%lgl1|YioNwTC254 zbjlCNlM@qgIB$zfoWxvC=czx`nQ$gg>q??U`4O4d1^iEi$%SO*ji>R1p2Zv*x<#Ko98SvRalGM4tsr3VO6%# z8H?vK)|i`}o|qh&m>C-y8Caa1udA+W>+H0-=yV*i7FzO6QLZLcebzAkU}wd%fnfOk zBcDG1!ojROhqJ7~m~Doxq|23>LpVwP5>AtmUUX%7JRV*;u(PeJwJt9ga|50!nZ>20 zj*?Xzm50vYFZfK25L?Xjs#>yiJ~%{3gD4wiiN31qE1WLOE@z&= z1uWh6cs+!gD{(oMCaAE=JNW?gpd}%gVgZ65heA9Ft;a{$u5EF(wY`l&X;G0?ZC;#e zfNz68d{hYSz>vGGt!>AS9r&5SMfkd4LfbqDzg?E8I>~#|LnN5fIOyj%`P+-(qkdRS@*`Ud}w%JeLai=KWhBu40WOEE8<(@fl+{_bMEV}R+cC67_F?b zJp1fVu)}9ztcAP9#Xu-M3rqjP!lk99K9A?BFTid_6YJ5X==xG39z?=rW#;B&n{x|F zEY@n9y{6FQB(Am3zp%VIhvVLQG`6d!x2?U+VYfM*cG=cUDxmaD)fgHkb(Z@d}3v6U(m3mO^uBMh2s90Z{jD0Hbacb1~A0co}uqmYW~$?Jl+zQWrAG zGZ&UsRGOHr(P4nd8~RFQ&Mz)84fes&kC#{3&R&YsEuqewRR19pVF^}QR8^Gz^hb|% zwzpQ*R+Ck-Ytg-{pi5F~NKh-(+=bl!7`K^DkEL4_R>L{KCIGCaeC&&15a#LQenBbsTw z%>f;vLh9_l9Tt^Fc9Gaj@FWozuz+GJL&g%10S<><@0gv`MRjVZEquetM%T!5 z-olx%D1l{UB!ULKyu^hviRTiqk)b}GFjG^LJS;6OV>X`tQ5Py`Qkip$0HEmUI2qfF$Qi%i9~0`q!2==Cqe)@9FOcB^V{Z>uONVQ(5ed;|umB8AIO>QD+v z>gK-wLJAVdYi?ogH@|=G=&_SF2RmcCS^2MaRiJ30A^8!#P)__u8hDpy;*o^|z3m;1 zH3h8jCQX*X#-dgis{+v{g$H%LmLzuC(U;zMV`^?8&UB9=C5?N|f>w=ycmnTabAG{( zpL#e#PuTzfAOJ~3K~#MIo*qcg?r_NZgH$3-f%2guU7_3*#!|oc6;by)b1Ei?pmu2H zL@iAazIC(Z;8oDdS(=ZJ*_nhH zV1~PRC{52UjZV$h)-^OWOXO2F@sO-kbKQL432tFKK}Tgz59?!7~Ul-C9^~mH|7}&(dCIC z!J;T!?Q*j+87pN3)*_x@Xdx7u34|s?k!joqW6@xoFoO}#T4*sCTx3+0i+5U%p?k;n zdUq{gE2>tfB!#OMQB8bDq};OvGH;v+gx8K7`{>0N55^NkWo4~7c{U00C#LB#M1&zf8Gf^M3Bzw3(Rl)g zGuK6sCb*Qjw{Ol=^EQTYxRmAJus5u$HFLTQ_?G8DsH3>8tSr;VVJYAiH*zq5-hu4b z9M0#+aJm>|xFCuusYA$+9usqUUcTSwKXdv^VgWt+=%egR$Qu?`s7_F7Pk)t_m0Msb zEXgk{Vpr7coIG5PSTxTcyVeukluhOt4Mn00!L`}7wb|g>w8w}4&5+R;W8EJfEYq`7 zElrJG9ozVbECKp51Z{J;M?Ffdc*YAdu>Br+w+2QNXM zu(h1@!37`_acL$NnLDt%t*x%slAR~W%raPMC6`NW0K~nZ7O8Uaa^D}GfB8b+RiuWJ zCG;5d7AjYrrQ%MW;NnzYUG~h+p6c1Ly}G6vmxd(GB^!x8Aq|E?n>wWc`*-rIxJ(2u zR11MI8^rE+E2}GGQ`2GvMt}?QKp)--{NX~5^C0abT>{LoxG-PhB+zaZ#$?!A)N=KX z24vt!g0*lESE9N3<&p7eXR)iPxw*8gltmX}IsNwdq-9`5mV&~`@OF21H##<&0&A zIwdL&_oLD?sZN|WR1%)+QWOab>T+}PSZQ+dkB;E*38V)M_U$ zq<@qyQXxiiN@EB-A#x&!E_O|6Vg#9(YUE`G#Xf08LqFkJkZ-&Y_TZO zotaG-(28=i?5Zt`L->wfgRKZ&eeKOpkDv1R*9fsB!FW&(#Y36ZJn*|-?k^J|xJ+6t zdC&aSj~{*L0bCae5(YNa;6)L7}<}>j%VdCP@9b3txQxiPQ4ckf<@!%6t3*|}K=OkBbRS{byUeIT5*+suSI z$Q%x*P&JEA-PMdb@x!9A3+JyaEv=vlSu7^vxY2*6%c3~C3u|FP5zFEQ2G!3dhdC6c zhdJ_)Kh)I(RO|Juve)NNe)7}3d-lTKQGNPr5>hPyKsPJdUPyh3; z|KRm!mX^2V{twOFsU~Cy&Azi!bANd5^|R;u z9VHERTMeOdMQEyyT*kx#o9eElLIPRVYFYOb{H-`?S*^Mkju4EPO{*HjZN8aE6U z#RWr=vllMD@Y1VqzWvVl_@t=ibhV6KIEV|1f^CwB8aT!XWoBg|-&a@I+tmk7XFP@7Psdj!jGZR*8gH;N0zr^e`E=F4!AOSVKbt+w{U_e9v=Q5av96`ZVi9 zV16`kL^K==uy7Q74wJ+D%#)LhPZT@f$P7GWza%<{<|f7w6)ZxT7@r&-8O9f#=|UqO zx7o#*bY)-kthg~-q!LQas>g$m8apN0?M{o?%Bn5K!e|u%e`s=oO&nNUPXyD^$;oj( zq|-6W(l_C7Mx*%0#N89)%OZpkf8h8Vp<`kq|?9c7VmG*x1;l?EYnCF6YGf z=*5d)vw==cbtTp#{o&nW^d6+s>_SGFfl&1Qqo2O?+Tn~0Q(1XKRu;>TZ~%hFgtNhv zs+k(y$tWG%u}8sFZrt9t)MHw)FWg!gVazsij+R})!7d}{`lqB4-$W_@7lns&&#F+ zvQ`=lf-u&^LN^j-c!awR|XoMI&N2Ll6xLl-Y!CXf~jx~xSuo{JtN+YkAn$))9$ zOMO?v>xmsZd#kD|tX7jE?r+WB8m&+YagncIzmDj}zy??AZh}_B$_4l0yGj>;`Hhh? zCO3Tzt23fN4l~{+C7Ez>%XUI~^DR+W%gZZR%Ronge+t4^G?;aGx7lfH;W83~T4aTh z68P%@ac*0H)!}Mt&Wsup^5YXzV!XJ#hn7v`{QfIX*E_BlbwW49}fWq5^7 zjWUqn%grz)TS^!s5ut<0$mr_azOAjj*y(iFxrZ~?va>#y* zX5XCgy}Z`a5VK7G(AdBH_K!oulU44PygVB;1miHKfDV+3D1{2At4<8z9f`7o*kE&& z@wO%)4WG(niw^Vy z;_}AN>5p$>Gs)#xn>g)g6jEKSZUc zGLjYFoQrt-3yO`ZyQC?JONoEpJEr&U-CJE% z0eYna1+`m`4J2=UzWI(cbSzAR!NV{%BV=@P{UK)t+Z+TihqYi}4pTq6S_3?c@ zbrqGw^bzrE%y5>t%y!4n#MCQq9Q@7ie*e|E3z78%W}BSsTwW`&AQ`FbxS)v@jne@t zJxAVfr3(`r$}J2}7*FE%OiWImzrf~@U$bv6@}DV5`dXcf{zk#5heQH2x9Z9L#NGGK zn@UngYD!Mbx`sj#obU-;^ZP$Mf9TD(`v-?;8pb$+2bPHv)sBI=6H{hO5i%yOf+*rKa^cF=KsdU4&)$lPG8|Fpf>ldx z$}Dx6Y?{>V&A)UF$Yhjoyh@>Vx7(f0iVJv#@i5GvUTp#ekSBbOn59R6y%GEP!=T=g zhUYqgE?0Lt(1q9I^NPnfd)^l@9-o<>BJcxd8=@aM?d_!{o$+|iT4Z585d>Gz5L!3Y zM^$0hl%c^vmVsQmhNW+SwWUkT3o_G1To7zykq9b<&&NKYHo(ZLZ~8mJ{Sx$-0gov3 zY?LF8o5(gzp(4*=1+)UheNXp}I@z=(ud15(auu@lllkG?Jan*+KmHg^rL&`hd}Yex zX0+X(C!$vv7(z!``SQExUY=W8bGce_v#ps4)N-KEfQXu;_(z&TfM(@qWI3=j+Syco zU}skm>)(~WjDXH9EIfDl%D?>f53e13i`|w@W~;+dT3k|^o5#=#g^OWTvda_dQ#`F7 zsQU3t6{L|TH!6iZ1}lIdyH!n0On!aw!nLbc88q^+fCc@;il7a}@k2Bvm9xrEGLXMN z(?dZkJ}FX516z9Z4-US4_}xFg_~Og29UK}S!*0f+W7av+)rz4Db?S!aBEqwbIJY>RrTGPg++$9=)Yo@?;5uY)vswsK?Du;6$Htbu{++$ONFZyG zg$3v795w#nG0kRD-lliAL@Yz=FTVH!qcy{C0-htW)5&0381m}Xt0N;LTK!JvM$5v_ zh){;&n8)kt>Hr-*oady`rBkv_kAY@+X&ED;-EO6qM+L$4B^+5J&+P0{hi!-1+h=8le5t4;RP6le{Y77CdFXT)MHvbHq0 zFr*T@sUVWPXv+J*?1};?gK0iO1uS{}ue|=&M<1OoDykqLuOT5mY9jm~Bj);bbBeYG zyiEL~6Rxi;4_or1j~>`nTV5;63YRaTem&%;KPqT{^SD> zJ>JsV!7`nNg*mXXL4I0%ryE~g==S5R59+V`Y*o5EgJPqx3Fp3$bHP8yz1b zLJn(GSd5QiH9j*tIk(W$v$LkUnpGv3N0btoL>r~RHd3JEDM#|fZGK=;G%SQ8#_FD) z9we6jiZcQn?nSU;euJ4eXF&c4aE9Lqe=LH0%WxH;NMcw{7tQA~Y?Ff-Sq3ZYTUJ zLFt;q87W}o<2tKr`+p(qBb(H-)hS`>attQclPKa6G6N>%wGn4MSXXB!k=?Nxx!qOu z4b{vpO4G<86()M*muJo}PuAYnPCQ)VUZ!w(2UKoG(6_y&2&zrz^Yz8P-~R43zc0g8 z%KV&3RKaBPiiVqnKv0T18oFU*EwJQY9og08-r3!npO=Nnoo@5W@Yrkb9>JA-W`5af zb?n}=??*rS$&MX6OG?X71sRYaT!#mTF<>gHPG+l#W;5hGNfXoN=lWU$BmG{6f%&$@ z#pR0^FJHKPamC{+G#BL;5V!-$qh?8@a>*lok$Uha_}vVHW^85|LXq`}shPv?zW?jr z{f=3~k?{$}GPqQU#1;)uk+RlYM1V^k3S%^j5SX-yJk)us{&$lw;4NEKKlISUk3II3 z%|=K|d=Sgr?pnAPRS`?)mHwfT5s4>H7__Zj1}_Aa%9ozG+?(tn}WC`yao}hi3?Xp zwC`$0L5#Gks>XAntedXns-aYa`U2Uyh7N*f?@>(U)h2G<{%9&tY z3-7;wWNLcZVQ*k9t#}m)4Kch{vRld|p}rH2i6+*)fjLW2c3VrGsjy(3cz535`AdDD ze0p+pYM#IgdHJULhQ`O9c)YQ(#cZ)L^dm@JIJ{;nDiS?Sa#yua=6qwNC|;vQ3RYL? zvw)_+OI@&H!iXnk-<84P;c@mh`N>mHJ@&}M6{RkvjA=^OW!*n4-U$Eg?twt6u3m$H zNIbT>v~=q9nYZ8l;N(|dF0XpC@J!1u6fr3+51pyxf-6D3OpwWFThX6rQoPUvqAN%O zop);GhCD{$%(U6@=n$U`)E;KUG4bF-#gdZGe4ho@LW7gj^WwxV<`g;<)J!!oDNQeQ zK+i%hsulD-kG}apz@kgBixzW3jOwwXAr)b1p6h(LXl`!)#V>w=iVla9t$v=)mRn>g z(ir!3WH=f=19C>}Jcr?7OU;?2*WAeBRxnXS6bo}9nstP*1B+Kn?Ne5ZBO{S-%&aK3 z*do!DxrHx~(A1D&H0;gfA*BEe^&?xdf~6^fL)R4GiPrL;nfo@I9LRj1XJsw8inEaP zyz*b#2VKH$wQcX}Dz-aN1lWGPq0x=qmr6j>nNesN7AN}O`ENgn`P7OvD%|86dW8FJ;5>SW@UdaaU3wEd&80bHD_AL9F zsBE?RoFtuel{98K>kIu{buF8TYzsPo5)(UfA=5L{7rwqQJUB%2TP?(H!XuI)hO}Qg z|3BpgP-{}o%<%aAUthfRd#q>Azj&eVN+`UJi5s<9FwFtH0oOIMhzh;9x=7F$rU zsdiEr|4`1Wt7;n>8^98J4ZR_BMQ@7_(eUs{D9E}dLj<#LGztgq-Lt= zl*(IoA>^FA-P$ypO5C_42`tTE6A4^fTZ=n4Wbh$c5WI`QGL zPtIQ?B*VG{p^@l0S#b5Pox6#b%p?i(n*<5MiD4}e`0TS!2L}fA#uTZ{X`Q>OA1$4( z_LgfhLM#Y$P=g^F31ecpaOvXm%BtOF#V=6%0!mdRhmB0qx&4qAGMgA*9~mEi?a-lr z{mt)>pE$MZ3mUR=Sm3GTBxgXBvoyQRk#Xo-b$R0{Rh`uDruX_0eJBWy*VNWo3N6qp z2QxT`ZXDW1M~9hSQfu|;z~d}+-nDCIWmOfTo*7IGdSY=FcsTQylxZ6Io10)$p&OU5 z2~*#2CIfHub7(vL2^SnNJOgZ^yJ)d21*t=GHD~yZ2RN3aB*Vs<_kbUf%Pn8=3Wnzb zNKw?`QVR8W5wX7YSO_OPtEDPG*P&dgBWsb>WzWc3Xu(owXlim3c8Vc8pD-1Ng1{Ng zA8scr3PMq*Xkf@{ZU09glcnW`Tw9?XNluhm_N>R9Yds!iCJ6afT3UgT9SCgf#? zD@ciMA#B}SkQbRScW$*?$4AG{e08S0ytKC7je~+BO2O{EJ~D}W$VL*Mojm=*OK)cy z*lW0or6cePu;|T1wz8ctPevwEcq;52-`mq%Usr*d_q`8}T^$%=FByChWZ!ui^D={w zYqJ;Q{!AA;JUom7hGFyar3%8Fr_g0lCI7MJr<6^7Z|^QIM$uuvtWjAL{dce*E}v|Mots{dxL=hiKIBIYJv=3z2Y;J&a-Ry1K^BZQGga&NgNj7MiN7D@^!qYRxfBdnzB+pvCf6g! z6noQbLI>$0zWD zmn`eXTyGD;jc=s7YUv0X4Z8?PsHVkvCUt{rzKIF;2I}|weS~JBIELI1;hsHvt7_e_ zx5-4ra^~1MWEnY~gj{YqZY=4hd(yI;lfg5>uu&aw%jQ%hpc{cX&z(Dm5at#DG!JvF zeZMiS^EtP-BNF|JE&zrkbIb}r&ct;f;EzV}UJWADO$DyZERzv~D^8aF37>yH90{TD zF;-83Bp4t#WP}+6*X-w9rTBw z2-8|=S#eR3NzIK*vvZ_*o5p}8us;zl>yuADEijup+P1NT1-|+2ExZ|{scUirX6Cv- z{o>4_H$O8NhyztZ_$qBip)Dy<iIj1*K$ zEiaO80m7t{#Y(x#4r8-(W8-54vK$z=J~cH?Q>7Y78bxuq7?HmJu^Bmvo+WnyJ_CQu z(6DSNKf%BO^9*jBq6G`uQ^jsvrJmgSH~qn_U-R_l6oNezv_ytK5I%eE{J;M8_iw%R z?$pfUIu5-O0F*gAApq5xl9oI5kB3__yE)_A!f>k>geXW5vte;@VRUSGc6xep5*M#= zWF}srA~sc9z(shmVy3RFs$n@sK^{BhFt!9Xk?QKuJ-%G>R6n}inFO>odBVD^yLJFJrh*6leAcb}LBtu0-Q3~Az?9G{Lj;uD3-qMc36cTqD z=PgFfaCi<|aD_u&#tD^WwXR~ERq!`55d6H@#n?NEEGm;eME+%DQeg!6nJ>Q_85wSC zZK)`){y1+}W>vzBSCenOQk%F_S>Y7m6;Smw1Gldsn?4b|dmIPU01{P>_>M z%)d%b-3#Wvse-hMfUXMQ%nFwA$*IBNQM?=pR>>?WzP74v0&8QGv6;b6sCwkFy#&ISDUN!{JqxJ_q#y z6M#0MlL=+fHDI*U*O=D+Gx!tgraJlpXPGQa^iF1oLJ@B;G*7hI#`;Q&#Y`tkq7oO2 zV;JQMh&NPNGRnvVKHO+eoHz+Zc6W87(yN?RdO4-YLay)rNMcq4xwaPjOj28OxjOf|A&I$=SY5JV}G=0D6 zVoNETo_~wWR2BdLt7vXXmMD*~cE)0?^Vz#^UwK6(vIomK_BAwEnT-?5=AeG5Z0@dP zaE6wPYd2CF_C|YB`E1FASJ>VL#Y^-W{KhA!#{k0x&tY{Q!ht||$1?dO8eK;PplhH` zEE-`+8W!%gkT((yitkH~E63o%{vBAG@dxKaA%>01OuwX=LpPQmcX()=)sVM^H6Hz$vYN2b1s(}ErjJ*eI>)#$ng3ARCG zzCP>psnh+}uh&#nH#F8`fk`QEQcO(Ae)(1q#^+m5rnC9RbJoo4${TMTy*@Z&Dl9h0 zVi?(gR(+zf=8BBv#LQBTFmJ-Q>KXBQrhUFedOOxD8H~9y9G9YX!|S%=mV9J68H~-p z|G&7i|BCXs;yAE?z``QB1jOXj5MO9wOe8Ul@wN8E^p~8Z?LX3!Kd5PY@?uWfBqk=F z^dv@(MtliiP+mk{1Vm&7VHfrdT!R_d2BDtPO8t?bf=(b3v{TVh36#%Q7lMcjl4h6AGM7HVoNF~|#r zqY}eDoO<(#e03otAktRyOYo7J4K+-q@;0@YUgS2$)D+9fit@VhGF(lS<}hDKVLgUF z45_lPm!xnKxsx{54iF$;8FZ01W9uxcq(3OEh1i#JXm=GNV2V=QTw-!;fSi)~uf$zH#?PiPw^gy;H8=P$CQXx@ziExugDz{C&eb5){$+9kX9pa`#| z{13l$KMvcwbLW3N@pa2WK}E?r$rUMskgxqpXHkz##+GoLxsc6FjE(mu=VsV{BN@jY zQ4_Sr+h#Q7)=JN2Yq#VRLO@6o1OutZ`;7+&(5rC$`gj81vQ)-!3L}k~**I55t&c=d zr**Q#wINZ@(HyR)MSjcC5f10_fnDxcjfq-Qh@CN0#>lN(7`MOo;W5lGInzccW8`6r zU7HD(hg{_?my=)mFZ@oWs@L&fP#J~jg9i>rH%0*!`};83VED)}w=L3&75O{@oFqo5 z#N3PWDO+niD52=WT)mKMCghgDaLN zzq*4imiR1wle1hLlErafGMUJ*-wty{2|Mtmbap0{xwW{&O+#935}R#E-kLvSPgI}%GT6Wn?>ZBU8V^< zQe87Tdb6jid&`zBPe08eS*Z|Blg%8a_V*qvdt=Vf4w=WVrDt@i5W6}Sup$N=__aTwxjDxx`HMfPn`YAdWGX!{gvZfQ+$wVti8+-pQGIJ8xdIUDa-=l?%Zg0- zmxDD}&2WD(;G)@N=1O<>2gg48{EL&AYNKppwCy@rV`rG@Wn3=lF}+c*CSk0?W!%Sj zSkQWXF}Hd1Q~O>!fHgP>fKO2L5i5MREyR#m-S>!r;?YRKH&atn6ZeNZ<(3s?P%MjZ zhzccER>+WdHcd6~W6f$C%==8%;n%-x)FE^$kn zX0YOd(r{UXrTEm{@zGmD*-SiAiH%cvZ7o-&vAvtMuAx!;bO$vp57kp*Ve-f zYBu05QFN#PiuY9_aG;M;s%S$)H%XSQwU_GWFI!y0zsj^H7LCgpf5xyMKsFAyo*O!8b2xN z*y|N6V8b*W|E8q{DcYH{t<%$ZCZIUbz!GSW;{H}OmERvnaINR?HL~UDt-t!!7UoPa z7%dlw8@y_2`t_@??#Jn`c(b;a<&|NaYN)a5lYo^!3aAh*#M#o)g7p>KZ)gS}Ru@1d zQ#3Btkg+i|4ikyw1r%cG&WasUr!@3O;1n<(H_wxR;0h!?2{@vnfzT(K=x`I>k$|8r zmdj;wi}(kbTF5SO4N>7zY9=uXd1D*}g~Q#1@)q0#&Jntsz29*NA#&5?AZ*~jh)<4{ zXbk#4RTYu?(vomuX7c9PwdC9^VoB^q5aOfwYN!N+VvxZ2JByn0rqb z7Ut2xVtFCmFhH@?YMWO1`XFe5?IE9jQP58cfCQT!k4=B_*_qzniQIez@uKmXCy)0fTOW7f9nG^~b#!UeVd{}x!H6v1;bFL~?j zw+|jT^z3sxF~-2QgwqYCx0jpu?ArAbu5y4I4=`0#6;jaf4De`$H`WgizS@sN_4#?M zyUB%X2WVLRx+)L}DRMT}-QCR&Jea_Pgiso5b!KvY!aC!~kt4F!WTR`UGRXYN4!2_0 z%`#qcQzLa352>?9M5PB`o%nM>aTVW_G!0w#WNMoAxx}EPux+F(lksu|vN(T7Xf6(I za69OYP=xdveCi@sd8BeHZfSNHRvwYg)3cGd$09g zZ2O`6Y8Q1o-&&{>+x$r#l;LVuhuBvklA`o~8L7~y|MBwRi4*6N=}_@H4#PMUg)<26 zgo1kNizXw;o2@;ECiiAW$9m^dQ&`fe8U@4q!w@YSC;PrnHT-8<(Fu)W;=~QlHbZl_29~CCfOfkhZ z+IA8J(r8?PmHRX~-m46A-HM;v`k62E8@FS0baejZukU^J_1D}Y0%5~$#og6c&W?f= z9<5h_esf$wR@$RK@*48+nPKK7yIy$l4}bhqW8+p%h}WY$9Ia(zHa>n6ZNyjh>}_h= z31I^>_==>t0`gWj2~?jmK74gvO8N)EI7AD1qvpLP?J;oBg0-@FA$jaAyF`vCsf833! zglglzJ}A+k;+sHIlA_q1_*W;-UhNqxD6Qn2#|YYGRRb-P!J*U+H`6nTVXi;K?f{#Y z5M!^B^iL0;ym@C&&Z+7CeFqvgZLX|}Abw*)psd-%Z0D8E`FS0E14mE`@EXWgkYLwO zM*Sp%21Ew@S(@dMR_gyE1T}hPXl}wA?);s}slMy|Gc$9W>KnL&nWn2}EYOE)#dJKC zOmW%?-YeSL&reY8#N^cHCr-Zi!AC!|wQ)npq8HQ&m#>{f*P`ZJ#7 zwk}dpuBN;~fM3xo1BxACcGu58zYFzpW;O{~*i+!JWiHNrKF!U08XI>&W`?UpG!_vu z{68ql)s$Dye|`l7dJNGT({gijGY8-*-iCWcW+EX)rgtpNkg+jc2jB-Oi9rqr3!p%j z@s!D#7W0P-?AtlzVzr1WH1jleK#wUMZp9<^9zJ`2!TSzi^YMeG!tie2mOo=xCpy`p+O z{zmY~5%i>$Va*~E5hf5kx%sK1ZybGY=gzXS3UsRRo7H}~Hb z)(UrNf%TiVSn5e=iDys}$?^ialydFBT?Ir!-{?@10~?H?8w0UBv3>i0i*1>DUfynX zlXiI+Sp%pKK{}fJnJ_bTqkO*If_9_Uu>p|53s6xh`)V{{pi+;{f}ia~8WunVl#HYu zs)mf2&t2f1X&;(|HHd00sHLoR&2s~*cZ6+BhpbrBsGKoxW8h<_JHjzvUz+R$G6H~| zdkbUKEqOzR_(pIstcunzjIWkzFrZLzI9#)^oxs z6-b~6UgRSN2(gdf7>y$TcyV|0E5F&hYu5`n6z#g&b@Ae*j`j{t(GX|@I;U=oS&^*{ zRfd&B#fT1>XTJFI^ySWxf}$FxTW`#alw3u6D!nbEwVh8V5+kwLFuQIn@LAq?4obaJ zNi0kPpCE6>?&UpuI7?x}QFMs(+xLLqSO|3>E1+dY^?BBS8cx3G>6d zIcu#9mu6%${6Y<^kw7xaH=5`3VT0?t)v1lz#5;_=c&V(Xt)JmX^VyM`!#8h@pwhu5 zvQRi332f}V5|ei^Xl3=TvoT$BQ<%=;zUtb$e|!I{e|q#mxj;ZQbV8w%Jk z8VZO}C%7G%r$(z6sgzcP)<)`7@eFb?4q@i^pPJ6l+4K0neCkdFqp?qX= zWMniUA|&Dn)$weB<`~24Qo!=v5ZSMJ;yhjT@vy5d_?Kf-zsR?=&Y0ic6}gMbF|v4_D14ZkjU zcWT)DBx8dQ%+~Yg2L=Z-sbmGm?d7`sMdK}bA3zmyapdKzeJ8%W5RWrl5EI}a5s>M#rhL-lbq+V_J%Dn>8r7RuyLYIgaV+d3|Ecc8b`%@;x;!f!AH{< zF0`J%a1IMyZ1^zMq`NUAgR5d6D&mI3(J032ylnkL82M=zWTT@boEPJ^pXnq2oKyT~ z8Cvxvfe2wGzgYjP?^mXwLkXm{hvo7gf}RW_z9Me7 z>1(v^34~4{)O0*~;bPkdAAWqU^}^lwtZ_&;SyP1}uGJ4ir#hn4Llk5c83b!U=!2ug z`R|M)IL!J&$Fe*CaXynw&8D--Mb2>~TjsYVqz3EOmEvV-4r>)%`J&q(_|Mh@I>x6s zx#^%(icVevfAHba)7#D33bW9zu1;o-LkAC6N7kz=B{nE#?;SSDxd9`#k`Gt_;lsR8 zb!+Q+X4k!YU&G`h7{fISWPV2N3{+4BwBOjLq_^D#PZ%DYYF6xqBX|i?sT0F z%us(QEGXxOlSq9@MP%~sOj~<<-@rA@dpH2YAtsX_>nzJ+m}i2AzP>){0wxw47^|`M zudA=$wtYwQOM4oh*~(ycb$6X>Z5{z65PFMtY=Tc%}s?c5XIt zdt!_&_xESdurOoElul{Y#80qYdW|fw9#;Eh74$XEf2!HEz+X8y!QT#R8}sqxKvuS4Fo(K074FRxDZBjxr9k795)8pl)0B zKM-=i1uH)ViDu)@>(~1^Re7Sep3w=qoL^UDpf1+u$eV_ShFGH01QNJp{FI;A^=%O2 z($F(DTgdp#rKfflhA this.$color.value(this.$value.value())) + this.$color.on('input', e => this.$value.value(this.$color.value())) + } + + value(value: string | undefined) { + super.value(value); + this.$color.value(value); + return this; + } +} \ No newline at end of file diff --git a/src/component/InputComponent.ts b/src/component/InputComponent.ts new file mode 100644 index 0000000..b429d6c --- /dev/null +++ b/src/component/InputComponent.ts @@ -0,0 +1,40 @@ +import { $Container } from "fluentx"; + +export class InputComponent extends $Container { + $value = $('input').class('value'); + $unit = $('span').staticClass('unit'); + $label = $('label').hide(true); + constructor(id: string) { + super('div'); + this.staticClass('input-component', id); + this.$value.id(id); + this.$label.for(id); + } + + unit(unit: string) { + this.$unit.content(unit); + return this; + } + + value(number: number | string | undefined) { + if (number === undefined) return this; + this.$value.value(number.toString()); + return this; + } + + label(label: string) { + if (label) this.$label.hide(false); + this.$label.content(label); + return this; + } + + min(number: number) { + this.$value.min(number); + return this; + } + + max(number: number) { + this.$value.max(number); + return this; + } +} \ No newline at end of file diff --git a/src/component/RangeInput.ts b/src/component/RangeInput.ts new file mode 100644 index 0000000..161de60 --- /dev/null +++ b/src/component/RangeInput.ts @@ -0,0 +1,54 @@ +import { InputComponent } from "./InputComponent"; + +export class RangeInput extends InputComponent { + $range = $('input').type('range').class('range'); + constructor(id: string) { + super(id); + this.addStaticClass('range'); + this.$range.id(id); + this.$value; + this.layout(); + } + + layout() { + this.content([ + this.$label, + $('div').content([ + this.$value, + this.$range, + this.$unit + ]) + ]) + + this.$range.on('input', e => { + this.$value.value(`${this.$range.value()}`) + }) + + this.$value.on('input', e => { + this.$range.value(this.$value.value()) + }) + } + + value(): string; + value(value: string | undefined): this; + value(value?: string) { + if (!arguments.length) return this.value(); + if (value === undefined) return this; + if (value.match(/[a-zA-Z]/)) value = value.replaceAll(/[a-zA-Z]/g, '') + super.value(value); + this.$range.value(value); + return this; + } + + min(number: number) { + super.min(number); + this.$range.min(number); + return this; + } + + max(number: number) { + super.max(number); + this.$range.max(number); + return this; + } +} \ No newline at end of file diff --git a/src/component/SelectInput.ts b/src/component/SelectInput.ts new file mode 100644 index 0000000..c2f9ca1 --- /dev/null +++ b/src/component/SelectInput.ts @@ -0,0 +1,31 @@ +import type { $SelectContentType } from "fluentx"; +import { InputComponent } from "./InputComponent"; + +export class SelectInput extends InputComponent { + $select = $('select'); + constructor(id: string) { + super(id); + this.addStaticClass('select'); + this.$select.id(id); + this.layout(); + } + + layout() { + this.content([ + this.$label, + this.$select + ]) + } + + + add(option: $SelectContentType | OrMatrix<$SelectContentType>) { + this.$select.add(option); + return this; + } + + value(value: string | undefined) { + super.value(value); + this.$select.value(value); + return this; + } +} \ No newline at end of file diff --git a/src/component/_$InputComponent.scss b/src/component/_$InputComponent.scss new file mode 100644 index 0000000..d187285 --- /dev/null +++ b/src/component/_$InputComponent.scss @@ -0,0 +1,86 @@ +.input-component { + flex: 1; + display: flex; + align-items: center; + justify-content: space-between; + padding: 1rem; + background-color: #ffffff15; + border-radius: 5px; + input.value { + font-family: Noto Sans Mono; + } + + .unit { + display: none; + } + + select { + height: 2rem; + width: 100%; + max-width: 100px; + border: none; + padding: 0.4rem 0.6rem; + background-color: #ffffff20; + border-radius: 5px; + color: white; + + option { + background-color: #ffffff20; + color: black; + } + } + + &.range { + & > div { + display: flex; + gap: 0.2rem; + align-items: center; + justify-content: end; + input.value { + background-color: transparent; + color: white; + border: none; + text-align: right; + padding-top: 0.2rem; + width: 2rem; + } + + input.range { + appearance: none; + height: 5px; + background-color: #ffffff50; + border-radius: 10px; + outline: none; + + &::-webkit-slider-thumb, &::-moz-range-thumb { + background-color: #000000; + } + } + } + } + + &.color { + + & > div { + display: flex; + gap: 0.2rem; + justify-content: end; + } + input.value { + background-color: transparent; + color: white; + border: none; + text-align: right; + padding-top: 0.2rem; + width: 4rem; + } + + input.color { + padding: 0; + appearance: none; + border: none; + background-color: #00000000; + width: 30px; + } + } +} \ No newline at end of file diff --git a/src/data/defaultStyle.ts b/src/data/defaultStyle.ts new file mode 100644 index 0000000..6073066 --- /dev/null +++ b/src/data/defaultStyle.ts @@ -0,0 +1,944 @@ +const element = { + "fontSize": "16px", + "color": "#000000", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block" +} + +const image = { + ...element, + height: '60px', + width: '60px' +} + +const style : {[key:string]:Partial} = { + "Message": element, + "Name": element, + "Badge": element, + "Avatar": image, + "Author Area": element, + "Content Area": element, + "Outer Area": element, +} +export const defaultStyle: { + [key: string]: {[key: string]: Partial} +} = { + "Normal": { + "Message": { + "fontSize": "16px", + "fontWeight": "400", + "color": "#F0F0F0FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "4px", + "marginBottom": "0px", + "marginLeft": "2px", + "marginRight": "2px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block" + }, + "Name": { + "fontSize": "16px", + "fontWeight": "400", + "color": "#FFFFFFFF", + "backgroundColor": "#00000099", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "10px", + "borderTopRightRadius": "10px", + "borderBottomLeftRadius": "10px", + "borderBottomRightRadius": "10px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "4px", + "paddingBottom": "4px", + "paddingLeft": "8px", + "paddingRight": "8px", + "opacity": "1", + "display": "block" + }, + "Badge": { + "fontSize": "16px", + "color": "#000000", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block" + }, + "Avatar": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "10px", + "borderTopRightRadius": "10px", + "borderBottomLeftRadius": "10px", + "borderBottomRightRadius": "10px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block", + "height": "60px", + "width": "60px" + }, + "Author Area": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "flex" + }, + "Content Area": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "10px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block" + }, + "Outer Area": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#3D3D3D80", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "10px", + "borderTopRightRadius": "10px", + "borderBottomLeftRadius": "10px", + "borderBottomRightRadius": "10px", + "marginTop": "0px", + "marginBottom": "10px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "8px", + "paddingBottom": "8px", + "paddingLeft": "8px", + "paddingRight": "8px", + "opacity": "1", + "display": "flex" + } + }, + "Member": { + "Message": { + "fontSize": "16px", + "fontWeight": "400", + "color": "#F0F0F0FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "4px", + "marginBottom": "0px", + "marginLeft": "2px", + "marginRight": "2px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block" + }, + "Name": { + "fontSize": "16px", + "fontWeight": "400", + "color": "#0AFFFBFF", + "backgroundColor": "#527F8099", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "10px", + "borderTopRightRadius": "10px", + "borderBottomLeftRadius": "10px", + "borderBottomRightRadius": "10px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "4px", + "paddingBottom": "4px", + "paddingLeft": "8px", + "paddingRight": "8px", + "opacity": "1", + "display": "block" + }, + "Badge": { + "fontSize": "16px", + "color": "#000000", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block" + }, + "Avatar": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "10px", + "borderTopRightRadius": "10px", + "borderBottomLeftRadius": "10px", + "borderBottomRightRadius": "10px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block", + "height": "60px", + "width": "60px" + }, + "Author Area": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "flex" + }, + "Content Area": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "10px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block" + }, + "Outer Area": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#3D3D3D80", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "10px", + "borderTopRightRadius": "10px", + "borderBottomLeftRadius": "10px", + "borderBottomRightRadius": "10px", + "marginTop": "0px", + "marginBottom": "10px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "8px", + "paddingBottom": "8px", + "paddingLeft": "8px", + "paddingRight": "8px", + "opacity": "1", + "display": "flex" + } + }, + "Moderator": { + "Message": { + "fontSize": "16px", + "fontWeight": "400", + "color": "#F0F0F0FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "4px", + "marginBottom": "0px", + "marginLeft": "2px", + "marginRight": "2px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block" + }, + "Name": { + "fontSize": "16px", + "fontWeight": "400", + "color": "#B8CFFFFF", + "backgroundColor": "#2E58FF99", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "10px", + "borderTopRightRadius": "10px", + "borderBottomLeftRadius": "10px", + "borderBottomRightRadius": "10px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "4px", + "paddingBottom": "4px", + "paddingLeft": "8px", + "paddingRight": "8px", + "opacity": "1", + "display": "block" + }, + "Badge": { + "fontSize": "16px", + "color": "#000000", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block" + }, + "Avatar": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "10px", + "borderTopRightRadius": "10px", + "borderBottomLeftRadius": "10px", + "borderBottomRightRadius": "10px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block", + "height": "60px", + "width": "60px" + }, + "Author Area": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "flex" + }, + "Content Area": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "10px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block" + }, + "Outer Area": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#3D3D3D80", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "10px", + "borderTopRightRadius": "10px", + "borderBottomLeftRadius": "10px", + "borderBottomRightRadius": "10px", + "marginTop": "0px", + "marginBottom": "10px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "8px", + "paddingBottom": "8px", + "paddingLeft": "8px", + "paddingRight": "8px", + "opacity": "1", + "display": "flex" + } + }, + "Owner": { + "Message": { + "fontSize": "16px", + "fontWeight": "400", + "color": "#F0F0F0FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "4px", + "marginBottom": "0px", + "marginLeft": "2px", + "marginRight": "2px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block" + }, + "Name": { + "fontSize": "16px", + "fontWeight": "400", + "color": "#FFEB6BFF", + "backgroundColor": "#00000099", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "10px", + "borderTopRightRadius": "10px", + "borderBottomLeftRadius": "10px", + "borderBottomRightRadius": "10px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "4px", + "paddingBottom": "4px", + "paddingLeft": "8px", + "paddingRight": "8px", + "opacity": "1", + "display": "block" + }, + "Badge": { + "fontSize": "16px", + "color": "#000000", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block" + }, + "Avatar": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "10px", + "borderTopRightRadius": "10px", + "borderBottomLeftRadius": "10px", + "borderBottomRightRadius": "10px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block", + "height": "60px", + "width": "60px" + }, + "Author Area": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "flex" + }, + "Content Area": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#00000000", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "0px", + "borderTopRightRadius": "0px", + "borderBottomLeftRadius": "0px", + "borderBottomRightRadius": "0px", + "marginTop": "0px", + "marginBottom": "0px", + "marginLeft": "10px", + "marginRight": "0px", + "paddingTop": "0px", + "paddingBottom": "0px", + "paddingLeft": "0px", + "paddingRight": "0px", + "opacity": "1", + "display": "block" + }, + "Outer Area": { + "fontSize": "16px", + "color": "#000000FF", + "backgroundColor": "#3D3D3D80", + "borderTopStyle": "solid", + "borderTopColor": "#000000", + "borderTopWidth": "0px", + "borderBottomStyle": "solid", + "borderBottomColor": "#000000", + "borderBottomWidth": "0px", + "borderLeftStyle": "solid", + "borderLeftColor": "#000000", + "borderLeftWidth": "0px", + "borderRightStyle": "solid", + "borderRightColor": "#000000", + "borderRightWidth": "0px", + "borderTopLeftRadius": "10px", + "borderTopRightRadius": "10px", + "borderBottomLeftRadius": "10px", + "borderBottomRightRadius": "10px", + "marginTop": "0px", + "marginBottom": "10px", + "marginLeft": "0px", + "marginRight": "0px", + "paddingTop": "8px", + "paddingBottom": "8px", + "paddingLeft": "8px", + "paddingRight": "8px", + "opacity": "1", + "display": "flex" + } + } +} +//{"Normal": style,"Member": style,"Moderator": style,"Owner": style} \ No newline at end of file diff --git a/src/data/ytchat.ts b/src/data/ytchat.ts new file mode 100644 index 0000000..c57468e --- /dev/null +++ b/src/data/ytchat.ts @@ -0,0 +1,44 @@ +export const ytchat_css = `yt-live-chat-renderer yt-live-chat-header-renderer, +yt-live-chat-renderer yt-live-chat-ticker-renderer, +yt-live-chat-renderer yt-live-chat-message-input-renderer, +yt-live-chat-renderer yt-reaction-control-panel-overlay-view-model, +yt-live-chat-viewer-engagement-message-renderer, +yt-live-chat-banner-manager, +yt-live-chat-docked-message { + display: none !important; +} + +yt-live-chat-text-message-renderer { + position: relative; + overflow: hidden; +} +yt-live-chat-text-message-renderer #author-photo { + overflow: hidden; + flex-shrink: 0; +} +yt-live-chat-text-message-renderer #author-photo img { + height: 100%; + width: 100%; +} +yt-live-chat-text-message-renderer #content { + width: 100%; +} +yt-live-chat-text-message-renderer #menu { + display: none; +} +yt-live-chat-text-message-renderer #chat-badges { + display: flex !important; + align-items: center !important; + gap: 0.2rem !important; +} +yt-live-chat-text-message-renderer yt-live-chat-author-chip { + align-items: unset !important; +} +yt-live-chat-text-message-renderer yt-live-chat-author-badge-renderer[type="moderator"] { + display: block; + height: 16px; + width: 16px; + fill: #5e84f1; +} + +` \ No newline at end of file diff --git a/src/index.scss b/src/index.scss new file mode 100644 index 0000000..678438c --- /dev/null +++ b/src/index.scss @@ -0,0 +1,370 @@ +@import './component/$InputComponent'; +:root { + --background-color: #131313; + --font-family : system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; +} +body { + display: flex; + justify-content: center; + font-family: var(--font-family); + overflow-y: scroll; + background-color: var(--background-color); + color: #ffffff; + font-size: 14px; + +} + +html { + ::-webkit-scrollbar { + background-color: var(--background-color); + width: 4px; + } + ::-webkit-scrollbar-thumb { + background-color: #ffffff20; + } + ::-webkit-scrollbar-button { + height: 0; + width: 0; + } +} + +button { + padding: 10px; + background-color: #00000000; + border: 1px solid #ffffff20; + border-radius: 10px; + color: white; + height: 100%; + cursor: pointer; + &:hover { + background-color: #ffffff10; + } +} + +app { + max-width: 1200px; + width: 100%; + + h1 { + span { + font-size: 14px; + color: #ffffff90; + font-weight: 100; + letter-spacing: 0.1rem; + margin-left: 10px; + } + } + + .content { + display: flex; + gap: 1rem; + + .console { + width: 100%; + max-width: 60%; + + label, button { + user-select: none; + } + + .menu { + display: flex; + flex-direction: column; + gap: 1rem; + position: sticky; + top: 0; + background-color: #13131390; + backdrop-filter: blur(10px); + padding-block: 1rem; + + .action-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 1rem; + .role-list { + display: flex; + border: 1px solid #ffffff20; + border-radius: 10px; + width: fit-content; + overflow: hidden; + span { + padding: 10px; + color: #ffffffaa; + font-weight: 700; + } + & > div { + display: flex; + .role { + cursor: pointer; + display: flex; + align-items: center; + input { + display: none; + } + label { + cursor: pointer; + padding: 10px; + } + &:has(input:checked) { + background-color: #ffffff20; + } + &:hover { + background-color: #ffffff10; + } + } + } + } + + .button-list { + display: flex; + height: 100%; + gap: 0.6rem; + } + } + + .element-list { + display: flex; + gap: 0.1rem; + button { + flex: 1; + background-color: transparent; + white-space: nowrap; + text-overflow: ellipsis; + border: none; + font-size: 16px; + padding-block: 0.6rem 0.4rem; + padding-inline: 1rem; + cursor: pointer; + color: #ffffff66; + border-radius: 5px; + + &.active { + background-color: #ffffff20; + color: white; + } + &:hover { + background-color: #ffffff10; + } + } + } + } + + .style-panel { + display: flex; + flex-direction: column; + gap: 0.6rem; + padding-block: 1rem; + + section { + display: flex; + flex-direction: column; + gap: 0.3rem; + + h3 { + font-size: 14px; + margin-block: 0.5em; + font-weight: 200; + letter-spacing: 0.2rem; + text-transform: uppercase; + } + header { + display: flex; + justify-content: space-between; + align-items: center; + } + + + & > div { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 0.3rem; + } + + section { + display: flex; + flex-direction: column; + gap: 0.4rem; + border: 2px solid #ffffff15; + border-radius: 5px; + padding: 1rem; + h4 { + margin: 0; + font-size: 14px; + font-weight: 200; + } + + & > div { + display: flex; + flex-direction: column; + background-color: #ffffff15; + border-radius: 5px; + .input-component { + background-color: #00000000; + } + } + } + } + } + } + + .preview { + border: 1px solid #ffffff20; + border-radius: 10px; + padding: 1rem; + width: 400px; + height: 80%; + position: fixed; + left: calc(50vw + 150px); + display: flex; + flex-direction: column; + + header { + margin-block: 0.6rem; + display: flex; + flex-direction: column; + gap: 0.6rem; + + h2 { + margin-block: 0; + } + } + + ytchat { + flex: 5; + overflow-y: scroll; + padding-right: 2px; + } + .input-panel { + display: flex; + flex-direction: column; + gap: 0.4rem; + padding-top: 1rem; + + div { + display: flex; + gap: 0.4rem; + align-items: center; + } + select { + height: 2rem; + width: 100%; + max-width: 100px; + border: none; + padding: 0.4rem 0.6rem; + background-color: #ffffff20; + border-radius: 5px; + color: white; + + option { + background-color: #ffffff20; + color: black; + } + } + + textarea, input { + background-color: #ffffff20; + border: none; + padding: 10px; + height: 1rem; + color: white; + border-radius: 10px; + resize: none; + flex: 5; + font-family: var(--font-family); + overflow: hidden; + } + + button { + + } + } + } + + } +} + +yt-live-chat-renderer { + + yt-live-chat-header-renderer, + yt-live-chat-ticker-renderer, + yt-live-chat-message-input-renderer, + yt-reaction-control-panel-overlay-view-model { + display: none !important; + } +} + +yt-live-chat-text-message-renderer { + position: relative; + overflow: hidden; + &:hover { + .overlay { + display: flex; + } + } + .overlay { + position: absolute; + height: 100%; + width: 100%; + top: 0; + left: 0; + background: linear-gradient(270deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 100%); + user-select: none; + pointer-events: none; + display: none; + justify-content: end; + align-items: center; + color: white; + padding-right: 10px; + box-sizing: border-box; + } + #author-photo { + overflow: hidden; + flex-shrink: 0; + img { + height: 100%; + width: 100%; + } + } + + #content { + width: 100%; + #timestamp {} + + yt-live-chat-author-chip { + align-items: unset !important; + + #prepend-chat-badges {} + #author-name { + #chip-badges {} + } + + #chat-badges { + display: flex; + align-items: center; + gap: 0.2rem; + + yt-live-chat-author-badge-renderer[type="moderator"] { + display: block; + height: 16px; + width: 16px; + fill: #5e84f1; + + svg { + height: 100%; + width: 100%; + } + } + } + } + + #message { + } + + #deleted-state {} + } + + #menu { + display: none; + } +} \ No newline at end of file diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..45f61f1 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,188 @@ +import { $, $Button, $Select, $Textarea } from 'fluentx'; +import { StylePanel } from './structure/StylePanel'; +import { StyleModel } from './structure/StyleModel'; +import { defaultStyle } from './data/defaultStyle'; +import { YouTubeChat } from './structure/YouTubeChat'; +import { $Input } from 'fluentx/lib/$Input'; +import { ColorInput } from './component/ColorInput'; +import { ytchat_css } from './data/ytchat'; + +export const ROLE_MODEL_MAP = new Map>(); +const ROLE_LIST = ['Normal', 'Member', 'Moderator', 'Owner']; +const ELEMENT_LIST = ['Message', 'Name', 'Badge', 'Avatar', 'Author Area', 'Content Area', 'Outer Area']; +const IS_TEXT_ELEMENT = ['Message', 'Name', 'Timestamp']; +const IS_IMAGE_ELEMENT = ['Badge', 'Avatar']; +const PANEL_MAP = new Map(); + +const $view = $('view'); +export const $chat = new YouTubeChat().css({backgroundColor: '#131313'}) + .send({name: 'Normal User', message: 'Hover mouse on the message will show the author role info.', role: 'Normal'}) + .send({name: 'Member User', message: 'You can use Shift + Left Click on Role list to select multiple role!', role: 'Member'}) + .send({name: 'Moderator User', message: 'yoyo', role: 'Moderator'}) + .send({name: 'Owner User', message: 'Using the input panel to send message for testing.', role: 'Owner'}) + +init(); +function init() { + ROLE_MODEL_MAP.clear(); + for (const role of ROLE_LIST) { + const STYLE_MAP = new Map() + ROLE_MODEL_MAP.set(role, STYLE_MAP) + for (const element of ELEMENT_LIST) { + const model = new StyleModel(defaultStyle[role][element]); + STYLE_MAP.set(element, model) + $chat.updateStyle(element, model, [role]) + } + } + + for (const element of ELEMENT_LIST) PANEL_MAP.set(element, new StylePanel(element, IS_TEXT_ELEMENT.includes(element) ? 'text' : IS_IMAGE_ELEMENT.includes(element) ? 'image' : 'element')) +} + +function exportJson() { + const json = {}; + for (const [role, element_model_map] of ROLE_MODEL_MAP.entries()) { + const element_json = {}; + for (const [element, model]of element_model_map.entries()) { + element_json[element] = model.data + } + json[role] = element_json; + } + console.debug(json); + return json; +} + + +$('app').content([ + $('h1').content(['YouTube Chat Designer v1.0', $('span').content('DEFAULTKAVY')]), + $('div').class('content').content([ + $('div').class('console').content([ + $('div').class('menu').content([ + $('div').class('action-row').content([ + $('div').class('role-list').content([ + $('span').content('Role'), + $('div').content([ + ROLE_LIST.map(id => [ + $('div').class('role').content($div => [ + $('input').class('role-checkbox').type('checkbox').value(id).id(id.toLowerCase()).on('input', refreshPanel), + $('label').content(id).for(id.toLowerCase()) + .on('click', (e) => { + const checkboxes = $<$Input>('::.role-checkbox') + if (e.shiftKey) return; + checkboxes.forEach($input => {if ($input.id() !== id.toLowerCase()) $input.checked(false)}) + }) + ]) + ]) + ]) + ]), + $('div').class('button-list').content([ + $('button').content('Select All').on('click', (e, $button) => { + const $input_list = $<$Input>('::.role-checkbox'); + const IS_ALL_CHECKED = !$input_list.find($input => $input.checked() === false); + $input_list + .slice(IS_ALL_CHECKED ? 1 : 0) + .forEach($input => $input.checked(!IS_ALL_CHECKED)) + refreshPanel(); + }), + $('button').content('Export JSON').on('click', () => exportJson()), + $('button').content('Export CSS').on('click', () => exportCSS()) + ]), + ]), + $('div').class('element-list').content($content => [ + ELEMENT_LIST.map(id => { + $view.set(id, PANEL_MAP.get(id)!) + return $('button').staticClass('element-button').content(id).on('click', (e, $button) => $view.switch(id)) + .self($button => { + $view.event.on('switch', content_id => { + if (content_id !== id) $button.removeClass('active'); + else $button.addClass('active') + }) + }) + .on('mouseenter', e => { + $chat.showHint(id) + }) + }) + ]).on('mouseleave', e => { + $chat.hideHint(); + }), + ]), + $view + ]), + + $('div').class('preview').content([ + $('header').content([ + $('h2').content('YouTube Chat Preview'), + new ColorInput('ytchat-background-color').label('Background Color').value('#131313').on('input', (e, $input) => { + $chat.css({backgroundColor: $input.$color.value()}) + }) + ]), + $chat, + $('div').class('input-panel').content([ + $('div').content([ + $('select').id('role-select').add([ + ROLE_LIST.map(role => $('option').content(role).value(role)) + ]), + $('input').id('username').placeholder('User Name') + ]), + $('div').content([ + $('textarea').id('message-input').attribute('placeholder', 'Type here...').on('keydown', e => { + if (e.key === 'Enter') {e.preventDefault(); send();} + }), + $('button').content('Send').on('click', (e) => { + send(); + }) + ]) + ]) + ]) + ]) +]).self($app => document.body.append($app.dom)) +load(); + +exportCSS(); +function load() { + $view.switch('Message'); + $<$Input>(':#normal')?.checked(true); + refreshPanel(); +} + +function refreshPanel() { + PANEL_MAP.forEach(panel => panel.layout()) +} + +function send() { + const message = $<$Textarea>(':#message-input')!.value().trim(); + if (message === '') return; + $chat.send({ + name: $<$Input>(':#username')!.value(), + message: message, + role: $<$Select>(':#role-select')!.value() as any + }) + $chat.dom.scrollTop = $chat.dom.scrollHeight; +} + +function exportCSS() { + let css = ytchat_css; + for (const [ROLE, MODEL_MAP] of ROLE_MODEL_MAP) { + for (const [ELEMENT, MODEL] of MODEL_MAP) { + let selector = ROLE === 'Normal' ? `yt-live-chat-text-message-renderer` : `yt-live-chat-text-message-renderer[author-type="${ROLE.toLowerCase()}"]` + switch (ELEMENT) { + case 'Message': selector += ' #message'; break; + case 'Name': selector += ' #author-name '; break; + case 'Badge': selector += ' #chat-bagdes'; break; + case 'Avatar': selector += ' #author-photo'; break; + case 'Author Area': selector += ' yt-live-chat-author-clip'; break; + case 'Content Area': selector += ' #content'; break; + case 'Outer Area': break; + } + let stylesheet = ''; + for (const [key, value] of Object.entries(MODEL.data)) { + stylesheet += ` ${toCssProp(key)}: ${value} !important;\n` + } + css += `${selector} {\n${stylesheet}\n}\n\n` + } + } + + console.debug(css) + + function toCssProp(str: string) { + return str.replaceAll(/[A-Z]/g, $1 => `-${$1.toLowerCase()}`) + } +} \ No newline at end of file diff --git a/src/structure/StyleModel.ts b/src/structure/StyleModel.ts new file mode 100644 index 0000000..4c61ea5 --- /dev/null +++ b/src/structure/StyleModel.ts @@ -0,0 +1,90 @@ +import { $Input } from "fluentx/lib/$Input"; +import { StylePanel } from "./StylePanel"; +import { ColorTranslator } from "colortranslator"; +import { $Select } from "fluentx"; +import { firstCap } from "./util"; + +export class StyleModel { + data: Partial; + constructor(data: Partial) { + this.data = data; + } + + update(panel: StylePanel) { + const filterMultitype = (value: string | undefined, recover: any, unit = false) => { + if (value === '??' || value === undefined) { + return recover; + } else { + if (unit) return value + 'px'; + return value; + } + } + const border = (dir: 'top' | 'right' | 'left' | 'bottom') => { + return { + [`border${firstCap(dir)}Style`]: filterMultitype(panel.$<$Select>(`#border-${dir}-style`)?.value(), this.data[`boder${firstCap(dir)}Style`]), + [`border${firstCap(dir)}Color`]: filterMultitype(panel.$<$Input>(`#border-${dir}-color`)?.value(), this.data[`boder${firstCap(dir)}Color`]), + [`border${firstCap(dir)}Width`]: filterMultitype(panel.$<$Input>(`#border-${dir}-width`)?.value(), this.data[`boder${firstCap(dir)}Color`], true) + } + } + + const dir = (prop: 'margin' | 'padding') => { + return { + [`${prop}Top`]: filterMultitype(panel.$<$Input>(`#${prop}-top`)?.value(), this.data[`${prop}Top`], true), + [`${prop}Bottom`]: filterMultitype(panel.$<$Input>(`#${prop}-bottom`)?.value(), this.data[`${prop}Bottom`], true), + [`${prop}Left`]: filterMultitype(panel.$<$Input>(`#${prop}-left`)?.value(), this.data[`${prop}Left`], true), + [`${prop}Right`]: filterMultitype(panel.$<$Input>(`#${prop}-right`)?.value(), this.data[`${prop}Right`], true), + } + } + const data: Partial = { + fontSize: filterMultitype(panel.$<$Input>('#font-size')?.value(), this.data.fontSize, true), + fontWeight: filterMultitype(panel.$<$Input>('#font-weight')?.value(), this.data.fontWeight), + color: + new ColorTranslator({ + ...new ColorTranslator(filterMultitype(panel.$<$Input>('#font-color')?.value(), this.data.color)).RGBObject, + A: filterMultitype(panel.$<$Input>('#font-color-transparent')?.value(), new ColorTranslator(this.data.color!).A) + }).HEXA, + backgroundColor: + new ColorTranslator({ + ...new ColorTranslator(filterMultitype(panel.$<$Input>('#background-color')?.value(), this.data.backgroundColor)).RGBObject, + A: filterMultitype(panel.$<$Input>('#background-color-transparent')?.value(), new ColorTranslator(this.data.backgroundColor!).A) + }).HEXA, + ...border('top'), + ...border('bottom'), + ...border('left'), + ...border('right'), + borderTopLeftRadius: filterMultitype(panel.$<$Input>('#border-top-left-radius')?.value(), this.data.borderTopLeftRadius, true), + borderTopRightRadius: filterMultitype(panel.$<$Input>('#border-top-right-radius')?.value(), this.data.borderTopRightRadius, true), + borderBottomLeftRadius: filterMultitype(panel.$<$Input>('#border-bottom-left-radius')?.value(), this.data.borderBottomLeftRadius, true), + borderBottomRightRadius: filterMultitype(panel.$<$Input>('#border-bottom-right-radius')?.value(), this.data.borderBottomRightRadius, true), + ...dir('margin'), + ...dir('padding'), + opacity: filterMultitype(panel.$<$Input>('#opacity')?.value(), this.data.opacity), + display: filterMultitype(panel.$<$Select>('#display')?.value(), this.data.display), + height: filterMultitype(panel.$<$Input>('#height')?.value(), this.data.height, true), + width: filterMultitype(panel.$<$Input>('#width')?.value(), this.data.width, true), + } + this.data = data; + return this; + } + + cssObject() { + const json = {}; + const convert = (passKey: string | null, data: Object) => { + for (let [key, value] of Object.entries(data)) { + key = passKey ? passKey + key.charAt(0).toUpperCase() + key.slice(1) : key; + if (value instanceof Object === false) { + if (typeof value === 'number' && key !== 'opacity') value = `${value}px`; + Object.assign(json, {[`${key}`]: value}); + continue; + } + convert(key, value); + } + } + convert(null, this.data); + return json + } + + css() { + + } +} \ No newline at end of file diff --git a/src/structure/StylePanel.ts b/src/structure/StylePanel.ts new file mode 100644 index 0000000..7deba83 --- /dev/null +++ b/src/structure/StylePanel.ts @@ -0,0 +1,152 @@ +import { $Container } from "fluentx"; +import { ColorInput } from "../component/ColorInput"; +import { RangeInput } from "../component/RangeInput"; +import { SelectInput } from "../component/SelectInput"; +import { $chat, ROLE_MODEL_MAP } from "../main"; +import { ColorTranslator } from 'colortranslator'; +import { $Input } from "fluentx/lib/$Input"; +import { firstCap, propCap } from "./util"; + +export class StylePanel extends $Container { + type: StyleType; + name: string; + constructor(name: string, type: StyleType) { + super('div'); + this.staticClass('style-panel'); + this.type = type; + this.name = name; + this.layout(); + this.on('input', e => { + this.role_model_list.forEach(([role, model]) => { + model.update(this) + $chat.updateStyle(this.name, model, [role]); + }); + }) + } + + layout() { + if (!this.roles.length) return this.clear(); + const backgroundColor = this.data.backgroundColor === '??' ? {HEX: '??', A: '??'} : new ColorTranslator(this.data.backgroundColor!); + const color = this.data.color === '??' ? {HEX: '??', A: '??'} : new ColorTranslator(this.data.color!); + this.content([ + $('section').content([ + $('h3').content('Properties'), + $('div').content([ + new SelectInput('display').label('Display').add([ + ['block', 'inline', 'flex', 'none'].map(value => $('option').content(value).value(value)) + ]), + new RangeInput('opacity').value(this.data.opacity).unit('px').min(0).max(1).label('Opacity').self($input => {$input.$range.step(0.01); $input.$value.step(0.1)}), + ]) + ]), + + this.type === 'text' ? $('section').content([ + $('h3').content('Font'), + $('div').content([ + new RangeInput('font-size').value(this.data.fontSize).unit('px').min(1).label('Size'), + new RangeInput('font-weight').min(100).max(900).label('Weight').value(this.data.fontWeight).self($input => $input.$range.step(100)), + new ColorInput('font-color').value(this.data.color).label('Color'), + new RangeInput('font-color-transparent').value(color.A.toString()).unit('px').min(0).max(1).label('Transparent').self($input => {$input.$range.step(0.01); $input.$value.step(0.1)}), + ]) + ]) : undefined, + + this.type === 'image' ? $('section').content([ + $('h3').content('Dimension'), + $('div').content([ + new RangeInput('height').value(this.data.height).unit('px').min(1).label('Height'), + new RangeInput('width').value(this.data.width).unit('px').min(1).label('Width'), + ]) + ]) : undefined, + + $('section').content([ + $('h3').content('Background'), + $('div').content([ + new ColorInput('background-color').value(backgroundColor.HEX).label('Color'), + new RangeInput('background-color-transparent').value(backgroundColor.A.toString()).unit('px').min(0).max(1).label('Transparent').self($input => {$input.$range.step(0.01); $input.$value.step(0.1)}), + ]) + ]), + $('section').content([ + $('h3').content('Padding'), + $('div').content([ + ['left', 'top', 'right', 'bottom'].map(dir => new RangeInput(`padding-${dir}`).value(this.data[`padding${firstCap(dir)}`]).unit('px').label(firstCap(dir))) + ]) + ]), + $('section').content([ + $('h3').content('Margin'), + $('div').content([ + ['left', 'top', 'right', 'bottom'].map(dir => new RangeInput(`margin-${dir}`).value(this.data[`margin${firstCap(dir)}`]).unit('px').label(firstCap(dir))) + ]) + ]), + $('section').content([ + $('header').content([ + $('h3').content('Border'), + $('div').content([ + $('label').content('Link').for('border-link'), + $('input').id('border-link').type('checkbox').checked(true) + ]) + ]), + $('div').content([ + ['left', 'top', 'right', 'bottom'].map(dir => + $('section').content([ + $('h4').content(firstCap(dir)), + $('div').content([ + new RangeInput(`border-${dir}-width`).value(this.data[`border${firstCap(dir)}Width`]).unit('px').label('Width'), + new SelectInput(`border-${dir}-style`).label('Style').add([ + ['solid', 'dashed', 'doubled', 'dotted', 'groove', 'outset', 'inset', 'ridge', 'hidden'].map(value => $('option').value(value).content(value).id(value)) + ]).value(this.data[`border${firstCap(dir)}Style`]), + new ColorInput(`border-${dir}-color`).value(this.data[`border${firstCap(dir)}Color`]).label('Color') + ]).on('input', (e, $div) => { + if (!$<$Input>(':#border-link')?.checked()) return; + ['left', 'top', 'right', 'bottom'].forEach(d => { + if (d === dir) return; + const id = $(e.target)?.id() + if (id?.includes('width')) $(`:div.border-${d}-width`)?.value($div.$<$Input>(`#border-${dir}-width`)?.value()) + if (id?.includes('style')) $(`:div.border-${d}-style`)?.value($div.$<$Input>(`#border-${dir}-style`)?.value()) + if (id?.includes('color')) $(`:div.border-${d}-color`)?.value($div.$<$Input>(`#border-${dir}-color`)?.value()) + }) + }) + ])), + ]), + ]), + $('section').content([ + $('h3').content('Border Radius'), + ['top-left', 'top-right', 'bottom-left', 'bottom-right'].map(corner => + new RangeInput(`border-${corner}-radius`).value(this.data[`border${propCap(corner)}Radius`]).unit('px').label(`${corner.split('-').map(str => str.charAt(0).toUpperCase() + str.slice(1)).toString().replace(',', ' ')}`) ) + ]), + ]) + } + + get models() { + return this.roles.map(role => ROLE_MODEL_MAP.get(role)!.get(this.name)!); + } + + get role_model_list() { + return this.roles.map(role => [role, ROLE_MODEL_MAP.get(role)!.get(this.name)!] as const); + } + + get data() { + if (this.roles.length > 1) { + function multidata(object: T, list: T[]) { + let data = {}; + for (const [key, value] of Object.entries(object)) { + data[key] = value; + for (const model of list) { + if (model[key] !== value) { + data[key] = '??'; + break; + } + } + } + return data; + } + return multidata(this.models[0].data, this.models.map(model => model.data)) as Partial + } else return this.models[0].data + } + + get roles() { + return $<$Input>('::.role-checkbox').map($input => { + if ($input.checked()) return $input.value(); + }).detype() + } +} + +export type StyleType = 'text' | 'element' | 'image' \ No newline at end of file diff --git a/src/structure/YouTubeChat.ts b/src/structure/YouTubeChat.ts new file mode 100644 index 0000000..69857e1 --- /dev/null +++ b/src/structure/YouTubeChat.ts @@ -0,0 +1,42 @@ +import { $Container } from "fluentx"; +import { YouTubeMessage, type YouTubeMessageData } from "./YouTubeMessage"; +import { StyleModel } from "./StyleModel"; +import { $Input } from "fluentx/lib/$Input"; + +export class YouTubeChat extends $Container { + messageList = new Set(); + constructor() { + super('ytchat') + } + + send(data: YouTubeMessageData) { + const message = new YouTubeMessage(data); + this.messageList.add(message); + this.insert(message); + return this; + } + + updateStyle(element: string, model: StyleModel, roles: string[]) { + this.messageList.forEach(message => { + if (roles.includes(message.data.role)) message.updateStyle(element, model); + }) + } + + showHint(element: string) { + this.messageList.forEach(message => { + if (this.roles.includes(message.data.role)) message.hint(element); + }) + } + + hideHint() { + this.messageList.forEach(message => { + message.$hint.css({display: 'none'}) + }) + } + + get roles() { + return $<$Input>('::.role-checkbox').map($input => { + if ($input.checked()) return $input.value(); + }).detype() + } +} \ No newline at end of file diff --git a/src/structure/YouTubeMessage.ts b/src/structure/YouTubeMessage.ts new file mode 100644 index 0000000..83fdb47 --- /dev/null +++ b/src/structure/YouTubeMessage.ts @@ -0,0 +1,101 @@ +import { $Container, $Element } from "fluentx"; +import { StyleModel } from "./StyleModel"; +import { ROLE_MODEL_MAP } from "../main"; + +export interface YouTubeMessageData { + name: string; + message: string; + role: 'Normal' | 'Member' | 'Moderator' | 'Owner'; +} +export class YouTubeMessage extends $Container { + data: YouTubeMessageData; + $content = $('div').id('content'); + $message = $('span').id('message'); + $name = $('span').id('author-name'); + $author_area = $('yt-live-chat-author-chip'); + $timestamp = $('span').id('timestamp') + $avatar = $('yt-img-shadow').id('author-photo'); + $overlay = $('div').class('overlay'); + $hint = $('div').class('hint').css({display: 'none'}); + constructor(data: YouTubeMessageData) { + super('yt-live-chat-text-message-renderer') + this.data = data; + this.build(); + this.init(); + } + + init() { + ROLE_MODEL_MAP.get(this.data.role)?.forEach((model, element) => this.updateStyle(element, model)) + } + + build() { + this.content([ + this.$overlay.content([ + `Role: ${this.data.role}` + ]), + this.$hint, + this.$avatar.content([ + $('img').src('/avatar.png') + ]), + this.$content.content([ + this.$timestamp, + this.$author_area.content([ + this.$name.content(this.data.name), + $('span').id('chat-badges').content([ + $('yt-live-chat-author-badge-renderer').content([ + $('div').id('image').content([ + $('img') + ]) + ]), + + this.data.role === 'Moderator' ? + $('yt-live-chat-author-badge-renderer').attribute('type', 'moderator').content([ + $('div').id('image').self($div => { + $div.dom.innerHTML = + `` + }) + ]) : undefined + ]), + ]), + this.$message.content(this.data.message), + $('span').id('deleted-state') + ]) + ]) + } + + updateStyle(element: string, model: StyleModel) { + switch (element) { + case 'Message': this.$message.css(model.data); break; + case 'Name': this.$name.css(model.data); break; + case 'Avatar': this.$avatar.css(model.data); break; + case 'Content Area': this.$content.css(model.data); break; + case 'Author Area': this.$author_area.css(model.data); break; + case 'Outer Area': this.css(model.data); break; + } + } + + hint(element: string) { + switch (element) { + case 'Message': this.hintPosition(this.$message); break; + case 'Name': this.hintPosition(this.$name); break; + case 'Avatar': this.hintPosition(this.$avatar); break; + case 'Content Area': this.hintPosition(this.$content); break; + case 'Author Area': this.hintPosition(this.$author_area); break; + case 'Outer Area': this.hintPosition(this); break; + } + } + + private hintPosition($ele: $Element) { + const rect = $ele.dom.getBoundingClientRect(); + const this_rect = this.dom.getBoundingClientRect(); + this.$hint.css({ + position: 'absolute', + top: `${rect.top - this_rect.top}px`, + left: `${rect.left - this_rect.left}px`, + height: `${rect.height}px`, + width: `${rect.width}px`, + backgroundColor: '#ff000030', + display: 'block' + }) + } +} \ No newline at end of file diff --git a/src/structure/util.ts b/src/structure/util.ts new file mode 100644 index 0000000..3e0e6f4 --- /dev/null +++ b/src/structure/util.ts @@ -0,0 +1,7 @@ +export function firstCap(str: string) { + return str.charAt(0).toUpperCase() + str.slice(1) +} + +export function propCap(str: string) { + return str.split('-').map(s => s.charAt(0).toUpperCase() + s.slice(1)).toString().replaceAll(',', ''); +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..a4829dd --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + // Enable latest features + "lib": ["ESNext", "DOM"], + "target": "ESNext", + "module": "ESNext", + "moduleDetection": "force", + "jsx": "react-jsx", + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "noEmit": true, + + // Best practices + // "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false, + + "experimentalDecorators": true + }, + "exclude": ["dist"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..7e45aef --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vite'; + +export default defineConfig({ + build: { + target: 'es2022' + }, + +}) \ No newline at end of file